Changeset 13122
- Timestamp:
- 10/22/09 00:03:05 (1 month ago)
- Files:
-
- src/router/libutils/country.c (modified) (1 diff)
- src/router/libutils/gpio.c (modified) (1 diff)
- src/router/libutils/lib3g.c (modified) (1 diff)
- src/router/libutils/linux_timer.c (modified) (1 diff)
- src/router/libutils/radius.c (modified) (10 diffs)
- src/router/libutils/shutils.c (modified) (2 diffs)
- src/router/libutils/utils.c (modified) (3 diffs)
- src/router/libutils/wl.c (modified) (8 diffs)
- src/router/libutils/wl_basic.c (modified) (8 diffs)
- src/router/libutils/wl_linux.c (modified) (5 diffs)
- src/router/libutils/wl_macfuncs.c (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
src/router/libutils/country.c
r12842 r13122 20 20 * $Id: 21 21 */ 22 23 22 24 23 #include <malloc.h> src/router/libutils/gpio.c
r13083 r13122 19 19 * 20 20 * $Id: 21 * generic GPIO abstraction module for all supported platforms 21 22 */ 22 23 /* src/router/libutils/lib3g.c
r12842 r13122 19 19 * 20 20 * $Id: 21 * this module detects various special 3G/CDMA USB Devices which is required to handle them correct, since some devices 22 * are using non standard tty interfaces. everything which is not handled here in this list, is supported by the default tty handling which means dialin on tty0 21 23 */ 22 24 src/router/libutils/linux_timer.c
r12478 r13122 563 563 ((*ppevent)->it_value), 564 564 &(event->it_value), 565 &((*ppevent)-> 566 it_value)); 565 &((*ppevent)->it_value)); 567 566 break; 568 567 } src/router/libutils/radius.c
r12863 r13122 62 62 { 63 63 unsigned int value; 64 value = (unsigned int)(getc(in) &0xff) << 24;65 value |= (unsigned int)(getc(in) &0xff) << 16;66 value |= (unsigned int)(getc(in) &0xff) << 8;67 value |= (unsigned int)(getc(in) &0xff);64 value = (unsigned int)(getc(in) & 0xff) << 24; 65 value |= (unsigned int)(getc(in) & 0xff) << 16; 66 value |= (unsigned int)(getc(in) & 0xff) << 8; 67 value |= (unsigned int)(getc(in) & 0xff); 68 68 return value; 69 69 } … … 84 84 struct radiusdb *db; 85 85 if (feof(fp)) 86 return NULL;86 return NULL; 87 87 db = malloc(sizeof(struct radiusdb)); 88 88 db->usercount = readword(fp); 89 89 if (db->usercount) 90 db->users = malloc(db->usercount * sizeof(struct radiususer));91 else 92 db->users = NULL;93 unsigned int i; 94 for (i = 0; i < db->usercount; i++) { 95 int curlen =0;90 db->users = malloc(db->usercount * sizeof(struct radiususer)); 91 else 92 db->users = NULL; 93 unsigned int i; 94 for (i = 0; i < db->usercount; i++) { 95 int curlen = 0; 96 96 db->users[i].fieldlen = readword(fp); 97 97 db->users[i].usersize = readword(fp); 98 curlen+=8; 99 if (db->users[i].usersize) 100 { 101 db->users[i].user = malloc(db->users[i].usersize); 102 fread(db->users[i].user, db->users[i].usersize, 1, fp); 103 curlen+=db->users[i].usersize; 104 }else 105 db->users[i].user = NULL; 106 98 curlen += 8; 99 if (db->users[i].usersize) { 100 db->users[i].user = malloc(db->users[i].usersize); 101 fread(db->users[i].user, db->users[i].usersize, 1, fp); 102 curlen += db->users[i].usersize; 103 } else 104 db->users[i].user = NULL; 105 107 106 db->users[i].passwordsize = readword(fp); 108 curlen +=4;109 if (db->users[i].passwordsize) 110 {111 db->users[i].passwd = malloc(db->users[i].passwordsize);112 fread(db->users[i].passwd, db->users[i].passwordsize, 1,fp);113 curlen+=db->users[i].passwordsize;114 } else115 db->users[i].passwd=NULL;116 107 curlen += 4; 108 if (db->users[i].passwordsize) { 109 db->users[i].passwd = malloc(db->users[i].passwordsize); 110 fread(db->users[i].passwd, db->users[i].passwordsize, 1, 111 fp); 112 curlen += db->users[i].passwordsize; 113 } else 114 db->users[i].passwd = NULL; 115 117 116 db->users[i].downstream = readword(fp); 118 117 db->users[i].upstream = readword(fp); 119 curlen+=8; 120 if (curlen<db->users[i].fieldlen) 121 { 122 db->users[i].expiration = readword(fp); 123 curlen+=4; 124 }else 125 db->users[i].expiration = 0; 126 127 if ((db->users[i].fieldlen-curlen) > 0) //for backward compatiblity 128 fseek(fp,db->users[i].fieldlen-curlen,SEEK_CUR); 129 118 curlen += 8; 119 if (curlen < db->users[i].fieldlen) { 120 db->users[i].expiration = readword(fp); 121 curlen += 4; 122 } else 123 db->users[i].expiration = 0; 124 125 if ((db->users[i].fieldlen - curlen) > 0) //for backward compatiblity 126 fseek(fp, db->users[i].fieldlen - curlen, SEEK_CUR); 130 127 131 128 } … … 143 140 for (i = 0; i < db->usercount; i++) { 144 141 if (db->users[i].user) 145 db->users[i].usersize = strlen(db->users[i].user)+1;142 db->users[i].usersize = strlen(db->users[i].user) + 1; 146 143 else 147 db->users[i].usersize = 0;144 db->users[i].usersize = 0; 148 145 149 146 if (db->users[i].passwd) 150 db->users[i].passwordsize = strlen(db->users[i].passwd)+1; 147 db->users[i].passwordsize = 148 strlen(db->users[i].passwd) + 1; 151 149 else 152 db->users[i].passwordsize = 0; 153 154 db->users[i].fieldlen=sizeof(struct radiususer)+db->users[i].usersize+db->users[i].passwordsize - 8; 150 db->users[i].passwordsize = 0; 151 152 db->users[i].fieldlen = 153 sizeof(struct radiususer) + db->users[i].usersize + 154 db->users[i].passwordsize - 8; 155 155 156 156 writeword(db->users[i].fieldlen, fp); 157 157 writeword(db->users[i].usersize, fp); 158 158 if (db->users[i].usersize) 159 fwrite(db->users[i].user, db->users[i].usersize, 1, fp);159 fwrite(db->users[i].user, db->users[i].usersize, 1, fp); 160 160 writeword(db->users[i].passwordsize, fp); 161 161 if (db->users[i].passwordsize) 162 fwrite(db->users[i].passwd, db->users[i].passwordsize, 1, fp); 162 fwrite(db->users[i].passwd, db->users[i].passwordsize, 163 1, fp); 163 164 writeword(db->users[i].downstream, fp); 164 165 writeword(db->users[i].upstream, fp); … … 173 174 for (i = 0; i < db->usercount; i++) { 174 175 if (db->users[i].passwd && db->users[i].passwordsize) 175 free(db->users[i].passwd);176 free(db->users[i].passwd); 176 177 if (db->users[i].user && db->users[i].usersize) 177 free(db->users[i].user);178 free(db->users[i].user); 178 179 } 179 180 if (db->users) 180 free(db->users);181 free(db->users); 181 182 free(db); 182 183 } 183 184 185 186 187 188 184 189 185 struct radiusclientdb *loadradiusclientdb(void) … … 194 190 struct radiusclientdb *db; 195 191 if (feof(fp)) 196 return NULL;192 return NULL; 197 193 db = malloc(sizeof(struct radiusclientdb)); 198 194 db->usercount = readword(fp); 199 195 if (db->usercount) 200 db->users = malloc(db->usercount * sizeof(struct radiusclient));201 else 202 db->users = NULL;203 unsigned int i; 204 for (i = 0; i < db->usercount; i++) { 205 int curlen =0;196 db->users = malloc(db->usercount * sizeof(struct radiusclient)); 197 else 198 db->users = NULL; 199 unsigned int i; 200 for (i = 0; i < db->usercount; i++) { 201 int curlen = 0; 206 202 db->users[i].fieldlen = readword(fp); 207 203 db->users[i].clientsize = readword(fp); 208 curlen +=8;209 if (db->users[i].clientsize) 210 {211 db->users[i].client = malloc(db->users[i].clientsize);212 fread(db->users[i].client, db->users[i].clientsize, 1,fp);213 curlen+=db->users[i].clientsize;214 } else215 db->users[i].client = NULL;216 204 curlen += 8; 205 if (db->users[i].clientsize) { 206 db->users[i].client = malloc(db->users[i].clientsize); 207 fread(db->users[i].client, db->users[i].clientsize, 1, 208 fp); 209 curlen += db->users[i].clientsize; 210 } else 211 db->users[i].client = NULL; 212 217 213 db->users[i].passwordsize = readword(fp); 218 curlen +=4;219 if (db->users[i].passwordsize) 220 {221 db->users[i].passwd = malloc(db->users[i].passwordsize);222 fread(db->users[i].passwd, db->users[i].passwordsize, 1,fp);223 curlen+=db->users[i].passwordsize;224 } else225 db->users[i].passwd=NULL;226 227 if ((db->users[i].fieldlen -curlen) > 0)//for backward compatiblity228 fseek(fp,db->users[i].fieldlen-curlen,SEEK_CUR);229 214 curlen += 4; 215 if (db->users[i].passwordsize) { 216 db->users[i].passwd = malloc(db->users[i].passwordsize); 217 fread(db->users[i].passwd, db->users[i].passwordsize, 1, 218 fp); 219 curlen += db->users[i].passwordsize; 220 } else 221 db->users[i].passwd = NULL; 222 223 if ((db->users[i].fieldlen - curlen) > 0) //for backward compatiblity 224 fseek(fp, db->users[i].fieldlen - curlen, SEEK_CUR); 225 230 226 } 231 227 fclose(fp); … … 242 238 for (i = 0; i < db->usercount; i++) { 243 239 if (db->users[i].client) 244 db->users[i].clientsize = strlen(db->users[i].client)+1; 240 db->users[i].clientsize = 241 strlen(db->users[i].client) + 1; 245 242 else 246 db->users[i].clientsize = 0;243 db->users[i].clientsize = 0; 247 244 248 245 if (db->users[i].passwd) 249 db->users[i].passwordsize = strlen(db->users[i].passwd)+1; 246 db->users[i].passwordsize = 247 strlen(db->users[i].passwd) + 1; 250 248 else 251 db->users[i].passwordsize = 0; 252 253 db->users[i].fieldlen=sizeof(struct radiusclient)+db->users[i].clientsize+db->users[i].passwordsize - 8; 249 db->users[i].passwordsize = 0; 250 251 db->users[i].fieldlen = 252 sizeof(struct radiusclient) + db->users[i].clientsize + 253 db->users[i].passwordsize - 8; 254 254 255 255 writeword(db->users[i].fieldlen, fp); 256 256 writeword(db->users[i].clientsize, fp); 257 257 if (db->users[i].clientsize) 258 fwrite(db->users[i].client, db->users[i].clientsize, 1, fp); 258 fwrite(db->users[i].client, db->users[i].clientsize, 1, 259 fp); 259 260 writeword(db->users[i].passwordsize, fp); 260 261 if (db->users[i].passwordsize) 261 fwrite(db->users[i].passwd, db->users[i].passwordsize, 1, fp); 262 fwrite(db->users[i].passwd, db->users[i].passwordsize, 263 1, fp); 262 264 } 263 265 fclose(fp); … … 269 271 for (i = 0; i < db->usercount; i++) { 270 272 if (db->users[i].passwd && db->users[i].passwordsize) 271 free(db->users[i].passwd);273 free(db->users[i].passwd); 272 274 if (db->users[i].client && db->users[i].clientsize) 273 free(db->users[i].client);275 free(db->users[i].client); 274 276 } 275 277 if (db->users) 276 free(db->users);278 free(db->users); 277 279 free(db); 278 280 } 279 281 280 281 282 283 void gen_cert(char *name, int type,char *common,char *pass) 282 void gen_cert(char *name, int type, char *common, char *pass) 284 283 { 285 284 FILE *fp = fopen(name, "wb"); 286 if (fp ==NULL)287 return;285 if (fp == NULL) 286 return; 288 287 fprintf(fp, "[ ca ]\n" 289 288 "default_ca = CA_default\n" … … 313 312 nvram_default_get("radius_expiration", "365")); 314 313 fprintf(fp, 315 "default_crl_days = 30\n" 314 "default_crl_days = 30\n" 316 315 "default_md = md5\n" 317 316 "preserve = no\n" … … 343 342 fprintf(fp, "default_bits = 2048\n" 344 343 "input_password = %s\n" 345 "output_password = %s\n",nvram_default_get("radius_passphrase","whatever"),pass); 344 "output_password = %s\n", 345 nvram_default_get("radius_passphrase", "whatever"), pass); 346 346 if (type == TYPE_CA) { 347 347 fprintf(fp, "x509_extensions = v3_ca\n"); … … 369 369 nvram_get("radius_email")); 370 370 371 fprintf(fp, "commonName = \"%s\"\n",common);371 fprintf(fp, "commonName = \"%s\"\n", common); 372 372 373 373 if (type == TYPE_CA) src/router/libutils/shutils.c
r13102 r13122 113 113 114 114 #ifndef HAVE_SILENCE 115 fprintf(stderr, "system: %s\n", command);115 fprintf(stderr, "system: %s\n", command); 116 116 #endif 117 117 return system(command); … … 151 151 fprintf(stderr, "\n"); 152 152 } 153 #ifndef HAVE_SILENCE154 int i = 0;155 156 while (argv[i] != NULL) {157 fprintf(stderr, "%s ", argv[i++]);158 }159 fprintf(stderr, "\n");160 161 #endif153 #ifndef HAVE_SILENCE 154 int i = 0; 155 156 while (argv[i] != NULL) { 157 fprintf(stderr, "%s ", argv[i++]); 158 } 159 fprintf(stderr, "\n"); 160 161 #endif 162 162 #endif 163 163 src/router/libutils/utils.c
r13104 r13122 2564 2564 #ifndef HAVE_BUFFALO 2565 2565 case ROUTER_BOARD_PB42: 2566 #ifdef HAVE_WP5432567 diag_gpio =0x107;2568 connected_gpio =0x106;2569 #endif 2570 break;2566 #ifdef HAVE_WP543 2567 diag_gpio = 0x107; 2568 connected_gpio = 0x106; 2569 #endif 2570 break; 2571 2571 case ROUTER_ALLNET01: 2572 2572 connected_gpio = 0x100; … … 2581 2581 break; 2582 2582 case ROUTER_BOARD_GATEWORX_GW2369: 2583 connected_gpio = 0x102; 2583 connected_gpio = 0x102; 2584 2584 break; 2585 2585 case ROUTER_BOARD_GATEWORX: … … 2592 2592 #else 2593 2593 if (nvram_match("DD_BOARD", "Cambria GW2350") 2594 || nvram_match("DD_BOARD2", "Cambria GW2350"))2594 || nvram_match("DD_BOARD2", "Cambria GW2350")) 2595 2595 connected_gpio = 0x105; 2596 2596 else if (nvram_match("DD_BOARD", "Cambria GW2358-4") src/router/libutils/wl.c
r13111 r13122 98 98 99 99 #include "wireless.h" 100 101 100 102 101 u_int ieee80211_mhz2ieee(u_int freq) … … 779 778 } 780 779 781 int isXR36(char *ifname) //checks if its usually a emp card (no concrete detection possible)780 int isXR36(char *ifname) //checks if its usually a emp card (no concrete detection possible) 782 781 { 783 782 int vendor; … … 802 801 fclose(in); 803 802 } 804 if (vendor == 0x0777 && product == 0x3c03) //XR3.3/XR3.6/XR3.7 share the same pci id's803 if (vendor == 0x0777 && product == 0x3c03) //XR3.3/XR3.6/XR3.7 share the same pci id's 805 804 return 1; 806 return 0; 807 808 } 809 810 805 return 0; 806 807 } 811 808 812 809 int wifi_gettxpower(char *ifname) … … 1009 1006 } 1010 1007 1011 int get_wififreq(char *ifname, int freq)1008 int get_wififreq(char *ifname, int freq) 1012 1009 { 1013 1010 #ifdef HAVE_NS3 … … 1016 1013 if (isEMP(ifname)) { 1017 1014 if (nvram_nmatch("4", "%s_cardtype", ifname)) 1018 return freq -2400;1015 return freq - 2400; 1019 1016 } 1020 1017 char *var = NULL; … … 1025 1022 } 1026 1023 if (var) { 1027 return freq +atoi(var);1024 return freq + atoi(var); 1028 1025 } 1029 1026 int vendor; … … 1043 1040 switch (vendor) { 1044 1041 case 9: // ubnt xr9 1045 if (freq <2427 || freq>2442)1046 return -1;1047 return freq -(2427 - 907);1048 break;1042 if (freq < 2427 || freq > 2442) 1043 return -1; 1044 return freq - (2427 - 907); 1045 break; 1049 1046 case 4: // ubnt sr9 1050 switch (freq) // mmh weired order1047 switch (freq) // mmh weired order 1051 1048 { 1052 1049 case 2422: 1053 return 922;1054 break;1050 return 922; 1051 break; 1055 1052 case 2423: 1056 return 921;1057 break;1053 return 921; 1054 break; 1058 1055 case 2424: 1059 return 920;1060 break;1056 return 920; 1057 break; 1061 1058 case 2425: 1062 return 919;1063 break;1059 return 919; 1060 break; 1064 1061 case 2426: 1065 return 918;1066 break;1062 return 918; 1063 break; 1067 1064 case 2427: 1068 return 917;1069 break;1065 return 917; 1066 break; 1070 1067 case 2428: 1071 return 916;1072 break;1068 return 916; 1069 break; 1073 1070 case 2429: 1074 return 915;1075 break;1071 return 915; 1072 break; 1076 1073 case 2430: 1077 return 914;1078 break;1074 return 914; 1075 break; 1079 1076 case 2431: 1080 return 913;1081 break;1077 return 913; 1078 break; 1082 1079 case 2432: 1083 return 912;1084 break;1080 return 912; 1081 break; 1085 1082 case 2433: 1086 return 911;1087 break;1083 return 911; 1084 break; 1088 1085 case 2434: 1089 return 910;1090 break;1086 return 910; 1087 break; 1091 1088 case 2435: 1092 return 909;1093 break;1089 return 909; 1090 break; 1094 1091 case 2436: 1095 return 908;1096 break;1092 return 908; 1093 break; 1097 1094 case 2437: 1098 return 907;1099 break;1095 return 907; 1096 break; 1100 1097 } 1101 1098 return -1; 1102 1099 case 13: 1103 return freq -(5540 - 3540); // xr3 general 3,5 ghz1100 return freq - (5540 - 3540); // xr3 general 3,5 ghz 1104 1101 case 1328: 1105 return freq -(5540 - 2840); // xr3 special 2.8 ghz1102 return freq - (5540 - 2840); // xr3 special 2.8 ghz 1106 1103 case 1336: 1107 1104 if (nvram_nmatch("2", "%s_cardtype", ifname)) 1108 return freq -(5765 - 3658);// xr3 3.7 ghz1105 return freq - (5765 - 3658); // xr3 3.7 ghz 1109 1106 else 1110 return freq -(5540 - 3340);// xr3 special 3.3/3.6 ghz1107 return freq - (5540 - 3340); // xr3 special 3.3/3.6 ghz 1111 1108 case 7: 1112 if (freq <2427 || freq>2442)1113 return -1;1114 return freq -(2427 - 763); // xr71109 if (freq < 2427 || freq > 2442) 1110 return -1; 1111 return freq - (2427 - 763); // xr7 1115 1112 case 14: 1116 return freq -(5540 - 4516); // xr41113 return freq - (5540 - 4516); // xr4 1117 1114 // case 24: 1118 1115 // return -(5540-4540); //sr4 … … 1687 1684 #endif 1688 1685 1689 1690 1691 1686 #if !defined(HAVE_MADWIFI) && !defined(HAVE_RT2880) 1692 1693 1687 1694 1688 /* src/router/libutils/wl_basic.c
r13111 r13122 63 63 return -1; 64 64 ret = wl_ioctl(name, WLC_GET_INSTANCE, &unit, sizeof(unit)); 65 // fprintf(stderr,"wl_instance = %d\n",unit);65 // fprintf(stderr,"wl_instance = %d\n",unit); 66 66 if (ret == 0) 67 67 return unit; … … 103 103 #endif 104 104 105 106 107 108 105 /* 109 106 * return 1st wireless interface … … 124 121 } 125 122 126 127 123 int wl_probe(char *name) 128 124 { … … 132 128 return -1; 133 129 134 #if 0 //defined(linux)130 #if 0 //defined(linux) 135 131 char buf[DEV_TYPE_LEN]; 136 132 137 133 if ((ret = wl_get_dev_type(name, buf, DEV_TYPE_LEN)) < 0) { 138 // fprintf(stderr,"dev type=%s fail\n",name);134 // fprintf(stderr,"dev type=%s fail\n",name); 139 135 addList("probe_blacklist", name); 140 136 return ret; … … 143 139 * Check interface 144 140 */ 145 // fprintf(stderr,"dev type=%s\n",buf);141 // fprintf(stderr,"dev type=%s\n",buf); 146 142 if (strncmp(buf, "wl", 2)) { 147 143 addList("probe_blacklist", name); … … 153 149 */ 154 150 if ((ret = wl_ioctl(name, WLC_GET_MAGIC, &val, sizeof(val)))) { 155 // fprintf(stderr,"magic fail\n");151 // fprintf(stderr,"magic fail\n"); 156 152 addList("probe_blacklist", name); 157 153 return ret; … … 159 155 #endif 160 156 if ((ret = wl_ioctl(name, WLC_GET_VERSION, &val, sizeof(val)))) { 161 // fprintf(stderr,"version fail\n");157 // fprintf(stderr,"version fail\n"); 162 158 addList("probe_blacklist", name); 163 159 return ret; 164 160 } 165 161 if (val > WLC_IOCTL_VERSION) { 166 // fprintf(stderr,"version fail %d\n",val);162 // fprintf(stderr,"version fail %d\n",val); 167 163 addList("probe_blacklist", name); 168 164 return -1; … … 170 166 return ret; 171 167 } 172 src/router/libutils/wl_linux.c
r13111 r13122 33 33 #include <wlutils.h> 34 34 35 36 35 int getsocket(void) 37 36 { … … 45 44 return s; 46 45 } 47 48 46 49 47 int wl_ioctl(char *name, int cmd, void *buf, int len) … … 123 121 124 122 /* open socket to kernel */ 125 if ((s = socket(AF_INET, SOCK_DGRAM, 0)) < 0) 126 { 127 fprintf(stderr,"socket"); 123 if ((s = socket(AF_INET, SOCK_DGRAM, 0)) < 0) { 124 fprintf(stderr, "socket"); 128 125 return -1; 129 }126 } 130 127 131 128 /* get device type */ 132 129 memset(&info, 0, sizeof(info)); 133 130 info.cmd = ETHTOOL_GDRVINFO; 134 ifr.ifr_data = (caddr_t) &info;131 ifr.ifr_data = (caddr_t) & info; 135 132 strncpy(ifr.ifr_name, name, IFNAMSIZ); 136 133 if ((ret = ioctl(s, SIOCETHTOOL, &ifr)) < 0) { … … 138 135 /* print a good diagnostic if not superuser */ 139 136 if (errno == EPERM) 140 fprintf(stderr, "wl_get_dev_type");137 fprintf(stderr, "wl_get_dev_type"); 141 138 142 139 *(char *)buf = '\0'; 143 } 144 else 140 } else 145 141 strncpy(buf, info.driver, len); 146 142 … … 148 144 return ret; 149 145 } 150 src/router/libutils/wl_macfuncs.c
r13111 r13122 23 23 #include <string.h> 24 24 #include <memory.h> 25 26 25 27 26 #ifdef HAVE_MADWIFI
