Changeset 12580
- Timestamp:
- 07/30/09 15:32:54 (4 years ago)
- File:
-
- 1 edited
-
src/router/services/networking/madwifi.c (modified) (12 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/router/services/networking/madwifi.c
r12525 r12580 67 67 static void setdistance(char *device, int distance, int chanbw) 68 68 { 69 70 if (distance >= 0) { 71 int slottime = (distance / 300) + ((distance % 300) ? 1 : 0); 72 int acktimeout = slottime * 2 + 3; 73 int ctstimeout = slottime * 2 + 3; 74 75 // printf("Setting distance on interface %s to %i meters\n", device, 76 // distance); 77 setsysctrl(device, "slottime", slottime); 78 setsysctrl(device, "acktimeout", acktimeout); 79 setsysctrl(device, "ctstimeout", ctstimeout); 80 } 69 if (distance >= 0) 70 setsysctrl(device, "distance", distance); 81 71 } 82 72 … … 173 163 fclose(in); 174 164 return max; 165 } 166 167 static void 168 setupKey(char *prefix) 169 { 170 char akm[16]; 171 172 sprintf(akm, "%s_akm", prefix); 173 if (nvram_match(akm, "wep")) { 174 char key[16]; 175 int cnt = 1; 176 int i; 177 char bul[8]; 178 char *authmode = nvram_nget("%s_authmode", prefix); 179 for (i = 1; i < 5; i++) { 180 char *athkey = nvram_nget("%s_key%d", prefix, i); 181 182 if (athkey != NULL && strlen(athkey) > 0) { 183 sysprintf("iwconfig %s key [%d] %s", prefix, cnt++, athkey); // setup wep 184 } 185 } 186 sysprintf("iwconfig %s key [%s]", prefix, 187 nvram_nget("%s_key", prefix)); 188 if (!strcmp(authmode, "shared")) 189 sysprintf("iwpriv %s authmode 2", prefix); 190 else 191 sysprintf("iwpriv %s authmode 1", prefix); 192 } 193 175 194 } 176 195 … … 203 222 sprintf(bridged, "%s_bridged", prefix); 204 223 if (nvram_match(akm, "wep")) { 205 char key[16]; 206 int cnt = 1; 207 int i; 208 char bul[8]; 209 char *authmode = nvram_nget("%s_authmode", prefix); 210 for (i = 1; i < 5; i++) { 211 char *athkey = nvram_nget("%s_key%d", prefix, i); 212 213 if (athkey != NULL && strlen(athkey) > 0) { 214 sysprintf("iwconfig %s key [%d] %s", prefix, cnt++, athkey); // setup wep 215 } 216 } 217 sysprintf("iwconfig %s key [%s]", prefix, 218 nvram_nget("%s_key", prefix)); 219 if (!strcmp(authmode, "shared")) 220 sysprintf("iwpriv %s authmode 2", prefix); 221 else 222 sysprintf("iwpriv %s authmode 1", prefix); 224 /* ignore */ 223 225 } else if (nvram_match(akm, "psk") || 224 226 nvram_match(akm, "psk2") || nvram_match(akm, "psk psk2")) { … … 511 513 // wep key support 512 514 if (nvram_match(akm, "wep")) { 513 int cnt = 1; 514 int i; 515 char bul[8]; 516 char *authmode = nvram_nget("%s_authmode", prefix); 517 518 for (i = 1; i < 5; i++) { 519 char *athkey = nvram_nget("%s_key%d", prefix, i); 520 521 if (athkey != NULL && strlen(athkey) > 0) { 522 sprintf(bul, "[%d]", cnt++); 523 sysprintf("iwconfig %s key %s %s", prefix, bul, 524 athkey); 525 } 526 } 527 sprintf(bul, "[%s]", nvram_nget("%s_key", prefix)); 528 sysprintf("iwconfig %s key %s", prefix, bul); 529 530 if (!strcmp(authmode, "shared")) 531 sysprintf("iwpriv %s authmode 2", prefix); 532 else 533 sysprintf("iwpriv %s authmode 1", prefix); 515 /* ignore */ 534 516 } else if (nvram_match(akm, "psk") || 535 517 nvram_match(akm, "psk2") || … … 799 781 #endif 800 782 { 801 sysprintf("iwpriv %s turbo 0", use);802 783 sysprintf("iwpriv %s xr 0", use); 803 784 if (!strcmp(netmode, "mixed")) … … 831 812 sysprintf("iwpriv %s mode 5", use); 832 813 } 833 sysprintf("iwpriv %s turbo 1", use);834 814 } 835 815 } else { … … 901 881 char var[32]; 902 882 903 sysprintf("ifconfig %s down", iface);904 883 sysprintf("iwpriv %s maccmd 3", iface); 905 884 … … 1489 1468 // netconfig 1490 1469 1470 /* 1471 * set_rate (dev); 1472 */ 1491 1473 set_rate(dev, dev); 1492 1474 1493 1475 set_netmode(wif, dev, dev); 1476 1477 setupKey(dev); 1478 if (vifs != NULL && strlen(vifs) > 0) { 1479 foreach(var, vifs, next) { 1480 setMacFilter(var); 1481 setupKey(var); 1482 } 1483 } 1484 1485 1486 apm = nvram_default_get(wl, "ap"); 1487 if (strcmp(apm, "sta") && strcmp(apm, "wdssta") && strcmp(apm, "wet")) { 1488 cprintf("set channel\n"); 1489 char *ch = nvram_default_get(channel, "0"); 1490 1491 if (strcmp(ch, "0") == 0) { 1492 sysprintf("iwconfig %s channel 0", dev); 1493 } else { 1494 sysprintf("iwconfig %s freq %sM", dev, ch); 1495 } 1496 } 1494 1497 1495 1498 if (strcmp(apm, "sta")) { … … 1519 1522 1520 1523 } 1524 1525 // vif netconfig 1526 vifs = nvram_safe_get(wifivifs); 1527 if (vifs != NULL && strlen(vifs) > 0) { 1528 foreach(var, vifs, next) { 1529 sprintf(mode, "%s_mode", var); 1530 char *m2 = nvram_default_get(mode, "ap"); 1531 1532 if (strcmp(m2, "sta")) { 1533 char bridged[32]; 1534 1535 sprintf(bridged, "%s_bridged", var); 1536 if (nvram_default_match(bridged, "1", "1")) { 1537 sysprintf("ifconfig %s 0.0.0.0 up", 1538 var); 1539 br_add_interface(getBridge(var), var); 1540 } else { 1541 char ip[32]; 1542 char mask[32]; 1543 1544 sprintf(ip, "%s_ipaddr", var); 1545 sprintf(mask, "%s_netmask", var); 1546 sysprintf("ifconfig %s mtu %s", var, 1547 getMTU(var)); 1548 sysprintf 1549 ("ifconfig %s %s netmask %s up", 1550 var, nvram_safe_get(ip), 1551 nvram_safe_get(mask)); 1552 } 1553 } 1554 } 1555 } 1556 1557 // setup encryption 1521 1558 if (strcmp(apm, "sta") && strcmp(apm, "wdssta") && strcmp(apm, "wet")) 1522 1559 setupHostAP(dev, 0); 1523 1560 else 1524 1561 setupSupplicant(dev, NULL); 1525 1526 // setup encryption1527 1562 1528 1563 vifs = nvram_safe_get(wifivifs); … … 1537 1572 setupSupplicant(var, NULL); 1538 1573 } 1539 /* 1540 * set_rate (dev); 1541 */ 1542 1543 // vif netconfig 1544 vifs = nvram_safe_get(wifivifs); 1545 if (vifs != NULL && strlen(vifs) > 0) { 1546 foreach(var, vifs, next) { 1547 setMacFilter(var); 1548 1549 sprintf(mode, "%s_mode", var); 1550 char *m2 = nvram_default_get(mode, "ap"); 1551 1552 if (strcmp(m2, "sta")) { 1553 char bridged[32]; 1554 1555 sprintf(bridged, "%s_bridged", var); 1556 if (nvram_default_match(bridged, "1", "1")) { 1557 sysprintf("ifconfig %s 0.0.0.0 up", 1558 var); 1559 br_add_interface(getBridge(var), var); 1560 if (!strcmp(apm, "sta") 1561 || !strcmp(apm, "wdssta") 1562 || !strcmp(apm, "wet")) 1563 sysprintf 1564 ("ifconfig %s 0.0.0.0 down", 1565 var); 1566 else { 1567 sysprintf 1568 ("ifconfig %s 0.0.0.0 down", 1569 var); 1570 sleep(1); 1571 sysprintf 1572 ("ifconfig %s 0.0.0.0 up", 1573 var); 1574 } 1575 } else { 1576 char ip[32]; 1577 char mask[32]; 1578 1579 sprintf(ip, "%s_ipaddr", var); 1580 sprintf(mask, "%s_netmask", var); 1581 sysprintf("ifconfig %s mtu %s", var, 1582 getMTU(var)); 1583 sysprintf 1584 ("ifconfig %s %s netmask %s up", 1585 var, nvram_safe_get(ip), 1586 nvram_safe_get(mask)); 1587 if (!strcmp(apm, "sta") 1588 || !strcmp(apm, "wdssta") 1589 || !strcmp(apm, "wet")) 1590 sysprintf("ifconfig %s down", 1591 var); 1592 else { 1593 sysprintf("ifconfig %s down", 1594 var); 1595 sleep(1); 1596 sysprintf 1597 ("ifconfig %s %s netmask %s up", 1598 var, nvram_safe_get(ip), 1599 nvram_safe_get(mask)); 1600 } 1601 } 1602 } 1603 } 1604 } 1605 1606 apm = nvram_default_get(wl, "ap"); 1607 if (strcmp(apm, "sta") && strcmp(apm, "wdssta") && strcmp(apm, "wet")) { 1608 cprintf("set channel\n"); 1609 char *ch = nvram_default_get(channel, "0"); 1610 1611 if (strcmp(ch, "0") == 0) { 1612 sysprintf("iwconfig %s channel 0", dev); 1613 } else { 1614 char freq[64]; 1615 1616 sysprintf("iwconfig %s freq %sM", dev, ch); 1617 sysprintf("ifconfig %s down", dev); 1618 sleep(1); 1619 sysprintf("ifconfig %s up", dev); 1620 } 1621 } 1574 1575 1622 1576 for (s = 1; s <= 10; s++) { 1623 1577 char wdsvarname[32] = { 0 }; … … 1663 1617 } 1664 1618 1665 sysprintf("iwconfig %s txpower %ddBm", dev, newpower);1666 1667 1619 setMacFilter(dev); 1668 1620 } … … 1699 1651 br_add_interface(getBridge(var), 1700 1652 var); 1701 eval("ifconfig", var, "0.0.0.0",1702 "up");1703 1653 } else { 1704 1654 char ip[32];
Note: See TracChangeset
for help on using the changeset viewer.
