]> git.decadent.org.uk Git - ap-utils.git/blobdiff - src/bridge.c
Update config.{sub,guess} in the right place at build time - closes: #534825
[ap-utils.git] / src / bridge.c
index 001975d37d0e34fa451fdbea961323dfb6277eb2..30961f8c6d524514721ff77afdc90fe6cd9e0cd2 100644 (file)
@@ -45,6 +45,16 @@ extern short ap_type, ap_vendorext;
 
 void bridging()
 {
+
+char *bridge_modes[6] = {
+    _("Wireless Bridge Point to MultiPoint"),
+    _("Access Point"),
+    _("Access Point client"),
+    _("Wireless Bridge Point to Point"),
+    _("Repeater"),
+    _("unknown")
+};
+
     char sysTrapSwitch[] = {
        0x2B, 0x06, 0x01, 0x04, 0x01, 0x83, 0x1A, 0x01, 0x01, 0x01, 0x03, 0x00
     };
@@ -82,15 +92,6 @@ void bridging()
        0x2B, 0x06, 0x01, 0x04, 0x01, 0x83, 0x1A, 0x01, 0x01, 0x03, 0x01, 0x00
     };
 
-char *bridge_modes[6] = {
-    _("Wireless Bridge Point to MultiPoint"),
-    _("Access Point"),
-    _("Access Point client"),
-    _("Wireless Bridge Point to Point"),
-    _("Repeater"),
-    _("unknown")
-};
-
     /* These 3 are ATMEL410 SBRIDGES MIB and ATMEL12350 all MIBs specific. */
     char operForwarbBcast[] = {
        0x2B, 0x06, 0x01, 0x04, 0x01, 0x83, 0x1A, 0x01, 0x01, 0x03, 0x02, 0x00
@@ -122,10 +123,10 @@ char *bridge_modes[6] = {
     char *pr_ports[2] = {
        _("Ethernet"),
        _("Wireless")
-    }, *cf_trap_ports[3] = {
-       _("Both"),
+    }, *cf_ports[3] = {
        _("Ethernet"),
-       _("Wireless (can be risky)")
+       _("Wireless (can be risky)"),
+       _("Both")
     };
     int i;
     unsigned int trap_port = 0;
@@ -266,7 +267,9 @@ char *bridge_modes[6] = {
     if ((ap_type == ATMEL410 && ap_vendorext == SBRIDGES) ||
        ap_type == ATMEL12350) {
        config_port = *(varbinds[10].value);
-       sprintf(message, "%s%s", CF_PORT, cf_trap_ports[config_port]);
+       if (config_port == 0) /* happens with ATMEL12350 EZYNET firmware only */
+           config_port = 3;
+       sprintf(message, "%s%s", CF_PORT, cf_ports[config_port - 1]);
        mvwaddstr(main_sub, 9, 0, message);
 
        fw_bcast = *(varbinds[11].value);
@@ -383,9 +386,9 @@ char *bridge_modes[6] = {
        case 'c':
            if ((ap_type == ATMEL410 && ap_vendorext == SBRIDGES) ||
                ap_type == ATMEL12350) {
-               config_port = menu_choose(9, strlen(CF_PORT), cf_trap_ports, 3);
+               config_port = menu_choose(9, strlen(CF_PORT), cf_ports, 3) + 1;
                clear_main_new(9, 10);
-               print_menusel(9, 0, CF_PORT, cf_trap_ports[config_port]);
+               print_menusel(9, 0, CF_PORT, cf_ports[config_port - 1]);
                m_config_port = 1;
             }
            continue;
@@ -555,10 +558,13 @@ char *bridge_modes[6] = {
            }
 
            print_help(WAIT_SET);
-           if (snmp(varbinds, i, SET) <= 0)
+           if (snmp(varbinds, i, SET) <= 0) {
                print_helperr(ERR_SET);
-           else
+           } else {
+               wbkgd(main_sub, A_NORMAL);
+               wrefresh(main_sub);
                print_help(DONE_SET);
+           }
            goto exit;
        case 'Q':
        case 'q':
@@ -572,4 +578,3 @@ char *bridge_modes[6] = {
     print_top(NULL, NULL);
     clear_main(0);
 }
-