X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=src%2Fbridge.c;h=8cffe3309429de7fc2b940e52be262a2a15494bc;hb=refs%2Ftags%2Fupstream%2F1.5.1.pre3;hp=001975d37d0e34fa451fdbea961323dfb6277eb2;hpb=16204dfc7715783c2ebdfb55fc44fb9344613a76;p=ap-utils.git diff --git a/src/bridge.c b/src/bridge.c index 001975d..8cffe33 100644 --- a/src/bridge.c +++ b/src/bridge.c @@ -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); @@ -274,11 +277,11 @@ char *bridge_modes[6] = { mvwaddstr(main_sub, 10, 0, message); sb_bcast = *(varbinds[12].value); - sprintf(message, "%s%s", SB_BCAST, (sb_bcast == 1) ? ON : OFF); + sprintf(message, "%s%s", SB_BCAST, (sb_bcast == 2) ? ON : OFF); mvwaddstr(main_sub, 11, 0, message); sb_ucast = *(varbinds[13].value); - sprintf(message, "%s%s", SB_UCAST, (sb_ucast == 1) ? ON : OFF); + sprintf(message, "%s%s", SB_UCAST, (sb_ucast == 2) ? ON : OFF); mvwaddstr(main_sub, 12, 0, message); } @@ -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; @@ -405,7 +408,8 @@ char *bridge_modes[6] = { ap_type == ATMEL12350) { sb_bcast = on_off(11, strlen(SB_BCAST)); clear_main_new(11, 12); - print_menusel(11, 0, SB_BCAST, (sb_bcast == 1) ? ON : OFF); + sb_bcast = (sb_bcast == 2) ? 1 : 2; + print_menusel(11, 0, SB_BCAST, (sb_bcast == 2) ? ON : OFF); m_sb_bcast = 1; } continue; @@ -415,7 +419,8 @@ char *bridge_modes[6] = { ap_type == ATMEL12350) { sb_ucast = on_off(12, strlen(SB_UCAST)); clear_main_new(12, 13); - print_menusel(12, 0, SB_UCAST, (sb_ucast == 1) ? ON : OFF); + sb_ucast = (sb_ucast == 2) ? 1 : 2; + print_menusel(12, 0, SB_UCAST, (sb_ucast == 2) ? ON : OFF); m_sb_ucast = 1; } continue; @@ -555,10 +560,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 +580,3 @@ char *bridge_modes[6] = { print_top(NULL, NULL); clear_main(0); } -