diff options
author | David Madison <dmadison@users.noreply.github.com> | 2019-02-15 13:00:46 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-02-15 13:00:46 -0500 |
commit | 7d65dd08142eda767eb822bf2d92c3a1bd9f8b8f (patch) | |
tree | 5609dee433e7d089e6c4f974fa1d870b4068d613 /firmwares/wifishield/wifiHD/src/util.c | |
parent | 2663be17272e19f00c55f3f2d8f1ebfac47158d6 (diff) | |
parent | 91e267bcc42442d4e9da09aab30065ad5d44025a (diff) |
Merge pull request #1 from dmadison/forking
Forking
Diffstat (limited to 'firmwares/wifishield/wifiHD/src/util.c')
-rw-r--r-- | firmwares/wifishield/wifiHD/src/util.c | 260 |
1 files changed, 0 insertions, 260 deletions
diff --git a/firmwares/wifishield/wifiHD/src/util.c b/firmwares/wifishield/wifiHD/src/util.c deleted file mode 100644 index c01edeb..0000000 --- a/firmwares/wifishield/wifiHD/src/util.c +++ /dev/null @@ -1,260 +0,0 @@ -/* This source file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */ - -/*! \page License - * Copyright (C) 2009, H&D Wireless AB All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * 3. The name of H&D Wireless AB may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY H&D WIRELESS AB ``AS IS'' AND ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE EXPRESSLY AND - * SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, - * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -#include <top_defs.h> -#include <util.h> -#include <stdint.h> -#include <stdlib.h> -#include <wl_api.h> -#include <stdio.h> -#include <ctype.h> -#include <errno.h> -#include <string.h> -#include <printf-stdarg.h> - -const char* ip2str(struct ip_addr addr) -{ - static char buf[16]; - -#if BYTE_ORDER == LITTLE_ENDIAN - sniprintf(buf, sizeof(buf), "%lu.%lu.%lu.%lu", - addr.addr & 0xff, - (addr.addr >> 8) & 0xff, - (addr.addr >> 16) & 0xff, - (addr.addr >> 24) & 0xff); - return buf; -#else - sniprintf(buf, sizeof(buf), "%lu.%lu.%lu.%lu", - (addr.addr >> 24) & 0xff, - (addr.addr >> 16) & 0xff, - (addr.addr >> 8) & 0xff, - (addr.addr) & 0xff); - return buf; -#endif -} - -struct ip_addr str2ip(const char* str) -{ - int a,b,c,d; - uint32_t ip = 0; - struct ip_addr addr; - - if (siscanf(str,"%d.%d.%d.%d",&a,&b,&c,&d) != 4) - goto out; - - if (a < 0 || a > 255 || b < 0 || b > 255 || - c < 0 || c > 255 || d < 0 || d > 255) { - goto out; - } - -#if BYTE_ORDER == LITTLE_ENDIAN - ip = (d << 24) | (c << 16) | (b << 8) | a; -#else - ip = (a << 24) | (b << 16) | (c << 8) | d; -#endif - - out: - addr.addr = ip; - return addr; -} - -uint8_t ascii_to_key(char *outp, const char *inp) { - char buf[3]; - int len; - buf[2] = '\0'; - len = strlen(inp); - if (len % 2) { - printk("Invalid length\n"); - } - len = 0; - while (*inp) { - if (! isxdigit(*inp) || ! isxdigit(*(inp+1)) || - len > WL_MAX_PASS_LEN) { - return 0; - } - buf[0] = *inp++; - buf[1] = *inp++; - *outp++ = strtol(buf, NULL, 16); - len++; - } - return len; -} - - - -void printbuf(const char *prefix, const void *data, size_t len) -{ - const unsigned char *s = data; - int i, j; - - for (i = 0; i < len; i += 16) - { - printk("%s ", prefix); - for(j = 0; j < 16; j++) { - if(i + j >= len) - printk(" "); - else - printk("%02X ", (uint16_t)s[i + j]); - } - printk(": "); - for(j = 0; j < 16; j++) { - if(i + j >= len) - break; - if(s[i+j] >= 32 && s[i+j] < 127) - printk("%c", s[i + j]); - else - printk("."); - } - printk("\n"); - } -} - - -void print_network(struct wl_network_t* wl_network) -{ - printk("%s ", mac2str(wl_network->bssid.octet)); - printk("\"%s\"", ssid2str(&wl_network->ssid)); - printk(" RSSI %d dBm ", wl_network->rssi); - switch(wl_network->net_type) { - case WL_CONN_TYPE_ADHOC: - printk(" Ad-Hoc "); - break; - default : - break; - } - switch (wl_network->enc_type) { - case ENC_TYPE_WEP : - printk(" (WEP encryption)"); - break; - case ENC_TYPE_TKIP : - printk(" (TKIP encryption)"); - break; - case ENC_TYPE_CCMP : - printk(" (CCMP encryption)"); - break; - case ENC_TYPE_NONE : - break; - } - printk("\n"); - -} - -void print_network_list(void) -{ - struct wl_network_list_t* wl_network_list; - uint8_t i; - - wl_get_network_list(&wl_network_list); - - if (wl_network_list->cnt == 0) - printk("no nets found\n"); - - for (i = 0; i < wl_network_list->cnt; i++) - print_network(wl_network_list->net[i]); -} - -int join_argv(char *dst, size_t dst_len, int argc, char* argv[]) { - char *p = dst; - int i; - int len = 0; - - /* Not really kosher, an ssid may legally contain 0-bytes but - * the console interface does not deal with that. - */ - for (i = 0; i < argc; i++) { - len += strlen(argv[i]); - if (len > dst_len) { - printk("ssid too long (max %d)\n", (int) dst_len); - return 0; - } - p += sniprintf(p, - dst_len - (p - dst), - "%s ", - argv[i]); - } - if (p == dst) { - return 0; - } - p--; - *p = '\0'; /* Delete last space */ - - return p - dst; -} - -const char* ssid2str(struct wl_ssid_t *ssid) { - static char buf[WL_SSID_MAX_LENGTH + 1]; - - memset(buf, 0, sizeof buf); - memcpy(buf, ssid->ssid, ssid->len); - - return buf; -} - - -const char* mac2str(uint8_t* mac) -{ - static char buf[18]; - sniprintf(buf, sizeof(buf), "%02x-%02x-%02x-%02x-%02x-%02x", - mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]); - return buf; -} - - -char* enc_type2str(enum wl_enc_type enc_type) -{ - switch(enc_type) { - case ENC_TYPE_WEP: - return "WEP"; - case ENC_TYPE_CCMP: - return "CCMP"; - case ENC_TYPE_TKIP: - return "TKIP"; - default: - return ""; - }; -} - -int equal_ssid(const struct wl_ssid_t* ssid1, - const struct wl_ssid_t* ssid2) { - if (ssid1->len == ssid2->len && - (memcmp(ssid1->ssid, ssid2->ssid, ssid1->len) == 0)) { - return 1; - } - return 0; -} - -int equal_bssid(const struct wl_mac_addr_t* bssid1, - const struct wl_mac_addr_t* bssid2) { - if (memcmp(bssid1, bssid2, sizeof *bssid1) == 0) { - return 1; - } - return 0; -} - - |