]> git.decadent.org.uk Git - ap-utils.git/commitdiff
Imported Upstream version 1.5 upstream/1.5
authorBen Hutchings <ben@decadent.org.uk>
Sun, 19 Apr 2009 00:06:05 +0000 (01:06 +0100)
committerBen Hutchings <ben@decadent.org.uk>
Sun, 19 Apr 2009 00:17:27 +0000 (01:17 +0100)
48 files changed:
ChangeLog
Documentation/FAQ
Documentation/ap-tftp.8
Documentation/mibs-atmel/README
NEWS
README
TODO
ap-gl/Makefile.am
ap-gl/Makefile.in
ap-gl/ap-gl.c
ap-gl/auth.c
ap-gl/bridge.c
configure
configure.in
lib/ap-utils.h
lib/ap_search.c
lib/aps.c
lib/common.c
lib/file.c
lib/input.c
lib/oui.c
lib/radio.c
lib/scr.c
lib/set_community.c
lib/set_oeminfo.c
lib/snmp.c
lib/stat.c
lib/sysinfo.c
lib/wlan.c
po/ap-utils.pot
po/fr.po
po/nl.po
po/pl.po
po/ro.po
po/tr.po
po/uk.po
src/Makefile.am
src/Makefile.in
src/ap-auth.c
src/ap-config.c
src/ap-mrtg.c
src/ap-rrd.c
src/ap-tftp.c
src/aplink.c
src/auth.c
src/bridge.c
src/nwn_advanced.c
src/stations.c

index 928f6550478b40ba6e0f704018850cd2627fa2a4..c004cc08ffc9a1129bdc183950d7eed398c469cf 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,150 @@
+2005-03-07 Roman Festchook
+       * src/ap-rrd.c: changed format of error messages
+       * configure.in, NEWS: version 1.5
+
+2005-03-06 Jan Rafaj
+       Since one of the users has provided me with SmartBridges APPO,
+       the support for latest APPO firmware (1.4k5) can now hopefully
+       be finished as originally intended.
+       * TODO: updated
+       * Documentation/FAQ: updated
+       * ap-gl/Makefile.am:
+         - bugfix: added missing @CURSESLIBS@ to the target
+       * lib/ap-utils.h:
+         - Q_HELP is gone
+         - added dbmconv() macro to correctly handle dBm computing for
+           smartBridges firmware
+       * lib/ap_search.c:
+         - 'Wireless' OID is really 'sysDescr' OID
+         - no longer ask for community, since device will respond to
+           sysDescr query no matter what community is currently being used
+           (Roman, thanks for notifying!)
+         - bugfix: 'AP NAME' changed to 'FW TYPE (VERSION) AP NAME', to
+           reflect better whats being displayed
+         - bugfix: scan_local_segment() now triggers screen-width truncation
+           limit correctly
+       * lib/common.c:
+         - cosmetics: screen is now properly cleared with exit_program()
+       * lib/input.c:
+         - bugfix: exclusive use of getch() in wait_key() instead of
+           escape-sequences-not-aware getc() results in greater robustness
+           of input code (it is now a lot harder to end up with buffered
+           content in stdin, that would otherwise lead to odd results
+           elsewhere)
+         - get_value() almost completely rewritten. switched from getchar()
+           to getch() to get correct output on older terminals, as well as
+           to avoid displaying of escape-sequences and to interpret escape-
+           sequences for the following usual keys, that now work:
+           INSERT (toggles Insert/Overwrite mode)
+           DELETE (rightside delete)
+           BACKSPACE (leftside delete)
+           LEFT ARROW (move cursor back 1 character)
+           RIGHT ARROW (advance cursor forward 1 character)
+           HOME (move to the beginning of the string)
+           END (move to the end of the string)
+         - bugfix: get_value() will now omit leading zeros from correct number
+           given by the user (they will be eaten upon user's ENTER keypress)
+         - bugfix: in get_mask(), trans_count must be always reset upon
+           failure to validate user input, or after single failure, all
+           subsequent attempts would (previously) fail
+       * lib/oui.c: added OUIs:
+         - 000E2E (Edimax Technology Co., Ltd.)
+         - 000F66 (Cisco-Linksys)
+         - 00117C (e-zy.net) :)
+       * lib/set_oeminfo.c:
+         - prepended 'USB ' in front of 'Vendor ID' and 'Product ID'
+           (cosmetic)
+       * lib/snmp.c:
+         - bugfix: eliminated leak by unfreed malloc'ed memory in snmp() using
+           static buffer
+         - introduced three new functions: close_sockfd(), open_sockfd()
+           and reopen_sockfd(). They should really be in common.c, but then
+           again, they are low-level stuff that should primarily be used
+           only in snmp(), and snmp.c itself contains no ncurses stuff
+           so functions it defines can be reused by external non-ncurses-
+         - in snmp(), switched from sig*jmp()/alarm() timeout code to select()
+           in favor of simplicity and possibility to monitor stdin read-state
+           change at the same time
+         - snmp() will now return with 0 immediately upon keypress, if
+           snmp_quit_by_keypress = 1 and type = GET. This has been added
+           to allow user-requested last-resort quit from blocking state
+           (for example when the target AP does not respond). The decision
+           of what to do is up to the calling code, that has to check
+           stdin content and act accordingly (currently this is used for
+           immediate quit using q/Q key from otherwise blocking snmp() calls).
+         - sockfd is now globally defined here
+         - snmp() now always 'flushes' sockfd prior further network processing
+           so that eventual packet received on sockfd prior snmp() call
+           wont cause desync errors
+         - snmp_retries global is gone. We need to wait at least 1 second
+           past sendto() for response packet, and do everything necessary
+           to avoid 'response for previous request received in next snmp()
+           call' => extra TODO: check, whether the OID part of received packet
+           matches with OID of preceding request, and if not, flush sockfd
+           and do an extra retry of sendto()/recv()
+           dependant programs.
+       * Documentation/ap-tftp.8:
+         - (introduced in previous patchset)
+         - added warning that it is unsafe to try upgrading devices for whose
+           there's no vendor firmware nor upgrade utilities (such as
+           Tellus A13 a.k.a. i-Tec AP GOLD with blue front)
+       * src/Makefile.am:
+         - ap-tftp needs to be linked to libap.a from now on
+       * src/ap-tftp.c:
+         - bugfix: computation of percentage was not really correct in v1.0
+         - bugfix: fixed memleak caused by unfreed strdup()
+         - cleanup; use of float type eliminated
+         - it should be now possible to reuse tftp() for .cfg upload, too
+           (.cfg upload code still not there)
+         - revamp of config. parameters
+         - added capability to upgrade all AT76C510-based SmartBridges
+           devices (those with FCC ID 'PWG DOLPHIN')
+       * src/aplink.c:
+         - polling mode is now always enforced
+         - LQ top value is now computed/shown for devices with ATMEL410
+           SBRIDGES MIB
+         - bugfix: screen is now correctly cleaned up upon transition
+           from 'associated: yes' to 'associated: no' state
+         - added pause possibility (using 'q' or 'Q' key)
+         - big facelift: added RSSI 'rounding' (a.k.a. RSSI average / last
+           20 samples) gauge, and a general side-scrolling bargraph
+           showing the history of RSSI, RSSI average, RSSI rounding, and,
+           in case of smartBridges firmware, also Link Quality. Views
+           can be toggled using 't' or 'T' key. At the moment, all values
+           are presented in percentage, since this (compared to dBm)
+           does not fluctuate a lot among different firmware versions.
+           User may just pause the polling process and see the corresponding
+           dBm value for the bar currently shown in graph, near the
+           corresponding gauge.
+       * src/auth.c:
+         - bugfixes: shown ea_dest_port, ea_time and ea_port values are now
+           properly decoded
+       * src/bridge.c:
+         - renamed cf_trap_ports to cf_ports (cosmetic)
+         - bugfix: fixed up order of cf_ports to respect MIB-defined order.
+           Interresting note: ATMEL12350 EZYNET MIB firmware actually
+           returns config_port = 0 when it should return 3 ('Both' ports) =>
+           this case is now taken care of.
+       * lib/common.c:
+         - screen is now cleared upon exiting ap-config
+       * bugfix: fixed rare ap-config crash when sysDeviceInfo OID query
+         would return structure length of 92 bytes instead of 128. Suspection:
+         returning 128 might be a snmp() state machinery error?
+       * squashed any sockfd lowlevel-manipulating stuff (socket(), bind(),
+         close()) everywhere in favour of already globally declared sockfd
+         in snmp.c and eventual reopen_sockfd() call. Lets forget about
+         sockfd if we use just snmp(). TODO: re-evaluate necessity to use
+         reopen_sockfd() in common.c and file.c .
+       * dbmconv() is now used in every place that handles raw->dBm
+         conversion - TODO: just the ap_mrtg needs to be fixed (add
+         detection for SBRIDGES ap_vendorext, then dbmconv())
+       * cosmetics: highlighting over changed values will now disappear,
+         once they are written (using 'W' key)
+       * ERR_CREATING_SOCKET and ERR_BINDING_SOCKET replaced with one single,
+         more generic ERR_SOCKET
+       * new feature: it is now possible to change polling interval in
+         range from <0,1;86400> seconds (default is 1 second)
+
 2005-01-16 Jan Rafaj
        * ap-gl/auth.c: small bugfix
 
@@ -5,7 +152,7 @@
        * src/ap-rrd.c: added utility to store stats from AP into RRD database
        * src/wlan.c: added 'ACK timeout' additional info into [T] SIFS time (msec)
                option description
-       * configure.in, NEWS: version 1.5pre2   
+       * configure.in, NEWS: version 1.5pre2
 
 2005-01-11 Jan Rafaj
        Note to SmartBridges PTE: you could have nice support in ap-utils
index aad30e04f4263eb062b374061650d16cfcca414f..6178ec6586562034ba56d3f2adaf37ffc586e1e7 100644 (file)
-Q.
-> I try to install Access Point SNMP Config utility, but i can't find
-> menu.h file.
-> [root@server src]# make
-> gcc -O2 -Wall    -c -o ap-cnf.o ap-cnf.c
-> ap-cnf.c:24:18: menu.h: No such file or directory
-> make: *** [ap-cnf.o] Error 1
-A.
+Q:
+I try to compile ap-utils, but it complains that it can't find the menu.h
+file:
+[root@server src]# make
+gcc -O2 -Wall    -c -o ap-cnf.o ap-cnf.c
+ap-cnf.c:24:18: menu.h: No such file or directory
+make: *** [ap-cnf.o] Error 1
+
+A:
 You need to install ncurses and ncurses-devel packages from your distro.
 Or just build and install ncurses libs from sources.
 
-Q.
-> I bought a access point. Unfortunately, the
-> documentation does not have the default community string used by the
-> product. Do you know what it is, or where I could find it out?
-A.
-I'm give you default communities from my equipment, may be you may use
-it with your AP: "public", "private", "linksys".
-Also consult documentation to your AP.
-
-Q.
-> The wireless & ethernet stats are reset to zero each time I grab
-> the KnownAP signal and quality stats.  The same issue happens when
-> performing KnownAP's running your AP-CNF program without modification.
-A.
-Because only way to see KnownAPs info its to put AP to client mode with master
-AP mac set to  0000000000. When setting this AP resets. Only one way to get
-signal and quality stats not resetting AP - its to get this stat from AP
-setted in client mode all time.
+Q:
+I try to compile ap-utils, but the compilation suddenly breaks with the
+following errors:
+gcc -DLOCALEDIR=\"/usr/local/share/locale\" -DHAVE_CONFIG_H -I../lib -I../intl -I..    -g -O2 -Wall -W -c bridge.c
+bridge.c:46: initializer element is not constant
+bridge.c:46: (near initialization for `bridge_modes[0]')
+bridge.c:47: initializer element is not constant
+bridge.c:47: (near initialization for `bridge_modes[1]')
+bridge.c:48: initializer element is not constant
+bridge.c:48: (near initialization for `bridge_modes[2]')
+bridge.c:49: initializer element is not constant
+bridge.c:49: (near initialization for `bridge_modes[3]')
+bridge.c:50: initializer element is not constant
+bridge.c:50: (near initialization for `bridge_modes[4]')
+bridge.c:52: initializer element is not constant
+bridge.c:52: (near initialization for `bridge_modes[5]')
+
+A:
+Your gettext is not up-to-date. You need to either update gettext package
+for your distro, or you'll need to completely disable NLS support for
+ap-utils by appending '--disable-nls' to configure. If you do so,
+the compilation may still end with an error like this:
+
+make[2]: Entering directory `/root/work/ap-utils-1.5/po'
+make[2]: *** No rule to make target `all'.  Stop.
+make[2]: Leaving directory `/root/work/ap-utils-1.5/po'
+make[1]: *** [all-recursive] Error 1
+make[1]: Leaving directory `/root/work/ap-utils-1.5'
+make: *** [all-recursive-am] Error 2
+
+You may safely ignore this one.
 
-Q.
->Can someone give me the "newbe" answer to what's the
->relationship/difference between RSSI and Link Quality?
+Q:
+I bought an access point. Unfortunately, the documentation does not state
+what are the default community strings defined within the device.
+Do you know what it is, or where I could find it out?
+
+A:
+It should be in your AP's documentation, really.
+For example, the default communities for Linksys WAP11 are:
+"public", "private", "linksys".
+Most other devices have all three communities predefined to the same
+value, such as "public", "public", "public".
+If you just got an AP from someone who didnt provide you with the currently
+configured community strings, and your AP has no reset button,
+but has an USB port, you may try to reset AP to its default (manufacturer)
+configuration using "DFU" utility (in Windows), provided by the manufacturer
+of your device. *NIX variant of DFU utility is currently in progress
+and should be available in one of upcomming releases.
+
+Q:
+The wireless & ethernet stats counters are reset to zero each time I grab
+the KnownAP signal and quality stats.  The same issue happens when
+performing KnownAP scan using the ap-config program without modification.
 
 A.
+This happens because the only way to see updated KnownAPs info is to put
+your device to the AP-client mode with preferred BSSID 000000000000. Device
+needs to be rebooted so that this change goes into effect. As side effect
+of this reboot, all counters in the device are, of course, zeroed.
+After this, the utility also takes care to reconfigure device back
+to its previous setting (second reset). Unability to perform KnownAP
+scan while in different than AP-client mode is generally a feature
+of all firmware versions for devices with INTERSIL radio.
+All in all, it is a firmware feature, not a bug.
+The RSSI and LQ stats may be retrieved without AP reboot (and thus
+without reset of wireless & ethernet statistics counters) only if the device
+is permanently set to the AP-client mode.
+
+Q:
+Can someone give me the "newbie" answer to what's the relationship/difference
+between RSSI and Link Quality?
+
+A:
 RSSI = Received Signal Strength Indication. Measures only the signal
 amplitude. This plays a major role in calculating the fade margin of the
 link. 
-The Signal Quality represents how clean the signal is. Interference,
-Multi path Reflections etc. This measure plays a major role in
+The Link Quality value represents how clean the signal is - it reflects
+eventual degradation of radio signal transmision conditions, such as
+interference, multipath reflections, etc. This measure plays a major role in
 determining the data throughput. Low Signal Quality would normally mean
-retransmissions, dropped packets etc.
+frequent retransmissions, dropped packets etc.
+Note, that firmware for ATMEL-based devices with RFMD radio does not provide
+Link Quality value (and this is a firmware feature, not a bug).
+
+Q:
+I have an ATMEL-based device with RFMD radio, use the firmware from E-ZY.NET
+and the graph of RSSI value history looks very jumpy. Is this normal, or is
+my link really so bad?
+
+A:
+It is normal, you dont need to be afraid. Also this is why 'RSSI average'
+and 'RSSI rounding' graphs are provided for - they allow you to see
+the averaged value of the RSSI over certain period of samples. Apparently,
+the actual RSSI value shown reflects also the signal phase conditions
+(influenced by signal reflections, and interference). So you may eventually
+think of it as 'RSSI + LQ aggregated'.
 
index ea4dca2f4d2a32887a8ffe04b94aed90921245e7..9f3eb048f277639be564e352cd96562d22c22cc3 100644 (file)
@@ -22,43 +22,46 @@ ap-tftp \- TFTP client for upgrading ATMEL AT76C510 WiSOC-based APs
 .B Please read the entire manpage prior using this utility. It may prevent you from problems arising later.
 .SH SYNOPSIS
 .B ap-tftp
-.B -l
+.B -i
+.IR IP
+.B -f
 .IR firmware.rom
-.B IP
+.B [-c 
+.IR community
+.B ]
 .SH DESCRIPTION
 The
 .B ap-tftp
-utility is used to upgrade firmware in Access Points based on ATMEL AT76C510 VNET-B WiSOC (Wireless System On Chip). It should work for most (if not all) models with INTERSIL radio chipset, as well as those based on RFMD radio. However, so far it has only been tested on the following hardware: WLink WEN-2021, i-Tec AP GOLD (both with INTERSIL radio), and Tellus A14 (RFMD radio). If you have an AP with ATMEL AT76C510 and either INTERSIL or RFMD radio chipset, there's near 100% chance it will work for you, too.
+utility is used to upgrade or downgrade firmware in Access Points based on ATMEL AT76C510 VNET-B WiSOC (Wireless System On Chip). It should work for most (if not all) models with INTERSIL radio chipset, as well as those based on RFMD radio. However, so far it has only been tested on the following hardware: WLink WEN-2021, i-Tec AP GOLD, smartBridges airPOINT PRO (all with INTERSIL radio), and Tellus A14 (RFMD radio). If you have an AP with ATMEL AT76C510 and either INTERSIL or RFMD radio chipset, there's near 100% chance it will work for you, too.
 .SH PREFACE: FIRMWARE TYPES
 Functionally, there basically exist 2 types of firmware for ATMEL-based APs: an "
 .B Access Point
-firmware (often referred as
-.B AP
-firmware), and
+firmware (often referred to as
+.B AP firmware
+), and
 .B Wireless Adapter
 firmware (referred to as
-.B WA
-firmware). Many hardware vendors produce their own more or less modified firmware derivatives, but usually they keep up with naming scheme introduced by ATMEL:
+.B WA firmware
+). Many hardware vendors produce their own more or less modified firmware derivatives, but usually they keep up with the naming scheme introduced by ATMEL:
 .SS APs with INTERSIL radios
-For APs with INTERSIL radios, the AP firmware file typically uses naming scheme such as "1.4x.y.rom" (for example "1.4j.1.rom", "1.4k.2.rom", etc.), while the WA firmware files typically exist under names such as "0.01.ab.rom" (for example "0.01.09.rom", "0.01.11.rom", etc.). The values x, y, ab, and the letter x change according to firmware revision.
+For APs with INTERSIL radios, the AP firmware file typically uses naming scheme such as "1.4x.y.rom" (for example "1.4j.1.rom", "1.4k.2.rom", etc.), while the WA firmware files typically exist under names such as "0.01.ab.rom" (for example "0.01.09.rom", "0.01.11.rom", etc.). The values "x", "y", and "ab" indicate the firmware revision.
 .SS APs with RFMD radios
-For APs with RFMD radios, the AP firmware files are known under names like "0.2.x.yz.rom" (such as "0.2.2.11.rom", "0.2.2.18.rom", etc.), while the WA firmware uses names as "0.3.b.c.rom" (for example "0.3.2.5.rom", "0.3.2.6.rom"). Again, the numbers change according to firmware revision.
+For APs with RFMD radios, the AP firmware files are known under names like "0.2.x.yz.rom" (such as "0.2.2.11.rom", "0.2.2.18.rom", etc.), while the WA firmware uses names as "0.3.b.c.rom" (for example "0.3.2.5.rom", "0.3.2.6.rom"), or "0.4.b.c.rom" for WA+ firmware (which is a variant of WA firmware that offers limited multiple MACs transparency in client mode) - for example "0.4.2.7.rom". Again, the numbers change according to the firmware revision.
 
 To descend in even greater complexity, there usually exist 2 files for each firmware revision in the ATMEL+RFMD world: one so-called
-.B primary
-firmware (the bigger file of the two; it contains base firmware as well as the embedded webserver), and a second file with so-called
-.B backup
-firmware (the smaller file of the two, it contains just the base firmware).
-The name of secondary firmware always uses '0' in the third number field.
-.B You'll always need to upgrade with
-.B backup firmware FIRST, unless manufacturer states otherwise.
+.B primary firmware 
+(the bigger file of the two; it contains base firmware as well as the embedded webserver), and a second file with so-called
+.B backup firmware 
+(the smaller file of the two, it contains just the base firmware).
+The name of secondary firmware always uses '0' in the third number field (such as "0.2.0.18.rom").
+.B You'll always need to upgrade with backup firmware FIRST, unless its manufacturer states otherwise.
 .TP
 .RE 4
 .B WARNING!!! WARNING!!! WARNING!!! WARNING!!! WARNING!!!
 .RS 4
 .IP o 3
-.B WA
-firmwares
+.B WA firmwares 
+and their derivatives
 .B ARE _NOT_ SUPPORTED
 by ap-utils!!! They may appear to partially work with ap-utils, but you
 can cause harm to your AP if you use ap-config with such firmware. Do not
@@ -69,6 +72,10 @@ Since some hardware vendors keep up the bad habit of producing their own firmwar
 (for example, firmware "1.4j.1.rom" exists in many incarnations, but their content differs). They may use different structures and offsets for reading configuration data in the flash memory without content validity checks, so
 .B NEVER EVER USE FIRMWARE FROM ANOTHER HARDWARE VENDOR THAN THE ONE THAT IS MANUFACTURING YOUR AP, UNLESS EXPLICITLY STATED OTHERWISE! IF YOU DO SO, YOU MAY IRREVERSIBLY DAMAGE YOUR AP!
 .IP o
+BEWARE! AP boards from several vendors may contain hardware design bugs, that will totally prevent it from successfull upgrade.
+.B Any attempt to upgrade such device, either via TFTP or DFU utility will fail and irreversibly damage content of its flash memory! If your vendor does NOT provide ANY firmware nor tools to perform upgrade for your device, it means (unless stated otherwise), that IT IS UNSAFE TO TRY UPGRADING and YOU SHOULD NOT ATTEMPT TO UPGRADE YOUR DEVICE AT ALL!
+Example of such board with bug in hardware design is Tellus A13 (also sold as i-Tec AP GOLD with blue front).
+.IP o
 ATMEL AT76C510-based APs are notoriously known for their firmware upgrade design flaw: firmware validation checks and subsequent permission for upgrade are not performed by the AP itself, but in the TFTP upgrade client. This means that anyone with proper TFTP client, having access to your AP via its ethernet port, may _try_ to upload incorrect firmware (or even no-firmware file!) to your AP, causing irreversible damage to your AP. Hence:
 .RS 3
 .IP \- 3
@@ -79,7 +86,17 @@ Note that setting Conf.-enabled port to 'Wireless' may be risky if you intend to
 .RE 1
 .RS 4
 .IP o 3
-.B Users of ATMEL+RFMD APs:
+.B Users of ATMEL+INTERSIL devices:
+If your AP firmware vendor extensions are auto-detected as
+.B SBRIDGES
+by ap-config, it means that your AP uses firmware made by smartBridges PTE: you will need to pass extra '-c community' to ap-tftp in order to perform actual upgrade.
+.B BY ALL MEANS, AVOID UPGRADE OF DEVICE THAT CONTAINS smartBridges FIRMWARE, with non-smartBridges FIRMWARE, AND VICE VERSA, even if the firmware names may look similar (see the warning above).
+Although there are checks in ap-tftp, that should avoid something such, be careful, and DO NOT TRY, UNDER ANY CIRCUMSTANCES, to circumvent this protection - if you do, you'd most likely end up with damaged flash content in your device. You got the warning.
+.TP
+.BR
+Remember: All firmware files with revision "1.4j.4" onwards are from smartBridges: unless you possess a device that is autodetected with 'SBRIDGES' vendor extension, DO NOT TRY TO UPGRADE TO smartBridges FIRMWARE!
+.IP o 3
+.B Users of ATMEL+RFMD devices:
 If you are running
 .B primary
 firmware < 0.2.2.20, you
@@ -100,62 +117,76 @@ In case when firmware upgrade fails,
 .B ap-tftp
 will show an error code returned by the TFTP server in AP. Note that although RFC 1350 defines 8 TFTP error messages, the TFTP server in the AP is not compliant to this RFC and the error codes returned may NOT correspond to those messages (but ap-tftp will always display corresponding RFC-defined error message, if possible, although it may really have nothing to do with the returned error code meaning). In the case the message for error code returned is not defined in RFC 1350, just the error code alone will be displayed.
 .IP \-
-If you want to upgrade firmware in an AP on a network where no DHCP server is available, it is advisable to assign static IP address and disable DHCP option on the device, so that you can verify, whether it is alive, using 'ping' command immediately after the upgrade succeeds, and you dont have to wait until AP's attempts to contact DHCP server time out. This is also especially useful if you need to do 2-step upgrade (using 'backup' and 'primary' firmware) - see above.
+If you want to upgrade firmware in an AP on a network where no DHCP server is available, it is advisable to assign static IP address and disable DHCP option on the device, so that you can verify, whether it is alive, using 'ping' command immediately after the upgrade succeeds (generally immediately after the device boots up), and you dont have to wait until AP's attempts to contact DHCP server time out. This is also especially useful if you need to do 2-step upgrade (using 'backup' and 'primary' firmware) - see above.
 .IP \-
 Firmware of APs based on ATMEL AT76C510 provides an interresting 'arp ping' feature. After AP boot-up, it is possible to remotely and TEMPORARILY (to next AP reboot) reconfigure its IP address, provided that within certain time period (several tens of seconds after boot-up), the AP receives ICMP ECHO request with target MAC address equal to its own. To set up IP in the AP using this method, do the following:
 .RS 3
 .IP 1\. 4
 From the IP range your AP is connected to, pick up an unused IP you want to set on the AP using 'arp ping'.
 .IP 2\.
-Set up static ARP entry associating the MAC address of your AP with the IP you selected in paragraph 1. Typically, you need to issue (as root) something like: 'arp -s required_AP_IP AP_MAC'. Consult manpage for 'arp' utility if this differs for you.
+Set up static ARP entry associating the MAC address of your AP with the IP you selected in paragraph 1. Typically, you need to issue (as root) something like: 'arp -s required_AP_IP AP_MAC'. Consult manpage for 'arp' utility, if your 'arp' utility uses different syntax.
 .IP 3\.
 Right after the AP boots, run 'ping required_AP_IP'. You need to wait few seconds prior seeing first AP response.
 .RE 1
 .RS 4
 .IP \- 3
-.B Users of ATMEL+RFMD APs:
+.B Users of ATMEL+RFMD devices:
 To
 .B DOWNGRADE
 to
 .B AP
-firmware with lower number than the one thats currently in the device, you'll need to temporarily 'upgrade' to any
+firmware with lower revision number than the one thats currently in the device, you'll need to temporarily 'upgrade' to any
 .B WA
-firmware available for your AP (as step-in-the-middle). This will 'unlock' your device for downgrading to previous
+firmware available for your device (as step-in-the-middle). This will 'unlock' your device for downgrading to previous
 .B AP
 firmware version.
 .SH OPTIONS
 .TP
-.B -l firmware.rom
+.B -i IP
+IP address of the AP you want upgrade firmware in.
+.TP
+.B -f firmware.rom
 Full path to and name of the firmware file for your AP.
 .TP
-.B IP
-IP address of the AP you want upgrade firmware in.
+.B -c community
+To be used ONLY with APs manufactured by smartBridges PTE. The given community
+must match with any of three three communities currently defined in the AP
+configuration - firmware upgrade will be allowed only upon the match.
+matches
 .RE
 .SH EXAMPLES OF USE
 .PD 0
 
-.SS Upgrading "AP" firmware in AP with INTERSIL radio:
+.SS Upgrading AP firmware in a device with INTERSIL radio and non-smartBridges firmware
 .BR
 .TP
-ap-tftp -l 1.4j.3.rom 192.168.0.1
+ap-tftp -i 192.168.0.1 -f 1.4j.3.rom
 
-.SS Upgrading "AP" firmware in AP with RFMD radio:
+.SS Upgrading AP firmware in a device with INTERSIL radio and smartBridges firmware
 .BR
 .TP
-ap-tftp -l 0.2.0.20.rom 192.168.1.100
+ap-tftp -i 192.168.0.24 -f 1.4k.5.rom -c private
+
+.SS Upgrading AP firmware in a device with RFMD radio:
+.BR
+.TP
+ap-tftp -i 192.168.1.100 -f 0.2.0.20.rom
 .TP
-ap-tftp -l 0.2.2.20.rom 192.168.1.100
+ap-tftp -i 192.168.1.100 -f 0.2.2.20.rom
 
-.SS Downgrading "AP" firmware in AP with RFMD radio:
+.SS Downgrading AP firmware in a device with RFMD radio:
 .BR
 .TP
-ap-tftp -l 0.3.0.6.rom 192.168.1.100
+ap-tftp -i 192.168.1.100 -f 0.3.0.6.rom
 .TP
-ap-tftp -l 0.3.2.6.rom 192.168.1.100
+ap-tftp -i 192.168.1.100 -f 0.3.2.6.rom
 .TP
-ap-tftp -l 0.2.0.19.rom 192.168.1.100
+ap-tftp -i 192.168.1.100 -f 0.2.0.19.rom
 .TP
-ap-tftp -l 0.2.2.19.rom 192.168.1.100
+ap-tftp -i 192.168.1.100 -f 0.2.2.19.rom
+
+.SH KNOWN BUGS
+This utility has not been verified on and will probably not work on big-endian architectures. Its use is discouraged in such environment.
 
 .SH AUTHOR
 Jan Rafaj <jr-aputils at cedric dot unob dot cz>
index 74667eaea143c9f9ae7af5cf9effe84c09288b8a..d1c6a5a07535ac936f75dce3f8e32255523f3584 100644 (file)
@@ -1,3 +1,3 @@
-This is a collection of different "reference prototype" MIBs,
+This is a collection of different AP firmware "reference prototype" MIBs,
 that are (or are planned to be) supported by ap-utils.
 
diff --git a/NEWS b/NEWS
index af15faac2f16ad778a89d23b6a374bd6584ee67d..0b06d6f5066c7161ac59f29522009890b5dbc270 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,11 @@
+ap-utils-1.4.1 => ap-utils-1.5
+       * New utilites: ap-rrd: to store stats from AP into RRD database,
+         ap-auth: command line utility to change the list of authorised MAC addresses,
+         ap-tftp: tftp client for upgrading ATMEL-based AP firmware.
+       * Now ap-config allow to change OEM information stored within the AP.
+       * Enhanced functionality and many bugfixes of existing utilites.
+       * Documentation and translation updates, Turkish translation added.
+
 ap-utils-1.4 => ap-utils-1.4.1
        * Decreaset timeouts in SNMP engine;
        * updates to build on Solaris, also now ap-utils works with SysV curses lib;
diff --git a/README b/README
index 4c9743b7c98ac8b1b6d4cd7b8f26baa43cea2930..0752f21da2bdb32a35e51e570fbd83def9588074 100644 (file)
--- a/README
+++ b/README
@@ -80,7 +80,7 @@ and usually comes with your SNMP management utility for Windows.
 | Ark                          | SOHO-WLAP             | ATMEL410             |
 | Asus                         | WL-300                | ATMEL410             |
 | Belkin Components            | F5D6130               | ATMEL410             |
-| BOSSLAN                      | BOSSWAP               | ATMEL12350,ATMEL410  |
+| BOSSLAN                      | BOSSWAP               | ATMEL12350, ATMEL410 |
 | CC&C Technologies            | Access Point          | ATMEL410             |
 | CNet                         | CNAP-711              | ATMEL410             |
 | Cameo Communications          | WLB-2000/2001                | ATMEL410             |
@@ -96,22 +96,22 @@ and usually comes with your SNMP management utility for Windows.
 | GemTek                       | TEW-210APB            | ATMEL410             |
 | GemTek                       | WX-1500               | NWN                  |
 | GigaFast                     | WF711-AP              | ATMEL12350           |
-| Global Sun                   | ProWave GL2411AP      | ATMEL410             |
+| Global Sun Technology                | ProWave GL2411AP      | ATMEL410             |
 | i-Tec                                | AP SILVER             | ATMEL410             |
-| i-Tec        (Tellus A13 rebranded)  | AP GOLD (blue front)  | ATMEL410             |
-| i-Tec        (Tellus A14 rebranded)  | AP GOLD (black front) | ATMEL12350           |
+| i-Tec        (Tellus A13 OEM)        | AP GOLD (blue front)  | ATMEL410             |
+| i-Tec        (Tellus A14 OEM)        | AP GOLD (black front) | ATMEL12350           |
 | Infosmart                    | INAP88                | ATMEL410             |
 | Intellinet                   | AP, Wireless Bridge   | ATMEL410             |
 | InterEpoch                    | IWE1000A              | ATMEL410             |
-| Linksys                      | WAP11 pre2 version    | ATMEL410             |
+| Linksys (GL2411AP OEM)       | WAP11 pre2 version    | ATMEL410             |
 | Micronet                     | SP918                 | ATMEL410             |
 | Netgear                      | ME102                 | ATMEL12350, ATMEL410 |
 | OSBRiDGE                      | m2410                 | ATMEL12350           |
 | OSBRiDGE                      | p2410                 | ATMEL12350           |
-| OSLiNK                       | M2410, P2410, P2410i  |                      |
+| OSBRiDGE                      | p2410i                | ATMEL12350           |
 | Ovislink                     | Airlive WL-1100AP     | ATMEL410             |
 | SMC                          | MC2655W               | ATMEL410             |
-| Smartbridges                 | airPoint PRO          | ATMEL410             |
+| smartBridges                 | airPoint, airBridge   | ATMEL410             |
 | SparkLAN (Gemtek subs.)      | WX-1590               | ATMEL410             |
 | SparkLAN (Gemtek subs.)      | WX-1590L              | ATMEL12350           |
 | Svec                         | FD1811                | ATMEL12350, ATMEL410 |
@@ -135,6 +135,7 @@ for features that are common to 2 or more MIBs with the same enterprise
 ID. If you have qualms, then please send us the MIB file that came
 with your device!
 
+
 WARNING 1: There actually exist two different kinds of ATMEL private MIBs,
 regardless of its enterprise ID - each with different set of operational modes.
 The first MIB type comes with firmware referred to as 'Access Point firmware'
@@ -154,9 +155,14 @@ They may appear to _partially_ work with ap-utils, but you
 can cause harm to your AP if you use ap-utils with such firmware.
 Do not complain if you use ap-utils with such firmware and it damages
 your AP!
+
 The only thing you may eventually use "WA" firmware for, is to downgrade
 your device to "AP" firmware with number lower than the one used previously
-- see below.
+- see below. This applies to devices with RFMD radio only.
+
+To understand firmware naming schemes better, it is highly recommended
+that you'll read the ap-tftp manpage.
+
 
 WARNING 2: Users of Tellus A14 and its OEM versions (Wline A14, Veriplus
 WL-A14, etc. - generally all AP types with ATMEL12350 MIB, equipped with
@@ -166,9 +172,29 @@ a SERIOUS BUG that may result in unpredictable and persistent lock-up
 of your AP, when configured over SNMP or even via its web interface.
 There's unfortunately no way of how to "resurrect" such a locked-up AP
 - the only option is to return the AP to its supplier for replacement.
+
 To be on the safe side, we recommend everyone to upgrade to any firmware
 version above 0.2.2.19. More on firmware upgrade subject see next section.
 
+
+WARNING 3: Users of smartBridges equipment ("airPoint" and "airBridge"
+models): pay close attention to the WARNING 1 - only the "AP" firmware
+is supported! Do not expect "airBridge" models with their native
+firmware to work properly with ap-utils - only "airPoint" device
+firmware is supported. Future support for "airBridge" device firmware
+is very unlikely, becouse it really supports a subset of "airPoint"
+(AP) firmware functionality.
+
+All named devices use identical hardware with differences only in
+in connector types used, casing and use of industrial-grade components.
+This also means that the firmware for "airPoint" and "airBridge" models
+could be used interchangeably among these kinds of devices, however,
+loading of airPoint firmware into airBridge device has not been verified
+yet, so unless this warning disappears or states otherwise, flashing
+your (airBridge) device with AP firmware for different (airPoint)
+model (in order to gain ap-utils support) is discouraged.
+
+
 Firmware available free of charge for ATMEL12350 MIB devices:
 -------------------------------------------------------------
 If you own device that is detected as 'ATMEL12350 MIB' by ap-utils, chances
@@ -195,17 +221,22 @@ it would satisfy the following (SATISFYING ALL POINTS IS MANDATORY!):
 
 Should it satisfy all three points above, you may now perform upgrading.
 
-0. READ MANPAGE FOR ap-tftp !!!
+0. READ ENTIRE MANPAGE FOR ap-tftp !!!
+
+1. download the AP firmware (*.rom files) by EZYNET from one of the following
+   URLs:
 
-1. download the AP firmware (*.rom files) by EZYNET from the following URL:
    ftp://ftp.unob.cz/pub/firmware/wlan/atmel+rfmd/
 
+   http://www.e-zy.net/  (descend through sections: Support -> AT510 based
+   units -> Firmware -> AP)
+
 2. perform AP upgrade either by original windows-based ATMEL tftp client,
    or by 'ap-tftp' utility supplied with ap-utils:
 
    First, upgrade with 0.2.0.20.rom image. This one is so-called 'backup'
    firmware. It lacks (needless) web, and is activated only if so-called
-   'primary firmware fails for some reason.
+   'primary' firmware fails for some reason.
 
    Second, upgrade with 0.2.2.20.rom image. This is the 'primary' firmware
    with web interface (which you apparently wont use at all).
@@ -224,7 +255,7 @@ Should you need firmware downgrade for any reason, it is possible, provided
 that you have the original firmware *.rom file(s) for your devices.
 If your firmware was 0.2.2.19 or lower, you'll also need to temporarily
 upgrade to the following WA firmware, which will allow you to subsequently
-upgrade to AP firmware release with lower number than (EZYNET's) 0.2.2.20:
+downgrade to AP firmware release with lower number than (EZYNET's) 0.2.2.20:
 
 http://www.sparklan.com/Downloads/11b/AP/WX-1590_Client-Mode/Firmware/
 Client_Mode_firmware_WX-1590_v0.3.2.6.zip
@@ -251,10 +282,14 @@ in as broad number of its features as possible.
 
 Where to get more information
 -----------------------------
-You can find info about utils from this README and from man pages
-for utilites; as well as in INSTALL and TODO files at toplevel directory.
+You can find info about utilities from this README and from respective
+man pages (see Documentation directory), as well as from INSTALL and TODO
+files in the toplevel directory.
+Documentation/FAQ file may be of some interrest to you too.
 Additional info and useful links may be found in the Documentation
 directory of this package and on our web page http://ap-utils.polesye.net/ .
+Note, however, that informations on the web may somewhat lag behind this
+source.
 You may also peek into ChangeLog file if you are more of a technical person,
 for a list of changes and developer notes.
 We also run maillist to discuss any related topics - for more info please
diff --git a/TODO b/TODO
index 834b3c6ea563f725a0fdeab3c71c53af73744cc9..1a5acf0de384e75009f4a65c3fc36c3833c3f6b4 100644 (file)
--- a/TODO
+++ b/TODO
@@ -5,12 +5,37 @@ TODO for ap-utils:
 * support new AP's (ALWAYS)
 
 * try to implement an ap-dfu utility [already scheduled for next release!]
+  - ap-dfu, ap-dfu.8 (internal developer's notes):
+    - what DFU really stands for (and that ap-dfu contains some extra
+      Atmel-specific functionality)
+    - only for ATMEL AT76C510-based hardware
+    - *hci stuff - at least on Linux (prerequisities)
+    - PIDs and VIDs for INTERSIL & RFMD based boards.
+      If the AP does not present itself with PID & VID in kernel
+      ring buffer (use dmesg for displaying) after it has been plugged
+      to USB interface, it means that the flash content is apparently
+      damaged and AP dead (the only solution in such case is to return
+      AP to the reseller for replacement).
+    - mandate user to read ap-tftp.8 warning sections first!
+    - it is safe (?) if AP experiences power outtage during upgrade, or
+      if ap-dfu bails out with error due to USB interface inconsistency.
+      In such case, it is safe to start ap-dfu again, and it will continue
+      where it left off - typically, when the AP is stuck in DFU mode with
+      steady LEDs light.
+* (WA* firmware support?): get_mib_details(): rename to get_fw_details(); add
+  FW (AP, WA) type detection (fw_type); rename ap_type to fw_eprises;
+  rename ap_vendorext to fw_vendorext; enterprises should be named
+  410, 12350, NWN (strip down length)
 * make the screen appearance of deletion order same as for MAC auth. list
 * implement 'Insert' function for places where item lists are used (MAC
   auth. list, list of APs from ~/.ap-config)
-* implement 'Home', 'End', 'Insert' and 'Overwrite' for get_value()
 * add S Search key in get_opts that would allow - instead of connecting -
   searching for APs first
+* WISHLIST (and very unlikely this will happen): assemble JTAG interface
+  documentation (and try to implement ap-jflash utility as last-resort flash
+  for APs with 'dead' flash memory content)
+* try to assemble table of configuration value names & corresponding offsets
+  in *.cfg (default conf.) files (may be different among different firmwares!)
 * switch the 'Status' field in 'Stations' from numeric to verbose representation
 * patch test.c so that it works with ATMEL12350 devices
 * try to not rely on actually configured subnet information on each
@@ -20,4 +45,4 @@ TODO for ap-utils:
 * increase/disable KnownAPs limit
 * use iptraf like ethernet.desc file to store stations description
 * add per client LQ and RSSI stats to ap-mrtg
-* add man page for ap-rrd
\ No newline at end of file
+* add man page for ap-rrd
index e5c48e25818832610321f84ac4d6b111261ab1e8..39399d44ccd513b91656a7b7bd4130e31fc86be5 100644 (file)
@@ -24,5 +24,5 @@ LIBS = @INTLLIBS@ @LIBS@
 bin_PROGRAMS = ap-gl
  
 ap_gl_SOURCES = ap-gl.c auth.c bridge.c stations.c
-ap_gl_LDADD = ../lib/libap.a -lmenu
+ap_gl_LDADD = ../lib/libap.a -lmenu @CURSESLIBS@
 
index 2165f9aeee07d18566b94775d2028758414f7144..c14073513d10af6562c9faebbd9dca54a597bc88 100644 (file)
@@ -163,7 +163,7 @@ INCLUDES = -I../lib -I../intl -I..
 bin_PROGRAMS = ap-gl
 
 ap_gl_SOURCES = ap-gl.c auth.c bridge.c stations.c
-ap_gl_LDADD = ../lib/libap.a -lmenu
+ap_gl_LDADD = ../lib/libap.a -lmenu @CURSESLIBS@
 subdir = ap-gl
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs
index 79f70a1b7b3cdd03098fb79c7a559576918c18d2..b947255bb6c69c408bd7ff175778753dc0522c91 100644 (file)
@@ -29,7 +29,7 @@
 
 WINDOW *win_for_menu, *sub_for_menu, *win_for_help, *main_win, *main_sub;
 char *community, *name;
-int sockfd, atmel410_filter = 1, wait_mode = WAIT_FOREVER;
+int atmel410_filter = 1, wait_mode = WAIT_FOREVER;
 struct in_addr ap_ip;
 char *prog_title = "Wireless AP Configurator for GlobalSun";
 char set_oeminfo_allowed = 0;
index c1c800bb67ea5f68f3c8557624e71026136bbd43..fe3960ffb2e6b8919853fa584e17894fb2280d1d 100644 (file)
@@ -155,14 +155,13 @@ void atmel_auth()
        varbinds[0].type = STRING_VALUE;
 
        i = snmp(varbinds, 1, SET);
-       if (i <= 0) {
-           print_helperr(ERR_RET);
+       if (i == 0) {
+           print_helperr(ERR_SET);
            goto exit;
        }
-       if (i < 0)
+       if (i < 0)
            break;
 
-       
        if (varbinds[0].len_val == 12) {
            if (AuthMac)
                free(AuthMac);
@@ -438,6 +437,8 @@ choose_view:
                curr = curr->next;
                i++;
            }
+           wbkgd(main_sub, A_NORMAL);
+           wrefresh(main_sub);
            print_help(DONE_SET);
            goto exit;
        case KEY_DOWN:
index aa2ed34ce3707bf3d27cd737609cbda111186723..370a5ba345135a441f796a6781463f553c74ebed 100644 (file)
@@ -45,6 +45,16 @@ extern short ap_type;
 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
@@ -79,16 +89,6 @@ void bridging()
        0x00
     };
 */
-
-char *bridge_modes[6] = {
-    _("Wireless Bridge Point to MultiPoint"),
-    _("Access Point"),
-    _("Access Point client"),
-    _("Wireless Bridge Point to Point"),
-    _("Repeater"),
-    _("unknown")
-};
-
     char TrapPort[] =
        { 0x2B, 0x06, 0x01, 0x04, 0x01, 0xE0, 0x3E, 0x01, 0x01, 0x02, 0x08,
        0x00
@@ -472,10 +472,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':
index ad385e49b171bf1c762ae44a6c3130a938675130..fa262c03924017ba730593f1f3e812845332bb0d 100755 (executable)
--- a/configure
+++ b/configure
@@ -1551,7 +1551,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE=ap-utils
- VERSION=1.5pre3a
+ VERSION=1.5
 
 
 cat >>confdefs.h <<_ACEOF
index 2ba72892c36727f87a09f86b8469a5cbc5db3ae9..0a934f743000bc28e2fa5c997a1677998f3d8023 100644 (file)
@@ -18,7 +18,7 @@
 #
 AC_INIT([lib/snmp.c])
 AC_CONFIG_AUX_DIR(config)
-AM_INIT_AUTOMAKE(ap-utils, 1.5pre3a)
+AM_INIT_AUTOMAKE(ap-utils, 1.5)
 AM_CONFIG_HEADER(config.h)
 
 ac_aux_dir=config
index 4436cf86cf3930f93dbe192469f1e6de1ba24ce4..cd9c8c1610a2cb56d6b3a70c0a90329275de072b 100644 (file)
@@ -76,6 +76,9 @@ typedef unsigned int uint32_t;
 #define rshort(a)      ((a) = swap2(a))
 #define wshort(a)      ((a) = swap2(a))
 
+#define dbmconv(x)     (ap_type == ATMEL410 && ap_vendorext == SBRIDGES) ? \
+                           (int)(-95 + x * (float)2.125) : -96 + x
+
 #define MAC _("MAC address: ")
 #define TRAPS _("[S] SNMP traps: ")
 
@@ -100,17 +103,15 @@ typedef unsigned int uint32_t;
 #define BASIC _("Basic")
 
 #define ANY_KEY _("Press any key to continue.")
-#define QT_HELP _("Q - quit to menu. T - toggle polling mode, Other key - force update.")
+#define QT_HELP _("Q - quit to menu. T - toggle polling mode, Other key - force update")
 
 #define ERR_SET _("Unable to write data to AP. Press any key to continue.")
 #define ERR_RET _("Unable to retrieve (valid) data from AP. Press any key to continue.")
-#define WAIT_RET _("Trying to retrieve data from AP. Please wait...")
+#define WAIT_RET _("Trying to retrieve data from AP - please wait (or press Q to quit).")
 #define WAIT_SET _("Writing data to AP. Please wait...")
 #define DONE_SET _("Configuration written to the AP. Press any key to continue.")
 #define ERR_SELECT _("select() function error. Press any key.")
-
-#define ERR_CREATING_SOCKET _("Create socket error. Press any key.")
-#define ERR_BINDING_SOCKET _("Bind socket error. Press any key.")
+#define ERR_SOCKET _("socket() or bind() function error. Press any key.")
 
 #define ERR_WRITING_APCONF _("Unable to write AP list file ~/.ap-config. Press any key.")
 #define DONE_WRITING_APCONF _("AP list file ~/.ap-config successfully written. Press any key.")
@@ -118,6 +119,7 @@ typedef unsigned int uint32_t;
 #define MAIN_MENU _("Back to main menu")
 #define MENU_EXIT _("Exit program")
 #define MENU_SHELL _("Run subshell. To return type 'exit'.")
+#define MENU_POLLING _("Change polling mode interval")
 #define MENU_ABOUT _("Short info about program")
 #define MENU_SEARCH _("Find connected Access Points")
 #define MENU_CONNECT _("Set connection options: ip and community")
@@ -277,11 +279,10 @@ struct sysDeviceInfo_128 {
     unsigned char ProductName[32];
     uint32_t HardwareRevision;
     /*
-     * NOTE: Although MIBs claim 92 bytes length, it is not true.
+     * NOTE: Although MIBs claim 92 bytes length, it does not need to be true.
      * 92 bytes seems to be just the 'official' part; the unofficial
-     * (and undocumented) remnant just padds it to the total length of
-     * 128 bytes.
-     * TODO: find out the structure.
+     * (and undocumented) remnant padding the total length to 128 bytes
+     * may or may not eventually appear (resulting in returned length 128 b.).
      */
 };
 
@@ -408,11 +409,12 @@ extern void get_pass(char *, int, int, int);
 extern int  yes_no(int, int);
 extern int  on_off(int, int);
 extern int  menu_choose(int, int, char **, unsigned int);
-extern int  wait_key(void);
+extern int  wait_key(int);
 extern int  help_ysn(void);
 extern void scroll_rows(struct MacListStat *, int, int, int, int);
 extern void exit_shell(void);
 extern void exit_program(void);
+extern void polling_interval(void);
 extern int  get_opts(void);
 extern void save_Stations(struct MacListStat *);
 extern void uni_menu(struct umitems *umenu, int num);
@@ -429,6 +431,9 @@ extern void atmel_set_oeminfo(void);
 extern void ap_search(void);
 
 /* snmp engine*/
+extern void close_sockfd(void);
+extern int  open_sockfd(void);
+extern int  reopen_sockfd(void);
 extern int snmp(varbind *, int, int);
 extern int ber(char *, varbind *, int, int);
 /* extern unsigned int ber_decode_uint(unsigned char *, int); */
index fd89e868fe35e1d4467af10d48b7c18263c46ca5..be1e09dffa25d037b5b19c10b93907b9055093c8 100644 (file)
@@ -2,7 +2,7 @@
  *      ap_search.c from Access Point SNMP Utils for Linux
  *
  * Copyright (c) 2002 Roman Festchook <roma at polesye dot net>
- * Copyright (c) 2003 Jan Rafaj <aputils at cedric dot vabo dot cz>
+ * Copyright (c) 2003 Jan Rafaj <jr-aputils at cedric dot unob dot cz>
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License Version 2 from
@@ -46,7 +46,7 @@
 #endif
 
 #define SEARCH_COMMUNITY _("Community name: ")
-#define SEARCH_HEADER _("  NUM  IP ADDRESS       MIB TYPE    NAME")
+#define SEARCH_HEADER _("  NUM  IP ADDRESS       MIB TYPE    FW TYPE (VERSION) AP NAME")
 #define MAX_APS LAST_ROW-7
 
 extern int atmel410_filter;
@@ -65,26 +65,32 @@ void scan_local_segment (struct sockaddr_in *from, struct sockaddr_in *to,
     extern WINDOW *main_sub;
     extern char *ap_types[];
     unsigned char message[1024], *start;
-       extern int atmel410_filter; /* to check is this function called from ap-gl utility */
+    /* unsigned char name_fw[256], *name_p, *fwver_p; */
+    extern int atmel410_filter; /* if called from ap-gl utility */
 
     
-    char Wireless[3][12] = {
-      {0x2B, 0x06, 0x01, 0x04, 0x01, 0x83, 0x1A, 0x01, 0x01, 0x01, 0x01, 0x00},
-      {0x2B, 0x06, 0x01, 0x02, 0x01, 0x01, 0x01, 0x00},
-      {0x2B, 0x06, 0x01, 0x04, 0x01, 0xE0, 0x3E, 0x01, 0x01, 0x01, 0x01, 0x00}
-    };
-
     /*
      * operAccessPointName OIDs used to detect AP MIB type [in order
      * of appearance in the 'for' loop below: ATMEL410, NWN, ATMEL12350]
      */
-/*    char operAccessPointName[3][12] = {
+/*
+    char operAccessPointName[3][12] = {
       {0x2B, 0x06, 0x01, 0x04, 0x01, 0x83, 0x1A, 0x01, 0x02, 0x01, 0x0A, 0x00},
       {0x2B, 0x06, 0x01, 0x02, 0x01, 0x01, 0x05, 0x00},
       {0x2B, 0x06, 0x01, 0x04, 0x01, 0xE0, 0x3E, 0x01, 0x02, 0x01, 0x0A, 0x00}
     };
 */
-    int scd_ap_type, last_searched_type=ATMEL12350;
+    /*
+     * note: we'll rather use sysDescr OID for probing, becouse the devices
+     * wont rely on correct community for this query
+     */
+    char sysDescr[3][12] = {
+      {0x2B, 0x06, 0x01, 0x04, 0x01, 0x83, 0x1A, 0x01, 0x01, 0x01, 0x01, 0x00},
+      {0x2B, 0x06, 0x01, 0x02, 0x01, 0x01, 0x01, 0x00},
+      {0x2B, 0x06, 0x01, 0x04, 0x01, 0xE0, 0x3E, 0x01, 0x01, 0x01, 0x01, 0x00}
+    };
+
+    int scd_ap_type, last_searched_type = ATMEL12350;
     int c, s2, errno, len, client_len = SIZE;
     struct in_addr to_addr_reserv;
     struct sopts {
@@ -100,13 +106,13 @@ void scan_local_segment (struct sockaddr_in *from, struct sockaddr_in *to,
        print_help(_("Please wait while scanning, or press 'Q' to quit."));
 
     if ((s2 = socket(PF_INET, SOCK_DGRAM, 0)) == -1) {
-       print_helperr(ERR_CREATING_SOCKET);
+       print_helperr(ERR_SOCKET);
        getch();
        return;
     }
 
     if (bind(s2, (struct sockaddr *) from, SIZE) == -1) {
-       print_helperr(ERR_BINDING_SOCKET);
+       print_helperr(ERR_SOCKET);
        getch();
        goto close_ret;
     }
@@ -138,7 +144,7 @@ void scan_local_segment (struct sockaddr_in *from, struct sockaddr_in *to,
     mvwaddstr(main_sub, LAST_ROW - 2, 1, message);
 
     if(atmel410_filter) {
-       last_searched_type=ATMEL410;
+       last_searched_type = ATMEL410;
     }  
     
     for (scd_ap_type = ATMEL410; scd_ap_type <= last_searched_type; scd_ap_type++) {
@@ -149,10 +155,10 @@ void scan_local_segment (struct sockaddr_in *from, struct sockaddr_in *to,
        wrefresh(main_sub);
 
 /*     varbinds[0].oid = operAccessPointName[scd_ap_type];*/
-       varbinds[0].oid = Wireless[scd_ap_type];
+       varbinds[0].oid = sysDescr[scd_ap_type];
        varbinds[0].len_oid = (scd_ap_type == NWN ?
 /*         8 : sizeof(operAccessPointName[scd_ap_type]));*/
-           8 : sizeof(Wireless[scd_ap_type]));
+           8 : sizeof(sysDescr[scd_ap_type]));
        varbinds[0].len_val = 0;
        varbinds[0].type = NULL_VALUE;
        len = ber(message, varbinds, 1, GET);
@@ -292,11 +298,37 @@ void scan_local_segment (struct sockaddr_in *from, struct sockaddr_in *to,
 
            for (len = 0; len < varbinds[0].len_val && start[len]; len++);
            start[len + 1] = '\0';
-           if (len > 25) {
-               /* Truncate (limited screen size) and screen-width independent! */
-               start[COLS-53-atmel410_filter] = '>';
-               start[COLS-52-atmel410_filter] = '\0';
+
+           /*
+            * Returned sysDescr string is (hopefully!) always of format:
+            *             string1 (Ver. string2) string3
+            * where:
+            *   string1 = "802.11 X "
+            *     where: "X" identifies firmware type (AP, APP, WB, WA, etc)
+            *            unfortunately this is not deterministic across
+            *            manufacturers (each one uses different naming scheme)
+            *   string2 = firmware version
+            *   string3 = device name, as defined with operAccessPointName
+            *             OID
+           name_p = strchr(start, ')');
+           *name_p = '\0';
+           name_p += 2;
+           fwver_p = strstr(start, "(Ver. ");
+           fwver_p += strlen("(Ver. ");
+           sprintf(name_fw, "%s (%s)", name_p, fwver_p);
+
+           if (strlen(name_fw) > (size_t)(COLS - MCOLS - 37)) {
+               name_fw[COLS - MCOLS - 38] = '>';
+               name_fw[COLS - MCOLS - 37] = '\0';
+           }
+            */
+
+           if (strlen(start) > (size_t)(COLS - MCOLS - 37)) {
+               /* truncate (limit to scr. size) */
+               start[COLS - MCOLS - 38] = '>';
+               start[COLS - MCOLS - 37] = '\0';
            }
+
            sprintf(message, "  %3i  %-15s  %-10s  %s", i,
                inet_ntoa(fapsa[i].ip), ap_types[fapsa[i].type], start);
            i++;
@@ -328,6 +360,7 @@ void ap_search()
     struct ifconf ifc;
     struct ifreq *ifr;
     char *ifbuf_ptr = NULL, *ifrec_ptr;
+/*
     char *old_community;
     char buf[16];
 
@@ -341,13 +374,13 @@ void ap_search()
     strncpy(community, buf, strlen(buf) + 1);
     print_help("");
     clear_main(0);
-
+*/
     print_top(NULL, _("Access Points Search"));
     mvwaddstr(main_sub, 0, 0, SEARCH_HEADER);
     wrefresh(main_sub);
 
     if ((s1 = socket(PF_INET, SOCK_DGRAM, 0)) == -1) {
-       print_helperr(ERR_CREATING_SOCKET);
+       print_helperr(ERR_SOCKET);
        goto wait_quit;
     }
 
@@ -478,7 +511,7 @@ void ap_search()
 
                    print_top(NULL, NULL);
                    clear_main(0);
-                   free(old_community);
+/*                 free(old_community); */
                    connect_options(fapsa[ac - '0'].ip.s_addr,
                        fapsa[ac - '0'].type + 1);
                    free(fapsa);
@@ -494,12 +527,11 @@ quit:
 
     if (fapsa)
        free(fapsa);
-
+/*
     free(community);
     community = old_community;
-
+*/
     print_help("");
     print_top(NULL, NULL);
     clear_main(0);
 }
-
index c37a1fdc6eabce05d7c90a620ef0453b9abbee83..234a2c2ed4b33d05834add6c92e6f00ff42def75 100644 (file)
--- a/lib/aps.c
+++ b/lib/aps.c
@@ -2,6 +2,7 @@
  *      aps.c from Access Point SNMP Utils for Linux
  *
  * Copyright (c) 2002 Roman Festchook <roma at polesye dot net>
+ * Copyright (c) 2004 Jan Rafaj <jr-aputils at cedric dot unob dot cz>
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License Version 2 from
@@ -29,7 +30,7 @@
 #define KNOWN_APS _("Known Access Points")
 
 extern WINDOW *main_win, *main_sub /* *win_for_menu */;
-extern short ap_type;
+extern short ap_type, ap_vendorext;
 extern int sockfd, atmel410_filter;
 extern struct in_addr ap_ip;
 
@@ -316,7 +317,7 @@ show_stats:
                }
                break;
            case 2:
-               sprintf(message, "%3d", -96 + app->q1);
+               sprintf(message, "%3d", dbmconv(app->q1));
                mvwaddstr(main_sub, aps_num+1, 56, message);
                if (ap_type == ATMEL410) {
                    sprintf(message, "%3d%%",
index efcdb2b31a4e9ccb57e7849f8e70d1d410f86edc..a3df8a3a7472fc1e71c11854769f5ea0cea862a5 100644 (file)
@@ -2,6 +2,7 @@
  *      common.c from Access Point SNMP Utils for Linux
  *
  * Copyright (c) 2002 Roman Festchook <roma at polesye dot net>
+ * Copyright (c) 2005 Jan Rafaj <jr-aputils at cedric dot unob dot cz>
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License Version 2 from
@@ -25,6 +26,7 @@
 #include <unistd.h>
 #include <fcntl.h>
 #include <sys/ioctl.h>
+#include <sys/socket.h>
 #include "ap-utils.h"
 
 #define APIP _("Access Point IP-address: ")
@@ -35,6 +37,8 @@
 #define WANT_SYS_APLABEL _("Do you want to use AP's name as its label? ")
 #define APLABEL _("Access Point label: ")
 #define SAVESETTINGS _("Save connect-settings: ")
+#define POLL_I _("[P] Polling mode interval (tenths of second): ")
+#define POLL_HELP _("P - change polling mode interval; Q - quit to menu")
 
 char *ap_types[] = {
     "ATMEL410",
@@ -68,10 +72,11 @@ char *channels[] = {
 
 extern WINDOW *main_sub;
 extern char *community, *prog_title;
-short ap_type, ap_vendorext;
-extern int sockfd;
 extern struct in_addr ap_ip;
 
+short ap_type, ap_vendorext;
+int poll_delay = 10;
+
 void about()
 {
     int nrow = 14, ncol = 47, brow = (LINES - 5 - nrow) / 2, bcol =
@@ -140,7 +145,6 @@ void connect_options(unsigned long int ip, int type)
       {0x2B, 0x06, 0x01, 0x04, 0x01, 0xE0, 0x3E, 0x01, 0x02, 0x01, 0x0A, 0x00}
     };
 
-    struct sockaddr_in client;
     extern int atmel410_filter; /* boolean; = 1 if we call from ap-gl utility */
     unsigned char message[256];
     unsigned char label[17];
@@ -149,22 +153,8 @@ void connect_options(unsigned long int ip, int type)
     char save_settings=1;
     varbind varbinds[1];
 
-    memset(&client, 0, sizeof client);
-    client.sin_family = AF_INET;
-    client.sin_port = INADDR_ANY;
-    client.sin_addr.s_addr = INADDR_ANY;
-
-    if (sockfd)
-       close(sockfd);
-
-    if ((sockfd = socket(AF_INET, SOCK_DGRAM, 0)) == -1) {
-       print_helperr(ERR_CREATING_SOCKET);
-       getch();
-       goto exit;
-    }
-
-    if (bind(sockfd, (struct sockaddr *) &client, SIZE) == -1) {
-       print_helperr(ERR_BINDING_SOCKET);
+    if (reopen_sockfd() == -1) {
+       print_helperr(ERR_SOCKET);
        getch();
        goto exit;
     }
@@ -320,6 +310,8 @@ get_all_again:
                    community, label, ap_type, ap_vendorext);
                write(fd, message, strlen(message));
                close(fd);
+               wbkgd(main_sub, A_NORMAL);
+               wrefresh(main_sub);
                print_help(DONE_WRITING_APCONF);
            } else
                print_helperr(ERR_WRITING_APCONF);
@@ -355,7 +347,7 @@ int get_mib_details()
     char AuthRadiusIP_ATMEL[] = {
        0x2B, 0x06, 0x01, 0x04, 0x01, 0x83, 0x1A, 0x01, 0x02, 0x06, 0x03, 0x00
     };
-    /* ATMEL12350: GEMTEK and EZYNET MIBs define length 160, others 128 */
+    /* ATMEL12350: GEMTEK and EZYNET MIBs define length 160, others 92 or 128 */
     char sysDeviceInfo_ATMEL[] = {
        0x2B, 0x06, 0x01, 0x04, 0x01, 0xE0, 0x3E, 0x01, 0x01, 0x01, 0x05, 0x00
     };
@@ -465,6 +457,8 @@ int get_mib_details()
 
 void exit_program()
 {
+    erase();
+    refresh();
     endwin();
     exit(0);
 }
@@ -478,6 +472,46 @@ void exit_shell()
     refresh();
 }
 
+/*
+ * Sets different-than-default (1 sec.) polling interval for polling-active
+ * modes, from interval <0.1;86400> seconds.
+ * poll_delay is natively in tenths of second.
+ */
+void polling_interval()
+{
+    unsigned char message[256];
+    int c = 0;
+
+    noecho();
+    print_help(POLL_HELP);
+
+    while (1) {
+       sprintf(message, _("%s%u"), POLL_I, poll_delay);
+       mvwaddstr(main_sub, 0, 0, message);
+       sprintf(message, _("(%0.1f seconds)"), (float) poll_delay / 10);
+       mvwaddstr(main_sub, 1, strlen(POLL_I), message);
+       wrefresh(main_sub);
+       c = getch();
+       switch (c) {
+           case 'P':
+           case 'p':
+               get_value(message, 0, strlen(POLL_I), 7, INT_STRING, 1, 864000,
+                   POLL_HELP);
+               poll_delay = atoi(message);
+               clear_main_new(0, 2);
+               break;
+           case 'Q':
+           case 'q':
+               goto quit;
+       }
+    }
+
+quit:
+    print_help("");
+    clear_main(0);
+    return;
+}
+
 /*
  * Expects regulatory domain code on input and returns index of a corresponding
  * regdom_types[] member, that describes the given regulatory domain properties.
@@ -492,4 +526,3 @@ int regdom_idx(char regdom)
 
     return i;
 }
-
index fa2746fc8d0c97bf1e88144c2180bd9a7c55c399..415cfcc64f3f84ed0c7b06fef996d1cbdd8b3ca1 100644 (file)
@@ -32,6 +32,7 @@ extern char *ap_types[], *ap_vendorexts[][3];
 extern short ap_type, ap_vendorext;
 extern struct in_addr ap_ip;
 extern int atmel410_filter;
+
 #define MAX_LINES LINES-6
 
 struct APList {
@@ -140,20 +141,13 @@ int get_opts()
 {
     extern char *community;
     extern struct in_addr ap_ip;
-    extern int sockfd;
-       
+
     char *home_dir, buf[1024], mess[64];
     char message[50];
     int c, fd, rval = 0, pos;
     signed int j, i, begin, end, record_num = 0;
     struct APList *first = NULL, *curr = NULL, *pmac; 
-    struct sockaddr_in client;
-
 
-    memset(&client, 0, sizeof client);
-    client.sin_family = AF_INET;
-    client.sin_port = INADDR_ANY;
-    client.sin_addr.s_addr = INADDR_ANY;
 
     if ((home_dir = getenv("HOME")) == NULL)
        return 0;
@@ -246,14 +240,9 @@ int get_opts()
                strncpy(community, curr->passwd, i);
                ap_type = curr->type;
                ap_vendorext = curr->vendorext;
-               rval = 1;
-               if (sockfd)
-                   close(sockfd);
-
-               if ((sockfd = socket(AF_INET, SOCK_DGRAM, 0)) == -1)
-                   rval = 0;
 
-               if (bind(sockfd, (struct sockaddr *) &client, SIZE) == -1)
+               rval = 1;
+               if (reopen_sockfd() == -1)
                    rval = 0;
 
                print_bottom(inet_ntoa(ap_ip));
@@ -282,14 +271,9 @@ int get_opts()
                strncpy(community, curr->passwd, i);
                ap_type = curr->type;
                ap_vendorext = curr->vendorext;
-               rval = 1;
-               if (sockfd)
-                   close(sockfd);
 
-               if ((sockfd = socket(AF_INET, SOCK_DGRAM, 0)) == -1)
-                   rval = 0;
-
-               if (bind(sockfd, (struct sockaddr *) &client, SIZE) == -1)
+               rval = 1;
+               if (reopen_sockfd() == -1)
                    rval = 0;
 
                print_bottom(inet_ntoa(ap_ip));
index ff9604d516751d4cfa12196db5134a10fab45352..b966f12558d5c303a803101723e544ad83510cdb 100644 (file)
@@ -1,8 +1,9 @@
 /*
- *      scr.c from Access Point SNMP Utils for Linux
+ *      input.c from Access Point SNMP Utils for Linux
  *     program input & screen related functions
  *
  * Copyright (c) 2002 Roman Festchook <roma at polesye dot net>
+ * Copyright (c) 2005 Jan Rafaj <jr-aputils at cedric dot unob dot cz>
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License Version 2 from
@@ -21,8 +22,6 @@
 
 #include <stdlib.h>
 #include <string.h>
-#include <sys/time.h>
-#include <sys/types.h>
 #include <unistd.h>
 #include <menu.h>
 #include <errno.h>
@@ -78,9 +77,10 @@ get_ip_again:
 void
 get_mask(struct in_addr *ip, int row, int col, char *helpmsg)
 {
-    int i, bit, hmask, trans_count = 0;
+    int i, bit, hmask, trans_count;
 
 get_mask_again:
+    trans_count = 0;
     get_ip(ip, row, col, helpmsg);
     hmask = ntohl(ip->s_addr);
     bit = hmask & 0x00000001;
@@ -126,28 +126,29 @@ void
 get_value(char *value, int row, int col, int len,
          char vt, unsigned int minv, unsigned int maxv, char *helpmsg)
 {
-    unsigned int i;
-    unsigned char c, acs;
+    int c, i, x, y;
+    unsigned char acs;
     char iv_msg[128], zerolen_perm = 0;
+    enum { INSERT, OVERWRITE } mode;
+    WINDOW *gv_win;
 
     if (vt == ANY_STRING && len < 0) {
        zerolen_perm = 1;
        len = -len;
     }
 
-    echo();
-    wattrset(main_sub, COLOR_PAIR(12));
+    gv_win = derwin(main_sub, 1, len - 1, row, col);
+    wbkgdset(gv_win, A_REVERSE);
+
 get_value_again:
-    wmove(main_sub, row, col);
-    for (i = 0; i < (unsigned int)len - 1; i++)
-       waddch(main_sub, ' ');
+    mode = INSERT;
     curs_set(1);
-    wmove(main_sub, row, col);
-    wrefresh(main_sub);
+    werase(gv_win);
+    wrefresh(gv_win);
 
-    i = 0;
+    i = 0; /* means 'character count' here */
     while (1) {
-       c = getchar();
+       c = getch();
        acs = 0;
        switch (vt) {
            case INT_STRING:
@@ -161,54 +162,116 @@ get_value_again:
            case ANY_STRING:
                acs = 1;
        }
-       if (c == 0x7F) {
-           /* DELETE KEY */
-           if (i > 0) {
-               value[i--] = 0;
-               wmove(main_sub, row, col + i);
-               waddch(main_sub, ' ');
-               wmove(main_sub, row, col + i);
-               wrefresh(main_sub);
-           }
-           continue;
-       } else if (c == 0x0D) {
-           /* ENTER KEY */
-           if (i > 0 || zerolen_perm)
+       /* rather do not ask, how this works... */
+       getyx(gv_win, y, x);
+       switch (c) {
+           case KEY_BACKSPACE:
+               /* lefthandside DELETE */
+               if (x > 0) {
+                   /*
+                    * do not step cursor back only if window is filled AND
+                    * cursor is totally on RHS
+                    */
+                   if ((i < len - 1) || (x < len - 2))
+                       x--;
+                   mvwdelch(gv_win, 0, x);
+                   wrefresh(gv_win);
+                   i--;
+               }
                break;
-           continue;
-       } else if (c == 0x1B) {
-           /* ESCAPE KEY */
-           continue;
-       } else if (acs && (i < (unsigned int)len - 1)) {
-           value[i++] = c;
-           wechochar(main_sub, c);
+           case KEY_DC:
+               /* righthandside DELETE */
+               if (i > 0) {
+                   if (x == i)
+                       x--;
+                   mvwdelch(gv_win, 0, x);
+                   wrefresh(gv_win);
+                   i--;
+               }
+               break;
+           case KEY_LEFT:
+               if (x > 0) {
+                   wmove(gv_win, 0, --x);
+                   wrefresh(gv_win);
+               }
+               break;
+           case KEY_RIGHT:
+               if (x < i) {
+                   wmove(gv_win, 0, ++x);
+                   wrefresh(gv_win);
+               }
+               break;
+           case KEY_HOME:
+               wmove(gv_win, 0, 0);
+               wrefresh(gv_win);
+               break;
+           case KEY_END:
+               wmove(gv_win, 0, (i == len - 1 ? i - 1 : i));
+               wrefresh(gv_win);
+               break;
+           case KEY_IC:
+               mode = (mode == INSERT ? OVERWRITE : INSERT);
+               curs_set(mode == INSERT ? 1 : 2);
+               break;
+           case 0x0A:
+               /* ENTER KEY */
+               if (i > 0 || zerolen_perm)
+                   goto away;
+
+               break;
+           default:
+               if (acs && (c < 0x100)) {
+                   if (mode == INSERT) {
+                       if (i < len - 1) {
+                           winsch(gv_win, c);
+                           i++;
+                           wmove(gv_win, 0, ++x);
+                           wrefresh(gv_win);
+                       }
+                   } else {
+                       if (i <= len - 1) {
+//                         wechochar(gv_win, c);
+                           waddch(gv_win, c);
+                           if (x == i)
+                               i++;
+                           wmove(gv_win, 0, ++x);
+                           wrefresh(gv_win);
+                       }
+                   }
+               }
        }
     }
+
+away:
+    wmove(gv_win, 0, 0);
+    winnstr(gv_win, value, i);
     value[i] = 0;
+    curs_set(0);
 
-    noecho();
-    if (vt == INT_STRING && (minv | maxv)) {
-       errno = 0;
+    if (vt == INT_STRING) {
        i = strtoul(value, (char **)NULL, 10);
-       if (i < minv || i > maxv || errno == ERANGE) {
-           if (helpmsg) {
-               snprintf(iv_msg, sizeof(iv_msg) - 1, OOR_IV_MSG, minv, maxv);
-               print_helperr(iv_msg);
-               getch();
-               print_help(helpmsg);
+       sprintf(value, "%i", i); /* eat leading zeros */
+       if (minv | maxv) {
+           errno = 0;
+           if ((unsigned)i < minv || (unsigned)i > maxv || errno == ERANGE) {
+               if (helpmsg) {
+                   snprintf(iv_msg, sizeof(iv_msg) -1, OOR_IV_MSG, minv, maxv);
+                   print_helperr(iv_msg);
+                   getch();
+                   print_help(helpmsg);
+               }
+               goto get_value_again;
            }
-           goto get_value_again;
        }
     }
 
-    curs_set(0);
-    wattrset(main_sub, A_BOLD);
-    wmove(main_sub, row, col);
-    for (i = 0; i < (unsigned int)len - 1; i++)
-       waddch(main_sub, ' ');
-    mvwaddstr(main_sub, row, col, value);
-    wattrset(main_sub, A_NORMAL);
-    wrefresh(main_sub);
+    wbkgdset(gv_win, A_BOLD);
+    werase(gv_win);
+    waddstr(gv_win, value);
+    wrefresh(gv_win);
+//    mvwprintw(main_sub, 18, 1, "length: %i", i);
+//    wrefresh(main_sub);
+    delwin(gv_win);
 }
 
 /*
@@ -364,45 +427,29 @@ int menu_choose(int brow, int bcol, char **names, unsigned int num)
 }
 
 /*
- * Reads key by either getch() (WAIT_FOREVER mode) or select()
- * (WAIT_TIMEOUT mode). Returns -1 upon error, 0 for timeout, or
- * pressed key code.
+ * Reads key by either no-delay getch() (WAIT_FOREVER mode) or using
+ * getch() with tval tenths of second timeout (WAIT_TIMEOUT mode).
+ * Returns 0 for timeout, or pressed key code.
  */
-int wait_key()
+int wait_key(int tval)
 {
-    int i = 0;
-    fd_set rds;
-    struct timeval timeout;
+    int i;
     extern int wait_mode;
 
-    timeout.tv_sec = 1;
-    timeout.tv_usec = 0;
-    FD_ZERO(&rds);
-    FD_SET(0, &rds);
-
-    if (wait_mode == WAIT_TIMEOUT) {
-       /*
-        * wait up to timeout until anything is avail. for reading
-        * on stdin
-        */
-       i = select(1, &rds, NULL, NULL, &timeout);
-
-       /* not timed out => anything avail. for reading in rds */
-       if (i > 0)
-           i = getc(stdin);
-
-       /* error occured */
-       if (i == -1) {
-           print_helperr(ERR_SELECT);
-           getch();
-       }
+    if (wait_mode == WAIT_TIMEOUT)
+       timeout(tval * 100);
 
-       /* also happens: i = 0 => timeout => release */
+    i = getch();
 
-    } else { /* wait_mode = WAIT_FOREVER */
-       i = getch();
+    if (wait_mode == WAIT_TIMEOUT) {
+       timeout(-1);
+//     nocbreak();
+//     cbreak();
     }
 
+    if (i == ERR)
+       i = 0;
+
     return i;
 }
 
index e72b31096cc37a272faefc0e693b0b4833586116..b125abd69cb10857ecbcf2a05e3ed7d01607758f 100644 (file)
--- a/lib/oui.c
+++ b/lib/oui.c
@@ -2741,8 +2741,10 @@ char *oui2manufacturer(char *mac)
        0x00, 0x0C, 0xCE, "Cisco Systems"}, {
        0x00, 0x0D, 0x54, "3Com Europe Ltd"}, {
        0x00, 0x0D, 0x88, "D-Link Corporation"}, {
+       0x00, 0x0E, 0x2E, "Edimax Technology Co., Ltd."}, {
        0x00, 0x0E, 0xA6, "ASUSTEK COMPUTER INC."}, {
        0x00, 0x0F, 0x3D, "D-Link Corporation"}, {
+       0x00, 0x0F, 0x66, "Cisco-Linksys"}, {
        0x00, 0x10, 0x00, "CABLE TELEVISION LABORATIES, INC."}, {
        0x00, 0x10, 0x01, "MCK COMMUNICATIONS"}, {
        0x00, 0x10, 0x02, "ACTIA"}, {
@@ -3000,6 +3002,7 @@ char *oui2manufacturer(char *mac)
        0x00, 0x10, 0xFE, "DIGITAL EQUIPMENT CORPORATION"}, {
        0x00, 0x10, 0xFF, "CISCO SYSTEMS, INC."}, {
        0x00, 0x11, 0x2F, "ASUSTek Computer Inc."}, {
+       0x00, 0x11, 0x7C, "e-zy.net"}, {
        0x00, 0x1C, 0x7C, "PERQ SYSTEMS CORPORATION"}, {
        0x00, 0x20, 0x00, "LEXMARK INTERNATIONAL, INC."}, {
        0x00, 0x20, 0x01, "DSP SOLUTIONS, INC."}, {
index 8db3d384d9a7d4c4acdca8a9201b5d98567b31e6..f7551fcf4ba3b8b59df03f8ecb3bfe22a4120e19 100644 (file)
@@ -299,6 +299,8 @@ void power()
                print_helperr(ERR_SET);
                goto exit;
            }
+           wbkgd(main_sub, A_NORMAL);
+           wrefresh(main_sub);
            break;
        default:
            continue;
index 08a8f5b29cc3e259e69e31a9455105b3a09c3281..6ad506a3bcbefc3b2da320e9658380e4d9ac96b5 100644 (file)
--- a/lib/scr.c
+++ b/lib/scr.c
@@ -25,6 +25,7 @@
 #include <menu.h>
 
 extern WINDOW *main_sub, *win_for_help, *main_win;
+extern short ap_type, ap_vendorext;
 
 enum { dBm, percentage, rawval } sts_viewtype = dBm;
 
@@ -43,7 +44,7 @@ scroll_rows(struct MacListStat *first, int begin, int end, int row,
     i = 0;
     while (end-- > begin) {
        if (stat == 1) {
-           /* NWN view */
+           /* NWN STAtions listing */
            sprintf(message,
                "%4u       %02X%02X%02X%02X%02X%02X        %3u%5u     %3d",
                begin + i, curr->addr[0] & 0xFF, curr->addr[1] & 0xFF,
@@ -54,7 +55,7 @@ scroll_rows(struct MacListStat *first, int begin, int end, int row,
                conv_rssi(curr->rssi)
            );
        } else if (stat == 2) {
-           /* ATMEL STAtions view */
+           /* ATMEL STAtions listing */
            char parentmac[13] = "      -     ";
            char rssi[5] = "   -";
            char quality[5] = "   -";
@@ -96,7 +97,7 @@ scroll_rows(struct MacListStat *first, int begin, int end, int row,
                parentmac, rssi, quality, status, port, ip
            );
        } else {
-           /* used for MAC auth table listing */
+           /* MAC auth table listing */
            sprintf(message, " %3u     %02X%02X%02X%02X%02X%02X",
                begin + i, curr->addr[0] & 0xFF, curr->addr[1] & 0xFF,
                curr->addr[2] & 0xFF, curr->addr[3] & 0xFF,
@@ -220,7 +221,7 @@ int conv_rssi(int raw_rssi)
 {
     switch (sts_viewtype) {
        case dBm:
-          return (-96 + raw_rssi); 
+          return (dbmconv(raw_rssi)); 
        case percentage:
           return ((int)((minimum (raw_rssi, 40)) * (float)2.5));
        case rawval:
index 1bd0117653a02a59a5b1db5353478054a998b936..22f6c20edd21d8c0266f249a04ba8df0461b29a9 100644 (file)
@@ -103,8 +103,7 @@ void AuthorizedSettings()
                get_value(manufact, 3, 37, sizeof(manufact), ANY_STRING,
                    0, 0, NULL);
 */
-               get_pass(manufact, 3, 37,
-                   sizeof(manufact));
+               get_pass(manufact, 3, 37, sizeof(manufact));
            continue;
        case 'Q':
        case 'q':
@@ -141,6 +140,8 @@ void AuthorizedSettings()
                print_helperr(ERR_SET);
                goto exit;
            }
+           wbkgd(main_sub, A_NORMAL);
+           wrefresh(main_sub);
            break;
        }
        break;
index 5b4241c2a953ca62b20b37a6a76d871c1c7e2c0d..3d137a3fd3d6e2c1db7a4272dea256104d2fd32a 100644 (file)
@@ -1,7 +1,7 @@
 /*
- *      sysinfo_set.c from Access Point SNMP Utils for Linux
+ *      set_oeminfo.c from Access Point SNMP Utils for Linux
  *
- * Copyright (c) Jan Rafaj <jr-aputils at cedric dot unob dot cz>
+ * Copyright (c) 2005 Jan Rafaj <jr-aputils at cedric dot unob dot cz>
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License Version 2 from
@@ -159,7 +159,7 @@ void atmel_set_oeminfo()
 
     st_len = varbinds[0].len_val;
 
-    if (st_len == 128) { /* SHORTst */
+    if (st_len == 92 || st_len == 128) { /* SHORTst */
        memcpy(&str128, varbinds[0].value,
            sizeof(struct sysDeviceInfo_128));
        StructVersion           = str128.StructVersion;
@@ -262,11 +262,11 @@ void atmel_set_oeminfo()
            waddstr(main_sub, message);
        }
 
-       sprintf(message, "Vendor ID: 0x%04X", (PID_VID[0] & 0xFF) |
+       sprintf(message, "USB Vendor ID: 0x%04X", (PID_VID[0] & 0xFF) |
            ((PID_VID[1] & 0xFF) << 8));
        mvwaddstr(main_sub, 16, 0, message);
 
-       sprintf(message, "Product ID: 0x%04X", (PID_VID[2] & 0xFF) |
+       sprintf(message, "USB Product ID: 0x%04X", (PID_VID[2] & 0xFF) |
            ((PID_VID[3] & 0xFF) << 8));
        mvwaddstr(main_sub, 17, 0, message);
 
@@ -348,7 +348,7 @@ void atmel_set_oeminfo()
                continue;
            case 'o':
            case 'O':
-               if (st_len == 128)
+               if (st_len == 92 || st_len == 128)
                    continue;
 
                get_value(CountryCode, 10, strlen(S_COUNTRYC), 3, ANY_STRING,
@@ -356,7 +356,7 @@ void atmel_set_oeminfo()
                continue;
            case 'c':
            case 'C':
-               if (st_len == 128)
+               if (st_len == 92 || st_len == 128)
                    continue;
 
                Channel = menu_choose(11 - regdom_types[rd_idx].chans / 2,
@@ -372,7 +372,7 @@ void atmel_set_oeminfo()
                continue;
            case 'a':
            case 'A':
-               if (st_len == 128)
+               if (st_len == 92 || st_len == 128)
                    continue;
 
                get_value(message, 12, strlen(S_CHANNELS), 3, INT_STRING, 1, 14,
@@ -386,7 +386,7 @@ void atmel_set_oeminfo()
                continue;
            case 'p':
            case 'P':
-               if (st_len == 128)
+               if (st_len == 92 || st_len == 128)
                    continue;
 
                get_value(message, 13, strlen(S_TXPOWER), 4, INT_STRING, 0, 255,
@@ -415,7 +415,7 @@ void atmel_set_oeminfo()
                varbinds[0].len_oid = sizeof(sysDeviceInfo);
                varbinds[0].type = STRING_VALUE;
 
-               if (st_len == 128) { /* SHORTst */
+               if (st_len == 92 || st_len == 128) { /* SHORTst */
                    str128.RegulatoryDomain     = RegulatoryDomain;
                    str128.ProductType          = ProductType;
                    str128.OEMID                = OEMID;
@@ -454,6 +454,8 @@ void atmel_set_oeminfo()
                    }
                }
 
+               wbkgd(main_sub, A_NORMAL);
+               wrefresh(main_sub);
                print_help(DONE_SET);
                goto exit;
        }
index d33fc9dd5905ece9f6f0a98d947fb9f1cb12bd00..cab421281a14ff1414c535daa2e841435b51c6ee 100644 (file)
@@ -3,7 +3,6 @@
  *     basic snmp packets assembly/disassembly and send/receive functions
  *
  * Copyright (c) Roman Festchook <roma at polesye dot net>
- *               Jan Rafaj <jr-aputils at cedric dot unob dot cz>
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License Version 2 from
 #include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
-#include <signal.h>
-#include <setjmp.h>
+#include <sys/time.h>
 #include <sys/types.h>
 #include <netinet/in.h>
 #include <sys/socket.h>
 #include <arpa/inet.h>
 #include "ap-utils.h"
 
-sigjmp_buf position;
-
 extern char *community;
 extern short ap_type;
-extern int sockfd;
 extern struct in_addr ap_ip;
 
-int snmp_retries = 5, retries;
-char *buf = NULL;
+int sockfd = 0, snmp_quit_by_keypress = 0;
 
-static void alarm_handler()
+void close_sockfd()
 {
-    retries--;
-    siglongjmp(position, 1);
+    if (sockfd)
+       close(sockfd);
+}
+
+int open_sockfd()
+{
+    struct sockaddr_in client;
+
+    if ((sockfd = socket(AF_INET, SOCK_DGRAM, 0)) == -1)
+       return -1;
+
+    memset(&client, 0, sizeof client);
+    client.sin_family = AF_INET;
+    client.sin_port = INADDR_ANY;
+    client.sin_addr.s_addr = INADDR_ANY;
+
+    if (bind(sockfd, (struct sockaddr *) &client, SIZE) == -1)
+       return -1;
+
+    return 0;
+}
+
+int reopen_sockfd()
+{
+    close_sockfd();
+    return (open_sockfd());
 }
 
 /*
@@ -144,43 +162,75 @@ int ber(char *message, varbind * varbindlist, int num, int type)
 
 int snmp(varbind * varbindlist, int num, int type)
 {
-    unsigned char message[1024], *start;
+    static char buf[1024];
+    unsigned char *start;
     unsigned int num_reply;
-    int len;
+    int len = 0, tries = 5;
     struct sockaddr_in server;
+    struct timeval timeout;
+    fd_set rds;
 
     if (num == 0)
        return 1;
 
+    /*
+     * Flush sockfd by reopening. This prevents various 'something received/
+     * available on sockfd prior snmp() call' desync problems.
+     */
+    if (reopen_sockfd() == -1)
+       return 0;
+
     memset(&server, 0, sizeof server);
     server.sin_family = AF_INET;
     server.sin_port = htons(161);
     server.sin_addr.s_addr = ap_ip.s_addr;
 
-    signal(SIGALRM, alarm_handler);
-    retries = snmp_retries;
-    sigsetjmp(position, 1);
-    if (!retries) {
-       return 0;
-    }
+    while (tries--) {
+       len = ber(buf, varbindlist, num, type);
+       if (sendto(sockfd, buf, len, 0, (struct sockaddr *) &server, SIZE)
+           == -1) {
+           return 0;
+       }
 
-    alarm(1);
-    len = ber(message, varbindlist, num, type);
-    if (sendto(sockfd, message, len, 0, (struct sockaddr *) &server, SIZE)
-       == -1) {
-       alarm(0);
-       return 0;
-    }
-    if ((len = recv(sockfd, message, 1024, 0)) == -1) {
-       alarm(0);
-       return 0;
+       FD_ZERO(&rds);
+       FD_SET(sockfd, &rds);
+       timeout.tv_sec = 1;
+       timeout.tv_usec = 0;
+
+       if (select(sockfd + 1, &rds, NULL, NULL, &timeout) == -1)
+           return 0;
+
+       if (FD_ISSET(sockfd, &rds)) {
+           if ((len = recv(sockfd, buf, sizeof buf, 0)) <= 0)
+               return 0;
+           else
+               break;
+       }
+
+       /* timeout => next try, as long as no key has been pressed */
+
+       /*
+        * Allow for quick 'last resort' escape using q/Q. Note:
+        * we may not use one select() for checking both fd 0 and sockfd, since
+        * something may appear on sockfd later than key has been pressed =>
+        * give gratuitous 1sec delay for response arrival to sockfd, and THEN
+        * just poll for anything on fd 0.
+        */
+       if (snmp_quit_by_keypress && type == GET) {
+           FD_ZERO(&rds);
+           FD_SET(0, &rds);
+           timeout.tv_sec = 0;
+           timeout.tv_usec = 0;
+           if (select(1, &rds, NULL, NULL, &timeout) == -1)
+               return 0;
+
+           if (FD_ISSET(0, &rds))
+               return 0;
+       }
     }
-    alarm(0);
 
-    if (buf)
-       free(buf);
-    buf = (char *) malloc(len);
-    memcpy(buf, message, len);
+    if (!tries)
+       return 0;
 
     start = buf;
     num_reply = 0;
index b5c0c6ed84a55cf95efb8de9dccb97989af1362b..e5a340e704ea05c802c59965214dd982c48fea76 100644 (file)
@@ -31,7 +31,7 @@
 
 extern WINDOW *main_sub;
 extern short ap_type;
-extern int wait_mode;
+extern int wait_mode, poll_delay;
 
 void EthStat()
 {
@@ -181,7 +181,7 @@ void EthStat()
        mvwaddstr(main_sub, 18, 2, message);
        wrefresh(main_sub);
 
-       i = wait_key();
+       i = wait_key(poll_delay);
        if (i == -1)
            goto quit;
 
@@ -350,7 +350,7 @@ void WirelessStat()
        }
        wrefresh(main_sub);
 
-       i = wait_key();
+       i = wait_key(poll_delay);
        if (i == -1)
            goto quit;
 
@@ -510,7 +510,7 @@ void nwn_wireless_stat()
        mvwaddstr(main_sub, 10, 1, message);
        wrefresh(main_sub);
 
-       i = wait_key();
+       i = wait_key(poll_delay);
        if (i == -1)
            goto quit;
 
index 6e1e7f8a387bd779cf12f4c96899779e7e489d24..a190762d51a08af40fc68386b2ea07cf1d229545 100644 (file)
@@ -33,6 +33,7 @@
 
 extern WINDOW *main_sub;
 extern char* bridge_modes[6];
+extern int poll_delay;
 
 void atmel_sysinfo()
 {
@@ -144,7 +145,7 @@ char *bridge_modes[6] = {
        for (i = 0; i < varbinds[0].len_val && *(varbinds[0].value + i); i++)
            mvwaddch(main_sub, 1, i + 1, *(varbinds[0].value + i));
 
-       if (varbinds[1].len_val == 128) {
+       if (varbinds[1].len_val == 92 || varbinds[1].len_val == 128) {
            memcpy(&str128, varbinds[1].value,
                sizeof(struct sysDeviceInfo_128));
            ap_sversion = str128.StructVersion;
@@ -227,7 +228,7 @@ char *bridge_modes[6] = {
 
        wrefresh(main_sub);
 
-       i = wait_key();
+       i = wait_key(poll_delay);
        if (i == -1)
            goto quit;
 
@@ -508,7 +509,7 @@ void nwn_sysinfo()
        mvwaddstr(main_sub, 1, 0, message);
        wrefresh(main_sub);
 
-       i = wait_key();
+       i = wait_key(poll_delay);
        if (i == -1)
            goto quit;
 
index 284da947421bc9a11651731934cab512413fc263..543718c1449a00712197c10fb0898534bbe984c3 100644 (file)
@@ -45,7 +45,7 @@
 #define INT_ROAMING _("[I] International roaming: ")
 #define BEACON_PER _("[B] Beacon period (msec): ")
 #define DTIM_I _("[D] DTIM sending interval (beacons): ")
-#define SIFS_T _("[T] SIFS time (ACK timeout) msec: ")
+#define SIFS_T _("[T] SIFS time (2nd+ interframe spacing, usec): ")
 #define WLAN_HELP _("[key] - set option; W - write conf; Q - quit to menu")
 
 extern short ap_type, ap_vendorext;
@@ -115,8 +115,8 @@ void atmel_wireless()
     unsigned char dtim, ch;
     char *AuthenticationTypes[3] = { OSYS, SH_KEY, BOTH_TYPE },
        message[1024];
-    char domain[32], basic_rates[4], AutoRateFallBack, SSIDBroadcasting,
-       ap_name[32], PreambleType, AuthenticationType, channel;
+    char domain[33], basic_rates[4], AutoRateFallBack, SSIDBroadcasting,
+       ap_name[33], PreambleType, AuthenticationType, channel;
     char m_channel = 0, m_essid = 0, m_broadcast = 0, m_rts = 0,
        m_fragment = 0, m_auth = 0, m_ap_name = 0, m_preambule = 0,
        m_auto_rate = 0, m_inter_roaming = 0, m_beacon = 0, m_dtim = 0,
@@ -196,6 +196,7 @@ void atmel_wireless()
     channel = *(varbinds[0].value);
     c = *(varbinds[1].value);
     memcpy(domain, varbinds[2].value, 32);
+    domain[32] = '\0';
     SSIDBroadcasting = *(varbinds[3].value);
     memcpy(basic_rates, varbinds[4].value, 4);
     AutoRateFallBack = *(varbinds[5].value);
@@ -206,6 +207,7 @@ void atmel_wireless()
     PreambleType = *(varbinds[8].value);
     AuthenticationType = *(varbinds[9].value);
     memcpy(ap_name, varbinds[10].value, 32);
+    ap_name[32] = '\0';
     if (ap_type == ATMEL12350) {
        InterRoaming = *(varbinds[12].value);
        if (ap_vendorext == GEMTEK || ap_vendorext == EZYNET) {
@@ -226,7 +228,7 @@ void atmel_wireless()
        memcpy(&str160, varbinds[11].value,
            sizeof(struct sysDeviceInfo_160));
        ap_regdomain = str160.RegulatoryDomain;
-    } else { /* varbinds[11].len_val == 128 */
+    } else { /* varbinds[11].len_val == 92 || varbinds[11].len_val == 128 */
        memcpy(&str128, varbinds[11].value,
            sizeof(struct sysDeviceInfo_128));
        ap_regdomain = swap4(str128.RegulatoryDomain);
@@ -354,20 +356,20 @@ void atmel_wireless()
            continue;
        case 'N':
        case 'n':
-//          make_field(2, strlen(AP_NAME), 32);
-           get_value(ap_name, 2, strlen(AP_NAME), -32, ANY_STRING, 0, 0, NULL);
+//          make_field(2, strlen(AP_NAME), 33);
+           get_value(ap_name, 2, strlen(AP_NAME), -33, ANY_STRING, 0, 0, NULL);
            m_ap_name = 1;
            continue;
        case 'E':
        case 'e':
-//          make_field(1, strlen(ESSID), 32);
-           get_value(domain, 1, strlen(ESSID), 32, ANY_STRING, 0, 0, NULL);
+//          make_field(1, strlen(ESSID), 33);
+           get_value(domain, 1, strlen(ESSID), 33, ANY_STRING, 0, 0, NULL);
            m_essid = 1;
            continue;
        case 'F':
        case 'f':
 //          make_field(4, strlen(FRG_TR), 6);
-           get_value(message, 4, strlen(FRG_TR), 6, INT_STRING, 256, 2346,
+           get_value(message, 4, strlen(FRG_TR), 5, INT_STRING, 256, 2346,
                WLAN_HELP);
            FragmentationThreshold = atoi(message);
            m_fragment = 1;
@@ -375,7 +377,7 @@ void atmel_wireless()
        case 'R':
        case 'r':
 //          make_field(3, strlen(RTS_TR), 6);
-           get_value(message, 3, strlen(RTS_TR), 6, INT_STRING, 0, 2347,
+           get_value(message, 3, strlen(RTS_TR), 5, INT_STRING, 0, 2347,
                WLAN_HELP);
            RTSThreshold = atoi(message);
            m_rts = 1;
@@ -555,6 +557,8 @@ void atmel_wireless()
                print_helperr(ERR_SET);
                goto exit;
            }
+           wbkgd(main_sub, A_NORMAL);
+           wrefresh(main_sub);
            print_help(DONE_SET);
            goto exit;
        }
@@ -886,14 +890,14 @@ void nwn_wireless()
            continue;
        case 'F':
        case 'f':
-           get_value(message, 4, strlen(FRG_TR), 6, INT_STRING, 256, 2346,
+           get_value(message, 4, strlen(FRG_TR), 5, INT_STRING, 256, 2346,
                WLAN_HELP);
            FragmentationThreshold = atoi(message);
            m_fragment = 1;
            continue;
        case 'R':
        case 'r':
-           get_value(message, 3, strlen(RTS_TR), 6, INT_STRING, 0, 2347,
+           get_value(message, 3, strlen(RTS_TR), 5, INT_STRING, 0, 2347,
                WLAN_HELP);
            RTSThreshold = atoi(message);
            m_rts = 1;
@@ -916,7 +920,6 @@ void nwn_wireless()
                varbinds[i].type = 0x02;
                i++;
            }
-
            if (m_basic_rates) {
                varbinds[i].oid = operBasicRates;
                varbinds[i].len_oid = sizeof(operBasicRates);
@@ -926,13 +929,14 @@ void nwn_wireless()
                i++;
            }
 
-               print_help(WAIT_SET);
-               if (snmp(varbinds, i, SET) <= 0) {
-                   print_helperr(ERR_SET);
-                   goto exit;
-               }
-           i = 0;
+           print_help(WAIT_SET);
+
+           if (snmp(varbinds, i, SET) <= 0) {
+               print_helperr(ERR_SET);
+               goto exit;
+           }
 
+           i = 0;
            if (m_auth) {
                m_auth = (authi == 1) ? 2 : 1;
                m_basic_rates = (authi == 0) ? 2 : 1;
@@ -949,13 +953,13 @@ void nwn_wireless()
                varbinds[i].type = INT_VALUE;
                i++;
            }
-               print_help(WAIT_SET);
-               if (snmp(varbinds, i, SET) <= 0) {
-                   print_helperr(ERR_SET);
-                   goto exit;
-               }
-           i = 0;
 
+           if (snmp(varbinds, i, SET) <= 0) {
+               print_helperr(ERR_SET);
+               goto exit;
+           }
+
+           i = 0;
            if (m_ap_name) {
                c = strlen(ap_name);
                varbinds[i].oid = operAccessPointName;
@@ -965,7 +969,6 @@ void nwn_wireless()
                varbinds[i].type = STRING_VALUE;
                i++;
            }
-
            if (m_ap_location) {
                c = strlen(ap_location);
                varbinds[i].oid = operAccessPointLocation;
@@ -976,11 +979,10 @@ void nwn_wireless()
                i++;
            }
 
-               print_help(WAIT_SET);
-               if (snmp(varbinds, i, SET) <= 0) {
-                   print_helperr(ERR_SET);
-                   goto exit;
-               }
+           if (snmp(varbinds, i, SET) <= 0) {
+               print_helperr(ERR_SET);
+               goto exit;
+           }
 
            i = 0;
            if (m_ap_contact) {
@@ -1018,11 +1020,12 @@ void nwn_wireless()
                varbinds[i].type = 0x02;
                i++;
            }
-               print_help(WAIT_SET);
-               if (snmp(varbinds, i, SET) <= 0) {
-                   print_helperr(ERR_SET);
-                   goto exit;
-               }
+
+           if (snmp(varbinds, i, SET) <= 0) {
+               print_helperr(ERR_SET);
+               goto exit;
+           }
+
            c = 0;
            for (i = 0; i < 4; i++)
                if (m_antenna[i]) {
@@ -1034,11 +1037,12 @@ void nwn_wireless()
                    varbinds[c].type = INT_VALUE;
                    c++;
                }
-               print_help(WAIT_SET);
-               if (snmp(varbinds, c, SET) <= 0) {
-                   print_helperr(ERR_SET);
-                   goto exit;
-               }
+
+           if (snmp(varbinds, c, SET) <= 0) {
+               print_helperr(ERR_SET);
+               goto exit;
+           }
+
            c = 0;
            for (i = i; i < 6; i++)
                if (m_antenna[i]) {
@@ -1050,11 +1054,12 @@ void nwn_wireless()
                    varbinds[c].type = INT_VALUE;
                    c++;
                }
-               print_help(WAIT_SET);
-               if (snmp(varbinds, c, SET) <= 0) {
-                   print_helperr(ERR_SET);
-                   goto exit;
+
+           if (snmp(varbinds, c, SET) <= 0) {
+               print_helperr(ERR_SET);
+               goto exit;
            }
+
            i = 0;
            if (m_essid) {
                c = strlen(domain);
@@ -1065,12 +1070,14 @@ void nwn_wireless()
                varbinds[i].type = 0x04;
                i++;
            }
-               print_help(WAIT_SET);
-               if (snmp(varbinds, i, SET) <= 0) {
-                   print_helperr(ERR_SET);
-                   goto exit;
-               }
 
+           if (snmp(varbinds, i, SET) <= 0) {
+               print_helperr(ERR_SET);
+               goto exit;
+           }
+
+           wbkgd(main_sub, A_NORMAL);
+           wrefresh(main_sub);
            print_help(DONE_SET);
            goto exit;
        default:
index ffe1bc2e6f8f0e2587a93afb620e18b44b9200d1..7246bc3a069fc3f5c591e7adb0f00197c63bb9c9 100644 (file)
@@ -7,7 +7,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 2005-01-16 02:07+0200\n"
+"POT-Creation-Date: 2005-03-07 01:13+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -15,128 +15,128 @@ msgstr ""
 "Content-Type: text/plain; charset=CHARSET\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: lib/aps.c:29
+#: lib/aps.c:30
 msgid "Known Access Points"
 msgstr ""
 
-#: lib/aps.c:129
+#: lib/aps.c:130
 msgid "Your Access Point is not in \"AP client\" mode => getting"
 msgstr ""
 
-#: lib/aps.c:132
+#: lib/aps.c:133
 msgid "up-to-date \"Known APs\" info requires your AP to be"
 msgstr ""
 
-#: lib/aps.c:135
+#: lib/aps.c:136
 msgid "temporarily configured into \"AP client\" mode and rebooted."
 msgstr ""
 
-#: lib/aps.c:138
+#: lib/aps.c:139
 msgid "Your AP will be reconfigured back to original mode by this"
 msgstr ""
 
-#: lib/aps.c:141
+#: lib/aps.c:142
 msgid "utility once you quit the \"KnownAP\" view. This, in turn, may"
 msgstr ""
 
-#: lib/aps.c:144
+#: lib/aps.c:145
 msgid "cause loss of Access Point's current configuration."
 msgstr ""
 
-#: lib/aps.c:148
+#: lib/aps.c:149
 msgid "Do NOT answer \"Yes\" if you're connected to the Access Point"
 msgstr ""
 
-#: lib/aps.c:151
+#: lib/aps.c:152
 msgid "via its wireless port."
 msgstr ""
 
-#: lib/aps.c:153 lib/cmd.c:45 lib/cmd.c:75 lib/test.c:96
+#: lib/aps.c:154 lib/cmd.c:45 lib/cmd.c:75 lib/test.c:96
 msgid "Do you want to continue? "
 msgstr ""
 
-#: lib/aps.c:207
+#: lib/aps.c:208
 msgid "NetworkType"
 msgstr ""
 
-#: lib/aps.c:283
+#: lib/aps.c:284
 msgid "Infrastructure"
 msgstr ""
 
-#: lib/aps.c:343 lib/aps.c:351 lib/aps.c:359
+#: lib/aps.c:344 lib/aps.c:352 lib/aps.c:360
 msgid "CN: Channel Name; P: Preambule Type (S: Short; L: Long);"
 msgstr ""
 
-#: lib/aps.c:345
+#: lib/aps.c:346
 msgid "RSSI: Radio Signal Strength Indicator [%]"
 msgstr ""
 
-#: lib/aps.c:347 lib/aps.c:355
+#: lib/aps.c:348 lib/aps.c:356
 msgid "; LQ: Link Quality [%]"
 msgstr ""
 
-#: lib/aps.c:353
+#: lib/aps.c:354
 msgid "RSSI: Radio Signal Strength Indicator [dBm]"
 msgstr ""
 
-#: lib/aps.c:361
+#: lib/aps.c:362
 msgid "RSSI: Radio Signal Strength Indicator [raw]"
 msgstr ""
 
-#: lib/aps.c:363
+#: lib/aps.c:364
 msgid "; LQ: Link Q. [raw]"
 msgstr ""
 
-#: lib/aps.c:369
+#: lib/aps.c:370
 msgid ""
 "# con. to AP #; R refresh with reset; T toggle; Q quit; Other = refr. w/o "
 "reset"
 msgstr ""
 
-#: lib/aps.c:371
+#: lib/aps.c:372
 msgid ""
 "# con. to AP #; R initiate AP scan; T toggle view; Q quit; Other = refresh "
 "view"
 msgstr ""
 
-#: lib/aps.c:500 lib/ap_search.c:167
+#: lib/aps.c:501 lib/ap_search.c:173
 #, c-format
 msgid "Failure in sendto(): %s. Press any key."
 msgstr ""
 
-#: lib/aps.c:509
+#: lib/aps.c:510
 msgid "You have just initiated the AP scan. Be advised that it may"
 msgstr ""
 
-#: lib/aps.c:512
+#: lib/aps.c:513
 msgid "take a few seconds for your Access Point to find out some"
 msgstr ""
 
-#: lib/aps.c:515
+#: lib/aps.c:516
 msgid "values, so expect finishing the scan in about 5 seconds."
 msgstr ""
 
-#: lib/aps.c:518
+#: lib/aps.c:519
 msgid "Also note that your Access Point stops forwarding the network"
 msgstr ""
 
-#: lib/aps.c:521
+#: lib/aps.c:522
 msgid "traffic while the scan is in progress, but restores itself"
 msgstr ""
 
-#: lib/aps.c:524
+#: lib/aps.c:525
 msgid "to normal operation in time ranging up to 1 minute."
 msgstr ""
 
-#: lib/aps.c:527
+#: lib/aps.c:528
 msgid "Hence, if you are connected to target Access Point via its"
 msgstr ""
 
-#: lib/aps.c:530
+#: lib/aps.c:531
 msgid "wireless port, you need to wait a bit longer"
 msgstr ""
 
-#: lib/aps.c:533
+#: lib/aps.c:534
 msgid "after pressing 'S'."
 msgstr ""
 
@@ -145,266 +145,262 @@ msgid "Community name: "
 msgstr ""
 
 #: lib/ap_search.c:49
-msgid "  NUM  IP ADDRESS       MIB TYPE    NAME"
+msgid "  NUM  IP ADDRESS       MIB TYPE    FW TYPE (VERSION) AP NAME"
 msgstr ""
 
-#: lib/ap_search.c:100
+#: lib/ap_search.c:106
 msgid "Please wait while scanning, or press 'Q' to quit."
 msgstr ""
 
-#: lib/ap_search.c:116
+#: lib/ap_search.c:122
 msgid "Can't set broadcast option on socket. Press any key."
 msgstr ""
 
-#: lib/ap_search.c:125
+#: lib/ap_search.c:131
 msgid "Can't set multicast membership on socket. Press any key."
 msgstr ""
 
-#: lib/ap_search.c:132
+#: lib/ap_search.c:138
 msgid "Scanning via network interface:"
 msgstr ""
 
-#: lib/ap_search.c:133
+#: lib/ap_search.c:139
 #, c-format
 msgid "  Index: %i"
 msgstr ""
 
-#: lib/ap_search.c:135
+#: lib/ap_search.c:141
 #, c-format
 msgid "  Name: %s"
 msgstr ""
 
-#: lib/ap_search.c:137
+#: lib/ap_search.c:143
 #, c-format
 msgid "  IP: %s"
 msgstr ""
 
-#: lib/ap_search.c:146
+#: lib/ap_search.c:152
 #, c-format
 msgid "Scanning for AP with MIB type: %s"
 msgstr ""
 
-#: lib/ap_search.c:334
-msgid "Please enter SNMP community name that will be used for AP detection."
-msgstr ""
-
-#: lib/ap_search.c:345
+#: lib/ap_search.c:378
 msgid "Access Points Search"
 msgstr ""
 
-#: lib/ap_search.c:363
+#: lib/ap_search.c:396
 msgid "realloc() error."
 msgstr ""
 
-#: lib/ap_search.c:375
+#: lib/ap_search.c:408
 msgid "Network interface discovery error."
 msgstr ""
 
-#: lib/ap_search.c:450
+#: lib/ap_search.c:483
 msgid "No local network interfaces found. Press any key."
 msgstr ""
 
-#: lib/ap_search.c:452
+#: lib/ap_search.c:485
 msgid "No directly reachable Access Points found. Press any key."
 msgstr ""
 
-#: lib/ap_search.c:457
+#: lib/ap_search.c:490
 msgid "Single-screen maximum number of APs found."
 msgstr ""
 
-#: lib/ap_search.c:460
+#: lib/ap_search.c:493
 msgid "# - connect to AP; Q - quit"
 msgstr ""
 
-#: lib/ap-utils.h:79
+#: lib/ap-utils.h:82
 msgid "MAC address: "
 msgstr ""
 
-#: lib/ap-utils.h:80
+#: lib/ap-utils.h:83
 msgid "[S] SNMP traps: "
 msgstr ""
 
-#: lib/ap-utils.h:82
+#: lib/ap-utils.h:85
 msgid "[C] Frequency channel: "
 msgstr ""
 
-#: lib/ap-utils.h:84
+#: lib/ap-utils.h:87
 msgid "Receive  antenna:"
 msgstr ""
 
-#: lib/ap-utils.h:85
+#: lib/ap-utils.h:88
 msgid "[U] Left"
 msgstr ""
 
-#: lib/ap-utils.h:86
+#: lib/ap-utils.h:89
 msgid "[I] Right"
 msgstr ""
 
-#: lib/ap-utils.h:87
+#: lib/ap-utils.h:90
 msgid "Transmit antenna:"
 msgstr ""
 
-#: lib/ap-utils.h:88
+#: lib/ap-utils.h:91
 msgid "[O] Left"
 msgstr ""
 
-#: lib/ap-utils.h:89
+#: lib/ap-utils.h:92
 msgid "[P] Right"
 msgstr ""
 
-#: lib/ap-utils.h:90
+#: lib/ap-utils.h:93
 msgid "Diversity select:"
 msgstr ""
 
-#: lib/ap-utils.h:91
+#: lib/ap-utils.h:94
 msgid "[T] Left"
 msgstr ""
 
-#: lib/ap-utils.h:92
+#: lib/ap-utils.h:95
 msgid "[Y] Right"
 msgstr ""
 
-#: lib/ap-utils.h:94
+#: lib/ap-utils.h:97
 msgid "Yes"
 msgstr ""
 
-#: lib/ap-utils.h:95
+#: lib/ap-utils.h:98
 msgid "No"
 msgstr ""
 
-#: lib/ap-utils.h:97
+#: lib/ap-utils.h:100
 msgid "On"
 msgstr ""
 
-#: lib/ap-utils.h:98
+#: lib/ap-utils.h:101
 msgid "Off"
 msgstr ""
 
-#: lib/ap-utils.h:100
+#: lib/ap-utils.h:103
 msgid "Basic"
 msgstr ""
 
-#: lib/ap-utils.h:102
+#: lib/ap-utils.h:105
 msgid "Press any key to continue."
 msgstr ""
 
-#: lib/ap-utils.h:103
-msgid "Q - quit to menu. T - toggle polling mode, Other key - force update."
+#: lib/ap-utils.h:106
+msgid "Q - quit to menu. T - toggle polling mode, Other key - force update"
 msgstr ""
 
-#: lib/ap-utils.h:105
+#: lib/ap-utils.h:108
 msgid "Unable to write data to AP. Press any key to continue."
 msgstr ""
 
-#: lib/ap-utils.h:106
+#: lib/ap-utils.h:109
 msgid "Unable to retrieve (valid) data from AP. Press any key to continue."
 msgstr ""
 
-#: lib/ap-utils.h:107
-msgid "Trying to retrieve data from AP. Please wait..."
+#: lib/ap-utils.h:110
+msgid "Trying to retrieve data from AP - please wait (or press Q to quit)."
 msgstr ""
 
-#: lib/ap-utils.h:108
+#: lib/ap-utils.h:111
 msgid "Writing data to AP. Please wait..."
 msgstr ""
 
-#: lib/ap-utils.h:109
+#: lib/ap-utils.h:112
 msgid "Configuration written to the AP. Press any key to continue."
 msgstr ""
 
-#: lib/ap-utils.h:110
+#: lib/ap-utils.h:113
 msgid "select() function error. Press any key."
 msgstr ""
 
-#: lib/ap-utils.h:112
-msgid "Create socket error. Press any key."
-msgstr ""
-
-#: lib/ap-utils.h:113
-msgid "Bind socket error. Press any key."
+#: lib/ap-utils.h:114
+msgid "socket() or bind() function error. Press any key."
 msgstr ""
 
-#: lib/ap-utils.h:115
+#: lib/ap-utils.h:116
 msgid "Unable to write AP list file ~/.ap-config. Press any key."
 msgstr ""
 
-#: lib/ap-utils.h:116
+#: lib/ap-utils.h:117
 msgid "AP list file ~/.ap-config successfully written. Press any key."
 msgstr ""
 
-#: lib/ap-utils.h:118
+#: lib/ap-utils.h:119
 msgid "Back to main menu"
 msgstr ""
 
-#: lib/ap-utils.h:119
+#: lib/ap-utils.h:120
 msgid "Exit program"
 msgstr ""
 
-#: lib/ap-utils.h:120
+#: lib/ap-utils.h:121
 msgid "Run subshell. To return type 'exit'."
 msgstr ""
 
-#: lib/ap-utils.h:121
+#: lib/ap-utils.h:122
+msgid "Change polling mode interval"
+msgstr ""
+
+#: lib/ap-utils.h:123
 msgid "Short info about program"
 msgstr ""
 
-#: lib/ap-utils.h:122
+#: lib/ap-utils.h:124
 msgid "Find connected Access Points"
 msgstr ""
 
-#: lib/ap-utils.h:123
+#: lib/ap-utils.h:125
 msgid "Set connection options: ip and community"
 msgstr ""
 
-#: lib/ap-utils.h:124
+#: lib/ap-utils.h:126
 msgid "Set encryption; edit WEP keys"
 msgstr ""
 
-#: lib/ap-utils.h:125
+#: lib/ap-utils.h:127
 msgid "Set authorization; edit MAC authorization table"
 msgstr ""
 
-#: lib/ap-utils.h:126
+#: lib/ap-utils.h:128
 msgid "Set SNMP community/password for access to the AP"
 msgstr ""
 
-#: lib/ap-utils.h:127
+#: lib/ap-utils.h:129
 msgid "Get info about AP hardware and firmware"
 msgstr ""
 
-#: lib/ap-utils.h:128
+#: lib/ap-utils.h:130
 msgid "Get wireless port statistics"
 msgstr ""
 
-#: lib/ap-utils.h:129
+#: lib/ap-utils.h:131
 msgid "Get list of currently associated stations (Access Point clients)"
 msgstr ""
 
-#: lib/ap-utils.h:130
+#: lib/ap-utils.h:132
 msgid "Get link status in APclient mode"
 msgstr ""
 
-#: lib/ap-utils.h:131
+#: lib/ap-utils.h:133
 msgid "Get info and statistics from AP"
 msgstr ""
 
-#: lib/ap-utils.h:132
+#: lib/ap-utils.h:134
 msgid "Set various configuration options"
 msgstr ""
 
-#: lib/ap-utils.h:134
+#: lib/ap-utils.h:136
 msgid "Associated stations"
 msgstr ""
 
-#: lib/ap-utils.h:135
+#: lib/ap-utils.h:137
 msgid "AP Client link state"
 msgstr ""
 
-#: lib/ap-utils.h:137
+#: lib/ap-utils.h:139
 msgid "Polling: on"
 msgstr ""
 
-#: lib/ap-utils.h:138
+#: lib/ap-utils.h:140
 msgid "Polling: off"
 msgstr ""
 
@@ -456,147 +452,165 @@ msgstr ""
 msgid "Configuration uploaded. Press any key to continue."
 msgstr ""
 
-#: lib/common.c:30
+#: lib/common.c:32
 msgid "Access Point IP-address: "
 msgstr ""
 
-#: lib/common.c:31
+#: lib/common.c:33
 msgid "Password (community): "
 msgstr ""
 
-#: lib/common.c:32
+#: lib/common.c:34
 msgid "Autodetect AP MIB properties? "
 msgstr ""
 
-#: lib/common.c:33
+#: lib/common.c:35
 msgid "AP MIB type: "
 msgstr ""
 
-#: lib/common.c:34
+#: lib/common.c:36
 msgid "AP MIB vendor extensions: "
 msgstr ""
 
-#: lib/common.c:35
+#: lib/common.c:37
 msgid "Do you want to use AP's name as its label? "
 msgstr ""
 
-#: lib/common.c:36
+#: lib/common.c:38
 msgid "Access Point label: "
 msgstr ""
 
-#: lib/common.c:37
+#: lib/common.c:39
 msgid "Save connect-settings: "
 msgstr ""
 
-#: lib/common.c:84 src/ap-config.c:154
+#: lib/common.c:40
+msgid "[P] Polling mode interval (tenths of second): "
+msgstr ""
+
+#: lib/common.c:41
+msgid "P - change polling mode interval; Q - quit to menu"
+msgstr ""
+
+#: lib/common.c:89 src/ap-config.c:158
 msgid "About"
 msgstr ""
 
-#: lib/common.c:101
+#: lib/common.c:106
 #, c-format
 msgid "From %s"
 msgstr ""
 
-#: lib/common.c:103
+#: lib/common.c:108
 #, c-format
 msgid "Version %s"
 msgstr ""
 
-#: lib/common.c:106
+#: lib/common.c:111
 msgid "Written by Roman Festchook roma@polesye.net"
 msgstr ""
 
-#: lib/common.c:108
+#: lib/common.c:113
 msgid "and Jan Rafaj jr-aputils@cedric.unob.cz"
 msgstr ""
 
-#: lib/common.c:110
+#: lib/common.c:115
 msgid "Copyright (c) 2001-2005"
 msgstr ""
 
-#: lib/common.c:112
+#: lib/common.c:117
 msgid "Roman Festchook and Jan Rafaj"
 msgstr ""
 
-#: lib/common.c:115
+#: lib/common.c:120
 msgid "This program is distributed under the terms"
 msgstr ""
 
-#: lib/common.c:117
+#: lib/common.c:122
 msgid "of the GNU General Public License version 2."
 msgstr ""
 
-#: lib/common.c:119
+#: lib/common.c:124
 msgid "See the included COPYING file for details."
 msgstr ""
 
-#: lib/common.c:175
+#: lib/common.c:165
 msgid "Connect options"
 msgstr ""
 
-#: lib/common.c:183
+#: lib/common.c:173
 msgid "Enter IP address of your Access Point."
 msgstr ""
 
-#: lib/common.c:192
+#: lib/common.c:182
 msgid "Entered characters will not be displayed for security reason."
 msgstr ""
 
-#: lib/common.c:259
+#: lib/common.c:249
 msgid "This label will be stored on HDD (independently on AP name!)."
 msgstr ""
 
-#: lib/common.c:370
+#: lib/common.c:362
 msgid "Trying to probe AP for MIB properties. Please wait..."
 msgstr ""
 
-#: lib/common.c:399
+#: lib/common.c:391
 msgid ""
 "Unable to determine AP MIB properties (no response from AP). Press any key."
 msgstr ""
 
-#: lib/file.c:205
+#: lib/common.c:489 lib/set_oeminfo.c:221
+#, c-format
+msgid "%s%u"
+msgstr ""
+
+#: lib/common.c:491
+#, c-format
+msgid "(%0.1f seconds)"
+msgstr ""
+
+#: lib/file.c:199
 msgid "NUM  IP ADDRESS       MIB TYPE    MIB EXT.  LABEL"
 msgstr ""
 
-#: lib/file.c:206
+#: lib/file.c:200
 msgid "Choose an AP to connect to"
 msgstr ""
 
-#: lib/file.c:212
+#: lib/file.c:206
 msgid "1-9,C: connect; N: new; D: delete; W: save; Q: quit; arrows: scroll"
 msgstr ""
 
-#: lib/file.c:268
+#: lib/file.c:257
 msgid "Connect to AP num:"
 msgstr ""
 
-#: lib/file.c:304
+#: lib/file.c:288
 msgid "Delete num:"
 msgstr ""
 
-#: lib/file.c:458
+#: lib/file.c:442
 msgid "Unable to write stations file. Press any key."
 msgstr ""
 
-#: lib/file.c:460
+#: lib/file.c:444
 msgid "Stations file succesfully written. Press any key."
 msgstr ""
 
-#: lib/input.c:33
+#: lib/input.c:32
 msgid "Invalid value. Press any key to continue."
 msgstr ""
 
-#: lib/input.c:34
+#: lib/input.c:33
 #, c-format
 msgid "Value must be in range %u - %u. Press any key to continue."
 msgstr ""
 
-#: lib/input.c:413
+#: lib/input.c:460
 msgid "Y - Yes; Any other key - No (it's safer to answer No)"
 msgstr ""
 
-#: lib/oui.c:6058
+#: lib/oui.c:6061
 msgid "Unknown or Private"
 msgstr ""
 
@@ -635,7 +649,7 @@ msgid ""
 "key."
 msgstr ""
 
-#: lib/scr.c:156
+#: lib/scr.c:157
 #, c-format
 msgid "Current AP: %s Type: %s Ext: %s"
 msgstr ""
@@ -798,11 +812,6 @@ msgstr ""
 msgid "OEM Info settings"
 msgstr ""
 
-#: lib/set_oeminfo.c:221
-#, c-format
-msgid "%s%u"
-msgstr ""
-
 #: lib/stat.c:29
 msgid "Ethernet Statistics"
 msgstr ""
@@ -839,184 +848,184 @@ msgstr ""
 msgid "System Info"
 msgstr ""
 
-#: lib/sysinfo.c:54 src/bridge.c:86
+#: lib/sysinfo.c:55 src/bridge.c:50
 msgid "Wireless Bridge Point to MultiPoint"
 msgstr ""
 
-#: lib/sysinfo.c:55 src/bridge.c:87
+#: lib/sysinfo.c:56 src/bridge.c:51
 msgid "Access Point"
 msgstr ""
 
-#: lib/sysinfo.c:56 src/bridge.c:88
+#: lib/sysinfo.c:57 src/bridge.c:52
 msgid "Access Point client"
 msgstr ""
 
-#: lib/sysinfo.c:57 src/bridge.c:89
+#: lib/sysinfo.c:58 src/bridge.c:53
 msgid "Wireless Bridge Point to Point"
 msgstr ""
 
-#: lib/sysinfo.c:58 src/bridge.c:90
+#: lib/sysinfo.c:59 src/bridge.c:54
 msgid "Repeater"
 msgstr ""
 
-#: lib/sysinfo.c:59 lib/sysinfo.c:314 lib/sysinfo.c:423 src/bridge.c:91
+#: lib/sysinfo.c:60 lib/sysinfo.c:315 lib/sysinfo.c:424 src/bridge.c:55
 msgid "unknown"
 msgstr ""
 
-#: lib/sysinfo.c:143
+#: lib/sysinfo.c:144
 msgid "Device hardware/software/name info:"
 msgstr ""
 
-#: lib/sysinfo.c:171
+#: lib/sysinfo.c:172
 #, c-format
 msgid "Operational mode: %s"
 msgstr ""
 
-#: lib/sysinfo.c:181
+#: lib/sysinfo.c:182
 msgid "Product name: "
 msgstr ""
 
-#: lib/sysinfo.c:185
+#: lib/sysinfo.c:186
 #, c-format
 msgid "Product type: %u"
 msgstr ""
 
-#: lib/sysinfo.c:188
+#: lib/sysinfo.c:189
 msgid "OEM name: "
 msgstr ""
 
-#: lib/sysinfo.c:195
+#: lib/sysinfo.c:196
 #, c-format
 msgid "Hardware revision: %u"
 msgstr ""
 
-#: lib/sysinfo.c:203
+#: lib/sysinfo.c:204
 #, c-format
 msgid "Info structure version: %u"
 msgstr ""
 
-#: lib/sysinfo.c:206 lib/sysinfo.c:382
+#: lib/sysinfo.c:207 lib/sysinfo.c:383
 #, c-format
 msgid "Manufacturer OUI: %02X %02X %02X (%s)"
 msgstr ""
 
-#: lib/sysinfo.c:223
+#: lib/sysinfo.c:224
 #, c-format
 msgid "Uptime: %u days, %02u:%02u:%02u hours:mins:secs"
 msgstr ""
 
-#: lib/sysinfo.c:311
+#: lib/sysinfo.c:312
 msgid "FHSS 2.4 GHz"
 msgstr ""
 
-#: lib/sysinfo.c:311
+#: lib/sysinfo.c:312
 msgid "DSSS 2.4 GHz"
 msgstr ""
 
-#: lib/sysinfo.c:311
+#: lib/sysinfo.c:312
 msgid "IR Baseband"
 msgstr ""
 
-#: lib/sysinfo.c:312
+#: lib/sysinfo.c:313
 msgid "Commercial range 0..40 C"
 msgstr ""
 
-#: lib/sysinfo.c:313
+#: lib/sysinfo.c:314
 msgid "Industrial range -30..70 C"
 msgstr ""
 
-#: lib/sysinfo.c:316
+#: lib/sysinfo.c:317
 msgid "manual"
 msgstr ""
 
-#: lib/sysinfo.c:316
+#: lib/sysinfo.c:317
 msgid "notsupported"
 msgstr ""
 
-#: lib/sysinfo.c:316
+#: lib/sysinfo.c:317
 msgid "dynamic"
 msgstr ""
 
-#: lib/sysinfo.c:372
+#: lib/sysinfo.c:373
 msgid "Manufacturer:"
 msgstr ""
 
-#: lib/sysinfo.c:377
+#: lib/sysinfo.c:378
 msgid "Manufacturer ID:"
 msgstr ""
 
-#: lib/sysinfo.c:388
+#: lib/sysinfo.c:389
 msgid "Product Name:"
 msgstr ""
 
-#: lib/sysinfo.c:394
+#: lib/sysinfo.c:395
 msgid "Product ID:"
 msgstr ""
 
-#: lib/sysinfo.c:400
+#: lib/sysinfo.c:401
 msgid "Product Version:"
 msgstr ""
 
-#: lib/sysinfo.c:406
+#: lib/sysinfo.c:407
 #, c-format
 msgid "PHYType: %s"
 msgstr ""
 
-#: lib/sysinfo.c:409
+#: lib/sysinfo.c:410
 #, c-format
 msgid "Temperature: %s"
 msgstr ""
 
-#: lib/sysinfo.c:417
+#: lib/sysinfo.c:418
 #, c-format
 msgid "Regulatory Domain: %s"
 msgstr ""
 
-#: lib/sysinfo.c:418
+#: lib/sysinfo.c:419
 msgid "FCC (USA)"
 msgstr ""
 
-#: lib/sysinfo.c:419
+#: lib/sysinfo.c:420
 msgid "DOC (Canada)"
 msgstr ""
 
-#: lib/sysinfo.c:420
+#: lib/sysinfo.c:421
 msgid "ETSI (Europe)"
 msgstr ""
 
-#: lib/sysinfo.c:421
+#: lib/sysinfo.c:422
 msgid "Spain"
 msgstr ""
 
-#: lib/sysinfo.c:422
+#: lib/sysinfo.c:423
 msgid "France"
 msgstr ""
 
-#: lib/sysinfo.c:423
+#: lib/sysinfo.c:424
 msgid "MKK (Japan)"
 msgstr ""
 
-#: lib/sysinfo.c:426
+#: lib/sysinfo.c:427
 #, c-format
 msgid "Transmit Power: %u mW"
 msgstr ""
 
-#: lib/sysinfo.c:456
+#: lib/sysinfo.c:457
 #, c-format
 msgid "WEP implemented: %s"
 msgstr ""
 
-#: lib/sysinfo.c:459
+#: lib/sysinfo.c:460
 #, c-format
 msgid "Diversity: %s"
 msgstr ""
 
-#: lib/sysinfo.c:487
+#: lib/sysinfo.c:488
 #, c-format
 msgid "Uptime: %u:%02u:%02u.%02u"
 msgstr ""
 
-#: lib/sysinfo.c:507
+#: lib/sysinfo.c:508
 #, c-format
 msgid "IP  Address: %s"
 msgstr ""
@@ -1199,7 +1208,7 @@ msgid "[D] DTIM sending interval (beacons): "
 msgstr ""
 
 #: lib/wlan.c:48
-msgid "[T] SIFS time (ACK timeout) msec: "
+msgid "[T] SIFS time (2nd+ interframe spacing, usec): "
 msgstr ""
 
 #: lib/wlan.c:49
@@ -1214,19 +1223,19 @@ msgstr ""
 msgid "Long"
 msgstr ""
 
-#: lib/wlan.c:237
+#: lib/wlan.c:239
 msgid "Wireless Settings"
 msgstr ""
 
-#: lib/wlan.c:731
+#: lib/wlan.c:735
 msgid "Antenna Configuration:"
 msgstr ""
 
-#: lib/wlan.c:748
+#: lib/wlan.c:752
 msgid "General Options"
 msgstr ""
 
-#: lib/wlan.c:750
+#: lib/wlan.c:754
 msgid ""
 "UIOPTY - antenna; SCANLEDFR1234 - options; W - write conf; Q - quit to menu"
 msgstr ""
@@ -1251,513 +1260,539 @@ msgstr ""
 msgid "Error closing file"
 msgstr ""
 
-#: src/ap-auth.c:45 src/ap-mrtg.c:42 src/ap-rrd.c:42
+#: src/ap-auth.c:44 src/ap-mrtg.c:41 src/ap-rrd.c:40
 msgid ""
 "\n"
 "Usage:\n"
 msgstr ""
 
-#: src/ap-auth.c:46
+#: src/ap-auth.c:45
 msgid "\tap-auth -i ip -c community -d filename [-h]\n"
 msgstr ""
 
-#: src/ap-auth.c:47
+#: src/ap-auth.c:46
 msgid ""
 "\tap-auth -i ip -c community -u filename [-h]\n"
 "\n"
 msgstr ""
 
-#: src/ap-auth.c:48
+#: src/ap-auth.c:47
 msgid ""
 "Change accesspoint's list of authorised MAC addresses\n"
 "\n"
 msgstr ""
 
-#: src/ap-auth.c:49 src/ap-mrtg.c:46 src/ap-rrd.c:47
+#: src/ap-auth.c:48 src/ap-mrtg.c:45 src/ap-rrd.c:45
 msgid "-i ip        - AP ip address\n"
 msgstr ""
 
-#: src/ap-auth.c:50 src/ap-mrtg.c:47 src/ap-rrd.c:48
+#: src/ap-auth.c:49 src/ap-mrtg.c:46 src/ap-rrd.c:46
 msgid "-c community - SNMP community string\n"
 msgstr ""
 
-#: src/ap-auth.c:51
+#: src/ap-auth.c:50
 msgid ""
 "-d filename  - download list of authorised MAC addresses from AP to a file\n"
 msgstr ""
 
-#: src/ap-auth.c:53
+#: src/ap-auth.c:52
 msgid ""
 "-u filename  - upload list of authorised MAC addresses from a file to AP\n"
 msgstr ""
 
-#: src/ap-auth.c:55 src/ap-mrtg.c:56 src/ap-rrd.c:57
+#: src/ap-auth.c:54 src/ap-mrtg.c:55 src/ap-rrd.c:55
 msgid ""
 "-h           - print this help screen\n"
 "\n"
 msgstr ""
 
-#: src/ap-auth.c:56
+#: src/ap-auth.c:55
 #, c-format
 msgid ""
 "ap-auth %s Copyright (c) 2004 Teemu Kiviniemi\n"
 "\n"
 msgstr ""
 
-#: src/ap-auth.c:146 src/ap-mrtg.c:139
+#: src/ap-auth.c:138 src/ap-mrtg.c:132
 msgid "Error: invalid IP-address.\n"
 msgstr ""
 
-#: src/ap-auth.c:178 src/ap-mrtg.c:178 src/ap-rrd.c:207
-msgid "Create socket error"
-msgstr ""
-
-#: src/ap-auth.c:182 src/ap-mrtg.c:182 src/ap-rrd.c:211
-msgid "Bind socket error"
-msgstr ""
-
-#: src/ap-auth.c:220 src/ap-mrtg.c:220
+#: src/ap-auth.c:203 src/ap-mrtg.c:204
 msgid "Unable to determine AP MIB type (no response from AP)."
 msgstr ""
 
-#: src/ap-auth.c:228
+#: src/ap-auth.c:211
 msgid "NWN devices are not yet supported."
 msgstr ""
 
-#: src/ap-config.c:41 src/bridge.c:200
+#: src/ap-config.c:43 src/bridge.c:201
 msgid "Bridging"
 msgstr ""
 
-#: src/ap-config.c:41
+#: src/ap-config.c:43
 msgid "Set bridging and IP-related options"
 msgstr ""
 
-#: src/ap-config.c:43 src/ap-config.c:112 src/ap-config.c:121 src/bridge.c:124
+#: src/ap-config.c:45 src/ap-config.c:114 src/ap-config.c:123 src/bridge.c:125
 msgid "Wireless"
 msgstr ""
 
-#: src/ap-config.c:43
+#: src/ap-config.c:45
 msgid "Set wireless options"
 msgstr ""
 
-#: src/ap-config.c:44 src/ap-config.c:56
+#: src/ap-config.c:46 src/ap-config.c:58
 msgid "Privacy"
 msgstr ""
 
-#: src/ap-config.c:45
+#: src/ap-config.c:47
 msgid "Auth"
 msgstr ""
 
-#: src/ap-config.c:46 src/ap-config.c:58
+#: src/ap-config.c:48 src/ap-config.c:60
 msgid "Community"
 msgstr ""
 
-#: src/ap-config.c:47
+#: src/ap-config.c:49
 msgid "Radio"
 msgstr ""
 
-#: src/ap-config.c:47
+#: src/ap-config.c:49
 msgid "Set radio signal power and antenna options"
 msgstr ""
 
-#: src/ap-config.c:54
+#: src/ap-config.c:56
 msgid "General"
 msgstr ""
 
-#: src/ap-config.c:54
+#: src/ap-config.c:56
 msgid "Set general options"
 msgstr ""
 
-#: src/ap-config.c:55
+#: src/ap-config.c:57
 msgid "Advanced"
 msgstr ""
 
-#: src/ap-config.c:55
+#: src/ap-config.c:57
 msgid "Set advanced options"
 msgstr ""
 
-#: src/ap-config.c:57
+#: src/ap-config.c:59
 msgid "MAC auth"
 msgstr ""
 
-#: src/ap-config.c:80
+#: src/ap-config.c:82
 msgid "Upload"
 msgstr ""
 
-#: src/ap-config.c:80
+#: src/ap-config.c:82
 msgid "Activate current configuration"
 msgstr ""
 
-#: src/ap-config.c:81
+#: src/ap-config.c:83
 msgid "Defaults"
 msgstr ""
 
-#: src/ap-config.c:81
+#: src/ap-config.c:83
 msgid "Restore factory default settings"
 msgstr ""
 
-#: src/ap-config.c:82 src/ap-config.c:89
+#: src/ap-config.c:84 src/ap-config.c:91
 msgid "Reset"
 msgstr ""
 
-#: src/ap-config.c:83
+#: src/ap-config.c:85
 msgid "Reset AP. All not uploaded configuration will be lost"
 msgstr ""
 
-#: src/ap-config.c:84
+#: src/ap-config.c:86
 msgid "TestMode"
 msgstr ""
 
-#: src/ap-config.c:84
+#: src/ap-config.c:86
 msgid "Put Access Point in test mode"
 msgstr ""
 
-#: src/ap-config.c:89
+#: src/ap-config.c:91
 msgid "Reset AP."
 msgstr ""
 
-#: src/ap-config.c:110 src/ap-config.c:120
+#: src/ap-config.c:112 src/ap-config.c:122
 msgid "SysInfo"
 msgstr ""
 
-#: src/ap-config.c:111 src/bridge.c:123 src/bridge.c:127
+#: src/ap-config.c:113 src/bridge.c:124 src/bridge.c:127
 msgid "Ethernet"
 msgstr ""
 
-#: src/ap-config.c:111
+#: src/ap-config.c:113
 msgid "Get ethernet port statistics"
 msgstr ""
 
-#: src/ap-config.c:113 src/ap-config.c:122
+#: src/ap-config.c:115 src/ap-config.c:124
 msgid "Stations"
 msgstr ""
 
-#: src/ap-config.c:114
+#: src/ap-config.c:116
 msgid "AP link"
 msgstr ""
 
-#: src/ap-config.c:115
+#: src/ap-config.c:117
 msgid "KnownAPs"
 msgstr ""
 
-#: src/ap-config.c:115
+#: src/ap-config.c:117
 msgid "Get info about known Access Points"
 msgstr ""
 
-#: src/ap-config.c:123
+#: src/ap-config.c:125
 msgid "Latest"
 msgstr ""
 
-#: src/ap-config.c:123
+#: src/ap-config.c:125
 msgid "Get info about latest events"
 msgstr ""
 
-#: src/ap-config.c:148
+#: src/ap-config.c:150
 msgid "Info"
 msgstr ""
 
-#: src/ap-config.c:149
+#: src/ap-config.c:151
 msgid "Config"
 msgstr ""
 
-#: src/ap-config.c:150
+#: src/ap-config.c:152
 msgid "Commands"
 msgstr ""
 
-#: src/ap-config.c:150
+#: src/ap-config.c:152
 msgid "Execute commands on Access Point"
 msgstr ""
 
-#: src/ap-config.c:152
+#: src/ap-config.c:154
 msgid "Connect"
 msgstr ""
 
-#: src/ap-config.c:153
+#: src/ap-config.c:155
 msgid "Search"
 msgstr ""
 
-#: src/ap-config.c:155
+#: src/ap-config.c:156
+msgid "Polling"
+msgstr ""
+
+#: src/ap-config.c:157
 msgid "Shell"
 msgstr ""
 
-#: src/ap-config.c:156
+#: src/ap-config.c:159
 msgid "Exit"
 msgstr ""
 
-#: src/ap-config.c:214
+#: src/ap-config.c:218
 #, c-format
 msgid "Wireless Access Point Configurator ver. %s"
 msgstr ""
 
-#: src/aplink.c:28
+#: src/aplink.c:25
 msgid "RSSI:     ["
 msgstr ""
 
-#: src/aplink.c:29
+#: src/aplink.c:26
 msgid "RSSI avg: ["
 msgstr ""
 
-#: src/aplink.c:30
+#: src/aplink.c:27
 msgid "RSSI top: ["
 msgstr ""
 
-#: src/aplink.c:112
+#: src/aplink.c:28
+msgid "RSSI rou: ["
+msgstr ""
+
+#: src/aplink.c:29
+msgid ""
+"P - pause, T - toggle graph view, Q - quit to menu, Other key - force update."
+msgstr ""
+
+#: src/aplink.c:81
+msgid "RSSI [%]"
+msgstr ""
+
+#: src/aplink.c:82
+msgid "RSSI average [%]"
+msgstr ""
+
+#: src/aplink.c:83
+msgid "RSSI rounded [%]"
+msgstr ""
+
+#: src/aplink.c:84
+msgid "Link Quality [%]"
+msgstr ""
+
+#: src/aplink.c:133
 msgid "Not available - device must have firmware with necessary "
 msgstr ""
 
-#: src/aplink.c:114
+#: src/aplink.c:135
 msgid "vendor extensions and be in either 'Access Point client'"
 msgstr ""
 
-#: src/aplink.c:116
+#: src/aplink.c:137
 msgid "or 'Repeater' mode."
 msgstr ""
 
-#: src/ap-mrtg.c:43
+#: src/ap-mrtg.c:42
 msgid ""
 "\tap-mrtg -i ip -c community -t type [-b bssid] [-n name] [-v] [-h] [-r]\n"
 "\n"
 msgstr ""
 
-#: src/ap-mrtg.c:45
+#: src/ap-mrtg.c:44
 msgid ""
 "Get stats from AP and return it in MRTG parsable format\n"
 "\n"
 msgstr ""
 
-#: src/ap-mrtg.c:48
+#: src/ap-mrtg.c:47
 msgid ""
 "-t type      - statistics type <w>ireless, <e>thernet, associated <s>tations "
 "or <l>ink quality (last one will only "
 msgstr ""
 
-#: src/ap-mrtg.c:50
+#: src/ap-mrtg.c:49
 msgid "work with ATMEL410 MIB devices in AP Client mode)\n"
 msgstr ""
 
-#: src/ap-mrtg.c:51
+#: src/ap-mrtg.c:50
 msgid ""
 "-b bssid     - mac address of the AP from which get link quality, only if "
 "type=l\n"
 msgstr ""
 
-#: src/ap-mrtg.c:53
+#: src/ap-mrtg.c:52
 msgid "-n name      - AP name - for check only\n"
 msgstr ""
 
-#: src/ap-mrtg.c:54
+#: src/ap-mrtg.c:53
 msgid "-v           - report MRTG about problems connecting to AP\n"
 msgstr ""
 
-#: src/ap-mrtg.c:55 src/ap-rrd.c:56
+#: src/ap-mrtg.c:54 src/ap-rrd.c:54
 msgid "-r           - reset AP when getting LinkQuality stats\n"
 msgstr ""
 
-#: src/ap-mrtg.c:57
+#: src/ap-mrtg.c:56
 #, c-format
 msgid ""
 "ap-mrtg %s Copyright (c) 2002-2003 Roman Festchook\n"
 "\n"
 msgstr ""
 
-#: src/ap-rrd.c:44
+#: src/ap-rrd.c:32
+#, c-format
+msgid "Error getting data from AP %s\n"
+msgstr ""
+
+#: src/ap-rrd.c:42
 msgid ""
 "\tap-rrd -i ip -c community -t type -d db_file [-b bssid] [-n name] [-a "
 "aptype] [-h] [-r] \n"
 "\n"
 msgstr ""
 
-#: src/ap-rrd.c:46
+#: src/ap-rrd.c:44
 msgid ""
 "Get stats from AP and put it in to specified RRDtool database\n"
 "\n"
 msgstr ""
 
-#: src/ap-rrd.c:50
+#: src/ap-rrd.c:48
 msgid ""
 "-t type      - statistics type <w>ireless, <e>thernet, associated <s>tations "
 "or <l>ink quality in client mode\n"
 msgstr ""
 
-#: src/ap-rrd.c:51
+#: src/ap-rrd.c:49
 msgid "-d db_file   - RRD database file with full path\n"
 msgstr ""
 
-#: src/ap-rrd.c:53
+#: src/ap-rrd.c:51
 msgid ""
 "-b bssid     - mac address of the AP to which get link quality, only if "
 "type=l\n"
 msgstr ""
 
-#: src/ap-rrd.c:54
+#: src/ap-rrd.c:52
 msgid "-n name     - AP name - for check only\n"
 msgstr ""
 
-#: src/ap-rrd.c:55
+#: src/ap-rrd.c:53
 msgid ""
 "-a aptype    - AP type - 410 (default) or 510 for ATMEL12350's, like the ME-"
 "102\n"
 msgstr ""
 
-#: src/ap-rrd.c:58
+#: src/ap-rrd.c:56
 #, c-format
 msgid ""
 "ap-rrd %s Copyright (c) 2002-2004 Roman Festchook\n"
 "\n"
 msgstr ""
 
-#: src/ap-rrd.c:142
+#: src/ap-rrd.c:133
 msgid "Invalid IP-address\n"
 msgstr ""
 
-#: src/ap-rrd.c:188
+#: src/ap-rrd.c:179
 #, c-format
 msgid "Invalid AP-Type '%s' - valid types are 510 or 410\n"
 msgstr ""
 
-#: src/ap-tftp.c:81
+#: src/ap-tftp.c:84
 msgid "yes"
 msgstr ""
 
-#: src/ap-tftp.c:82
+#: src/ap-tftp.c:85
 msgid "no"
 msgstr ""
 
-#: src/ap-tftp.c:84
+#: src/ap-tftp.c:87
 msgid "Error while read()ing firmware file"
 msgstr ""
 
-#: src/ap-tftp.c:88
+#: src/ap-tftp.c:100
 msgid "Undefined error"
 msgstr ""
 
-#: src/ap-tftp.c:89
+#: src/ap-tftp.c:101
 msgid "File not found"
 msgstr ""
 
-#: src/ap-tftp.c:90
+#: src/ap-tftp.c:102
 msgid "Access violation"
 msgstr ""
 
-#: src/ap-tftp.c:91
+#: src/ap-tftp.c:103
 msgid "Disk full or allocation error"
 msgstr ""
 
-#: src/ap-tftp.c:92
+#: src/ap-tftp.c:104
 msgid "Illegal TFTP operation"
 msgstr ""
 
-#: src/ap-tftp.c:93
+#: src/ap-tftp.c:105
 msgid "Unknown transfer ID"
 msgstr ""
 
-#: src/ap-tftp.c:94
+#: src/ap-tftp.c:106
 msgid "File already exists"
 msgstr ""
 
-#: src/ap-tftp.c:95
+#: src/ap-tftp.c:107
 msgid "No such user"
 msgstr ""
 
-#: src/ap-tftp.c:161
+#: src/ap-tftp.c:157
 msgid "Remote-filename too long.\n"
 msgstr ""
 
-#: src/ap-tftp.c:187
+#: src/ap-tftp.c:183
 #, c-format
 msgid "%sError in read()"
 msgstr ""
 
-#: src/ap-tftp.c:215
+#: src/ap-tftp.c:212
 #, c-format
 msgid "sending %u bytes\n"
 msgstr ""
 
-#: src/ap-tftp.c:224
+#: src/ap-tftp.c:221
 #, c-format
 msgid "%sError in sendto()"
 msgstr ""
 
-#: src/ap-tftp.c:247
+#: src/ap-tftp.c:244
 #, c-format
 msgid "%sError in recvfrom()"
 msgstr ""
 
-#: src/ap-tftp.c:261
+#: src/ap-tftp.c:256
 #, c-format
-msgid "\rProgress: uploaded %.0f %%."
+msgid "\rProgress: uploaded %3i%%."
 msgstr ""
 
-#: src/ap-tftp.c:272
+#: src/ap-tftp.c:267
 #, c-format
 msgid "%sMalformed packet received. Aborting.\n"
 msgstr ""
 
-#: src/ap-tftp.c:281
+#: src/ap-tftp.c:276
 #, c-format
 msgid "%sTimed out waiting for response from server (%i/%i).\n"
 msgstr ""
 
-#: src/ap-tftp.c:288
+#: src/ap-tftp.c:283
 #, c-format
 msgid "%sError in select()"
 msgstr ""
 
-#: src/ap-tftp.c:302
+#: src/ap-tftp.c:297
 #, c-format
 msgid "Received %d bytes: %04x %04x\n"
 msgstr ""
 
-#: src/ap-tftp.c:313
+#: src/ap-tftp.c:308
 #, c-format
 msgid "%sError: server responded with %s. Aborting.\n"
 msgstr ""
 
-#: src/ap-tftp.c:320
+#: src/ap-tftp.c:315
 #, c-format
 msgid "%sFlash programming in progress...\n"
 msgstr ""
 
-#: src/ap-tftp.c:322
+#: src/ap-tftp.c:317
 msgid "Finished successfully.\n"
 msgstr ""
 
-#: src/ap-tftp.c:340
+#: src/ap-tftp.c:335
 msgid "PLEASE BE _ABSOLUTELY_ SURE TO READ MANPAGE PRIOR USE!!!\n"
 msgstr ""
 
-#: src/ap-tftp.c:341
+#: src/ap-tftp.c:337
 #, c-format
 msgid ""
 "\n"
-"Usage: %s <-l firmware_file.rom> <IP>\n"
+"Usage: %s -i IP -f firmware_file.rom [-c community] [-h]\n"
 msgstr ""
 
-#: src/ap-tftp.c:363
+#: src/ap-tftp.c:361
 msgid "TFTP client for upgrading firmware in ATMEL AT76C510 WiSOC-based APs.\n"
 msgstr ""
 
-#: src/ap-tftp.c:365
+#: src/ap-tftp.c:363
 msgid "(C) 2004-2005 Jan Rafaj <jr-aputils at cedric dot unob dot cz>\n"
 msgstr ""
 
-#: src/ap-tftp.c:391
-msgid "Error: invalid arguments given.\n"
-msgstr ""
-
-#: src/ap-tftp.c:398
+#: src/ap-tftp.c:379
 msgid "Error: invalid IP address format given.\n"
 msgstr ""
 
 #: src/ap-tftp.c:405
+msgid "Error: invalid argument combination.\n"
+msgstr ""
+
+#: src/ap-tftp.c:412
 msgid "Error while open()ing firmware file"
 msgstr ""
 
-#: src/ap-tftp.c:411 src/ap-tftp.c:462
+#: src/ap-tftp.c:419 src/ap-tftp.c:472
 msgid "Error: invalid firmware file given.\n"
 msgstr ""
 
-#: src/ap-tftp.c:451
+#: src/ap-tftp.c:461
 #, c-format
 msgid ""
 "Firmware file contains:\n"
@@ -1767,7 +1802,7 @@ msgid ""
 "- string \"atsingle.bin\": %s\n"
 msgstr ""
 
-#: src/ap-tftp.c:474
+#: src/ap-tftp.c:485
 #, c-format
 msgid ""
 "Using:\n"
@@ -1776,7 +1811,16 @@ msgid ""
 "- name used for upload: \"%s\"\n"
 msgstr ""
 
-#: src/ap-tftp.c:537
+#: src/ap-tftp.c:568
+msgid ""
+"Error: device with the given IP does not seem to run SmartBridges firmware.\n"
+msgstr ""
+
+#: src/ap-tftp.c:574
+msgid "Error: SNMP authorization error or device unavailable.\n"
+msgstr ""
+
+#: src/ap-tftp.c:653
 msgid "Error while lseek()ing in firmware file\n"
 msgstr ""
 
@@ -1864,7 +1908,7 @@ msgid "[S] Radius server secret: "
 msgstr ""
 
 #: src/auth.c:41
-msgid "[T] Reauthorization time (sec): "
+msgid "[T] Reauthorization time (minutes): "
 msgstr ""
 
 #: src/auth.c:42
@@ -1881,7 +1925,7 @@ msgid "[M] 802.1x authorization: "
 msgstr ""
 
 #: src/auth.c:46
-msgid "[T] key broadcasting time period (sec): "
+msgid "[T] key broadcasting time period (seconds): "
 msgstr ""
 
 #: src/auth.c:47
@@ -1921,15 +1965,15 @@ msgstr ""
 msgid "(not shown)"
 msgstr ""
 
-#: src/auth.c:270
+#: src/auth.c:276
 msgid "Authorized MAC addresses:"
 msgstr ""
 
-#: src/auth.c:339
+#: src/auth.c:345
 msgid "(insufficient community used)"
 msgstr ""
 
-#: src/auth.c:466
+#: src/auth.c:472
 #, c-format
 msgid "Given MAC already exists in MAC list at position %d. Press any key."
 msgstr ""
@@ -1994,14 +2038,14 @@ msgstr ""
 msgid "INGFPDOMSCRBUT - set; W - write conf; Q - quit to menu"
 msgstr ""
 
-#: src/bridge.c:126
-msgid "Both"
-msgstr ""
-
 #: src/bridge.c:128
 msgid "Wireless (can be risky)"
 msgstr ""
 
+#: src/bridge.c:129
+msgid "Both"
+msgstr ""
+
 #: src/nwn_advanced.c:60
 #, c-format
 msgid "[D] DB Station Timeout: %d"
@@ -2053,24 +2097,24 @@ msgstr ""
 msgid "Not available (device not in AP mode)."
 msgstr ""
 
-#: src/stations.c:93
+#: src/stations.c:92
 msgid "  #     MAC       Parent MAC  RSSI   LQ Sts MACn      IP        "
 msgstr ""
 
-#: src/stations.c:139
+#: src/stations.c:136
 msgid "AssociatedSTAsInfo packet error"
 msgstr ""
 
-#: src/stations.c:192 src/stations.c:364
+#: src/stations.c:189 src/stations.c:363
 msgid ""
 "Arrows - scroll; S - save to file; Q - return; T - toggle view; Other - "
 "refresh"
 msgstr ""
 
-#: src/stations.c:196
+#: src/stations.c:193
 msgid "Arrows - scroll; S - save to file; Q - return; Other key - refresh"
 msgstr ""
 
-#: src/stations.c:276
+#: src/stations.c:275
 msgid "Id       MAC address     Quality  Age  RSSI"
 msgstr ""
index b6e175b208d92c077fa0a79e2019b3246d38d9dd..d42552739bf58c4b8aaa0409287c3c7033090ec8 100644 (file)
--- a/po/fr.po
+++ b/po/fr.po
@@ -5,7 +5,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: GNU ap-utils 1.5pre1\n"
-"POT-Creation-Date: 2005-01-16 02:07+0200\n"
+"POT-Creation-Date: 2005-03-07 01:13+0200\n"
 "PO-Revision-Date: 2004-11-30 08:00-0500\n"
 "Last-Translator: Michel Robitaille <robitail@IRO.UMontreal.CA>\n"
 "Language-Team: French <traduc@traduc.org>\n"
@@ -14,84 +14,84 @@ msgstr ""
 "Content-Transfer-Encoding: 8-bit\n"
 "Plural-Forms: nplurals=2; plural=(n > 1);\n"
 
-#: lib/aps.c:29
+#: lib/aps.c:30
 msgid "Known Access Points"
 msgstr "Point d'accès connus"
 
-#: lib/aps.c:129
+#: lib/aps.c:130
 msgid "Your Access Point is not in \"AP client\" mode => getting"
 msgstr "Votre Point d'accès n'est pas en mode \"Client AP\" => obtention"
 
-#: lib/aps.c:132
+#: lib/aps.c:133
 msgid "up-to-date \"Known APs\" info requires your AP to be"
 msgstr ""
 "mise à jour des infos \"Points d'accès connus\" requiert que votre Point "
 "d'accès soit"
 
-#: lib/aps.c:135
+#: lib/aps.c:136
 msgid "temporarily configured into \"AP client\" mode and rebooted."
 msgstr ""
 "configuré temporairement dans le mode \"Point d'accès client\" et réamorcé"
 
-#: lib/aps.c:138
+#: lib/aps.c:139
 msgid "Your AP will be reconfigured back to original mode by this"
 msgstr "Votre Point d'accès sera reconfiguré à son mode d'origine par cet"
 
-#: lib/aps.c:141
+#: lib/aps.c:142
 msgid "utility once you quit the \"KnownAP\" view. This, in turn, may"
 msgstr ""
 "utilitaire une fois que vous aurez quitté la vue \"KnownAP\". Ceci, en "
 "retour, peut"
 
-#: lib/aps.c:144
+#: lib/aps.c:145
 msgid "cause loss of Access Point's current configuration."
 msgstr "provoquer la perte des Points d'accès de la configuration courante."
 
-#: lib/aps.c:148
+#: lib/aps.c:149
 msgid "Do NOT answer \"Yes\" if you're connected to the Access Point"
 msgstr "Ne PAS répondre par \"Yes\", si vous êtes connecté à un Point d'accès"
 
-#: lib/aps.c:151
+#: lib/aps.c:152
 msgid "via its wireless port."
 msgstr "via le port sans fil."
 
-#: lib/aps.c:153 lib/cmd.c:45 lib/cmd.c:75 lib/test.c:96
+#: lib/aps.c:154 lib/cmd.c:45 lib/cmd.c:75 lib/test.c:96
 msgid "Do you want to continue? "
 msgstr "Désirez-vous poursuivre?"
 
-#: lib/aps.c:207
+#: lib/aps.c:208
 msgid "NetworkType"
 msgstr "Type de réseau"
 
-#: lib/aps.c:283
+#: lib/aps.c:284
 msgid "Infrastructure"
 msgstr "Infrastructure"
 
-#: lib/aps.c:343 lib/aps.c:351 lib/aps.c:359
+#: lib/aps.c:344 lib/aps.c:352 lib/aps.c:360
 msgid "CN: Channel Name; P: Preambule Type (S: Short; L: Long);"
 msgstr "Cn: Nom du canal; P: type de préambule (S: court; L: long);"
 
-#: lib/aps.c:345
+#: lib/aps.c:346
 msgid "RSSI: Radio Signal Strength Indicator [%]"
 msgstr "RSSI: indicateur de la force du signal radio [%]"
 
-#: lib/aps.c:347 lib/aps.c:355
+#: lib/aps.c:348 lib/aps.c:356
 msgid "; LQ: Link Quality [%]"
 msgstr "; LQ: qualité du lien [%]"
 
-#: lib/aps.c:353
+#: lib/aps.c:354
 msgid "RSSI: Radio Signal Strength Indicator [dBm]"
 msgstr "RSSI: indicateur de la force du signal radio [dBm]"
 
-#: lib/aps.c:361
+#: lib/aps.c:362
 msgid "RSSI: Radio Signal Strength Indicator [raw]"
 msgstr "RSSI: indicateur de la force du signal radio [brut]"
 
-#: lib/aps.c:363
+#: lib/aps.c:364
 msgid "; LQ: Link Q. [raw]"
 msgstr "; LQ: qualité du lien [brut]"
 
-#: lib/aps.c:369
+#: lib/aps.c:370
 msgid ""
 "# con. to AP #; R refresh with reset; T toggle; Q quit; Other = refr. w/o "
 "reset"
@@ -99,7 +99,7 @@ msgstr ""
 "# con. au Point d'accès; R rafraîchir avec réinitialisation; T basculer; Q "
 "quitter; O (other=autre) rafraîchir réinitialisation w/o"
 
-#: lib/aps.c:371
+#: lib/aps.c:372
 msgid ""
 "# con. to AP #; R initiate AP scan; T toggle view; Q quit; Other = refresh "
 "view"
@@ -107,47 +107,47 @@ msgstr ""
 "# con. au Point d'accès #;R rechercher les Points d'accès;T basculer la vue; "
 "Q uitter; O (other=autre) = rafraîchir la vue"
 
-#: lib/aps.c:500 lib/ap_search.c:167
+#: lib/aps.c:501 lib/ap_search.c:173
 #, c-format
 msgid "Failure in sendto(): %s. Press any key."
 msgstr "Échec de sendto(): %s. Appuyez sur une touche."
 
-#: lib/aps.c:509
+#: lib/aps.c:510
 msgid "You have just initiated the AP scan. Be advised that it may"
 msgstr ""
 "Vous avez lancer une recherche des Points d'accès. Sachez que cela peut"
 
-#: lib/aps.c:512
+#: lib/aps.c:513
 msgid "take a few seconds for your Access Point to find out some"
 msgstr "prendre quelques secondes à votre Point d'accès pour retourner"
 
-#: lib/aps.c:515
+#: lib/aps.c:516
 msgid "values, so expect finishing the scan in about 5 seconds."
 msgstr "les valeurs, aussi il faut s'attendre à une fin du scan de 5 secondes"
 
-#: lib/aps.c:518
+#: lib/aps.c:519
 msgid "Also note that your Access Point stops forwarding the network"
 msgstr ""
 "Notez aussi que votre Point d'accès arrête le relayage du trafic avant "
 "(forward) vers le réseau"
 
-#: lib/aps.c:521
+#: lib/aps.c:522
 msgid "traffic while the scan is in progress, but restores itself"
 msgstr "lorsque le scan est lancé, il est restauré par la suite"
 
-#: lib/aps.c:524
+#: lib/aps.c:525
 msgid "to normal operation in time ranging up to 1 minute."
 msgstr "en mode normal d'opération dans un délais allant jusqu'à 1 minute."
 
-#: lib/aps.c:527
+#: lib/aps.c:528
 msgid "Hence, if you are connected to target Access Point via its"
 msgstr "Donc, si vous êtes connecté au Point d'accès cible via son"
 
-#: lib/aps.c:530
+#: lib/aps.c:531
 msgid "wireless port, you need to wait a bit longer"
 msgstr "port sans fil, vous devrez attendre un peut plus longtemps"
 
-#: lib/aps.c:533
+#: lib/aps.c:534
 msgid "after pressing 'S'."
 msgstr "après avoir appuyé sur la touche 'S'."
 
@@ -156,297 +156,295 @@ msgid "Community name: "
 msgstr "Nom de la communauté: "
 
 #: lib/ap_search.c:49
-msgid "  NUM  IP ADDRESS       MIB TYPE    NAME"
+#, fuzzy
+msgid "  NUM  IP ADDRESS       MIB TYPE    FW TYPE (VERSION) AP NAME"
 msgstr "  NUM  ADRESSE IP       MIB TYPE    NOM"
 
-#: lib/ap_search.c:100
+#: lib/ap_search.c:106
 msgid "Please wait while scanning, or press 'Q' to quit."
 msgstr ""
 "SVP attendre la fin de la scrutation (scan) ou appuyez 'Q' pour quitter."
 
-#: lib/ap_search.c:116
+#: lib/ap_search.c:122
 msgid "Can't set broadcast option on socket. Press any key."
 msgstr ""
 "Ne peut initialiser l'option de diffusion sur le socket. Appuyez sur une "
 "touche."
 
-#: lib/ap_search.c:125
+#: lib/ap_search.c:131
 msgid "Can't set multicast membership on socket. Press any key."
 msgstr ""
 "Ne peut initialiser le membership multicast sur le socket. Appuyez sur une "
 "touche."
 
-#: lib/ap_search.c:132
+#: lib/ap_search.c:138
 msgid "Scanning via network interface:"
 msgstr "Scan via l'interface réseau:"
 
-#: lib/ap_search.c:133
+#: lib/ap_search.c:139
 #, c-format
 msgid "  Index: %i"
 msgstr "  Index: %i"
 
-#: lib/ap_search.c:135
+#: lib/ap_search.c:141
 #, c-format
 msgid "  Name: %s"
 msgstr "  Nom: %s"
 
-#: lib/ap_search.c:137
+#: lib/ap_search.c:143
 #, c-format
 msgid "  IP: %s"
 msgstr "  IP: %s"
 
-#: lib/ap_search.c:146
+#: lib/ap_search.c:152
 #, c-format
 msgid "Scanning for AP with MIB type: %s"
 msgstr "Scan des Points d'accès ayant le type MIB: %s"
 
-#: lib/ap_search.c:334
-msgid "Please enter SNMP community name that will be used for AP detection."
-msgstr ""
-"SVP fournir le nom de la communauté SNMP qui sera utilisé pour la détection "
-"de Points d'accès"
-
-#: lib/ap_search.c:345
+#: lib/ap_search.c:378
 msgid "Access Points Search"
 msgstr "Recherche des Points d'accès"
 
-#: lib/ap_search.c:363
+#: lib/ap_search.c:396
 msgid "realloc() error."
 msgstr "erreur de realloc()."
 
-#: lib/ap_search.c:375
+#: lib/ap_search.c:408
 msgid "Network interface discovery error."
 msgstr "Erreur de l'interface réseau lors de la recherche en mode découverte"
 
-#: lib/ap_search.c:450
+#: lib/ap_search.c:483
 msgid "No local network interfaces found. Press any key."
 msgstr "Aucune interface locale réseau retrouvée. Appuyez sur une touche."
 
-#: lib/ap_search.c:452
+#: lib/ap_search.c:485
 msgid "No directly reachable Access Points found. Press any key."
 msgstr ""
 "Aucun Point d'accès directement atteignable n'a été retrouvé. Appuyez sur "
 "une touche."
 
-#: lib/ap_search.c:457
+#: lib/ap_search.c:490
 msgid "Single-screen maximum number of APs found."
 msgstr ""
 "Nombre maximum de Points d'accès retrouvés à afficher sur un seul écran."
 
-#: lib/ap_search.c:460
+#: lib/ap_search.c:493
 msgid "# - connect to AP; Q - quit"
 msgstr "# - connectés au Point d'accès; Q - quitter"
 
-#: lib/ap-utils.h:79
+#: lib/ap-utils.h:82
 msgid "MAC address: "
 msgstr "adresse MAC: "
 
-#: lib/ap-utils.h:80
+#: lib/ap-utils.h:83
 msgid "[S] SNMP traps: "
 msgstr "[S] Trappes SNMP: "
 
-#: lib/ap-utils.h:82
+#: lib/ap-utils.h:85
 msgid "[C] Frequency channel: "
 msgstr "[C] canal de fréquence: "
 
-#: lib/ap-utils.h:84
+#: lib/ap-utils.h:87
 msgid "Receive  antenna:"
 msgstr "Antenne de réception:"
 
-#: lib/ap-utils.h:85
+#: lib/ap-utils.h:88
 msgid "[U] Left"
 msgstr "[U] Gauche"
 
-#: lib/ap-utils.h:86
+#: lib/ap-utils.h:89
 msgid "[I] Right"
 msgstr "[I] Droite"
 
-#: lib/ap-utils.h:87
+#: lib/ap-utils.h:90
 msgid "Transmit antenna:"
 msgstr "Antenne de transmission:"
 
-#: lib/ap-utils.h:88
+#: lib/ap-utils.h:91
 msgid "[O] Left"
 msgstr "[O] Gauche"
 
-#: lib/ap-utils.h:89
+#: lib/ap-utils.h:92
 msgid "[P] Right"
 msgstr "[P] Droite"
 
-#: lib/ap-utils.h:90
+#: lib/ap-utils.h:93
 msgid "Diversity select:"
 msgstr "Sélection de la diversité: "
 
-#: lib/ap-utils.h:91
+#: lib/ap-utils.h:94
 msgid "[T] Left"
 msgstr "[T] Gauche"
 
-#: lib/ap-utils.h:92
+#: lib/ap-utils.h:95
 msgid "[Y] Right"
 msgstr "[Y] Droite"
 
-#: lib/ap-utils.h:94
+#: lib/ap-utils.h:97
 msgid "Yes"
 msgstr "Yes (Oui)"
 
-#: lib/ap-utils.h:95
+#: lib/ap-utils.h:98
 msgid "No"
 msgstr "No (Non)"
 
-#: lib/ap-utils.h:97
+#: lib/ap-utils.h:100
 msgid "On"
 msgstr "On"
 
-#: lib/ap-utils.h:98
+#: lib/ap-utils.h:101
 msgid "Off"
 msgstr "Off"
 
-#: lib/ap-utils.h:100
+#: lib/ap-utils.h:103
 msgid "Basic"
 msgstr "de base"
 
-#: lib/ap-utils.h:102
+#: lib/ap-utils.h:105
 msgid "Press any key to continue."
 msgstr "Appuyez sur une touche pour continuer"
 
-#: lib/ap-utils.h:103
-msgid "Q - quit to menu. T - toggle polling mode, Other key - force update."
+#: lib/ap-utils.h:106
+#, fuzzy
+msgid "Q - quit to menu. T - toggle polling mode, Other key - force update"
 msgstr ""
 "Q - quitter vers le menu. T - basculer en mode polling, Autre clé - forcer "
 "la mise à jour."
 
-#: lib/ap-utils.h:105
+#: lib/ap-utils.h:108
 msgid "Unable to write data to AP. Press any key to continue."
 msgstr ""
 "Incapable d'écrire les données sur le point d'accès. Appuyez sur une touche "
 "pour continuer."
 
-#: lib/ap-utils.h:106
+#: lib/ap-utils.h:109
 msgid "Unable to retrieve (valid) data from AP. Press any key to continue."
 msgstr ""
 "Incapable de récupérer les données valides à partir du Point d'accès. "
 "Appuyez sur une touche pour continuer."
 
-#: lib/ap-utils.h:107
-msgid "Trying to retrieve data from AP. Please wait..."
+#: lib/ap-utils.h:110
+#, fuzzy
+msgid "Trying to retrieve data from AP - please wait (or press Q to quit)."
 msgstr ""
 "Tentative de récupération des données du Point d'accès. SVP patientez..."
 
-#: lib/ap-utils.h:108
+#: lib/ap-utils.h:111
 msgid "Writing data to AP. Please wait..."
 msgstr "Écriture des données sur le point d'accès. SVP patientez..."
 
-#: lib/ap-utils.h:109
+#: lib/ap-utils.h:112
 msgid "Configuration written to the AP. Press any key to continue."
 msgstr ""
 "Configuration écrite dans le Point d'accès. Appuyez sur une touche pour "
 "continuer."
 
-#: lib/ap-utils.h:110
+#: lib/ap-utils.h:113
 msgid "select() function error. Press any key."
 msgstr "erreur de la fonction select(). Appuyez sur une touche."
 
-#: lib/ap-utils.h:112
-msgid "Create socket error. Press any key."
-msgstr "Erreur de création du socket. Appuyer sur n'importe quelle touche."
-
-#: lib/ap-utils.h:113
-msgid "Bind socket error. Press any key."
-msgstr "Erreur de liaison de socket (bind). Appuyer sur une touche."
+#: lib/ap-utils.h:114
+#, fuzzy
+msgid "socket() or bind() function error. Press any key."
+msgstr "erreur de la fonction select(). Appuyez sur une touche."
 
-#: lib/ap-utils.h:115
+#: lib/ap-utils.h:116
 msgid "Unable to write AP list file ~/.ap-config. Press any key."
 msgstr ""
 "Incapable d'écrire dans le fichier de la liste de Points d'accès ~/.ap-"
 "config. Appuyez sur une touche."
 
-#: lib/ap-utils.h:116
+#: lib/ap-utils.h:117
 msgid "AP list file ~/.ap-config successfully written. Press any key."
 msgstr ""
 "Succès d'écriture au fichier de la liste de Points d'accès ~/.ap-config. "
 "Appuyez sur une touche."
 
-#: lib/ap-utils.h:118
+#: lib/ap-utils.h:119
 msgid "Back to main menu"
 msgstr "De retour au menu principal"
 
-#: lib/ap-utils.h:119
+#: lib/ap-utils.h:120
 msgid "Exit program"
 msgstr "Quitter le programme"
 
-#: lib/ap-utils.h:120
+#: lib/ap-utils.h:121
 msgid "Run subshell. To return type 'exit'."
 msgstr "Exécuter le sous-shell. Pour retourner taper 'exit'."
 
-#: lib/ap-utils.h:121
+#: lib/ap-utils.h:122
+msgid "Change polling mode interval"
+msgstr ""
+
+#: lib/ap-utils.h:123
 msgid "Short info about program"
 msgstr "Infos courtes à propos du logiciel"
 
-#: lib/ap-utils.h:122
+#: lib/ap-utils.h:124
 msgid "Find connected Access Points"
 msgstr "Repérer les Points d'accès connectés"
 
-#: lib/ap-utils.h:123
+#: lib/ap-utils.h:125
 msgid "Set connection options: ip and community"
 msgstr "Sélectionnez les options de connexion: IP et Communauté"
 
-#: lib/ap-utils.h:124
+#: lib/ap-utils.h:126
 msgid "Set encryption; edit WEP keys"
 msgstr "Sélectionnez l'encryptage, éditez les clés WEP"
 
-#: lib/ap-utils.h:125
+#: lib/ap-utils.h:127
 #, fuzzy
 msgid "Set authorization; edit MAC authorization table"
 msgstr ""
 "Sélectionnez le type d'autorisation MAC, éditez la table d'autorisation MAC"
 
-#: lib/ap-utils.h:126
+#: lib/ap-utils.h:128
 msgid "Set SNMP community/password for access to the AP"
 msgstr ""
 "Sélectionnez la communauté/mot de passe SNMP pour accéder au Points d'accès"
 
-#: lib/ap-utils.h:127
+#: lib/ap-utils.h:129
 msgid "Get info about AP hardware and firmware"
 msgstr ""
 "Obtenir les infos à propos du matériel du Point d'accès matériel et logiciel "
 "(firmware)"
 
-#: lib/ap-utils.h:128
+#: lib/ap-utils.h:130
 msgid "Get wireless port statistics"
 msgstr "Obtenir les statistiques des ports sans fil"
 
-#: lib/ap-utils.h:129
+#: lib/ap-utils.h:131
 msgid "Get list of currently associated stations (Access Point clients)"
 msgstr ""
 "Obtenir la liste des stations courramment associées (clients des Points "
 "d'accès)"
 
-#: lib/ap-utils.h:130
+#: lib/ap-utils.h:132
 msgid "Get link status in APclient mode"
 msgstr ""
 
-#: lib/ap-utils.h:131
+#: lib/ap-utils.h:133
 msgid "Get info and statistics from AP"
 msgstr "Obtenir les infos et les statistiques des Points d'accès"
 
-#: lib/ap-utils.h:132
+#: lib/ap-utils.h:134
 msgid "Set various configuration options"
 msgstr "Initialiser diverses options de configuration"
 
-#: lib/ap-utils.h:134
+#: lib/ap-utils.h:136
 msgid "Associated stations"
 msgstr "Stations associées"
 
-#: lib/ap-utils.h:135
+#: lib/ap-utils.h:137
 #, fuzzy
 msgid "AP Client link state"
 msgstr "État du lien du Point d'accès"
 
-#: lib/ap-utils.h:137
+#: lib/ap-utils.h:139
 msgid "Polling: on"
 msgstr "Polling: on"
 
-#: lib/ap-utils.h:138
+#: lib/ap-utils.h:140
 msgid "Polling: off"
 msgstr "Polling: off"
 
@@ -509,163 +507,184 @@ msgstr ""
 "Téléchargement de la configuration complété. Appuyez sur une touche pour "
 "continuer."
 
-#: lib/common.c:30
+#: lib/common.c:32
 msgid "Access Point IP-address: "
 msgstr "Adresse-IP du Point d'accès: "
 
-#: lib/common.c:31
+#: lib/common.c:33
 msgid "Password (community): "
 msgstr "Mot de passe (communauté): "
 
-#: lib/common.c:32
+#: lib/common.c:34
 msgid "Autodetect AP MIB properties? "
 msgstr "Autodétection des propriétés MIB du Point d'accès?"
 
-#: lib/common.c:33
+#: lib/common.c:35
 msgid "AP MIB type: "
 msgstr "Type MIB du Point d'accès: "
 
-#: lib/common.c:34
+#: lib/common.c:36
 msgid "AP MIB vendor extensions: "
 msgstr "Extension MIB du manufacturier du Point d'accès: "
 
-#: lib/common.c:35
+#: lib/common.c:37
 msgid "Do you want to use AP's name as its label? "
 msgstr "Désirez-vous utiliser le nom du Point d'accès comme étiquette? "
 
-#: lib/common.c:36
+#: lib/common.c:38
 msgid "Access Point label: "
 msgstr "Étiquette du Point d'accès: "
 
-#: lib/common.c:37
+#: lib/common.c:39
 msgid "Save connect-settings: "
 msgstr "Sauvegarder la configuration de connexion: "
 
-#: lib/common.c:84 src/ap-config.c:154
+#: lib/common.c:40
+msgid "[P] Polling mode interval (tenths of second): "
+msgstr ""
+
+#: lib/common.c:41
+#, fuzzy
+msgid "P - change polling mode interval; Q - quit to menu"
+msgstr ""
+"[key] - initialiser l'option; W - sauvegarder la config.; Q - quitter vers "
+"le menu"
+
+#: lib/common.c:89 src/ap-config.c:158
 msgid "About"
 msgstr "À propos"
 
-#: lib/common.c:101
+#: lib/common.c:106
 #, c-format
 msgid "From %s"
 msgstr "À partir de %s"
 
-#: lib/common.c:103
+#: lib/common.c:108
 #, c-format
 msgid "Version %s"
 msgstr "Version %s"
 
-#: lib/common.c:106
+#: lib/common.c:111
 msgid "Written by Roman Festchook roma@polesye.net"
 msgstr "Écrit par Roman Festchook (roma@polesye.net)"
 
-#: lib/common.c:108
+#: lib/common.c:113
 #, fuzzy
 msgid "and Jan Rafaj jr-aputils@cedric.unob.cz"
 msgstr "Portions par Jan Rafaj aputils@cedric.unob.cz"
 
-#: lib/common.c:110
+#: lib/common.c:115
 #, fuzzy
 msgid "Copyright (c) 2001-2005"
 msgstr "Copyright © 2001-2004"
 
-#: lib/common.c:112
+#: lib/common.c:117
 msgid "Roman Festchook and Jan Rafaj"
 msgstr "Roman Festchook et Jan Rafaj"
 
-#: lib/common.c:115
+#: lib/common.c:120
 msgid "This program is distributed under the terms"
 msgstr "Ce logiciel est distribué selon les termes"
 
-#: lib/common.c:117
+#: lib/common.c:122
 msgid "of the GNU General Public License version 2."
 msgstr "de la GNU General Public License version 2."
 
-#: lib/common.c:119
+#: lib/common.c:124
 msgid "See the included COPYING file for details."
 msgstr "Consulter le fichier COPYING pour les détails."
 
-#: lib/common.c:175
+#: lib/common.c:165
 msgid "Connect options"
 msgstr "Option d'établissement de connexion"
 
-#: lib/common.c:183
+#: lib/common.c:173
 msgid "Enter IP address of your Access Point."
 msgstr "Entrer l'adresse IP de votre point d'accès"
 
-#: lib/common.c:192
+#: lib/common.c:182
 msgid "Entered characters will not be displayed for security reason."
 msgstr ""
 "Caractères saisies ne seront pas affichés pour des raisons de sécurité."
 
-#: lib/common.c:259
+#: lib/common.c:249
 msgid "This label will be stored on HDD (independently on AP name!)."
 msgstr ""
 "Cette étiquette sera stocké sur le disque dur (indépendamment du nom du "
 "Point d'accès!)."
 
-#: lib/common.c:370
+#: lib/common.c:362
 msgid "Trying to probe AP for MIB properties. Please wait..."
 msgstr ""
 "Tentative de scrutation des propriétés MIB du Point d'accès. SVP patienter..."
 
-#: lib/common.c:399
+#: lib/common.c:391
 msgid ""
 "Unable to determine AP MIB properties (no response from AP). Press any key."
 msgstr ""
 "Incapable de déterminer les propriétés MIB du Point d'accès (pas de "
 "réponse). Appuyez sur une touche pour continuer."
 
-#: lib/file.c:205
+#: lib/common.c:489 lib/set_oeminfo.c:221
+#, c-format
+msgid "%s%u"
+msgstr ""
+
+#: lib/common.c:491
+#, c-format
+msgid "(%0.1f seconds)"
+msgstr ""
+
+#: lib/file.c:199
 msgid "NUM  IP ADDRESS       MIB TYPE    MIB EXT.  LABEL"
 msgstr "NUM  ADRESSE IP       TYPE MIB    EXT.MIB   ÉTIQUTTE"
 
-#: lib/file.c:206
+#: lib/file.c:200
 msgid "Choose an AP to connect to"
 msgstr "Choisir un Point d'accès pour établir une connexion"
 
-#: lib/file.c:212
+#: lib/file.c:206
 msgid "1-9,C: connect; N: new; D: delete; W: save; Q: quit; arrows: scroll"
 msgstr ""
 "1-9,C: connect; N: nouveau; D: détruire; W: sauvegarder; Q: quitter; "
 "flèches: défiler"
 
-#: lib/file.c:268
+#: lib/file.c:257
 msgid "Connect to AP num:"
 msgstr "Connexion avec AP numéro:"
 
-#: lib/file.c:304
+#: lib/file.c:288
 msgid "Delete num:"
 msgstr "Détruire num:"
 
-#: lib/file.c:458
+#: lib/file.c:442
 msgid "Unable to write stations file. Press any key."
 msgstr ""
 "Incapable d'écrire dans le fichier des stations. Appuyez sur une touche pour "
 "continuer."
 
-#: lib/file.c:460
+#: lib/file.c:444
 msgid "Stations file succesfully written. Press any key."
 msgstr "Succès d'écriture au fichier des stations. Appuyez sur une touche."
 
-#: lib/input.c:33
+#: lib/input.c:32
 msgid "Invalid value. Press any key to continue."
 msgstr "Valeur invalide. Appuyez sur une touche."
 
-#: lib/input.c:34
+#: lib/input.c:33
 #, c-format
 msgid "Value must be in range %u - %u. Press any key to continue."
 msgstr ""
 "La valeur doit être contenue entre les bornes %u - %u. Appuyez sur une "
 "touche pour continuer."
 
-#: lib/input.c:413
+#: lib/input.c:460
 msgid "Y - Yes; Any other key - No (it's safer to answer No)"
 msgstr ""
 "Y - Oui; N'importe quelle autre touche - Non (il est plus sûr de répondre No "
 "pour non)"
 
-#: lib/oui.c:6058
+#: lib/oui.c:6061
 msgid "Unknown or Private"
 msgstr "Inconnu ou privé"
 
@@ -708,7 +727,7 @@ msgstr ""
 "Vous ne pouvez pas désactiver les deux antennes, incapable de sauvegarder la "
 "config. des antennes. Appuyez sur une touche."
 
-#: lib/scr.c:156
+#: lib/scr.c:157
 #, c-format
 msgid "Current AP: %s Type: %s Ext: %s"
 msgstr "Point d'accès courant: %s Type: %s Ext: %s"
@@ -888,11 +907,6 @@ msgstr ""
 msgid "OEM Info settings"
 msgstr ""
 
-#: lib/set_oeminfo.c:221
-#, c-format
-msgid "%s%u"
-msgstr ""
-
 #: lib/stat.c:29
 msgid "Ethernet Statistics"
 msgstr "Statistiques Ethernet"
@@ -929,186 +943,186 @@ msgstr "Description syst
 msgid "System Info"
 msgstr "Info système"
 
-#: lib/sysinfo.c:54 src/bridge.c:86
+#: lib/sysinfo.c:55 src/bridge.c:50
 msgid "Wireless Bridge Point to MultiPoint"
 msgstr "Point d'accès pont sans fil vers Multi-point"
 
-#: lib/sysinfo.c:55 src/bridge.c:87
+#: lib/sysinfo.c:56 src/bridge.c:51
 msgid "Access Point"
 msgstr "Point d'accès"
 
-#: lib/sysinfo.c:56 src/bridge.c:88
+#: lib/sysinfo.c:57 src/bridge.c:52
 msgid "Access Point client"
 msgstr "Point d'accès client"
 
-#: lib/sysinfo.c:57 src/bridge.c:89
+#: lib/sysinfo.c:58 src/bridge.c:53
 msgid "Wireless Bridge Point to Point"
 msgstr "Point pont sans fil vers un point"
 
-#: lib/sysinfo.c:58 src/bridge.c:90
+#: lib/sysinfo.c:59 src/bridge.c:54
 msgid "Repeater"
 msgstr "Répéteur"
 
-#: lib/sysinfo.c:59 lib/sysinfo.c:314 lib/sysinfo.c:423 src/bridge.c:91
+#: lib/sysinfo.c:60 lib/sysinfo.c:315 lib/sysinfo.c:424 src/bridge.c:55
 msgid "unknown"
 msgstr "inconnu"
 
-#: lib/sysinfo.c:143
+#: lib/sysinfo.c:144
 msgid "Device hardware/software/name info:"
 msgstr "Info du périphérique matériel/logiciel/nom:"
 
-#: lib/sysinfo.c:171
+#: lib/sysinfo.c:172
 #, fuzzy, c-format
 msgid "Operational mode: %s"
 msgstr "[O] Mode opérationnel: "
 
-#: lib/sysinfo.c:181
+#: lib/sysinfo.c:182
 #, fuzzy
 msgid "Product name: "
 msgstr "Nom du produit:"
 
-#: lib/sysinfo.c:185
+#: lib/sysinfo.c:186
 #, c-format
 msgid "Product type: %u"
 msgstr "Type de produit: %u"
 
-#: lib/sysinfo.c:188
+#: lib/sysinfo.c:189
 #, fuzzy
 msgid "OEM name: "
 msgstr "Nom OEM:"
 
-#: lib/sysinfo.c:195
+#: lib/sysinfo.c:196
 #, c-format
 msgid "Hardware revision: %u"
 msgstr "Révision matérielle: %u"
 
-#: lib/sysinfo.c:203
+#: lib/sysinfo.c:204
 #, c-format
 msgid "Info structure version: %u"
 msgstr "Version des infos de structure: %u"
 
-#: lib/sysinfo.c:206 lib/sysinfo.c:382
+#: lib/sysinfo.c:207 lib/sysinfo.c:383
 #, c-format
 msgid "Manufacturer OUI: %02X %02X %02X (%s)"
 msgstr "OUI du manufacturier: %02X %02X %02X (%s)"
 
-#: lib/sysinfo.c:223
+#: lib/sysinfo.c:224
 #, c-format
 msgid "Uptime: %u days, %02u:%02u:%02u hours:mins:secs"
 msgstr "Temps de marche (uptime): %u jours, %02u:%02u:%02u heures:mins:secs"
 
-#: lib/sysinfo.c:311
+#: lib/sysinfo.c:312
 msgid "FHSS 2.4 GHz"
 msgstr "FHSS 2.4 GHz"
 
-#: lib/sysinfo.c:311
+#: lib/sysinfo.c:312
 msgid "DSSS 2.4 GHz"
 msgstr "DSSS 2.4 GHz"
 
-#: lib/sysinfo.c:311
+#: lib/sysinfo.c:312
 msgid "IR Baseband"
 msgstr "Fréquence de base IR"
 
-#: lib/sysinfo.c:312
+#: lib/sysinfo.c:313
 msgid "Commercial range 0..40 C"
 msgstr "Étendue commerciale 0..40 C"
 
-#: lib/sysinfo.c:313
+#: lib/sysinfo.c:314
 msgid "Industrial range -30..70 C"
 msgstr "Étendue industrielle -30..70 C"
 
-#: lib/sysinfo.c:316
+#: lib/sysinfo.c:317
 msgid "manual"
 msgstr "manuel"
 
-#: lib/sysinfo.c:316
+#: lib/sysinfo.c:317
 msgid "notsupported"
 msgstr "non supporté"
 
-#: lib/sysinfo.c:316
+#: lib/sysinfo.c:317
 msgid "dynamic"
 msgstr "dynamique"
 
-#: lib/sysinfo.c:372
+#: lib/sysinfo.c:373
 msgid "Manufacturer:"
 msgstr "Manufacturier"
 
-#: lib/sysinfo.c:377
+#: lib/sysinfo.c:378
 msgid "Manufacturer ID:"
 msgstr "Identificateur du manufacturier"
 
-#: lib/sysinfo.c:388
+#: lib/sysinfo.c:389
 msgid "Product Name:"
 msgstr "Nom de produit:"
 
-#: lib/sysinfo.c:394
+#: lib/sysinfo.c:395
 msgid "Product ID:"
 msgstr "Identificateur du produit:"
 
-#: lib/sysinfo.c:400
+#: lib/sysinfo.c:401
 msgid "Product Version:"
 msgstr "Version du produit:"
 
-#: lib/sysinfo.c:406
+#: lib/sysinfo.c:407
 #, c-format
 msgid "PHYType: %s"
 msgstr "Type PHY: %s"
 
-#: lib/sysinfo.c:409
+#: lib/sysinfo.c:410
 #, c-format
 msgid "Temperature: %s"
 msgstr "Température: %s"
 
-#: lib/sysinfo.c:417
+#: lib/sysinfo.c:418
 #, c-format
 msgid "Regulatory Domain: %s"
 msgstr "Domaine régulateur: %s"
 
-#: lib/sysinfo.c:418
+#: lib/sysinfo.c:419
 msgid "FCC (USA)"
 msgstr "FCC (EU)"
 
-#: lib/sysinfo.c:419
+#: lib/sysinfo.c:420
 msgid "DOC (Canada)"
 msgstr "DOC (Canada)"
 
-#: lib/sysinfo.c:420
+#: lib/sysinfo.c:421
 msgid "ETSI (Europe)"
 msgstr "ETSI (Europe)"
 
-#: lib/sysinfo.c:421
+#: lib/sysinfo.c:422
 msgid "Spain"
 msgstr "Espagne"
 
-#: lib/sysinfo.c:422
+#: lib/sysinfo.c:423
 msgid "France"
 msgstr "France"
 
-#: lib/sysinfo.c:423
+#: lib/sysinfo.c:424
 msgid "MKK (Japan)"
 msgstr "MKK (Japon)"
 
-#: lib/sysinfo.c:426
+#: lib/sysinfo.c:427
 #, c-format
 msgid "Transmit Power: %u mW"
 msgstr "Puissance de transmission: %u mW"
 
-#: lib/sysinfo.c:456
+#: lib/sysinfo.c:457
 #, c-format
 msgid "WEP implemented: %s"
 msgstr "WEP non implanté: %s"
 
-#: lib/sysinfo.c:459
+#: lib/sysinfo.c:460
 #, c-format
 msgid "Diversity: %s"
 msgstr "Diversité: %s"
 
-#: lib/sysinfo.c:487
+#: lib/sysinfo.c:488
 #, c-format
 msgid "Uptime: %u:%02u:%02u.%02u"
 msgstr "Temps de marche (uptime): %u:%02u:%02u.%02u"
 
-#: lib/sysinfo.c:507
+#: lib/sysinfo.c:508
 #, c-format
 msgid "IP  Address: %s"
 msgstr "Adresse IP: %s"
@@ -1300,7 +1314,7 @@ msgstr "[D] intervalle de transmission DTIM (balises): "
 
 #: lib/wlan.c:48
 #, fuzzy
-msgid "[T] SIFS time (ACK timeout) msec: "
+msgid "[T] SIFS time (2nd+ interframe spacing, usec): "
 msgstr "[T] temps SIFS (msec): "
 
 #: lib/wlan.c:49
@@ -1317,19 +1331,19 @@ msgstr "Court"
 msgid "Long"
 msgstr "Long"
 
-#: lib/wlan.c:237
+#: lib/wlan.c:239
 msgid "Wireless Settings"
 msgstr "Paramétrage du sans fil"
 
-#: lib/wlan.c:731
+#: lib/wlan.c:735
 msgid "Antenna Configuration:"
 msgstr "Configuration de l'antenne:"
 
-#: lib/wlan.c:748
+#: lib/wlan.c:752
 msgid "General Options"
 msgstr "Options générales"
 
-#: lib/wlan.c:750
+#: lib/wlan.c:754
 msgid ""
 "UIOPTY - antenna; SCANLEDFR1234 - options; W - write conf; Q - quit to menu"
 msgstr ""
@@ -1356,7 +1370,7 @@ msgstr ""
 msgid "Error closing file"
 msgstr ""
 
-#: src/ap-auth.c:45 src/ap-mrtg.c:42 src/ap-rrd.c:42
+#: src/ap-auth.c:44 src/ap-mrtg.c:41 src/ap-rrd.c:40
 msgid ""
 "\n"
 "Usage:\n"
@@ -1364,41 +1378,41 @@ msgstr ""
 "\n"
 "Usage:\n"
 
-#: src/ap-auth.c:46
+#: src/ap-auth.c:45
 msgid "\tap-auth -i ip -c community -d filename [-h]\n"
 msgstr ""
 
-#: src/ap-auth.c:47
+#: src/ap-auth.c:46
 msgid ""
 "\tap-auth -i ip -c community -u filename [-h]\n"
 "\n"
 msgstr ""
 
-#: src/ap-auth.c:48
+#: src/ap-auth.c:47
 msgid ""
 "Change accesspoint's list of authorised MAC addresses\n"
 "\n"
 msgstr ""
 
-#: src/ap-auth.c:49 src/ap-mrtg.c:46 src/ap-rrd.c:47
+#: src/ap-auth.c:48 src/ap-mrtg.c:45 src/ap-rrd.c:45
 msgid "-i ip        - AP ip address\n"
 msgstr "-i ip        - adresse ip AP\n"
 
-#: src/ap-auth.c:50 src/ap-mrtg.c:47 src/ap-rrd.c:48
+#: src/ap-auth.c:49 src/ap-mrtg.c:46 src/ap-rrd.c:46
 msgid "-c community - SNMP community string\n"
 msgstr "-c communauté   chaîne de la communauté SNMP\n"
 
-#: src/ap-auth.c:51
+#: src/ap-auth.c:50
 msgid ""
 "-d filename  - download list of authorised MAC addresses from AP to a file\n"
 msgstr ""
 
-#: src/ap-auth.c:53
+#: src/ap-auth.c:52
 msgid ""
 "-u filename  - upload list of authorised MAC addresses from a file to AP\n"
 msgstr ""
 
-#: src/ap-auth.c:55 src/ap-mrtg.c:56 src/ap-rrd.c:57
+#: src/ap-auth.c:54 src/ap-mrtg.c:55 src/ap-rrd.c:55
 msgid ""
 "-h           - print this help screen\n"
 "\n"
@@ -1406,7 +1420,7 @@ msgstr ""
 "-h           afficher l'aide\n"
 "\n"
 
-#: src/ap-auth.c:56
+#: src/ap-auth.c:55
 #, fuzzy, c-format
 msgid ""
 "ap-auth %s Copyright (c) 2004 Teemu Kiviniemi\n"
@@ -1415,225 +1429,251 @@ msgstr ""
 "ap-mrtg %s Copyright © 2002-2003 Roman Festchook\n"
 "\n"
 
-#: src/ap-auth.c:146 src/ap-mrtg.c:139
+#: src/ap-auth.c:138 src/ap-mrtg.c:132
 #, fuzzy
 msgid "Error: invalid IP-address.\n"
 msgstr "Adresse IP invalide\n"
 
-#: src/ap-auth.c:178 src/ap-mrtg.c:178 src/ap-rrd.c:207
-msgid "Create socket error"
-msgstr "Erreur de création de socket"
-
-#: src/ap-auth.c:182 src/ap-mrtg.c:182 src/ap-rrd.c:211
-msgid "Bind socket error"
-msgstr "Erreur de liaison (bind) du socket"
-
-#: src/ap-auth.c:220 src/ap-mrtg.c:220
+#: src/ap-auth.c:203 src/ap-mrtg.c:204
 #, fuzzy
 msgid "Unable to determine AP MIB type (no response from AP)."
 msgstr ""
 "Incapable de déterminer les propriétés MIB du Point d'accès (pas de "
 "réponse). Appuyez sur une touche pour continuer."
 
-#: src/ap-auth.c:228
+#: src/ap-auth.c:211
 msgid "NWN devices are not yet supported."
 msgstr ""
 
-#: src/ap-config.c:41 src/bridge.c:200
+#: src/ap-config.c:43 src/bridge.c:201
 msgid "Bridging"
 msgstr "Établissement d'un pont"
 
-#: src/ap-config.c:41
+#: src/ap-config.c:43
 msgid "Set bridging and IP-related options"
 msgstr "Configuré les options relative au pont et à IP"
 
-#: src/ap-config.c:43 src/ap-config.c:112 src/ap-config.c:121 src/bridge.c:124
+#: src/ap-config.c:45 src/ap-config.c:114 src/ap-config.c:123 src/bridge.c:125
 msgid "Wireless"
 msgstr "Sans fil"
 
-#: src/ap-config.c:43
+#: src/ap-config.c:45
 msgid "Set wireless options"
 msgstr "Configurer les options sans fil"
 
-#: src/ap-config.c:44 src/ap-config.c:56
+#: src/ap-config.c:46 src/ap-config.c:58
 msgid "Privacy"
 msgstr "Privée"
 
-#: src/ap-config.c:45
+#: src/ap-config.c:47
 #, fuzzy
 msgid "Auth"
 msgstr "À propos"
 
-#: src/ap-config.c:46 src/ap-config.c:58
+#: src/ap-config.c:48 src/ap-config.c:60
 msgid "Community"
 msgstr "Communauté"
 
-#: src/ap-config.c:47
+#: src/ap-config.c:49
 msgid "Radio"
 msgstr "Radio"
 
-#: src/ap-config.c:47
+#: src/ap-config.c:49
 msgid "Set radio signal power and antenna options"
 msgstr ""
 "Sélectionner les options pour l'antenne et la puissance du signal radio"
 
-#: src/ap-config.c:54
+#: src/ap-config.c:56
 msgid "General"
 msgstr "Général"
 
-#: src/ap-config.c:54
+#: src/ap-config.c:56
 msgid "Set general options"
 msgstr "Initialiser les options générales"
 
-#: src/ap-config.c:55
+#: src/ap-config.c:57
 msgid "Advanced"
 msgstr "Avancé"
 
-#: src/ap-config.c:55
+#: src/ap-config.c:57
 msgid "Set advanced options"
 msgstr "Initialiser les options avancées"
 
-#: src/ap-config.c:57
+#: src/ap-config.c:59
 msgid "MAC auth"
 msgstr "Authenfication MAC"
 
-#: src/ap-config.c:80
+#: src/ap-config.c:82
 msgid "Upload"
 msgstr "Téléchargement"
 
-#: src/ap-config.c:80
+#: src/ap-config.c:82
 msgid "Activate current configuration"
 msgstr "Activer la configuration courante"
 
-#: src/ap-config.c:81
+#: src/ap-config.c:83
 msgid "Defaults"
 msgstr "Défauts"
 
-#: src/ap-config.c:81
+#: src/ap-config.c:83
 msgid "Restore factory default settings"
 msgstr "Restaurer les paramètres par défaut du manufacturier"
 
-#: src/ap-config.c:82 src/ap-config.c:89
+#: src/ap-config.c:84 src/ap-config.c:91
 msgid "Reset"
 msgstr "Réinitialisation"
 
-#: src/ap-config.c:83
+#: src/ap-config.c:85
 msgid "Reset AP. All not uploaded configuration will be lost"
 msgstr ""
 "Réinitialiser le point d'accès. Toutes les config. non préservées seront "
 "perdues."
 
-#: src/ap-config.c:84
+#: src/ap-config.c:86
 msgid "TestMode"
 msgstr "Mode test"
 
-#: src/ap-config.c:84
+#: src/ap-config.c:86
 msgid "Put Access Point in test mode"
 msgstr "Placer le point d'accès en mode test."
 
-#: src/ap-config.c:89
+#: src/ap-config.c:91
 msgid "Reset AP."
 msgstr "Réinitialisation du point d'accès."
 
-#: src/ap-config.c:110 src/ap-config.c:120
+#: src/ap-config.c:112 src/ap-config.c:122
 msgid "SysInfo"
 msgstr "SysInfo"
 
-#: src/ap-config.c:111 src/bridge.c:123 src/bridge.c:127
+#: src/ap-config.c:113 src/bridge.c:124 src/bridge.c:127
 msgid "Ethernet"
 msgstr "Ethernet"
 
-#: src/ap-config.c:111
+#: src/ap-config.c:113
 msgid "Get ethernet port statistics"
 msgstr "Obtenir les statistiques des ports Ethernet"
 
-#: src/ap-config.c:113 src/ap-config.c:122
+#: src/ap-config.c:115 src/ap-config.c:124
 msgid "Stations"
 msgstr "Stations"
 
-#: src/ap-config.c:114
+#: src/ap-config.c:116
 #, fuzzy
 msgid "AP link"
 msgstr "État du lien du Point d'accès"
 
-#: src/ap-config.c:115
+#: src/ap-config.c:117
 msgid "KnownAPs"
 msgstr "Point d'accès connus"
 
-#: src/ap-config.c:115
+#: src/ap-config.c:117
 msgid "Get info about known Access Points"
 msgstr "Obtenir les info des points d'accès connus"
 
-#: src/ap-config.c:123
+#: src/ap-config.c:125
 msgid "Latest"
 msgstr "Dernier"
 
-#: src/ap-config.c:123
+#: src/ap-config.c:125
 msgid "Get info about latest events"
 msgstr "Obtenir les infos à propos des derniers événements"
 
-#: src/ap-config.c:148
+#: src/ap-config.c:150
 msgid "Info"
 msgstr "Info"
 
-#: src/ap-config.c:149
+#: src/ap-config.c:151
 msgid "Config"
 msgstr "Config"
 
-#: src/ap-config.c:150
+#: src/ap-config.c:152
 msgid "Commands"
 msgstr "Commandes"
 
-#: src/ap-config.c:150
+#: src/ap-config.c:152
 msgid "Execute commands on Access Point"
 msgstr "Exécuter les commandes sur le point d'accès"
 
-#: src/ap-config.c:152
+#: src/ap-config.c:154
 msgid "Connect"
 msgstr "Connecter"
 
-#: src/ap-config.c:153
+#: src/ap-config.c:155
 msgid "Search"
 msgstr "Chercher"
 
-#: src/ap-config.c:155
+#: src/ap-config.c:156
+#, fuzzy
+msgid "Polling"
+msgstr "Polling: on"
+
+#: src/ap-config.c:157
 msgid "Shell"
 msgstr "Shell"
 
-#: src/ap-config.c:156
+#: src/ap-config.c:159
 msgid "Exit"
 msgstr "Quitter"
 
-#: src/ap-config.c:214
+#: src/ap-config.c:218
 #, c-format
 msgid "Wireless Access Point Configurator ver. %s"
 msgstr "Configurateur de point d'accès sans fil version %s"
 
-#: src/aplink.c:28
+#: src/aplink.c:25
 msgid "RSSI:     ["
 msgstr ""
 
-#: src/aplink.c:29
+#: src/aplink.c:26
 msgid "RSSI avg: ["
 msgstr ""
 
-#: src/aplink.c:30
+#: src/aplink.c:27
 msgid "RSSI top: ["
 msgstr ""
 
-#: src/aplink.c:112
+#: src/aplink.c:28
+msgid "RSSI rou: ["
+msgstr ""
+
+#: src/aplink.c:29
+#, fuzzy
+msgid ""
+"P - pause, T - toggle graph view, Q - quit to menu, Other key - force update."
+msgstr ""
+"Q - quitter vers le menu. T - basculer en mode polling, Autre clé - forcer "
+"la mise à jour."
+
+#: src/aplink.c:81
+msgid "RSSI [%]"
+msgstr ""
+
+#: src/aplink.c:82
+msgid "RSSI average [%]"
+msgstr ""
+
+#: src/aplink.c:83
+msgid "RSSI rounded [%]"
+msgstr ""
+
+#: src/aplink.c:84
+#, fuzzy
+msgid "Link Quality [%]"
+msgstr "; LQ: qualité du lien [%]"
+
+#: src/aplink.c:133
 msgid "Not available - device must have firmware with necessary "
 msgstr ""
 
-#: src/aplink.c:114
+#: src/aplink.c:135
 msgid "vendor extensions and be in either 'Access Point client'"
 msgstr ""
 
-#: src/aplink.c:116
+#: src/aplink.c:137
 msgid "or 'Repeater' mode."
 msgstr ""
 
-#: src/ap-mrtg.c:43
+#: src/ap-mrtg.c:42
 #, fuzzy
 msgid ""
 "\tap-mrtg -i ip -c community -t type [-b bssid] [-n name] [-v] [-h] [-r]\n"
@@ -1643,7 +1683,7 @@ msgstr ""
 "[-h] [-r]\n"
 "\n"
 
-#: src/ap-mrtg.c:45
+#: src/ap-mrtg.c:44
 msgid ""
 "Get stats from AP and return it in MRTG parsable format\n"
 "\n"
@@ -1651,7 +1691,7 @@ msgstr ""
 "Obtenir les statistiques de l'AP et les retourner dans un format MRTG\n"
 "\n"
 
-#: src/ap-mrtg.c:48
+#: src/ap-mrtg.c:47
 #, fuzzy
 msgid ""
 "-t type      - statistics type <w>ireless, <e>thernet, associated <s>tations "
@@ -1660,11 +1700,11 @@ msgstr ""
 "-t type      type de statistiques <w> sans fil, <e>thernet, <s>tations "
 "associées ou qualité du <l>ien en mode client\n"
 
-#: src/ap-mrtg.c:50
+#: src/ap-mrtg.c:49
 msgid "work with ATMEL410 MIB devices in AP Client mode)\n"
 msgstr ""
 
-#: src/ap-mrtg.c:51
+#: src/ap-mrtg.c:50
 #, fuzzy
 msgid ""
 "-b bssid     - mac address of the AP from which get link quality, only if "
@@ -1673,22 +1713,22 @@ msgstr ""
 "-b bssid     adresse MAC de l'AP pour obtenir la qualité du lien, seulement "
 "si le type=l\n"
 
-#: src/ap-mrtg.c:53
+#: src/ap-mrtg.c:52
 #, fuzzy
 msgid "-n name      - AP name - for check only\n"
 msgstr "-n nom      - nom du Point d'accès - pour vérification seulement\n"
 
-#: src/ap-mrtg.c:54
+#: src/ap-mrtg.c:53
 msgid "-v           - report MRTG about problems connecting to AP\n"
 msgstr "-v           rapporter MRTG à propos de problème de connexion à l'AP\n"
 
-#: src/ap-mrtg.c:55 src/ap-rrd.c:56
+#: src/ap-mrtg.c:54 src/ap-rrd.c:54
 msgid "-r           - reset AP when getting LinkQuality stats\n"
 msgstr ""
 "-r           réinitialise l'AP lors de l'obtention des statistiques de "
 "LinkQuality\n"
 
-#: src/ap-mrtg.c:57
+#: src/ap-mrtg.c:56
 #, c-format
 msgid ""
 "ap-mrtg %s Copyright (c) 2002-2003 Roman Festchook\n"
@@ -1697,7 +1737,12 @@ msgstr ""
 "ap-mrtg %s Copyright © 2002-2003 Roman Festchook\n"
 "\n"
 
-#: src/ap-rrd.c:44
+#: src/ap-rrd.c:32
+#, c-format
+msgid "Error getting data from AP %s\n"
+msgstr ""
+
+#: src/ap-rrd.c:42
 #, fuzzy
 msgid ""
 "\tap-rrd -i ip -c community -t type -d db_file [-b bssid] [-n name] [-a "
@@ -1708,7 +1753,7 @@ msgstr ""
 "[-h] [-r]\n"
 "\n"
 
-#: src/ap-rrd.c:46
+#: src/ap-rrd.c:44
 #, fuzzy
 msgid ""
 "Get stats from AP and put it in to specified RRDtool database\n"
@@ -1717,7 +1762,7 @@ msgstr ""
 "Obtenir les statistiques de l'AP et les retourner dans un format MRTG\n"
 "\n"
 
-#: src/ap-rrd.c:50
+#: src/ap-rrd.c:48
 msgid ""
 "-t type      - statistics type <w>ireless, <e>thernet, associated <s>tations "
 "or <l>ink quality in client mode\n"
@@ -1725,11 +1770,11 @@ msgstr ""
 "-t type      type de statistiques <w> sans fil, <e>thernet, <s>tations "
 "associées ou qualité du <l>ien en mode client\n"
 
-#: src/ap-rrd.c:51
+#: src/ap-rrd.c:49
 msgid "-d db_file   - RRD database file with full path\n"
 msgstr ""
 
-#: src/ap-rrd.c:53
+#: src/ap-rrd.c:51
 msgid ""
 "-b bssid     - mac address of the AP to which get link quality, only if "
 "type=l\n"
@@ -1737,11 +1782,11 @@ msgstr ""
 "-b bssid     adresse MAC de l'AP pour obtenir la qualité du lien, seulement "
 "si le type=l\n"
 
-#: src/ap-rrd.c:54
+#: src/ap-rrd.c:52
 msgid "-n name     - AP name - for check only\n"
 msgstr "-n nom      - nom du Point d'accès - pour vérification seulement\n"
 
-#: src/ap-rrd.c:55
+#: src/ap-rrd.c:53
 #, fuzzy
 msgid ""
 "-a aptype    - AP type - 410 (default) or 510 for ATMEL12350's, like the ME-"
@@ -1750,7 +1795,7 @@ msgstr ""
 "-a type_Pa       - type de Point d'accès - 410 (par défaut) ou 510 pour "
 "ATMEL12350's, identique au ME-102\n"
 
-#: src/ap-rrd.c:58
+#: src/ap-rrd.c:56
 #, fuzzy, c-format
 msgid ""
 "ap-rrd %s Copyright (c) 2002-2004 Roman Festchook\n"
@@ -1759,162 +1804,163 @@ msgstr ""
 "ap-mrtg %s Copyright © 2002-2003 Roman Festchook\n"
 "\n"
 
-#: src/ap-rrd.c:142
+#: src/ap-rrd.c:133
 msgid "Invalid IP-address\n"
 msgstr "Adresse IP invalide\n"
 
-#: src/ap-rrd.c:188
+#: src/ap-rrd.c:179
 #, c-format
 msgid "Invalid AP-Type '%s' - valid types are 510 or 410\n"
 msgstr ""
 "Type de Point d'accès invalide '%s' - les types valides sont 510 ou 410\n"
 
-#: src/ap-tftp.c:81
+#: src/ap-tftp.c:84
 #, fuzzy
 msgid "yes"
 msgstr "Yes (Oui)"
 
-#: src/ap-tftp.c:82
+#: src/ap-tftp.c:85
 #, fuzzy
 msgid "no"
 msgstr "Info"
 
-#: src/ap-tftp.c:84
+#: src/ap-tftp.c:87
 msgid "Error while read()ing firmware file"
 msgstr ""
 
-#: src/ap-tftp.c:88
+#: src/ap-tftp.c:100
 msgid "Undefined error"
 msgstr ""
 
-#: src/ap-tftp.c:89
+#: src/ap-tftp.c:101
 msgid "File not found"
 msgstr ""
 
-#: src/ap-tftp.c:90
+#: src/ap-tftp.c:102
 #, fuzzy
 msgid "Access violation"
 msgstr "Point d'accès"
 
-#: src/ap-tftp.c:91
+#: src/ap-tftp.c:103
 msgid "Disk full or allocation error"
 msgstr ""
 
-#: src/ap-tftp.c:92
+#: src/ap-tftp.c:104
 msgid "Illegal TFTP operation"
 msgstr ""
 
-#: src/ap-tftp.c:93
+#: src/ap-tftp.c:105
 msgid "Unknown transfer ID"
 msgstr ""
 
-#: src/ap-tftp.c:94
+#: src/ap-tftp.c:106
 msgid "File already exists"
 msgstr ""
 
-#: src/ap-tftp.c:95
+#: src/ap-tftp.c:107
 msgid "No such user"
 msgstr ""
 
-#: src/ap-tftp.c:161
+#: src/ap-tftp.c:157
 msgid "Remote-filename too long.\n"
 msgstr ""
 
-#: src/ap-tftp.c:187
+#: src/ap-tftp.c:183
 #, c-format
 msgid "%sError in read()"
 msgstr ""
 
-#: src/ap-tftp.c:215
+#: src/ap-tftp.c:212
 #, c-format
 msgid "sending %u bytes\n"
 msgstr ""
 
-#: src/ap-tftp.c:224
+#: src/ap-tftp.c:221
 #, c-format
 msgid "%sError in sendto()"
 msgstr ""
 
-#: src/ap-tftp.c:247
+#: src/ap-tftp.c:244
 #, c-format
 msgid "%sError in recvfrom()"
 msgstr ""
 
-#: src/ap-tftp.c:261
+#: src/ap-tftp.c:256
 #, c-format
-msgid "\rProgress: uploaded %.0f %%."
+msgid "\rProgress: uploaded %3i%%."
 msgstr ""
 
-#: src/ap-tftp.c:272
+#: src/ap-tftp.c:267
 #, c-format
 msgid "%sMalformed packet received. Aborting.\n"
 msgstr ""
 
-#: src/ap-tftp.c:281
+#: src/ap-tftp.c:276
 #, c-format
 msgid "%sTimed out waiting for response from server (%i/%i).\n"
 msgstr ""
 
-#: src/ap-tftp.c:288
+#: src/ap-tftp.c:283
 #, c-format
 msgid "%sError in select()"
 msgstr ""
 
-#: src/ap-tftp.c:302
+#: src/ap-tftp.c:297
 #, c-format
 msgid "Received %d bytes: %04x %04x\n"
 msgstr ""
 
-#: src/ap-tftp.c:313
+#: src/ap-tftp.c:308
 #, c-format
 msgid "%sError: server responded with %s. Aborting.\n"
 msgstr ""
 
-#: src/ap-tftp.c:320
+#: src/ap-tftp.c:315
 #, c-format
 msgid "%sFlash programming in progress...\n"
 msgstr ""
 
-#: src/ap-tftp.c:322
+#: src/ap-tftp.c:317
 msgid "Finished successfully.\n"
 msgstr ""
 
-#: src/ap-tftp.c:340
+#: src/ap-tftp.c:335
 msgid "PLEASE BE _ABSOLUTELY_ SURE TO READ MANPAGE PRIOR USE!!!\n"
 msgstr ""
 
-#: src/ap-tftp.c:341
+#: src/ap-tftp.c:337
 #, c-format
 msgid ""
 "\n"
-"Usage: %s <-l firmware_file.rom> <IP>\n"
+"Usage: %s -i IP -f firmware_file.rom [-c community] [-h]\n"
 msgstr ""
 
-#: src/ap-tftp.c:363
+#: src/ap-tftp.c:361
 msgid "TFTP client for upgrading firmware in ATMEL AT76C510 WiSOC-based APs.\n"
 msgstr ""
 
-#: src/ap-tftp.c:365
+#: src/ap-tftp.c:363
 msgid "(C) 2004-2005 Jan Rafaj <jr-aputils at cedric dot unob dot cz>\n"
 msgstr ""
 
-#: src/ap-tftp.c:391
-msgid "Error: invalid arguments given.\n"
-msgstr ""
-
-#: src/ap-tftp.c:398
+#: src/ap-tftp.c:379
 msgid "Error: invalid IP address format given.\n"
 msgstr ""
 
 #: src/ap-tftp.c:405
+#, fuzzy
+msgid "Error: invalid argument combination.\n"
+msgstr "Adresse IP invalide\n"
+
+#: src/ap-tftp.c:412
 msgid "Error while open()ing firmware file"
 msgstr ""
 
-#: src/ap-tftp.c:411 src/ap-tftp.c:462
+#: src/ap-tftp.c:419 src/ap-tftp.c:472
 msgid "Error: invalid firmware file given.\n"
 msgstr ""
 
-#: src/ap-tftp.c:451
+#: src/ap-tftp.c:461
 #, c-format
 msgid ""
 "Firmware file contains:\n"
@@ -1924,7 +1970,7 @@ msgid ""
 "- string \"atsingle.bin\": %s\n"
 msgstr ""
 
-#: src/ap-tftp.c:474
+#: src/ap-tftp.c:485
 #, c-format
 msgid ""
 "Using:\n"
@@ -1933,7 +1979,16 @@ msgid ""
 "- name used for upload: \"%s\"\n"
 msgstr ""
 
-#: src/ap-tftp.c:537
+#: src/ap-tftp.c:568
+msgid ""
+"Error: device with the given IP does not seem to run SmartBridges firmware.\n"
+msgstr ""
+
+#: src/ap-tftp.c:574
+msgid "Error: SNMP authorization error or device unavailable.\n"
+msgstr ""
+
+#: src/ap-tftp.c:653
 msgid "Error while lseek()ing in firmware file\n"
 msgstr ""
 
@@ -2029,7 +2084,7 @@ msgstr ""
 
 #: src/auth.c:41
 #, fuzzy
-msgid "[T] Reauthorization time (sec): "
+msgid "[T] Reauthorization time (minutes): "
 msgstr "[A] Autorisation Mac: "
 
 #: src/auth.c:42
@@ -2051,7 +2106,7 @@ msgstr "[A] Autorisation Mac: "
 
 #: src/auth.c:46
 #, fuzzy
-msgid "[T] key broadcasting time period (sec): "
+msgid "[T] key broadcasting time period (seconds): "
 msgstr "[B] période de la balise (msec): "
 
 #: src/auth.c:47
@@ -2095,16 +2150,16 @@ msgstr ""
 msgid "(not shown)"
 msgstr ""
 
-#: src/auth.c:270
+#: src/auth.c:276
 #, fuzzy
 msgid "Authorized MAC addresses:"
 msgstr "MAC adresses autorisées"
 
-#: src/auth.c:339
+#: src/auth.c:345
 msgid "(insufficient community used)"
 msgstr ""
 
-#: src/auth.c:466
+#: src/auth.c:472
 #, c-format
 msgid "Given MAC already exists in MAC list at position %d. Press any key."
 msgstr ""
@@ -2171,15 +2226,15 @@ msgstr "[U] isoler les clients sans fil (trafic unicast): "
 msgid "INGFPDOMSCRBUT - set; W - write conf; Q - quit to menu"
 msgstr "INGFPDOMSCTRBU - initialiser; W - sauvegarder la config.; Q - quitter"
 
-#: src/bridge.c:126
-msgid "Both"
-msgstr "Ensemble"
-
 #: src/bridge.c:128
 #, fuzzy
 msgid "Wireless (can be risky)"
 msgstr "Paramétrage du sans fil"
 
+#: src/bridge.c:129
+msgid "Both"
+msgstr "Ensemble"
+
 #: src/nwn_advanced.c:60
 #, c-format
 msgid "[D] DB Station Timeout: %d"
@@ -2232,16 +2287,16 @@ msgstr "Erreur:"
 msgid "Not available (device not in AP mode)."
 msgstr ""
 
-#: src/stations.c:93
+#: src/stations.c:92
 #, fuzzy
 msgid "  #     MAC       Parent MAC  RSSI   LQ Sts MACn      IP        "
 msgstr " #     MAC       Parent MAC    RSSI  État   MACn      IP        "
 
-#: src/stations.c:139
+#: src/stations.c:136
 msgid "AssociatedSTAsInfo packet error"
 msgstr "Erreur de paquet AssociatedSTAsInfo"
 
-#: src/stations.c:192 src/stations.c:364
+#: src/stations.c:189 src/stations.c:363
 msgid ""
 "Arrows - scroll; S - save to file; Q - return; T - toggle view; Other - "
 "refresh"
@@ -2249,16 +2304,33 @@ msgstr ""
 "Flèches - défiler; S - sauvegarder dans un fichier; Q - quitter vers le "
 "menu; T - Basculer de vue; Autre touche - rafraîchir"
 
-#: src/stations.c:196
+#: src/stations.c:193
 msgid "Arrows - scroll; S - save to file; Q - return; Other key - refresh"
 msgstr ""
 "Flèches - défiler; S - sauvegarder dans un fichier; Q - quitter vers le "
 "menu; Autre touche - rafraîchir"
 
-#: src/stations.c:276
+#: src/stations.c:275
 msgid "Id       MAC address     Quality  Age  RSSI"
 msgstr "Id       Adresse MAC     Qualité  Âge  RSSI"
 
+#~ msgid "Please enter SNMP community name that will be used for AP detection."
+#~ msgstr ""
+#~ "SVP fournir le nom de la communauté SNMP qui sera utilisé pour la "
+#~ "détection de Points d'accès"
+
+#~ msgid "Create socket error. Press any key."
+#~ msgstr "Erreur de création du socket. Appuyer sur n'importe quelle touche."
+
+#~ msgid "Bind socket error. Press any key."
+#~ msgstr "Erreur de liaison de socket (bind). Appuyer sur une touche."
+
+#~ msgid "Create socket error"
+#~ msgstr "Erreur de création de socket"
+
+#~ msgid "Bind socket error"
+#~ msgstr "Erreur de liaison (bind) du socket"
+
 #~ msgid "NUM       MAC address"
 #~ msgstr "NUM       adresse MAC"
 
index 03e7b5d6d0dbf1eac4c3de7e91e83cd7b2feb321..7d574902d90028ceb70562ba7d499c3c3c50c493 100644 (file)
--- a/po/nl.po
+++ b/po/nl.po
@@ -6,7 +6,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: ap-utils 1.3.2-pre3\n"
-"POT-Creation-Date: 2005-01-16 02:07+0200\n"
+"POT-Creation-Date: 2005-03-07 01:13+0200\n"
 "PO-Revision-Date: 2003-07-31 19:03+0100\n"
 "Last-Translator: Elros Cyriatan <cyriatan@fastmail.fm>\n"
 "Language-Team: Dutch <vertaling@nl.linux.org>\n"
@@ -15,81 +15,81 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Report-Msgid-Bugs-To: \n"
 
-#: lib/aps.c:29
+#: lib/aps.c:30
 msgid "Known Access Points"
 msgstr "Bekende Access Points"
 
-#: lib/aps.c:129
+#: lib/aps.c:130
 msgid "Your Access Point is not in \"AP client\" mode => getting"
 msgstr ""
 
-#: lib/aps.c:132
+#: lib/aps.c:133
 msgid "up-to-date \"Known APs\" info requires your AP to be"
 msgstr ""
 
-#: lib/aps.c:135
+#: lib/aps.c:136
 msgid "temporarily configured into \"AP client\" mode and rebooted."
 msgstr ""
 
-#: lib/aps.c:138
+#: lib/aps.c:139
 msgid "Your AP will be reconfigured back to original mode by this"
 msgstr ""
 
-#: lib/aps.c:141
+#: lib/aps.c:142
 msgid "utility once you quit the \"KnownAP\" view. This, in turn, may"
 msgstr ""
 
-#: lib/aps.c:144
+#: lib/aps.c:145
 #, fuzzy
 msgid "cause loss of Access Point's current configuration."
 msgstr "Draadloos Access Point configurator"
 
-#: lib/aps.c:148
+#: lib/aps.c:149
 msgid "Do NOT answer \"Yes\" if you're connected to the Access Point"
 msgstr ""
 
-#: lib/aps.c:151
+#: lib/aps.c:152
 #, fuzzy
 msgid "via its wireless port."
 msgstr "Draadloze opties instellen"
 
-#: lib/aps.c:153 lib/cmd.c:45 lib/cmd.c:75 lib/test.c:96
+#: lib/aps.c:154 lib/cmd.c:45 lib/cmd.c:75 lib/test.c:96
 msgid "Do you want to continue? "
 msgstr "Wilt u doorgaan?"
 
-#: lib/aps.c:207
+#: lib/aps.c:208
 msgid "NetworkType"
 msgstr "Soort netwerk"
 
-#: lib/aps.c:283
+#: lib/aps.c:284
 msgid "Infrastructure"
 msgstr "Infrastructuur"
 
-#: lib/aps.c:343 lib/aps.c:351 lib/aps.c:359
+#: lib/aps.c:344 lib/aps.c:352 lib/aps.c:360
 msgid "CN: Channel Name; P: Preambule Type (S: Short; L: Long);"
 msgstr ""
 
-#: lib/aps.c:345
+#: lib/aps.c:346
 msgid "RSSI: Radio Signal Strength Indicator [%]"
 msgstr ""
 
-#: lib/aps.c:347 lib/aps.c:355
+#: lib/aps.c:348 lib/aps.c:356
 msgid "; LQ: Link Quality [%]"
 msgstr ""
 
-#: lib/aps.c:353
+#: lib/aps.c:354
 msgid "RSSI: Radio Signal Strength Indicator [dBm]"
 msgstr ""
 
-#: lib/aps.c:361
+#: lib/aps.c:362
 msgid "RSSI: Radio Signal Strength Indicator [raw]"
 msgstr ""
 
-#: lib/aps.c:363
+#: lib/aps.c:364
 msgid "; LQ: Link Q. [raw]"
 msgstr ""
 
-#: lib/aps.c:369
+#: lib/aps.c:370
 #, fuzzy
 msgid ""
 "# con. to AP #; R refresh with reset; T toggle; Q quit; Other = refr. w/o "
@@ -98,7 +98,7 @@ msgstr ""
 "# verbinden met deze AP; R verversen met opnieuw instellen; G verversen "
 "zonder opnieuw instellen; Q afsluiten"
 
-#: lib/aps.c:371
+#: lib/aps.c:372
 #, fuzzy
 msgid ""
 "# con. to AP #; R initiate AP scan; T toggle view; Q quit; Other = refresh "
@@ -107,44 +107,44 @@ msgstr ""
 "# verbinden met deze AP; R verversen met opnieuw instellen; G verversen "
 "zonder opnieuw instellen; Q afsluiten"
 
-#: lib/aps.c:500 lib/ap_search.c:167
+#: lib/aps.c:501 lib/ap_search.c:173
 #, fuzzy, c-format
 msgid "Failure in sendto(): %s. Press any key."
 msgstr "Onjuist sendto: %s. Druk op een toets."
 
-#: lib/aps.c:509
+#: lib/aps.c:510
 msgid "You have just initiated the AP scan. Be advised that it may"
 msgstr ""
 
-#: lib/aps.c:512
+#: lib/aps.c:513
 msgid "take a few seconds for your Access Point to find out some"
 msgstr ""
 
-#: lib/aps.c:515
+#: lib/aps.c:516
 msgid "values, so expect finishing the scan in about 5 seconds."
 msgstr ""
 
-#: lib/aps.c:518
+#: lib/aps.c:519
 msgid "Also note that your Access Point stops forwarding the network"
 msgstr ""
 
-#: lib/aps.c:521
+#: lib/aps.c:522
 msgid "traffic while the scan is in progress, but restores itself"
 msgstr ""
 
-#: lib/aps.c:524
+#: lib/aps.c:525
 msgid "to normal operation in time ranging up to 1 minute."
 msgstr ""
 
-#: lib/aps.c:527
+#: lib/aps.c:528
 msgid "Hence, if you are connected to target Access Point via its"
 msgstr ""
 
-#: lib/aps.c:530
+#: lib/aps.c:531
 msgid "wireless port, you need to wait a bit longer"
 msgstr ""
 
-#: lib/aps.c:533
+#: lib/aps.c:534
 msgid "after pressing 'S'."
 msgstr ""
 
@@ -155,301 +155,298 @@ msgstr "Gemeenschap"
 
 #: lib/ap_search.c:49
 #, fuzzy
-msgid "  NUM  IP ADDRESS       MIB TYPE    NAME"
+msgid "  NUM  IP ADDRESS       MIB TYPE    FW TYPE (VERSION) AP NAME"
 msgstr "NUMMER    IP ADRES     SOORT"
 
-#: lib/ap_search.c:100
+#: lib/ap_search.c:106
 msgid "Please wait while scanning, or press 'Q' to quit."
 msgstr ""
 
-#: lib/ap_search.c:116
+#: lib/ap_search.c:122
 #, fuzzy
 msgid "Can't set broadcast option on socket. Press any key."
 msgstr "Kan broadcast optie naar socket niet instellen. Druk op een toets."
 
-#: lib/ap_search.c:125
+#: lib/ap_search.c:131
 #, fuzzy
 msgid "Can't set multicast membership on socket. Press any key."
 msgstr "Kan multicast deelname naar socket niet instellen. Druk op een toets."
 
-#: lib/ap_search.c:132
+#: lib/ap_search.c:138
 msgid "Scanning via network interface:"
 msgstr ""
 
-#: lib/ap_search.c:133
+#: lib/ap_search.c:139
 #, c-format
 msgid "  Index: %i"
 msgstr ""
 
-#: lib/ap_search.c:135
+#: lib/ap_search.c:141
 #, fuzzy, c-format
 msgid "  Name: %s"
 msgstr "[N] AP naam:"
 
-#: lib/ap_search.c:137
+#: lib/ap_search.c:143
 #, c-format
 msgid "  IP: %s"
 msgstr ""
 
-#: lib/ap_search.c:146
+#: lib/ap_search.c:152
 #, c-format
 msgid "Scanning for AP with MIB type: %s"
 msgstr ""
 
-#: lib/ap_search.c:334
-msgid "Please enter SNMP community name that will be used for AP detection."
-msgstr ""
-
-#: lib/ap_search.c:345
+#: lib/ap_search.c:378
 msgid "Access Points Search"
 msgstr "Access Points zoeken"
 
-#: lib/ap_search.c:363
+#: lib/ap_search.c:396
 #, fuzzy
 msgid "realloc() error."
 msgstr "Fout bij maken socket"
 
-#: lib/ap_search.c:375
+#: lib/ap_search.c:408
 msgid "Network interface discovery error."
 msgstr ""
 
-#: lib/ap_search.c:450
+#: lib/ap_search.c:483
 #, fuzzy
 msgid "No local network interfaces found. Press any key."
 msgstr "fork() fout. Druk op een toets."
 
-#: lib/ap_search.c:452
+#: lib/ap_search.c:485
 msgid "No directly reachable Access Points found. Press any key."
 msgstr ""
 
-#: lib/ap_search.c:457
+#: lib/ap_search.c:490
 msgid "Single-screen maximum number of APs found."
 msgstr ""
 
-#: lib/ap_search.c:460
+#: lib/ap_search.c:493
 #, fuzzy
 msgid "# - connect to AP; Q - quit"
 msgstr "Verbinden met AP nummer:"
 
-#: lib/ap-utils.h:79
+#: lib/ap-utils.h:82
 #, fuzzy
 msgid "MAC address: "
 msgstr "IP-adres: %s"
 
-#: lib/ap-utils.h:80
+#: lib/ap-utils.h:83
 #, fuzzy
 msgid "[S] SNMP traps: "
 msgstr "[S] SNMP vallen: %s"
 
-#: lib/ap-utils.h:82
+#: lib/ap-utils.h:85
 #, fuzzy
 msgid "[C] Frequency channel: "
 msgstr "[C] Frequentiekanaal: %02u (%u MHz)"
 
-#: lib/ap-utils.h:84
+#: lib/ap-utils.h:87
 #, fuzzy
 msgid "Receive  antenna:"
 msgstr "Ontvangen:"
 
-#: lib/ap-utils.h:85
+#: lib/ap-utils.h:88
 #, fuzzy
 msgid "[U] Left"
 msgstr "Links"
 
-#: lib/ap-utils.h:86
+#: lib/ap-utils.h:89
 #, fuzzy
 msgid "[I] Right"
 msgstr "Rechts"
 
-#: lib/ap-utils.h:87
+#: lib/ap-utils.h:90
 #, fuzzy
 msgid "Transmit antenna:"
 msgstr "Verzonden:"
 
-#: lib/ap-utils.h:88
+#: lib/ap-utils.h:91
 #, fuzzy
 msgid "[O] Left"
 msgstr "Links"
 
-#: lib/ap-utils.h:89
+#: lib/ap-utils.h:92
 #, fuzzy
 msgid "[P] Right"
 msgstr "Rechts"
 
-#: lib/ap-utils.h:90
+#: lib/ap-utils.h:93
 #, fuzzy
 msgid "Diversity select:"
 msgstr "Diversiteit: %s"
 
-#: lib/ap-utils.h:91
+#: lib/ap-utils.h:94
 #, fuzzy
 msgid "[T] Left"
 msgstr "Links"
 
-#: lib/ap-utils.h:92
+#: lib/ap-utils.h:95
 #, fuzzy
 msgid "[Y] Right"
 msgstr "Rechts"
 
-#: lib/ap-utils.h:94
+#: lib/ap-utils.h:97
 msgid "Yes"
 msgstr ""
 
-#: lib/ap-utils.h:95
+#: lib/ap-utils.h:98
 msgid "No"
 msgstr ""
 
-#: lib/ap-utils.h:97
+#: lib/ap-utils.h:100
 msgid "On"
 msgstr ""
 
-#: lib/ap-utils.h:98
+#: lib/ap-utils.h:101
 #, fuzzy
 msgid "Off"
 msgstr "uit"
 
-#: lib/ap-utils.h:100
+#: lib/ap-utils.h:103
 #, fuzzy
 msgid "Basic"
 msgstr "basis"
 
-#: lib/ap-utils.h:102
+#: lib/ap-utils.h:105
 msgid "Press any key to continue."
 msgstr "Druk op een toets om door te gaan."
 
-#: lib/ap-utils.h:103
-msgid "Q - quit to menu. T - toggle polling mode, Other key - force update."
+#: lib/ap-utils.h:106
+msgid "Q - quit to menu. T - toggle polling mode, Other key - force update"
 msgstr ""
 
-#: lib/ap-utils.h:105
+#: lib/ap-utils.h:108
 msgid "Unable to write data to AP. Press any key to continue."
 msgstr ""
 "Kan geen gegevens schrijven naar AP. Druk op een toets om door te gaan."
 
-#: lib/ap-utils.h:106
+#: lib/ap-utils.h:109
 #, fuzzy
 msgid "Unable to retrieve (valid) data from AP. Press any key to continue."
 msgstr "Kan geen gegevens ontvangen van AP. Druk op een toets om door te gaan."
 
-#: lib/ap-utils.h:107
+#: lib/ap-utils.h:110
 #, fuzzy
-msgid "Trying to retrieve data from AP. Please wait..."
+msgid "Trying to retrieve data from AP - please wait (or press Q to quit)."
 msgstr "Bezig met ontvangen gegevens van AP. Even geduld a.u.b...."
 
-#: lib/ap-utils.h:108
+#: lib/ap-utils.h:111
 msgid "Writing data to AP. Please wait..."
 msgstr "Bezig met schrijven gegevens naar AP. Even geduld a.u.b...."
 
-#: lib/ap-utils.h:109
+#: lib/ap-utils.h:112
 #, fuzzy
 msgid "Configuration written to the AP. Press any key to continue."
 msgstr ""
 "Kan geen gegevens schrijven naar AP. Druk op een toets om door te gaan."
 
-#: lib/ap-utils.h:110
+#: lib/ap-utils.h:113
 #, fuzzy
 msgid "select() function error. Press any key."
 msgstr "fcntl() fout. Druk op een toets."
 
-#: lib/ap-utils.h:112
-msgid "Create socket error. Press any key."
-msgstr "Fout bij maken socket. Druk op een toets."
-
-#: lib/ap-utils.h:113
-msgid "Bind socket error. Press any key."
-msgstr "Fout bij verbinden socket. Druk op een toets."
+#: lib/ap-utils.h:114
+#, fuzzy
+msgid "socket() or bind() function error. Press any key."
+msgstr "fcntl() fout. Druk op een toets."
 
-#: lib/ap-utils.h:115
+#: lib/ap-utils.h:116
 #, fuzzy
 msgid "Unable to write AP list file ~/.ap-config. Press any key."
 msgstr "Kan geen gegevens ontvangen van AP. Druk op een toets om door te gaan."
 
-#: lib/ap-utils.h:116
+#: lib/ap-utils.h:117
 msgid "AP list file ~/.ap-config successfully written. Press any key."
 msgstr ""
 
-#: lib/ap-utils.h:118
+#: lib/ap-utils.h:119
 msgid "Back to main menu"
 msgstr "Terug naar hoofdmenu"
 
-#: lib/ap-utils.h:119
+#: lib/ap-utils.h:120
 msgid "Exit program"
 msgstr "Programma afsluiten"
 
-#: lib/ap-utils.h:120
+#: lib/ap-utils.h:121
 #, fuzzy
 msgid "Run subshell. To return type 'exit'."
 msgstr "Deelshell uitvoeren. Typ 'exit' om terug te keren"
 
-#: lib/ap-utils.h:121
+#: lib/ap-utils.h:122
+msgid "Change polling mode interval"
+msgstr ""
+
+#: lib/ap-utils.h:123
 msgid "Short info about program"
 msgstr "Korte informatie over programma"
 
-#: lib/ap-utils.h:122
+#: lib/ap-utils.h:124
 msgid "Find connected Access Points"
 msgstr "Verbonden Access Points zoeken"
 
-#: lib/ap-utils.h:123
+#: lib/ap-utils.h:125
 msgid "Set connection options: ip and community"
 msgstr "Verbindingsopties instellen: IP en gemeenschap"
 
-#: lib/ap-utils.h:124
+#: lib/ap-utils.h:126
 #, fuzzy
 msgid "Set encryption; edit WEP keys"
 msgstr "Codering instellen, WEP-sleutels bewerken"
 
-#: lib/ap-utils.h:125
+#: lib/ap-utils.h:127
 #, fuzzy
 msgid "Set authorization; edit MAC authorization table"
 msgstr "Mac toelating instellen, mac toelatingstabel bewerken"
 
-#: lib/ap-utils.h:126
+#: lib/ap-utils.h:128
 #, fuzzy
 msgid "Set SNMP community/password for access to the AP"
 msgstr "SNMP gemeenschap/wachtwoord voor toegang AP instellen"
 
-#: lib/ap-utils.h:127
+#: lib/ap-utils.h:129
 #, fuzzy
 msgid "Get info about AP hardware and firmware"
 msgstr "Info opvragen over AP hardware en software"
 
-#: lib/ap-utils.h:128
+#: lib/ap-utils.h:130
 #, fuzzy
 msgid "Get wireless port statistics"
 msgstr "Statistieken opvragen over draadloze poorten"
 
-#: lib/ap-utils.h:129
+#: lib/ap-utils.h:131
 #, fuzzy
 msgid "Get list of currently associated stations (Access Point clients)"
 msgstr "Lijst opvragen met nu geassocieerde stations"
 
-#: lib/ap-utils.h:130
+#: lib/ap-utils.h:132
 msgid "Get link status in APclient mode"
 msgstr ""
 
-#: lib/ap-utils.h:131
+#: lib/ap-utils.h:133
 #, fuzzy
 msgid "Get info and statistics from AP"
 msgstr "Info en statistieken opvragen van AP"
 
-#: lib/ap-utils.h:132
+#: lib/ap-utils.h:134
 #, fuzzy
 msgid "Set various configuration options"
 msgstr "Verschillende configuratie-opties instellen"
 
-#: lib/ap-utils.h:134
+#: lib/ap-utils.h:136
 msgid "Associated stations"
 msgstr "Geassocieerde stations"
 
-#: lib/ap-utils.h:135
+#: lib/ap-utils.h:137
 msgid "AP Client link state"
 msgstr ""
 
-#: lib/ap-utils.h:137
+#: lib/ap-utils.h:139
 msgid "Polling: on"
 msgstr ""
 
-#: lib/ap-utils.h:138
+#: lib/ap-utils.h:140
 msgid "Polling: off"
 msgstr ""
 
@@ -514,164 +511,183 @@ msgstr ""
 "Het uploaden van de configuratie is voltooid. Druk op een toets om door te "
 "gaan."
 
-#: lib/common.c:30
+#: lib/common.c:32
 #, fuzzy
 msgid "Access Point IP-address: "
 msgstr "Access Point IP-adres:"
 
-#: lib/common.c:31
+#: lib/common.c:33
 #, fuzzy
 msgid "Password (community): "
 msgstr "Wachtwoord (gemeenschap):"
 
-#: lib/common.c:32
+#: lib/common.c:34
 msgid "Autodetect AP MIB properties? "
 msgstr ""
 
-#: lib/common.c:33
+#: lib/common.c:35
 #, fuzzy
 msgid "AP MIB type: "
 msgstr "AP soort:"
 
-#: lib/common.c:34
+#: lib/common.c:36
 msgid "AP MIB vendor extensions: "
 msgstr ""
 
-#: lib/common.c:35
+#: lib/common.c:37
 #, fuzzy
 msgid "Do you want to use AP's name as its label? "
 msgstr "Wilt u doorgaan?"
 
-#: lib/common.c:36
+#: lib/common.c:38
 #, fuzzy
 msgid "Access Point label: "
 msgstr "Access Point"
 
-#: lib/common.c:37
+#: lib/common.c:39
 #, fuzzy
 msgid "Save connect-settings: "
 msgstr "Verbindingsinstellingen opslaan:"
 
-#: lib/common.c:84 src/ap-config.c:154
+#: lib/common.c:40
+msgid "[P] Polling mode interval (tenths of second): "
+msgstr ""
+
+#: lib/common.c:41
+#, fuzzy
+msgid "P - change polling mode interval; Q - quit to menu"
+msgstr "[toets] - optie instellen; W - conf schrijven; Q - afsluiten naar menu"
+
+#: lib/common.c:89 src/ap-config.c:158
 msgid "About"
 msgstr "Info"
 
-#: lib/common.c:101
+#: lib/common.c:106
 #, c-format
 msgid "From %s"
 msgstr "Van %s"
 
-#: lib/common.c:103
+#: lib/common.c:108
 #, c-format
 msgid "Version %s"
 msgstr "Versie %s"
 
-#: lib/common.c:106
+#: lib/common.c:111
 msgid "Written by Roman Festchook roma@polesye.net"
 msgstr "Geschreven door Roman Festchook roma@polesye.net"
 
-#: lib/common.c:108
+#: lib/common.c:113
 msgid "and Jan Rafaj jr-aputils@cedric.unob.cz"
 msgstr ""
 
-#: lib/common.c:110
+#: lib/common.c:115
 #, fuzzy
 msgid "Copyright (c) 2001-2005"
 msgstr "Copyright (c) Roman Festchook 2001-2002"
 
-#: lib/common.c:112
+#: lib/common.c:117
 msgid "Roman Festchook and Jan Rafaj"
 msgstr ""
 
-#: lib/common.c:115
+#: lib/common.c:120
 msgid "This program is distributed under the terms"
 msgstr "This program is distributed under the terms"
 
-#: lib/common.c:117
+#: lib/common.c:122
 msgid "of the GNU General Public License version 2."
 msgstr "of the GNU General Public License version 2."
 
-#: lib/common.c:119
+#: lib/common.c:124
 msgid "See the included COPYING file for details."
 msgstr "See the included COPYING file for details."
 
-#: lib/common.c:175
+#: lib/common.c:165
 msgid "Connect options"
 msgstr "Verbindingsopties"
 
-#: lib/common.c:183
+#: lib/common.c:173
 msgid "Enter IP address of your Access Point."
 msgstr "Geef het IP-adres van uw Access Point."
 
-#: lib/common.c:192
+#: lib/common.c:182
 msgid "Entered characters will not be displayed for security reason."
 msgstr "Ingevoerde tekens worden vanwege veiligheidsredenen niet weergegeven."
 
-#: lib/common.c:259
+#: lib/common.c:249
 msgid "This label will be stored on HDD (independently on AP name!)."
 msgstr ""
 
-#: lib/common.c:370
+#: lib/common.c:362
 #, fuzzy
 msgid "Trying to probe AP for MIB properties. Please wait..."
 msgstr "Bezig met schrijven gegevens naar AP. Even geduld a.u.b...."
 
-#: lib/common.c:399
+#: lib/common.c:391
 #, fuzzy
 msgid ""
 "Unable to determine AP MIB properties (no response from AP). Press any key."
 msgstr "Kan geen gegevens ontvangen van AP. Druk op een toets om door te gaan."
 
-#: lib/file.c:205
+#: lib/common.c:489 lib/set_oeminfo.c:221
+#, c-format
+msgid "%s%u"
+msgstr ""
+
+#: lib/common.c:491
+#, c-format
+msgid "(%0.1f seconds)"
+msgstr ""
+
+#: lib/file.c:199
 msgid "NUM  IP ADDRESS       MIB TYPE    MIB EXT.  LABEL"
 msgstr ""
 
-#: lib/file.c:206
+#: lib/file.c:200
 #, fuzzy
 msgid "Choose an AP to connect to"
 msgstr "Kies AP om mee te verbinden"
 
-#: lib/file.c:212
+#: lib/file.c:206
 msgid "1-9,C: connect; N: new; D: delete; W: save; Q: quit; arrows: scroll"
 msgstr ""
 "1-9,C: verbinden; N: nieuw; D: verwijderen; W: opslaan; Q: afsluiten; "
 "pijltjes: schuiven"
 
-#: lib/file.c:268
+#: lib/file.c:257
 msgid "Connect to AP num:"
 msgstr "Verbinden met AP nummer:"
 
-#: lib/file.c:304
+#: lib/file.c:288
 msgid "Delete num:"
 msgstr "Nummer verwijderen:"
 
-#: lib/file.c:458
+#: lib/file.c:442
 #, fuzzy
 msgid "Unable to write stations file. Press any key."
 msgstr ""
 "Kan geen gegevens schrijven naar AP. Druk op een toets om door te gaan."
 
-#: lib/file.c:460
+#: lib/file.c:444
 msgid "Stations file succesfully written. Press any key."
 msgstr ""
 
-#: lib/input.c:33
+#: lib/input.c:32
 #, fuzzy
 msgid "Invalid value. Press any key to continue."
 msgstr "Onjuist IP-adres.  Druk op een toets om door te gaan."
 
-#: lib/input.c:34
+#: lib/input.c:33
 #, fuzzy, c-format
 msgid "Value must be in range %u - %u. Press any key to continue."
 msgstr ""
 "Kan geen gegevens schrijven naar AP. Druk op een toets om door te gaan."
 
-#: lib/input.c:413
+#: lib/input.c:460
 #, fuzzy
 msgid "Y - Yes; Any other key - No (it's safer to answer No)"
 msgstr "(J - Ja; N - Nee (het is veiliger om Nee te antwoorden)"
 
-#: lib/oui.c:6058
+#: lib/oui.c:6061
 msgid "Unknown or Private"
 msgstr "Onbekend of privé"
 
@@ -719,7 +735,7 @@ msgstr ""
 "U kunt niet beide antennes uitzetten; kan antenne instellingen niet opslaan. "
 "Druk op een toets."
 
-#: lib/scr.c:156
+#: lib/scr.c:157
 #, fuzzy, c-format
 msgid "Current AP: %s Type: %s Ext: %s"
 msgstr "Huidige AP: %s Soort: %s"
@@ -901,11 +917,6 @@ msgstr ""
 msgid "OEM Info settings"
 msgstr ""
 
-#: lib/set_oeminfo.c:221
-#, c-format
-msgid "%s%u"
-msgstr ""
-
 #: lib/stat.c:29
 msgid "Ethernet Statistics"
 msgstr "Ethernet statistieken"
@@ -946,186 +957,186 @@ msgstr "Systeemomschrijving:"
 msgid "System Info"
 msgstr "Systeeminfo"
 
-#: lib/sysinfo.c:54 src/bridge.c:86
+#: lib/sysinfo.c:55 src/bridge.c:50
 msgid "Wireless Bridge Point to MultiPoint"
 msgstr ""
 
-#: lib/sysinfo.c:55 src/bridge.c:87
+#: lib/sysinfo.c:56 src/bridge.c:51
 msgid "Access Point"
 msgstr "Access Point"
 
-#: lib/sysinfo.c:56 src/bridge.c:88
+#: lib/sysinfo.c:57 src/bridge.c:52
 msgid "Access Point client"
 msgstr "Access Point client"
 
-#: lib/sysinfo.c:57 src/bridge.c:89
+#: lib/sysinfo.c:58 src/bridge.c:53
 msgid "Wireless Bridge Point to Point"
 msgstr ""
 
-#: lib/sysinfo.c:58 src/bridge.c:90
+#: lib/sysinfo.c:59 src/bridge.c:54
 msgid "Repeater"
 msgstr "Repeater"
 
-#: lib/sysinfo.c:59 lib/sysinfo.c:314 lib/sysinfo.c:423 src/bridge.c:91
+#: lib/sysinfo.c:60 lib/sysinfo.c:315 lib/sysinfo.c:424 src/bridge.c:55
 msgid "unknown"
 msgstr "onbekend"
 
-#: lib/sysinfo.c:143
+#: lib/sysinfo.c:144
 msgid "Device hardware/software/name info:"
 msgstr ""
 
-#: lib/sysinfo.c:171
+#: lib/sysinfo.c:172
 #, fuzzy, c-format
 msgid "Operational mode: %s"
 msgstr "[O] Operationele modus: %s"
 
-#: lib/sysinfo.c:181
+#: lib/sysinfo.c:182
 #, fuzzy
 msgid "Product name: "
 msgstr "Produktnaam:"
 
-#: lib/sysinfo.c:185
+#: lib/sysinfo.c:186
 #, fuzzy, c-format
 msgid "Product type: %u"
 msgstr "Produktsoort: %lu"
 
-#: lib/sysinfo.c:188
+#: lib/sysinfo.c:189
 #, fuzzy
 msgid "OEM name: "
 msgstr "OEM naam:"
 
-#: lib/sysinfo.c:195
+#: lib/sysinfo.c:196
 #, fuzzy, c-format
 msgid "Hardware revision: %u"
 msgstr "Hardware revisie: %lu"
 
-#: lib/sysinfo.c:203
+#: lib/sysinfo.c:204
 #, fuzzy, c-format
 msgid "Info structure version: %u"
 msgstr "StructVersie: %lu"
 
-#: lib/sysinfo.c:206 lib/sysinfo.c:382
+#: lib/sysinfo.c:207 lib/sysinfo.c:383
 #, c-format
 msgid "Manufacturer OUI: %02X %02X %02X (%s)"
 msgstr "Maker OUI: %02X %02X %02X (%s)"
 
-#: lib/sysinfo.c:223
+#: lib/sysinfo.c:224
 #, fuzzy, c-format
 msgid "Uptime: %u days, %02u:%02u:%02u hours:mins:secs"
 msgstr "Uptime: %u:%02u:%02u.%02u"
 
-#: lib/sysinfo.c:311
+#: lib/sysinfo.c:312
 msgid "FHSS 2.4 GHz"
 msgstr "FHSS 2.4 GHz"
 
-#: lib/sysinfo.c:311
+#: lib/sysinfo.c:312
 msgid "DSSS 2.4 GHz"
 msgstr "DSSS 2.4 GHz"
 
-#: lib/sysinfo.c:311
+#: lib/sysinfo.c:312
 msgid "IR Baseband"
 msgstr "IR Baseband"
 
-#: lib/sysinfo.c:312
+#: lib/sysinfo.c:313
 msgid "Commercial range 0..40 C"
 msgstr "Commercieel bereik 0..40 C"
 
-#: lib/sysinfo.c:313
+#: lib/sysinfo.c:314
 msgid "Industrial range -30..70 C"
 msgstr "Industrieel bereik -30..70 C"
 
-#: lib/sysinfo.c:316
+#: lib/sysinfo.c:317
 msgid "manual"
 msgstr "handmatig"
 
-#: lib/sysinfo.c:316
+#: lib/sysinfo.c:317
 msgid "notsupported"
 msgstr "niet ondersteund"
 
-#: lib/sysinfo.c:316
+#: lib/sysinfo.c:317
 msgid "dynamic"
 msgstr "dynamisch"
 
-#: lib/sysinfo.c:372
+#: lib/sysinfo.c:373
 msgid "Manufacturer:"
 msgstr "Maker:"
 
-#: lib/sysinfo.c:377
+#: lib/sysinfo.c:378
 msgid "Manufacturer ID:"
 msgstr "Maker ID:"
 
-#: lib/sysinfo.c:388
+#: lib/sysinfo.c:389
 msgid "Product Name:"
 msgstr "Produktnaam:"
 
-#: lib/sysinfo.c:394
+#: lib/sysinfo.c:395
 msgid "Product ID:"
 msgstr "Produkt ID:"
 
-#: lib/sysinfo.c:400
+#: lib/sysinfo.c:401
 msgid "Product Version:"
 msgstr "Produktversie:"
 
-#: lib/sysinfo.c:406
+#: lib/sysinfo.c:407
 #, c-format
 msgid "PHYType: %s"
 msgstr "PHY soort: %s"
 
-#: lib/sysinfo.c:409
+#: lib/sysinfo.c:410
 #, c-format
 msgid "Temperature: %s"
 msgstr "Temperatuur: %s"
 
-#: lib/sysinfo.c:417
+#: lib/sysinfo.c:418
 #, fuzzy, c-format
 msgid "Regulatory Domain: %s"
 msgstr "Reguleringsdomein: %s"
 
-#: lib/sysinfo.c:418
+#: lib/sysinfo.c:419
 msgid "FCC (USA)"
 msgstr "FCC (USA)"
 
-#: lib/sysinfo.c:419
+#: lib/sysinfo.c:420
 msgid "DOC (Canada)"
 msgstr "DOC (Canada)"
 
-#: lib/sysinfo.c:420
+#: lib/sysinfo.c:421
 msgid "ETSI (Europe)"
 msgstr "ETSI (Europa)"
 
-#: lib/sysinfo.c:421
+#: lib/sysinfo.c:422
 msgid "Spain"
 msgstr "Spanje"
 
-#: lib/sysinfo.c:422
+#: lib/sysinfo.c:423
 msgid "France"
 msgstr "Frankrijk"
 
-#: lib/sysinfo.c:423
+#: lib/sysinfo.c:424
 msgid "MKK (Japan)"
 msgstr "MKK (Japan)"
 
-#: lib/sysinfo.c:426
+#: lib/sysinfo.c:427
 #, c-format
 msgid "Transmit Power: %u mW"
 msgstr "Zendvermogen: %u mW"
 
-#: lib/sysinfo.c:456
+#: lib/sysinfo.c:457
 #, fuzzy, c-format
 msgid "WEP implemented: %s"
 msgstr "WEP geïmplementeerd: %s"
 
-#: lib/sysinfo.c:459
+#: lib/sysinfo.c:460
 #, c-format
 msgid "Diversity: %s"
 msgstr "Diversiteit: %s"
 
-#: lib/sysinfo.c:487
+#: lib/sysinfo.c:488
 #, c-format
 msgid "Uptime: %u:%02u:%02u.%02u"
 msgstr "Uptime: %u:%02u:%02u.%02u"
 
-#: lib/sysinfo.c:507
+#: lib/sysinfo.c:508
 #, c-format
 msgid "IP  Address: %s"
 msgstr "IP-adres: %s"
@@ -1341,7 +1352,7 @@ msgid "[D] DTIM sending interval (beacons): "
 msgstr ""
 
 #: lib/wlan.c:48
-msgid "[T] SIFS time (ACK timeout) msec: "
+msgid "[T] SIFS time (2nd+ interframe spacing, usec): "
 msgstr ""
 
 #: lib/wlan.c:49
@@ -1356,19 +1367,19 @@ msgstr "Kort"
 msgid "Long"
 msgstr "Lang"
 
-#: lib/wlan.c:237
+#: lib/wlan.c:239
 msgid "Wireless Settings"
 msgstr "Draadloos instellingen"
 
-#: lib/wlan.c:731
+#: lib/wlan.c:735
 msgid "Antenna Configuration:"
 msgstr "Antenneconfiguratie:"
 
-#: lib/wlan.c:748
+#: lib/wlan.c:752
 msgid "General Options"
 msgstr "Algemene opties"
 
-#: lib/wlan.c:750
+#: lib/wlan.c:754
 msgid ""
 "UIOPTY - antenna; SCANLEDFR1234 - options; W - write conf; Q - quit to menu"
 msgstr ""
@@ -1395,7 +1406,7 @@ msgstr ""
 msgid "Error closing file"
 msgstr ""
 
-#: src/ap-auth.c:45 src/ap-mrtg.c:42 src/ap-rrd.c:42
+#: src/ap-auth.c:44 src/ap-mrtg.c:41 src/ap-rrd.c:40
 msgid ""
 "\n"
 "Usage:\n"
@@ -1403,41 +1414,41 @@ msgstr ""
 "\n"
 "Gebruik:\n"
 
-#: src/ap-auth.c:46
+#: src/ap-auth.c:45
 msgid "\tap-auth -i ip -c community -d filename [-h]\n"
 msgstr ""
 
-#: src/ap-auth.c:47
+#: src/ap-auth.c:46
 msgid ""
 "\tap-auth -i ip -c community -u filename [-h]\n"
 "\n"
 msgstr ""
 
-#: src/ap-auth.c:48
+#: src/ap-auth.c:47
 msgid ""
 "Change accesspoint's list of authorised MAC addresses\n"
 "\n"
 msgstr ""
 
-#: src/ap-auth.c:49 src/ap-mrtg.c:46 src/ap-rrd.c:47
+#: src/ap-auth.c:48 src/ap-mrtg.c:45 src/ap-rrd.c:45
 msgid "-i ip        - AP ip address\n"
 msgstr "-i ip        - AP ip-adres\n"
 
-#: src/ap-auth.c:50 src/ap-mrtg.c:47 src/ap-rrd.c:48
+#: src/ap-auth.c:49 src/ap-mrtg.c:46 src/ap-rrd.c:46
 msgid "-c community - SNMP community string\n"
 msgstr "-c gemeenschap - SNMP gemeenschap naam\n"
 
-#: src/ap-auth.c:51
+#: src/ap-auth.c:50
 msgid ""
 "-d filename  - download list of authorised MAC addresses from AP to a file\n"
 msgstr ""
 
-#: src/ap-auth.c:53
+#: src/ap-auth.c:52
 msgid ""
 "-u filename  - upload list of authorised MAC addresses from a file to AP\n"
 msgstr ""
 
-#: src/ap-auth.c:55 src/ap-mrtg.c:56 src/ap-rrd.c:57
+#: src/ap-auth.c:54 src/ap-mrtg.c:55 src/ap-rrd.c:55
 msgid ""
 "-h           - print this help screen\n"
 "\n"
@@ -1445,7 +1456,7 @@ msgstr ""
 "-h           - deze hulp weergeven\n"
 "\n"
 
-#: src/ap-auth.c:56
+#: src/ap-auth.c:55
 #, fuzzy, c-format
 msgid ""
 "ap-auth %s Copyright (c) 2004 Teemu Kiviniemi\n"
@@ -1454,223 +1465,244 @@ msgstr ""
 "ap-mrtg %s Copyright (c) 2002 Roman Festchook\n"
 "\n"
 
-#: src/ap-auth.c:146 src/ap-mrtg.c:139
+#: src/ap-auth.c:138 src/ap-mrtg.c:132
 #, fuzzy
 msgid "Error: invalid IP-address.\n"
 msgstr "Onjuist IP-adres\n"
 
-#: src/ap-auth.c:178 src/ap-mrtg.c:178 src/ap-rrd.c:207
-msgid "Create socket error"
-msgstr "Fout bij maken socket"
-
-#: src/ap-auth.c:182 src/ap-mrtg.c:182 src/ap-rrd.c:211
-msgid "Bind socket error"
-msgstr "Fout bij verbinden socket"
-
-#: src/ap-auth.c:220 src/ap-mrtg.c:220
+#: src/ap-auth.c:203 src/ap-mrtg.c:204
 #, fuzzy
 msgid "Unable to determine AP MIB type (no response from AP)."
 msgstr "Kan geen gegevens ontvangen van AP. Druk op een toets om door te gaan."
 
-#: src/ap-auth.c:228
+#: src/ap-auth.c:211
 msgid "NWN devices are not yet supported."
 msgstr ""
 
-#: src/ap-config.c:41 src/bridge.c:200
+#: src/ap-config.c:43 src/bridge.c:201
 msgid "Bridging"
 msgstr ""
 
-#: src/ap-config.c:41
+#: src/ap-config.c:43
 #, fuzzy
 msgid "Set bridging and IP-related options"
 msgstr "Bridging en IP-gerelateerde opties instellen"
 
-#: src/ap-config.c:43 src/ap-config.c:112 src/ap-config.c:121 src/bridge.c:124
+#: src/ap-config.c:45 src/ap-config.c:114 src/ap-config.c:123 src/bridge.c:125
 msgid "Wireless"
 msgstr "Draadloos"
 
-#: src/ap-config.c:43
+#: src/ap-config.c:45
 msgid "Set wireless options"
 msgstr "Draadloze opties instellen"
 
-#: src/ap-config.c:44 src/ap-config.c:56
+#: src/ap-config.c:46 src/ap-config.c:58
 msgid "Privacy"
 msgstr "Privacy"
 
-#: src/ap-config.c:45
+#: src/ap-config.c:47
 #, fuzzy
 msgid "Auth"
 msgstr "Info"
 
-#: src/ap-config.c:46 src/ap-config.c:58
+#: src/ap-config.c:48 src/ap-config.c:60
 msgid "Community"
 msgstr "Gemeenschap"
 
-#: src/ap-config.c:47
+#: src/ap-config.c:49
 msgid "Radio"
 msgstr "Radio"
 
-#: src/ap-config.c:47
+#: src/ap-config.c:49
 msgid "Set radio signal power and antenna options"
 msgstr "Vermogen radio en antenne opties instellen"
 
-#: src/ap-config.c:54
+#: src/ap-config.c:56
 msgid "General"
 msgstr "Algemeen"
 
-#: src/ap-config.c:54
+#: src/ap-config.c:56
 msgid "Set general options"
 msgstr "Algemene opties instellen"
 
-#: src/ap-config.c:55
+#: src/ap-config.c:57
 msgid "Advanced"
 msgstr "Geavanceerd"
 
-#: src/ap-config.c:55
+#: src/ap-config.c:57
 msgid "Set advanced options"
 msgstr "Geavanceerde opties instellen"
 
-#: src/ap-config.c:57
+#: src/ap-config.c:59
 #, fuzzy
 msgid "MAC auth"
 msgstr "Mac toelating"
 
-#: src/ap-config.c:80
+#: src/ap-config.c:82
 msgid "Upload"
 msgstr "Uploaden"
 
-#: src/ap-config.c:80
+#: src/ap-config.c:82
 #, fuzzy
 msgid "Activate current configuration"
 msgstr "Huidige configuratie actief maken"
 
-#: src/ap-config.c:81
+#: src/ap-config.c:83
 msgid "Defaults"
 msgstr "Standaardwaarden"
 
-#: src/ap-config.c:81
+#: src/ap-config.c:83
 msgid "Restore factory default settings"
 msgstr "Fabrieksinstellingen terugzetten"
 
-#: src/ap-config.c:82 src/ap-config.c:89
+#: src/ap-config.c:84 src/ap-config.c:91
 msgid "Reset"
 msgstr "Opnieuw instellen"
 
-#: src/ap-config.c:83
+#: src/ap-config.c:85
 msgid "Reset AP. All not uploaded configuration will be lost"
 msgstr ""
 "AP opnieuw instellen. Alle niet verzonden instellingen zullen verloren gaan."
 
-#: src/ap-config.c:84
+#: src/ap-config.c:86
 msgid "TestMode"
 msgstr "Testmodus"
 
-#: src/ap-config.c:84
+#: src/ap-config.c:86
 msgid "Put Access Point in test mode"
 msgstr "Access Point in testmodus zetten"
 
-#: src/ap-config.c:89
+#: src/ap-config.c:91
 msgid "Reset AP."
 msgstr "AP opnieuw instellen."
 
-#: src/ap-config.c:110 src/ap-config.c:120
+#: src/ap-config.c:112 src/ap-config.c:122
 msgid "SysInfo"
 msgstr "SysInfo"
 
-#: src/ap-config.c:111 src/bridge.c:123 src/bridge.c:127
+#: src/ap-config.c:113 src/bridge.c:124 src/bridge.c:127
 msgid "Ethernet"
 msgstr "Ethernet"
 
-#: src/ap-config.c:111
+#: src/ap-config.c:113
 msgid "Get ethernet port statistics"
 msgstr "Ethernet poortstatistieken opvragen"
 
-#: src/ap-config.c:113 src/ap-config.c:122
+#: src/ap-config.c:115 src/ap-config.c:124
 msgid "Stations"
 msgstr "Stations"
 
-#: src/ap-config.c:114
+#: src/ap-config.c:116
 msgid "AP link"
 msgstr ""
 
-#: src/ap-config.c:115
+#: src/ap-config.c:117
 msgid "KnownAPs"
 msgstr "BekendeAPs"
 
-#: src/ap-config.c:115
+#: src/ap-config.c:117
 msgid "Get info about known Access Points"
 msgstr "Info opvragen over bekende Access Points"
 
-#: src/ap-config.c:123
+#: src/ap-config.c:125
 msgid "Latest"
 msgstr "Laatste"
 
-#: src/ap-config.c:123
+#: src/ap-config.c:125
 msgid "Get info about latest events"
 msgstr "Info opvragen over laatste gebeurtenissen"
 
-#: src/ap-config.c:148
+#: src/ap-config.c:150
 msgid "Info"
 msgstr "Info"
 
-#: src/ap-config.c:149
+#: src/ap-config.c:151
 msgid "Config"
 msgstr "Config"
 
-#: src/ap-config.c:150
+#: src/ap-config.c:152
 msgid "Commands"
 msgstr "Opdrachten"
 
-#: src/ap-config.c:150
+#: src/ap-config.c:152
 msgid "Execute commands on Access Point"
 msgstr "Opdrachten uitvoeren op Access Point"
 
-#: src/ap-config.c:152
+#: src/ap-config.c:154
 msgid "Connect"
 msgstr "Verbinden"
 
-#: src/ap-config.c:153
+#: src/ap-config.c:155
 msgid "Search"
 msgstr "Zoeken"
 
-#: src/ap-config.c:155
+#: src/ap-config.c:156
+msgid "Polling"
+msgstr ""
+
+#: src/ap-config.c:157
 msgid "Shell"
 msgstr "Shell"
 
-#: src/ap-config.c:156
+#: src/ap-config.c:159
 msgid "Exit"
 msgstr "Afsluiten"
 
-#: src/ap-config.c:214
+#: src/ap-config.c:218
 #, c-format
 msgid "Wireless Access Point Configurator ver. %s"
 msgstr "Draadloos Access Point configurator versie %s"
 
-#: src/aplink.c:28
+#: src/aplink.c:25
 msgid "RSSI:     ["
 msgstr ""
 
-#: src/aplink.c:29
+#: src/aplink.c:26
 msgid "RSSI avg: ["
 msgstr ""
 
-#: src/aplink.c:30
+#: src/aplink.c:27
 msgid "RSSI top: ["
 msgstr ""
 
-#: src/aplink.c:112
+#: src/aplink.c:28
+msgid "RSSI rou: ["
+msgstr ""
+
+#: src/aplink.c:29
+msgid ""
+"P - pause, T - toggle graph view, Q - quit to menu, Other key - force update."
+msgstr ""
+
+#: src/aplink.c:81
+msgid "RSSI [%]"
+msgstr ""
+
+#: src/aplink.c:82
+msgid "RSSI average [%]"
+msgstr ""
+
+#: src/aplink.c:83
+msgid "RSSI rounded [%]"
+msgstr ""
+
+#: src/aplink.c:84
+msgid "Link Quality [%]"
+msgstr ""
+
+#: src/aplink.c:133
 msgid "Not available - device must have firmware with necessary "
 msgstr ""
 
-#: src/aplink.c:114
+#: src/aplink.c:135
 msgid "vendor extensions and be in either 'Access Point client'"
 msgstr ""
 
-#: src/aplink.c:116
+#: src/aplink.c:137
 msgid "or 'Repeater' mode."
 msgstr ""
 
-#: src/ap-mrtg.c:43
+#: src/ap-mrtg.c:42
 #, fuzzy
 msgid ""
 "\tap-mrtg -i ip -c community -t type [-b bssid] [-n name] [-v] [-h] [-r]\n"
@@ -1679,7 +1711,7 @@ msgstr ""
 "\tap-mrtg -i ip -c gemeenschap -t soort [-b bssid] [-v] [-h] [-r]\n"
 "\n"
 
-#: src/ap-mrtg.c:45
+#: src/ap-mrtg.c:44
 msgid ""
 "Get stats from AP and return it in MRTG parsable format\n"
 "\n"
@@ -1687,7 +1719,7 @@ msgstr ""
 "Statistieken van AP opvragen en aanbieden in MRTG-verwerkbaar formaat\n"
 "\n"
 
-#: src/ap-mrtg.c:48
+#: src/ap-mrtg.c:47
 #, fuzzy
 msgid ""
 "-t type      - statistics type <w>ireless, <e>thernet, associated <s>tations "
@@ -1696,11 +1728,11 @@ msgstr ""
 "-t type      - soort statistieken <w> draadloos, <e>thernet, geassocieerde "
 "<s>tations of <l> kwaliteit verbinding in client modus\n"
 
-#: src/ap-mrtg.c:50
+#: src/ap-mrtg.c:49
 msgid "work with ATMEL410 MIB devices in AP Client mode)\n"
 msgstr ""
 
-#: src/ap-mrtg.c:51
+#: src/ap-mrtg.c:50
 #, fuzzy
 msgid ""
 "-b bssid     - mac address of the AP from which get link quality, only if "
@@ -1709,21 +1741,21 @@ msgstr ""
 "-b bssid     - mac adres van AP waarvan verbindingskwaliteit bepaald moet "
 "worden; alleen als soort=l\n"
 
-#: src/ap-mrtg.c:53
+#: src/ap-mrtg.c:52
 msgid "-n name      - AP name - for check only\n"
 msgstr ""
 
-#: src/ap-mrtg.c:54
+#: src/ap-mrtg.c:53
 msgid "-v           - report MRTG about problems connecting to AP\n"
 msgstr "-v           - MRTG aangeven over problemen met verbinden met AP\n"
 
-#: src/ap-mrtg.c:55 src/ap-rrd.c:56
+#: src/ap-mrtg.c:54 src/ap-rrd.c:54
 msgid "-r           - reset AP when getting LinkQuality stats\n"
 msgstr ""
 "-r           - AP opnieuw instellen bij opvragen statistieken "
 "verbindingskwaliteit\n"
 
-#: src/ap-mrtg.c:57
+#: src/ap-mrtg.c:56
 #, fuzzy, c-format
 msgid ""
 "ap-mrtg %s Copyright (c) 2002-2003 Roman Festchook\n"
@@ -1732,7 +1764,12 @@ msgstr ""
 "ap-mrtg %s Copyright (c) 2002 Roman Festchook\n"
 "\n"
 
-#: src/ap-rrd.c:44
+#: src/ap-rrd.c:32
+#, c-format
+msgid "Error getting data from AP %s\n"
+msgstr ""
+
+#: src/ap-rrd.c:42
 #, fuzzy
 msgid ""
 "\tap-rrd -i ip -c community -t type -d db_file [-b bssid] [-n name] [-a "
@@ -1742,7 +1779,7 @@ msgstr ""
 "\tap-mrtg -i ip -c gemeenschap -t soort [-b bssid] [-v] [-h] [-r]\n"
 "\n"
 
-#: src/ap-rrd.c:46
+#: src/ap-rrd.c:44
 #, fuzzy
 msgid ""
 "Get stats from AP and put it in to specified RRDtool database\n"
@@ -1751,7 +1788,7 @@ msgstr ""
 "Statistieken van AP opvragen en aanbieden in MRTG-verwerkbaar formaat\n"
 "\n"
 
-#: src/ap-rrd.c:50
+#: src/ap-rrd.c:48
 msgid ""
 "-t type      - statistics type <w>ireless, <e>thernet, associated <s>tations "
 "or <l>ink quality in client mode\n"
@@ -1759,11 +1796,11 @@ msgstr ""
 "-t type      - soort statistieken <w> draadloos, <e>thernet, geassocieerde "
 "<s>tations of <l> kwaliteit verbinding in client modus\n"
 
-#: src/ap-rrd.c:51
+#: src/ap-rrd.c:49
 msgid "-d db_file   - RRD database file with full path\n"
 msgstr ""
 
-#: src/ap-rrd.c:53
+#: src/ap-rrd.c:51
 msgid ""
 "-b bssid     - mac address of the AP to which get link quality, only if "
 "type=l\n"
@@ -1771,17 +1808,17 @@ msgstr ""
 "-b bssid     - mac adres van AP waarvan verbindingskwaliteit bepaald moet "
 "worden; alleen als soort=l\n"
 
-#: src/ap-rrd.c:54
+#: src/ap-rrd.c:52
 msgid "-n name     - AP name - for check only\n"
 msgstr ""
 
-#: src/ap-rrd.c:55
+#: src/ap-rrd.c:53
 msgid ""
 "-a aptype    - AP type - 410 (default) or 510 for ATMEL12350's, like the ME-"
 "102\n"
 msgstr ""
 
-#: src/ap-rrd.c:58
+#: src/ap-rrd.c:56
 #, fuzzy, c-format
 msgid ""
 "ap-rrd %s Copyright (c) 2002-2004 Roman Festchook\n"
@@ -1790,160 +1827,161 @@ msgstr ""
 "ap-mrtg %s Copyright (c) 2002 Roman Festchook\n"
 "\n"
 
-#: src/ap-rrd.c:142
+#: src/ap-rrd.c:133
 msgid "Invalid IP-address\n"
 msgstr "Onjuist IP-adres\n"
 
-#: src/ap-rrd.c:188
+#: src/ap-rrd.c:179
 #, c-format
 msgid "Invalid AP-Type '%s' - valid types are 510 or 410\n"
 msgstr ""
 
-#: src/ap-tftp.c:81
+#: src/ap-tftp.c:84
 msgid "yes"
 msgstr ""
 
-#: src/ap-tftp.c:82
+#: src/ap-tftp.c:85
 #, fuzzy
 msgid "no"
 msgstr "Info"
 
-#: src/ap-tftp.c:84
+#: src/ap-tftp.c:87
 msgid "Error while read()ing firmware file"
 msgstr ""
 
-#: src/ap-tftp.c:88
+#: src/ap-tftp.c:100
 msgid "Undefined error"
 msgstr ""
 
-#: src/ap-tftp.c:89
+#: src/ap-tftp.c:101
 msgid "File not found"
 msgstr ""
 
-#: src/ap-tftp.c:90
+#: src/ap-tftp.c:102
 #, fuzzy
 msgid "Access violation"
 msgstr "Access Point"
 
-#: src/ap-tftp.c:91
+#: src/ap-tftp.c:103
 msgid "Disk full or allocation error"
 msgstr ""
 
-#: src/ap-tftp.c:92
+#: src/ap-tftp.c:104
 msgid "Illegal TFTP operation"
 msgstr ""
 
-#: src/ap-tftp.c:93
+#: src/ap-tftp.c:105
 msgid "Unknown transfer ID"
 msgstr ""
 
-#: src/ap-tftp.c:94
+#: src/ap-tftp.c:106
 msgid "File already exists"
 msgstr ""
 
-#: src/ap-tftp.c:95
+#: src/ap-tftp.c:107
 msgid "No such user"
 msgstr ""
 
-#: src/ap-tftp.c:161
+#: src/ap-tftp.c:157
 msgid "Remote-filename too long.\n"
 msgstr ""
 
-#: src/ap-tftp.c:187
+#: src/ap-tftp.c:183
 #, c-format
 msgid "%sError in read()"
 msgstr ""
 
-#: src/ap-tftp.c:215
+#: src/ap-tftp.c:212
 #, c-format
 msgid "sending %u bytes\n"
 msgstr ""
 
-#: src/ap-tftp.c:224
+#: src/ap-tftp.c:221
 #, c-format
 msgid "%sError in sendto()"
 msgstr ""
 
-#: src/ap-tftp.c:247
+#: src/ap-tftp.c:244
 #, c-format
 msgid "%sError in recvfrom()"
 msgstr ""
 
-#: src/ap-tftp.c:261
+#: src/ap-tftp.c:256
 #, c-format
-msgid "\rProgress: uploaded %.0f %%."
+msgid "\rProgress: uploaded %3i%%."
 msgstr ""
 
-#: src/ap-tftp.c:272
+#: src/ap-tftp.c:267
 #, c-format
 msgid "%sMalformed packet received. Aborting.\n"
 msgstr ""
 
-#: src/ap-tftp.c:281
+#: src/ap-tftp.c:276
 #, c-format
 msgid "%sTimed out waiting for response from server (%i/%i).\n"
 msgstr ""
 
-#: src/ap-tftp.c:288
+#: src/ap-tftp.c:283
 #, c-format
 msgid "%sError in select()"
 msgstr ""
 
-#: src/ap-tftp.c:302
+#: src/ap-tftp.c:297
 #, c-format
 msgid "Received %d bytes: %04x %04x\n"
 msgstr ""
 
-#: src/ap-tftp.c:313
+#: src/ap-tftp.c:308
 #, c-format
 msgid "%sError: server responded with %s. Aborting.\n"
 msgstr ""
 
-#: src/ap-tftp.c:320
+#: src/ap-tftp.c:315
 #, c-format
 msgid "%sFlash programming in progress...\n"
 msgstr ""
 
-#: src/ap-tftp.c:322
+#: src/ap-tftp.c:317
 msgid "Finished successfully.\n"
 msgstr ""
 
-#: src/ap-tftp.c:340
+#: src/ap-tftp.c:335
 msgid "PLEASE BE _ABSOLUTELY_ SURE TO READ MANPAGE PRIOR USE!!!\n"
 msgstr ""
 
-#: src/ap-tftp.c:341
+#: src/ap-tftp.c:337
 #, c-format
 msgid ""
 "\n"
-"Usage: %s <-l firmware_file.rom> <IP>\n"
+"Usage: %s -i IP -f firmware_file.rom [-c community] [-h]\n"
 msgstr ""
 
-#: src/ap-tftp.c:363
+#: src/ap-tftp.c:361
 msgid "TFTP client for upgrading firmware in ATMEL AT76C510 WiSOC-based APs.\n"
 msgstr ""
 
-#: src/ap-tftp.c:365
+#: src/ap-tftp.c:363
 msgid "(C) 2004-2005 Jan Rafaj <jr-aputils at cedric dot unob dot cz>\n"
 msgstr ""
 
-#: src/ap-tftp.c:391
-msgid "Error: invalid arguments given.\n"
-msgstr ""
-
-#: src/ap-tftp.c:398
+#: src/ap-tftp.c:379
 msgid "Error: invalid IP address format given.\n"
 msgstr ""
 
 #: src/ap-tftp.c:405
+#, fuzzy
+msgid "Error: invalid argument combination.\n"
+msgstr "Onjuist IP-adres\n"
+
+#: src/ap-tftp.c:412
 msgid "Error while open()ing firmware file"
 msgstr ""
 
-#: src/ap-tftp.c:411 src/ap-tftp.c:462
+#: src/ap-tftp.c:419 src/ap-tftp.c:472
 msgid "Error: invalid firmware file given.\n"
 msgstr ""
 
-#: src/ap-tftp.c:451
+#: src/ap-tftp.c:461
 #, c-format
 msgid ""
 "Firmware file contains:\n"
@@ -1953,7 +1991,7 @@ msgid ""
 "- string \"atsingle.bin\": %s\n"
 msgstr ""
 
-#: src/ap-tftp.c:474
+#: src/ap-tftp.c:485
 #, c-format
 msgid ""
 "Using:\n"
@@ -1962,7 +2000,16 @@ msgid ""
 "- name used for upload: \"%s\"\n"
 msgstr ""
 
-#: src/ap-tftp.c:537
+#: src/ap-tftp.c:568
+msgid ""
+"Error: device with the given IP does not seem to run SmartBridges firmware.\n"
+msgstr ""
+
+#: src/ap-tftp.c:574
+msgid "Error: SNMP authorization error or device unavailable.\n"
+msgstr ""
+
+#: src/ap-tftp.c:653
 msgid "Error while lseek()ing in firmware file\n"
 msgstr ""
 
@@ -2060,7 +2107,7 @@ msgstr ""
 
 #: src/auth.c:41
 #, fuzzy
-msgid "[T] Reauthorization time (sec): "
+msgid "[T] Reauthorization time (minutes): "
 msgstr "[A] Mac toelating: %s"
 
 #: src/auth.c:42
@@ -2081,8 +2128,9 @@ msgid "[M] 802.1x authorization: "
 msgstr "[A] Mac toelating: %s"
 
 #: src/auth.c:46
-msgid "[T] key broadcasting time period (sec): "
-msgstr ""
+#, fuzzy
+msgid "[T] key broadcasting time period (seconds): "
+msgstr "[A] Mac toelating: %s"
 
 #: src/auth.c:47
 msgid "[I] 802.1x auth. server IP: "
@@ -2126,16 +2174,16 @@ msgstr ""
 msgid "(not shown)"
 msgstr ""
 
-#: src/auth.c:270
+#: src/auth.c:276
 #, fuzzy
 msgid "Authorized MAC addresses:"
 msgstr "Toegelaten Mac adressen"
 
-#: src/auth.c:339
+#: src/auth.c:345
 msgid "(insufficient community used)"
 msgstr ""
 
-#: src/auth.c:466
+#: src/auth.c:472
 #, c-format
 msgid "Given MAC already exists in MAC list at position %d. Press any key."
 msgstr ""
@@ -2209,16 +2257,16 @@ msgstr ""
 msgid "INGFPDOMSCRBUT - set; W - write conf; Q - quit to menu"
 msgstr "BPGINFDRT - instellen; W - conf schrijven; Q - afsluiten naar menu"
 
-#: src/bridge.c:126
-#, fuzzy
-msgid "Both"
-msgstr "Beide soorten"
-
 #: src/bridge.c:128
 #, fuzzy
 msgid "Wireless (can be risky)"
 msgstr "Draadloos instellingen"
 
+#: src/bridge.c:129
+#, fuzzy
+msgid "Both"
+msgstr "Beide soorten"
+
 #: src/nwn_advanced.c:60
 #, c-format
 msgid "[D] DB Station Timeout: %d"
@@ -2271,15 +2319,15 @@ msgstr "Fout:"
 msgid "Not available (device not in AP mode)."
 msgstr ""
 
-#: src/stations.c:93
+#: src/stations.c:92
 msgid "  #     MAC       Parent MAC  RSSI   LQ Sts MACn      IP        "
 msgstr ""
 
-#: src/stations.c:139
+#: src/stations.c:136
 msgid "AssociatedSTAsInfo packet error"
 msgstr "AssociatedSTAsInfo pakketfout"
 
-#: src/stations.c:192 src/stations.c:364
+#: src/stations.c:189 src/stations.c:363
 #, fuzzy
 msgid ""
 "Arrows - scroll; S - save to file; Q - return; T - toggle view; Other - "
@@ -2287,17 +2335,29 @@ msgid ""
 msgstr ""
 "Pijltjes - schuiven; S - opslaan naar bestand; Q - afsluiten naar menu."
 
-#: src/stations.c:196
+#: src/stations.c:193
 #, fuzzy
 msgid "Arrows - scroll; S - save to file; Q - return; Other key - refresh"
 msgstr ""
 "Pijltjes - schuiven; S - opslaan naar bestand; Q - afsluiten naar menu."
 
-#: src/stations.c:276
+#: src/stations.c:275
 #, fuzzy
 msgid "Id       MAC address     Quality  Age  RSSI"
 msgstr "Id      MAC adres       Kwaliteit Ouderdom RSSI"
 
+#~ msgid "Create socket error. Press any key."
+#~ msgstr "Fout bij maken socket. Druk op een toets."
+
+#~ msgid "Bind socket error. Press any key."
+#~ msgstr "Fout bij verbinden socket. Druk op een toets."
+
+#~ msgid "Create socket error"
+#~ msgstr "Fout bij maken socket"
+
+#~ msgid "Bind socket error"
+#~ msgstr "Fout bij verbinden socket"
+
 #, fuzzy
 #~ msgid "NUM       MAC address"
 #~ msgstr "NUM     MAC adres"
index f3940cae8a777facc203bc343c002c6a93dde95d..f1cc5ad2e24283d77c4f00180d946c465fc59513 100644 (file)
--- a/po/pl.po
+++ b/po/pl.po
@@ -5,7 +5,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: GNU ap-utils 1.1.1\n"
-"POT-Creation-Date: 2005-01-16 02:07+0200\n"
+"POT-Creation-Date: 2005-03-07 01:13+0200\n"
 "PO-Revision-Date: 2002-10-16 08:00-0500\n"
 "Last-Translator: Michel Robitaille <robitail@IRO.UMontreal.CA>\n"
 "Language-Team: French <traduc@traduc.org>\n"
@@ -15,86 +15,86 @@ msgstr ""
 "Report-Msgid-Bugs-To: \n"
 
 # src/aps.c:138
-#: lib/aps.c:29
+#: lib/aps.c:30
 msgid "Known Access Points"
 msgstr "Znane Access pointy"
 
-#: lib/aps.c:129
+#: lib/aps.c:130
 msgid "Your Access Point is not in \"AP client\" mode => getting"
 msgstr "Twój AP nie jest w trybie \"klient AP\""
 
-#: lib/aps.c:132
+#: lib/aps.c:133
 msgid "up-to-date \"Known APs\" info requires your AP to be"
 msgstr ""
 
-#: lib/aps.c:135
+#: lib/aps.c:136
 msgid "temporarily configured into \"AP client\" mode and rebooted."
 msgstr "tymczasowo skonfigurowano w tryb klienta AP i zrestartowano."
 
-#: lib/aps.c:138
+#: lib/aps.c:139
 msgid "Your AP will be reconfigured back to original mode by this"
 msgstr ""
 
-#: lib/aps.c:141
+#: lib/aps.c:142
 msgid "utility once you quit the \"KnownAP\" view. This, in turn, may"
 msgstr ""
 
 # src/ap-config.c:78
-#: lib/aps.c:144
+#: lib/aps.c:145
 msgid "cause loss of Access Point's current configuration."
 msgstr "Zapisuje aktualn± konfiguracje na sta³e"
 
-#: lib/aps.c:148
+#: lib/aps.c:149
 msgid "Do NOT answer \"Yes\" if you're connected to the Access Point"
 msgstr ""
 
 # src/ap-config.c:44
-#: lib/aps.c:151
+#: lib/aps.c:152
 msgid "via its wireless port."
 msgstr "poprzez port radiowy"
 
 # src/aps.c:91 src/cmd.c:41 src/cmd.c:85 src/cmd.c:141 src/test.c:82
-#: lib/aps.c:153 lib/cmd.c:45 lib/cmd.c:75 lib/test.c:96
+#: lib/aps.c:154 lib/cmd.c:45 lib/cmd.c:75 lib/test.c:96
 msgid "Do you want to continue? "
 msgstr "Czesz kontynuowaæ?"
 
 # src/aps.c:143
-#: lib/aps.c:207
+#: lib/aps.c:208
 msgid "NetworkType"
 msgstr "Typ sieci"
 
 # src/aps.c:176
-#: lib/aps.c:283
+#: lib/aps.c:284
 msgid "Infrastructure"
 msgstr "Infrastruktura"
 
 # src/aps.c:191
-#: lib/aps.c:343 lib/aps.c:351 lib/aps.c:359
+#: lib/aps.c:344 lib/aps.c:352 lib/aps.c:360
 msgid "CN: Channel Name; P: Preambule Type (S: Short; L: Long);"
 msgstr "P: Typ nag³ówka; P: Preambu³a (S: Krótki; L: D³ugi)"
 
-#: lib/aps.c:345
+#: lib/aps.c:346
 msgid "RSSI: Radio Signal Strength Indicator [%]"
 msgstr ""
 
-#: lib/aps.c:347 lib/aps.c:355
+#: lib/aps.c:348 lib/aps.c:356
 msgid "; LQ: Link Quality [%]"
 msgstr ""
 
-#: lib/aps.c:353
+#: lib/aps.c:354
 msgid "RSSI: Radio Signal Strength Indicator [dBm]"
 msgstr ""
 
-#: lib/aps.c:361
+#: lib/aps.c:362
 msgid "RSSI: Radio Signal Strength Indicator [raw]"
 msgstr ""
 
-#: lib/aps.c:363
+#: lib/aps.c:364
 msgid "; LQ: Link Q. [raw]"
 msgstr ""
 
 # src/aps.c:194
-#: lib/aps.c:369
+#: lib/aps.c:370
 #, fuzzy
 msgid ""
 "# con. to AP #; R refresh with reset; T toggle; Q quit; Other = refr. w/o "
@@ -103,7 +103,7 @@ msgstr ""
 "# po³±cz z tym AP; R od¶wie¿ przez reset; G od¶wie¿ bez resetu; Q wyj¶cie"
 
 # src/aps.c:194
-#: lib/aps.c:371
+#: lib/aps.c:372
 #, fuzzy
 msgid ""
 "# con. to AP #; R initiate AP scan; T toggle view; Q quit; Other = refresh "
@@ -112,44 +112,44 @@ msgstr ""
 "# po³±cz z tym AP; R od¶wie¿ przez reset; G od¶wie¿ bez resetu; Q wyj¶cie"
 
 # lib/ap_search.c:134
-#: lib/aps.c:500 lib/ap_search.c:167
+#: lib/aps.c:501 lib/ap_search.c:173
 #, c-format
 msgid "Failure in sendto(): %s. Press any key."
 msgstr "B³±d sendto() : %s. Wci¶nij dowolny klawisz."
 
-#: lib/aps.c:509
+#: lib/aps.c:510
 msgid "You have just initiated the AP scan. Be advised that it may"
 msgstr "W³a¶nie zainicjalizowa³e¶ skanowanie sieci. Musisz wiedzieæ,"
 
-#: lib/aps.c:512
+#: lib/aps.c:513
 msgid "take a few seconds for your Access Point to find out some"
 msgstr "¿e potrwa chwilkê, zanim twój AP znajdzie cokolwiek"
 
-#: lib/aps.c:515
+#: lib/aps.c:516
 msgid "values, so expect finishing the scan in about 5 seconds."
 msgstr "i mo¿esz oczekiwaæ zakoñczenia skanowania do 5 sekund."
 
-#: lib/aps.c:518
+#: lib/aps.c:519
 msgid "Also note that your Access Point stops forwarding the network"
 msgstr "Musisz wiedzieæ równie¿. ¿e AP przestanie przesy³aæ ruch"
 
-#: lib/aps.c:521
+#: lib/aps.c:522
 msgid "traffic while the scan is in progress, but restores itself"
 msgstr "sieciowy podczas skanowania, ale przywróci swój stan"
 
-#: lib/aps.c:524
+#: lib/aps.c:525
 msgid "to normal operation in time ranging up to 1 minute."
 msgstr "do normalnej pracy po oko³o 1 minucie."
 
-#: lib/aps.c:527
+#: lib/aps.c:528
 msgid "Hence, if you are connected to target Access Point via its"
 msgstr "Uwa¿aj! Je¶li jeste¶ pod³±czony do tego AP przez jego"
 
-#: lib/aps.c:530
+#: lib/aps.c:531
 msgid "wireless port, you need to wait a bit longer"
 msgstr "port radiowy, bêdziesz musia³ poczekaæ trochê d³u¿ej"
 
-#: lib/aps.c:533
+#: lib/aps.c:534
 msgid "after pressing 'S'."
 msgstr "po naci¶niêciu klawisza 'S'."
 
@@ -160,318 +160,314 @@ msgid "Community name: "
 msgstr "Dostêp"
 
 #: lib/ap_search.c:49
-msgid "  NUM  IP ADDRESS       MIB TYPE    NAME"
+msgid "  NUM  IP ADDRESS       MIB TYPE    FW TYPE (VERSION) AP NAME"
 msgstr ""
 
-#: lib/ap_search.c:100
+#: lib/ap_search.c:106
 msgid "Please wait while scanning, or press 'Q' to quit."
 msgstr "Trwa skanowanie, poczekaj chwilê, by przerwaæ wci¶nij 'Q'"
 
 # lib/ap_search.c:110
-#: lib/ap_search.c:116
+#: lib/ap_search.c:122
 msgid "Can't set broadcast option on socket. Press any key."
 msgstr "Nie moge ustawiæ trybu BROADCAST. Wci¶nij dowolny klawisz."
 
 # lib/ap_search.c:117
-#: lib/ap_search.c:125
+#: lib/ap_search.c:131
 msgid "Can't set multicast membership on socket. Press any key."
 msgstr "Nie moge ustawiæ przynale¿no¶ci multicast. Wci¶nij dowolny klawisz."
 
-#: lib/ap_search.c:132
+#: lib/ap_search.c:138
 msgid "Scanning via network interface:"
 msgstr "Szukam poprzez interfejs sieciowy: "
 
-#: lib/ap_search.c:133
+#: lib/ap_search.c:139
 #, c-format
 msgid "  Index: %i"
 msgstr " Indeks: %i"
 
 # lib/ap-utils.h:78
-#: lib/ap_search.c:135
+#: lib/ap_search.c:141
 #, c-format
 msgid "  Name: %s"
 msgstr " Nazwa: %s"
 
-#: lib/ap_search.c:137
+#: lib/ap_search.c:143
 #, c-format
 msgid "  IP: %s"
 msgstr ""
 
-#: lib/ap_search.c:146
+#: lib/ap_search.c:152
 #, fuzzy, c-format
 msgid "Scanning for AP with MIB type: %s"
 msgstr "Szukam typu AP: %s"
 
-#: lib/ap_search.c:334
-msgid "Please enter SNMP community name that will be used for AP detection."
-msgstr ""
-
 # lib/ap_search.c:128
-#: lib/ap_search.c:345
+#: lib/ap_search.c:378
 msgid "Access Points Search"
 msgstr "Szukanie Access-pointów"
 
 # src/ap-mrtg.c:178
-#: lib/ap_search.c:363
+#: lib/ap_search.c:396
 msgid "realloc() error."
 msgstr "B³±d otwarcia gniazdka"
 
-#: lib/ap_search.c:375
+#: lib/ap_search.c:408
 msgid "Network interface discovery error."
 msgstr "B³±d interfejsu sieciowego."
 
 # src/stat.c:41
-#: lib/ap_search.c:450
+#: lib/ap_search.c:483
 msgid "No local network interfaces found. Press any key."
 msgstr "Nie znaleziono interfejsu sieci lokalnej. Wci¶nij dowolny klawisz."
 
-#: lib/ap_search.c:452
+#: lib/ap_search.c:485
 msgid "No directly reachable Access Points found. Press any key."
 msgstr "Nie znaleziono ¿adnego osi±galnego AP. Naci¶nij dowolny klawisz."
 
-#: lib/ap_search.c:457
+#: lib/ap_search.c:490
 #, fuzzy
 msgid "Single-screen maximum number of APs found."
 msgstr "Program osi±gn±³ maksymaln± liczê Access Pointów znalezionych."
 
 # lib/common.c:118
-#: lib/ap_search.c:460
+#: lib/ap_search.c:493
 msgid "# - connect to AP; Q - quit"
 msgstr "# - pod³±cz do AP; Q - wyjd¼"
 
 # src/sysinfo.c:402
-#: lib/ap-utils.h:79
+#: lib/ap-utils.h:82
 msgid "MAC address: "
 msgstr "Adres MAC: "
 
 # lib/ap-utils.h:80
-#: lib/ap-utils.h:80
+#: lib/ap-utils.h:83
 msgid "[S] SNMP traps: "
 msgstr "[S] Sygnalizacja SNMP: "
 
 # lib/ap-utils.h:68
-#: lib/ap-utils.h:82
+#: lib/ap-utils.h:85
 msgid "[C] Frequency channel: "
 msgstr "[C] Czêstotliwo¶æ fali: "
 
 # src/stat.c:123
-#: lib/ap-utils.h:84
+#: lib/ap-utils.h:87
 msgid "Receive  antenna:"
 msgstr "Odebrane:"
 
 # src/test.c:70
-#: lib/ap-utils.h:85
+#: lib/ap-utils.h:88
 msgid "[U] Left"
 msgstr "[U] Lewa"
 
 # src/test.c:70
-#: lib/ap-utils.h:86
+#: lib/ap-utils.h:89
 msgid "[I] Right"
 msgstr "[I] Prawa"
 
 # src/stat.c:124
-#: lib/ap-utils.h:87
+#: lib/ap-utils.h:90
 msgid "Transmit antenna:"
 msgstr "Antena nadawcza:"
 
 # src/test.c:70
-#: lib/ap-utils.h:88
+#: lib/ap-utils.h:91
 msgid "[O] Left"
 msgstr "[O] Lewa"
 
 # src/test.c:70
-#: lib/ap-utils.h:89
+#: lib/ap-utils.h:92
 msgid "[P] Right"
 msgstr "[P] Prawa"
 
 # src/sysinfo.c:358
-#: lib/ap-utils.h:90
+#: lib/ap-utils.h:93
 msgid "Diversity select:"
 msgstr "Naprzemienno¶æ:"
 
 # src/test.c:70
-#: lib/ap-utils.h:91
+#: lib/ap-utils.h:94
 msgid "[T] Left"
 msgstr "[T] Lewa"
 
 # src/test.c:70
-#: lib/ap-utils.h:92
+#: lib/ap-utils.h:95
 msgid "[Y] Right"
 msgstr "[Y] Prawa"
 
-#: lib/ap-utils.h:94
+#: lib/ap-utils.h:97
 msgid "Yes"
 msgstr "Tak"
 
-#: lib/ap-utils.h:95
+#: lib/ap-utils.h:98
 msgid "No"
 msgstr "Nie"
 
-#: lib/ap-utils.h:97
+#: lib/ap-utils.h:100
 msgid "On"
 msgstr "w³±"
 
 # lib/ap-utils.h:55
-#: lib/ap-utils.h:98
+#: lib/ap-utils.h:101
 msgid "Off"
 msgstr "wy³"
 
 # lib/ap-utils.h:56
-#: lib/ap-utils.h:100
+#: lib/ap-utils.h:103
 msgid "Basic"
 msgstr "Podstawowy"
 
 # lib/ap-utils.h:58
-#: lib/ap-utils.h:102
+#: lib/ap-utils.h:105
 msgid "Press any key to continue."
 msgstr "Wci¶nij dowolny klawisz aby kontynuowaæ."
 
-#: lib/ap-utils.h:103
-msgid "Q - quit to menu. T - toggle polling mode, Other key - force update."
+#: lib/ap-utils.h:106
+msgid "Q - quit to menu. T - toggle polling mode, Other key - force update"
 msgstr ""
 
 # lib/ap-utils.h:86
-#: lib/ap-utils.h:105
+#: lib/ap-utils.h:108
 msgid "Unable to write data to AP. Press any key to continue."
 msgstr "Nie moge wys³aæ danych do AP. Wci¶nij dowolny klawisz."
 
 # lib/ap-utils.h:87
-#: lib/ap-utils.h:106
+#: lib/ap-utils.h:109
 #, fuzzy
 msgid "Unable to retrieve (valid) data from AP. Press any key to continue."
 msgstr "Nie moge pobraæ danych z AP. Wci¶nij dowolny klawisz."
 
 # lib/ap-utils.h:88
-#: lib/ap-utils.h:107
+#: lib/ap-utils.h:110
 #, fuzzy
-msgid "Trying to retrieve data from AP. Please wait..."
+msgid "Trying to retrieve data from AP - please wait (or press Q to quit)."
 msgstr "Pobieram dane z AP. Proszê czekaæ..."
 
 # lib/ap-utils.h:89
-#: lib/ap-utils.h:108
+#: lib/ap-utils.h:111
 msgid "Writing data to AP. Please wait..."
 msgstr "Zapisuje dane do AP. Proszê czekaæ..."
 
 # lib/ap-utils.h:86
-#: lib/ap-utils.h:109
+#: lib/ap-utils.h:112
 msgid "Configuration written to the AP. Press any key to continue."
 msgstr "Konfiguracja zapisana do AP. Wci¶nij dowolny klawisz."
 
 # src/stat.c:40
-#: lib/ap-utils.h:110
+#: lib/ap-utils.h:113
 #, fuzzy
 msgid "select() function error. Press any key."
 msgstr "B³±d fcntl(). Wci¶nij dowolny klawisz."
 
-# lib/ap-utils.h:92
-#: lib/ap-utils.h:112
-msgid "Create socket error. Press any key."
-msgstr "Nie moge utworzyæ gniazdka. Wci¶nij dowolny klawisz."
-
-# lib/ap-utils.h:93
-#: lib/ap-utils.h:113
-msgid "Bind socket error. Press any key."
-msgstr "Bl±d gniazdka. Wci¶nij dowolny klawisz."
+# src/stat.c:40
+#: lib/ap-utils.h:114
+#, fuzzy
+msgid "socket() or bind() function error. Press any key."
+msgstr "B³±d fcntl(). Wci¶nij dowolny klawisz."
 
 # lib/ap-utils.h:87
-#: lib/ap-utils.h:115
+#: lib/ap-utils.h:116
 #, fuzzy
 msgid "Unable to write AP list file ~/.ap-config. Press any key."
 msgstr "Nie moge pobraæ danych z AP. Wci¶nij dowolny klawisz."
 
-#: lib/ap-utils.h:116
+#: lib/ap-utils.h:117
 msgid "AP list file ~/.ap-config successfully written. Press any key."
 msgstr ""
 
 # lib/ap-utils.h:102
-#: lib/ap-utils.h:118
+#: lib/ap-utils.h:119
 msgid "Back to main menu"
 msgstr "Powrót do menu g³ównego"
 
 # lib/ap-utils.h:103
-#: lib/ap-utils.h:119
+#: lib/ap-utils.h:120
 msgid "Exit program"
 msgstr "Wyj¶cie z programu"
 
 # lib/ap-utils.h:104
-#: lib/ap-utils.h:120
+#: lib/ap-utils.h:121
 msgid "Run subshell. To return type 'exit'."
 msgstr "Uruchomienie podpow³oki. By wróciæ wpisz 'exit'."
 
+#: lib/ap-utils.h:122
+msgid "Change polling mode interval"
+msgstr ""
+
 # lib/ap-utils.h:105
-#: lib/ap-utils.h:121
+#: lib/ap-utils.h:123
 msgid "Short info about program"
 msgstr "O programie"
 
 # lib/ap-utils.h:106
-#: lib/ap-utils.h:122
+#: lib/ap-utils.h:124
 msgid "Find connected Access Points"
 msgstr "Znajd¼ pod³±czone Access-pointy"
 
 # lib/ap-utils.h:107
-#: lib/ap-utils.h:123
+#: lib/ap-utils.h:125
 msgid "Set connection options: ip and community"
 msgstr "Ustawianie opcji po³±czeñ: ip i grupa"
 
 # lib/ap-utils.h:108
-#: lib/ap-utils.h:124
+#: lib/ap-utils.h:126
 msgid "Set encryption; edit WEP keys"
 msgstr "Ustawianie szyfracji, zmiana kluczy"
 
 # lib/ap-utils.h:109
-#: lib/ap-utils.h:125
+#: lib/ap-utils.h:127
 #, fuzzy
 msgid "Set authorization; edit MAC authorization table"
 msgstr "Ustawianie praw dostêpu w/g MAC i listy MAC"
 
 # lib/ap-utils.h:110
-#: lib/ap-utils.h:126
+#: lib/ap-utils.h:128
 msgid "Set SNMP community/password for access to the AP"
 msgstr "Ustawianie hase³/praw SNMP dla AP"
 
 # lib/ap-utils.h:111
-#: lib/ap-utils.h:127
+#: lib/ap-utils.h:129
 msgid "Get info about AP hardware and firmware"
 msgstr "Informacja o sprzêcie i oprogramowaniu AP"
 
 # lib/ap-utils.h:112
-#: lib/ap-utils.h:128
+#: lib/ap-utils.h:130
 msgid "Get wireless port statistics"
 msgstr "Statystyki portu radiowego"
 
 # lib/ap-utils.h:113
-#: lib/ap-utils.h:129
+#: lib/ap-utils.h:131
 msgid "Get list of currently associated stations (Access Point clients)"
 msgstr "Lista aktualnie przy³±czonych stacji"
 
-#: lib/ap-utils.h:130
+#: lib/ap-utils.h:132
 msgid "Get link status in APclient mode"
 msgstr ""
 
 # lib/ap-utils.h:114
-#: lib/ap-utils.h:131
+#: lib/ap-utils.h:133
 msgid "Get info and statistics from AP"
 msgstr "Pobieram informacje i statystyki z AP"
 
 # lib/ap-utils.h:115
-#: lib/ap-utils.h:132
+#: lib/ap-utils.h:134
 msgid "Set various configuration options"
 msgstr "Ustawianie ró¿nych opcji"
 
 # src/stations.c:194 src/stations.c:278
-#: lib/ap-utils.h:134
+#: lib/ap-utils.h:136
 msgid "Associated stations"
 msgstr "Pod³±czone stacje"
 
-#: lib/ap-utils.h:135
+#: lib/ap-utils.h:137
 msgid "AP Client link state"
 msgstr ""
 
-#: lib/ap-utils.h:137
+#: lib/ap-utils.h:139
 msgid "Polling: on"
 msgstr ""
 
-#: lib/ap-utils.h:138
+#: lib/ap-utils.h:140
 msgid "Polling: off"
 msgstr ""
 
@@ -538,182 +534,202 @@ msgid "Configuration uploaded. Press any key to continue."
 msgstr "Konfiguracja za³adowana. Wci¶nij dowolny klawisz."
 
 # lib/common.c:120
-#: lib/common.c:30
+#: lib/common.c:32
 msgid "Access Point IP-address: "
 msgstr "Adres IP Access Pointa: "
 
 # lib/common.c:121
-#: lib/common.c:31
+#: lib/common.c:33
 msgid "Password (community): "
 msgstr "Has³o (community): "
 
-#: lib/common.c:32
+#: lib/common.c:34
 #, fuzzy
 msgid "Autodetect AP MIB properties? "
 msgstr "Wykryæ typ AP? "
 
 # lib/common.c:122
-#: lib/common.c:33
+#: lib/common.c:35
 #, fuzzy
 msgid "AP MIB type: "
 msgstr "Typ AP: "
 
-#: lib/common.c:34
+#: lib/common.c:36
 msgid "AP MIB vendor extensions: "
 msgstr ""
 
 # src/aps.c:91 src/cmd.c:41 src/cmd.c:85 src/cmd.c:141 src/test.c:82
-#: lib/common.c:35
+#: lib/common.c:37
 #, fuzzy
 msgid "Do you want to use AP's name as its label? "
 msgstr "Czesz kontynuowaæ?"
 
 # src/bridge.c:86
-#: lib/common.c:36
+#: lib/common.c:38
 #, fuzzy
 msgid "Access Point label: "
 msgstr "Access Point"
 
 # lib/common.c:159
-#: lib/common.c:37
+#: lib/common.c:39
 msgid "Save connect-settings: "
 msgstr "Zapisz na sta³e: "
 
+#: lib/common.c:40
+msgid "[P] Polling mode interval (tenths of second): "
+msgstr ""
+
+# src/wlan.c:185
+#: lib/common.c:41
+#, fuzzy
+msgid "P - change polling mode interval; Q - quit to menu"
+msgstr "[kl] - ustaw opcje; W - zapis; Q - wyj¶cie do menu"
+
 # lib/common.c:50 src/ap-config.c:147
-#: lib/common.c:84 src/ap-config.c:154
+#: lib/common.c:89 src/ap-config.c:158
 msgid "About"
 msgstr "O..."
 
 # lib/common.c:67
-#: lib/common.c:101
+#: lib/common.c:106
 #, c-format
 msgid "From %s"
 msgstr "Od %s"
 
 # lib/common.c:69
-#: lib/common.c:103
+#: lib/common.c:108
 #, c-format
 msgid "Version %s"
 msgstr "Wersja %s"
 
 # lib/common.c:72
-#: lib/common.c:106
+#: lib/common.c:111
 msgid "Written by Roman Festchook roma@polesye.net"
 msgstr "Napisa³ Roman Festchook (roma@polesye.net)"
 
-#: lib/common.c:108
+#: lib/common.c:113
 msgid "and Jan Rafaj jr-aputils@cedric.unob.cz"
 msgstr ""
 
 # lib/common.c:74
-#: lib/common.c:110
+#: lib/common.c:115
 #, fuzzy
 msgid "Copyright (c) 2001-2005"
 msgstr "Prawa autorskie - Roman Festchook 2001-2004"
 
-#: lib/common.c:112
+#: lib/common.c:117
 msgid "Roman Festchook and Jan Rafaj"
 msgstr ""
 
 # lib/common.c:77
-#: lib/common.c:115
+#: lib/common.c:120
 msgid "This program is distributed under the terms"
 msgstr "Program dostêpnu wed³ug zasad"
 
 # lib/common.c:79
-#: lib/common.c:117
+#: lib/common.c:122
 msgid "of the GNU General Public License version 2."
 msgstr "Publicznej Licencji GNU w wersji 2."
 
 # lib/common.c:81
-#: lib/common.c:119
+#: lib/common.c:124
 msgid "See the included COPYING file for details."
 msgstr "Szczegó³y - przeczytaj plik COPYING."
 
 # lib/common.c:118
-#: lib/common.c:175
+#: lib/common.c:165
 msgid "Connect options"
 msgstr "Opcje pod³±czenia"
 
 # lib/common.c:124
-#: lib/common.c:183
+#: lib/common.c:173
 msgid "Enter IP address of your Access Point."
 msgstr "Wpisz adres IP swojego Access Pointa."
 
 # lib/common.c:133
-#: lib/common.c:192
+#: lib/common.c:182
 msgid "Entered characters will not be displayed for security reason."
 msgstr "Wpisywane litery nie bêd± wy¶wietlane z powodów bezpieczeñstwa."
 
-#: lib/common.c:259
+#: lib/common.c:249
 msgid "This label will be stored on HDD (independently on AP name!)."
 msgstr ""
 
 # lib/ap-utils.h:89
-#: lib/common.c:370
+#: lib/common.c:362
 #, fuzzy
 msgid "Trying to probe AP for MIB properties. Please wait..."
 msgstr "Zapisuje dane do AP. Proszê czekaæ..."
 
 # lib/ap-utils.h:87
-#: lib/common.c:399
+#: lib/common.c:391
 #, fuzzy
 msgid ""
 "Unable to determine AP MIB properties (no response from AP). Press any key."
 msgstr "Nie moge pobraæ danych z AP. Wci¶nij dowolny klawisz."
 
-#: lib/file.c:205
+#: lib/common.c:489 lib/set_oeminfo.c:221
+#, c-format
+msgid "%s%u"
+msgstr ""
+
+#: lib/common.c:491
+#, c-format
+msgid "(%0.1f seconds)"
+msgstr ""
+
+#: lib/file.c:199
 msgid "NUM  IP ADDRESS       MIB TYPE    MIB EXT.  LABEL"
 msgstr ""
 
-#: lib/file.c:206
+#: lib/file.c:200
 msgid "Choose an AP to connect to"
 msgstr "Wybierz AP do którego chcesz siê pod³±czyæ"
 
-#: lib/file.c:212
+#: lib/file.c:206
 msgid "1-9,C: connect; N: new; D: delete; W: save; Q: quit; arrows: scroll"
 msgstr ""
 "1-9,C: pod³±cz; N: nowy; D: kasuj; W: zapisz; Q: wyjd¼; kursor: przewiñ"
 
 # lib/common.c:118
-#: lib/file.c:268
+#: lib/file.c:257
 msgid "Connect to AP num:"
 msgstr "Nr AP do pod³. :"
 
 # lib/ap-utils.h:121
-#: lib/file.c:304
+#: lib/file.c:288
 msgid "Delete num:"
 msgstr "Skasuj pozycje:"
 
 # lib/ap-utils.h:86
-#: lib/file.c:458
+#: lib/file.c:442
 #, fuzzy
 msgid "Unable to write stations file. Press any key."
 msgstr "Nie moge wys³aæ danych do AP. Wci¶nij dowolny klawisz."
 
-#: lib/file.c:460
+#: lib/file.c:444
 msgid "Stations file succesfully written. Press any key."
 msgstr ""
 
 # src/bridge.c:31
-#: lib/input.c:33
+#: lib/input.c:32
 msgid "Invalid value. Press any key to continue."
 msgstr "B³êdny adres IP. Wci¶nij dowolny klawisz."
 
 # lib/ap-utils.h:86
-#: lib/input.c:34
+#: lib/input.c:33
 #, fuzzy, c-format
 msgid "Value must be in range %u - %u. Press any key to continue."
 msgstr "Warto¶æ musi byæ od %i do %i. Wci¶nij dowolny klawisz."
 
 # src/aps.c:93
-#: lib/input.c:413
+#: lib/input.c:460
 #, fuzzy
 msgid "Y - Yes; Any other key - No (it's safer to answer No)"
 msgstr "(Y - Tak; N - Nie (lepiej nie)"
 
 # lib/oui.c:6048
-#: lib/oui.c:6058
+#: lib/oui.c:6061
 msgid "Unknown or Private"
 msgstr "Nieznany lub Prywatny"
 
@@ -760,7 +776,7 @@ msgid ""
 msgstr "Nie wy³±cza siê wszystkich anten!!! Wci¶nij dowolny klawisz"
 
 # lib/scr.c:112
-#: lib/scr.c:156
+#: lib/scr.c:157
 #, fuzzy, c-format
 msgid "Current AP: %s Type: %s Ext: %s"
 msgstr "Aktualny AP: %s Typ: %s"
@@ -957,11 +973,6 @@ msgstr ""
 msgid "OEM Info settings"
 msgstr ""
 
-#: lib/set_oeminfo.c:221
-#, c-format
-msgid "%s%u"
-msgstr ""
-
 # src/stat.c:72
 #: lib/stat.c:29
 msgid "Ethernet Statistics"
@@ -1011,226 +1022,226 @@ msgid "System Info"
 msgstr "Informacja o systemie"
 
 # src/bridge.c:85
-#: lib/sysinfo.c:54 src/bridge.c:86
+#: lib/sysinfo.c:55 src/bridge.c:50
 msgid "Wireless Bridge Point to MultiPoint"
 msgstr "Bridge punkt-wielopunkt"
 
 # src/bridge.c:86
-#: lib/sysinfo.c:55 src/bridge.c:87
+#: lib/sysinfo.c:56 src/bridge.c:51
 msgid "Access Point"
 msgstr "Access Point"
 
 # src/bridge.c:87
-#: lib/sysinfo.c:56 src/bridge.c:88
+#: lib/sysinfo.c:57 src/bridge.c:52
 msgid "Access Point client"
 msgstr "Klient Access pointa"
 
 # src/bridge.c:88
-#: lib/sysinfo.c:57 src/bridge.c:89
+#: lib/sysinfo.c:58 src/bridge.c:53
 msgid "Wireless Bridge Point to Point"
 msgstr "Bridge punkt-punkt"
 
 # src/bridge.c:88
-#: lib/sysinfo.c:58 src/bridge.c:90
+#: lib/sysinfo.c:59 src/bridge.c:54
 msgid "Repeater"
 msgstr "Repeater"
 
 # src/sysinfo.c:131 src/sysinfo.c:216 src/sysinfo.c:322
-#: lib/sysinfo.c:59 lib/sysinfo.c:314 lib/sysinfo.c:423 src/bridge.c:91
+#: lib/sysinfo.c:60 lib/sysinfo.c:315 lib/sysinfo.c:424 src/bridge.c:55
 msgid "unknown"
 msgstr "nieznany"
 
-#: lib/sysinfo.c:143
+#: lib/sysinfo.c:144
 msgid "Device hardware/software/name info:"
 msgstr "Wersja urz±dzenia sprzêtowa/programowa/nazwa:"
 
 # src/bridge.c:35
-#: lib/sysinfo.c:171
+#: lib/sysinfo.c:172
 #, fuzzy, c-format
 msgid "Operational mode: %s"
 msgstr "[O] Tryb pracy: "
 
 # src/sysinfo.c:103 src/sysinfo.c:285
-#: lib/sysinfo.c:181
+#: lib/sysinfo.c:182
 #, fuzzy
 msgid "Product name: "
 msgstr "Produkt:"
 
 # src/sysinfo.c:108
-#: lib/sysinfo.c:185
+#: lib/sysinfo.c:186
 #, c-format
 msgid "Product type: %u"
 msgstr "Typ produktu: %u"
 
 # src/sysinfo.c:116
-#: lib/sysinfo.c:188
+#: lib/sysinfo.c:189
 #, fuzzy
 msgid "OEM name: "
 msgstr "Nazwa OEM:"
 
 # src/sysinfo.c:111
-#: lib/sysinfo.c:195
+#: lib/sysinfo.c:196
 #, c-format
 msgid "Hardware revision: %u"
 msgstr "Wersja sprzêtu: %u"
 
 # src/sysinfo.c:134
-#: lib/sysinfo.c:203
+#: lib/sysinfo.c:204
 #, c-format
 msgid "Info structure version: %u"
 msgstr "StructVersion: %u"
 
 # src/sysinfo.c:138 src/sysinfo.c:279
-#: lib/sysinfo.c:206 lib/sysinfo.c:382
+#: lib/sysinfo.c:207 lib/sysinfo.c:383
 #, c-format
 msgid "Manufacturer OUI: %02X %02X %02X (%s)"
 msgstr "OUI producenta: %02X %02X %02X (%s)"
 
 # src/sysinfo.c:386
-#: lib/sysinfo.c:223
+#: lib/sysinfo.c:224
 #, fuzzy, c-format
 msgid "Uptime: %u days, %02u:%02u:%02u hours:mins:secs"
 msgstr "Dzia³a ju¿: %u:%02u:%02u.%02u"
 
 # src/sysinfo.c:213
-#: lib/sysinfo.c:311
+#: lib/sysinfo.c:312
 msgid "FHSS 2.4 GHz"
 msgstr "FHSS 2.4 GHz"
 
 # src/sysinfo.c:213
-#: lib/sysinfo.c:311
+#: lib/sysinfo.c:312
 msgid "DSSS 2.4 GHz"
 msgstr "DSSS 2.4 GHz"
 
 # src/sysinfo.c:213
-#: lib/sysinfo.c:311
+#: lib/sysinfo.c:312
 msgid "IR Baseband"
 msgstr "IR Baseband"
 
 # src/sysinfo.c:214
-#: lib/sysinfo.c:312
+#: lib/sysinfo.c:313
 msgid "Commercial range 0..40 C"
 msgstr "Temp. standardowe: 0..40 C"
 
 # src/sysinfo.c:215
-#: lib/sysinfo.c:313
+#: lib/sysinfo.c:314
 msgid "Industrial range -30..70 C"
 msgstr "Temp przemys³owe: -30..70 C"
 
 # src/sysinfo.c:218
-#: lib/sysinfo.c:316
+#: lib/sysinfo.c:317
 msgid "manual"
 msgstr "rêczne"
 
 # src/sysinfo.c:218
-#: lib/sysinfo.c:316
+#: lib/sysinfo.c:317
 msgid "notsupported"
 msgstr "nie obs³ugiwane"
 
 # src/sysinfo.c:218
-#: lib/sysinfo.c:316
+#: lib/sysinfo.c:317
 msgid "dynamic"
 msgstr "dynamiczne"
 
 # src/sysinfo.c:267
-#: lib/sysinfo.c:372
+#: lib/sysinfo.c:373
 msgid "Manufacturer:"
 msgstr "Producent:"
 
 # src/sysinfo.c:273
-#: lib/sysinfo.c:377
+#: lib/sysinfo.c:378
 msgid "Manufacturer ID:"
 msgstr "ID producenta:"
 
 # src/sysinfo.c:103 src/sysinfo.c:285
-#: lib/sysinfo.c:388
+#: lib/sysinfo.c:389
 msgid "Product Name:"
 msgstr "Nazwa produktu:"
 
 # src/sysinfo.c:292
-#: lib/sysinfo.c:394
+#: lib/sysinfo.c:395
 msgid "Product ID:"
 msgstr "ID produktu:"
 
 # src/sysinfo.c:298
-#: lib/sysinfo.c:400
+#: lib/sysinfo.c:401
 msgid "Product Version:"
 msgstr "Wersja produktu:"
 
 # src/sysinfo.c:306
-#: lib/sysinfo.c:406
+#: lib/sysinfo.c:407
 #, c-format
 msgid "PHYType: %s"
 msgstr "Typ PHY: %s"
 
 # src/sysinfo.c:309
-#: lib/sysinfo.c:409
+#: lib/sysinfo.c:410
 #, c-format
 msgid "Temperature: %s"
 msgstr "Temperatura: %s"
 
 # src/sysinfo.c:316
-#: lib/sysinfo.c:417
+#: lib/sysinfo.c:418
 #, fuzzy, c-format
 msgid "Regulatory Domain: %s"
 msgstr "Regulacje dot. kana³ów: %s"
 
 # src/sysinfo.c:126 src/sysinfo.c:317
-#: lib/sysinfo.c:418
+#: lib/sysinfo.c:419
 msgid "FCC (USA)"
 msgstr "FCC (USA)"
 
 # src/sysinfo.c:127 src/sysinfo.c:318
-#: lib/sysinfo.c:419
+#: lib/sysinfo.c:420
 msgid "DOC (Canada)"
 msgstr "DOC (Kanada)"
 
 # src/sysinfo.c:128 src/sysinfo.c:319
-#: lib/sysinfo.c:420
+#: lib/sysinfo.c:421
 msgid "ETSI (Europe)"
 msgstr "ETSI (Europa)"
 
 # src/sysinfo.c:129 src/sysinfo.c:320
-#: lib/sysinfo.c:421
+#: lib/sysinfo.c:422
 msgid "Spain"
 msgstr "Hiszpania"
 
 # src/sysinfo.c:130 src/sysinfo.c:321
-#: lib/sysinfo.c:422
+#: lib/sysinfo.c:423
 msgid "France"
 msgstr "Francja"
 
 # src/sysinfo.c:131 src/sysinfo.c:322
-#: lib/sysinfo.c:423
+#: lib/sysinfo.c:424
 msgid "MKK (Japan)"
 msgstr "MKK (Japonia)"
 
 # src/sysinfo.c:325
-#: lib/sysinfo.c:426
+#: lib/sysinfo.c:427
 #, c-format
 msgid "Transmit Power: %u mW"
 msgstr "Moc wyj¶ciowa: %u mW"
 
 # src/sysinfo.c:355
-#: lib/sysinfo.c:456
+#: lib/sysinfo.c:457
 #, fuzzy, c-format
 msgid "WEP implemented: %s"
 msgstr "Obs³uga WEP: %s"
 
 # src/sysinfo.c:358
-#: lib/sysinfo.c:459
+#: lib/sysinfo.c:460
 #, c-format
 msgid "Diversity: %s"
 msgstr "Naprzemienno¶æ: %s"
 
 # src/sysinfo.c:386
-#: lib/sysinfo.c:487
+#: lib/sysinfo.c:488
 #, c-format
 msgid "Uptime: %u:%02u:%02u.%02u"
 msgstr "Dzia³a ju¿: %u:%02u:%02u.%02u"
 
 # src/sysinfo.c:402
-#: lib/sysinfo.c:507
+#: lib/sysinfo.c:508
 #, c-format
 msgid "IP  Address: %s"
 msgstr "Adres IP: %s"
@@ -1452,7 +1463,7 @@ msgid "[D] DTIM sending interval (beacons): "
 msgstr ""
 
 #: lib/wlan.c:48
-msgid "[T] SIFS time (ACK timeout) msec: "
+msgid "[T] SIFS time (2nd+ interframe spacing, usec): "
 msgstr ""
 
 # src/wlan.c:185
@@ -1471,22 +1482,22 @@ msgid "Long"
 msgstr "D³uga"
 
 # src/wlan.c:104
-#: lib/wlan.c:237
+#: lib/wlan.c:239
 msgid "Wireless Settings"
 msgstr "Parametry radia"
 
 # src/wlan.c:584
-#: lib/wlan.c:731
+#: lib/wlan.c:735
 msgid "Antenna Configuration:"
 msgstr "Konfiguracja anten:"
 
 # src/wlan.c:596
-#: lib/wlan.c:748
+#: lib/wlan.c:752
 msgid "General Options"
 msgstr "Opcje ogólne"
 
 # src/wlan.c:598
-#: lib/wlan.c:750
+#: lib/wlan.c:754
 msgid ""
 "UIOPTY - antenna; SCANLEDFR1234 - options; W - write conf; Q - quit to menu"
 msgstr "UIOPTY - antena; SCANLEDFR1234 - opcje; W - zapis; Q - powrót"
@@ -1513,7 +1524,7 @@ msgid "Error closing file"
 msgstr ""
 
 # src/ap-mrtg.c:45
-#: src/ap-auth.c:45 src/ap-mrtg.c:42 src/ap-rrd.c:42
+#: src/ap-auth.c:44 src/ap-mrtg.c:41 src/ap-rrd.c:40
 msgid ""
 "\n"
 "Usage:\n"
@@ -1521,44 +1532,44 @@ msgstr ""
 "\n"
 "U¿ycie:\n"
 
-#: src/ap-auth.c:46
+#: src/ap-auth.c:45
 msgid "\tap-auth -i ip -c community -d filename [-h]\n"
 msgstr ""
 
-#: src/ap-auth.c:47
+#: src/ap-auth.c:46
 msgid ""
 "\tap-auth -i ip -c community -u filename [-h]\n"
 "\n"
 msgstr ""
 
-#: src/ap-auth.c:48
+#: src/ap-auth.c:47
 msgid ""
 "Change accesspoint's list of authorised MAC addresses\n"
 "\n"
 msgstr ""
 
 # src/ap-mrtg.c:50
-#: src/ap-auth.c:49 src/ap-mrtg.c:46 src/ap-rrd.c:47
+#: src/ap-auth.c:48 src/ap-mrtg.c:45 src/ap-rrd.c:45
 msgid "-i ip        - AP ip address\n"
 msgstr "-i ip        - adres IP\n"
 
 # src/ap-mrtg.c:51
-#: src/ap-auth.c:50 src/ap-mrtg.c:47 src/ap-rrd.c:48
+#: src/ap-auth.c:49 src/ap-mrtg.c:46 src/ap-rrd.c:46
 msgid "-c community - SNMP community string\n"
 msgstr "-c communauté   has³o SNMP\n"
 
-#: src/ap-auth.c:51
+#: src/ap-auth.c:50
 msgid ""
 "-d filename  - download list of authorised MAC addresses from AP to a file\n"
 msgstr ""
 
-#: src/ap-auth.c:53
+#: src/ap-auth.c:52
 msgid ""
 "-u filename  - upload list of authorised MAC addresses from a file to AP\n"
 msgstr ""
 
 # src/ap-mrtg.c:59
-#: src/ap-auth.c:55 src/ap-mrtg.c:56 src/ap-rrd.c:57
+#: src/ap-auth.c:54 src/ap-mrtg.c:55 src/ap-rrd.c:55
 msgid ""
 "-h           - print this help screen\n"
 "\n"
@@ -1567,7 +1578,7 @@ msgstr ""
 "\n"
 
 # src/ap-mrtg.c:60
-#: src/ap-auth.c:56
+#: src/ap-auth.c:55
 #, fuzzy, c-format
 msgid ""
 "ap-auth %s Copyright (c) 2004 Teemu Kiviniemi\n"
@@ -1577,265 +1588,284 @@ msgstr ""
 "\n"
 
 # src/ap-mrtg.c:142
-#: src/ap-auth.c:146 src/ap-mrtg.c:139
+#: src/ap-auth.c:138 src/ap-mrtg.c:132
 #, fuzzy
 msgid "Error: invalid IP-address.\n"
 msgstr "B³êdny adres IP\n"
 
-# src/ap-mrtg.c:178
-#: src/ap-auth.c:178 src/ap-mrtg.c:178 src/ap-rrd.c:207
-msgid "Create socket error"
-msgstr "B³±d tworzenia gniazda"
-
-# src/ap-mrtg.c:182
-#: src/ap-auth.c:182 src/ap-mrtg.c:182 src/ap-rrd.c:211
-msgid "Bind socket error"
-msgstr "B³±d bind()"
-
 # lib/ap-utils.h:87
-#: src/ap-auth.c:220 src/ap-mrtg.c:220
+#: src/ap-auth.c:203 src/ap-mrtg.c:204
 #, fuzzy
 msgid "Unable to determine AP MIB type (no response from AP)."
 msgstr "Nie moge pobraæ danych z AP. Wci¶nij dowolny klawisz."
 
-#: src/ap-auth.c:228
+#: src/ap-auth.c:211
 msgid "NWN devices are not yet supported."
 msgstr ""
 
 # src/ap-config.c:42 src/bridge.c:166
-#: src/ap-config.c:41 src/bridge.c:200
+#: src/ap-config.c:43 src/bridge.c:201
 msgid "Bridging"
 msgstr "Podstawowe"
 
 # src/ap-config.c:42
-#: src/ap-config.c:41
+#: src/ap-config.c:43
 msgid "Set bridging and IP-related options"
 msgstr "Ustawianie opcji mostu i IP"
 
 # src/ap-config.c:44 src/ap-config.c:112 src/ap-config.c:121 src/bridge.c:90
-#: src/ap-config.c:43 src/ap-config.c:112 src/ap-config.c:121 src/bridge.c:124
+#: src/ap-config.c:45 src/ap-config.c:114 src/ap-config.c:123 src/bridge.c:125
 msgid "Wireless"
 msgstr "Radiowe"
 
 # src/ap-config.c:44
-#: src/ap-config.c:43
+#: src/ap-config.c:45
 msgid "Set wireless options"
 msgstr "Opcje radiowe"
 
 # src/ap-config.c:45 src/ap-config.c:57
-#: src/ap-config.c:44 src/ap-config.c:56
+#: src/ap-config.c:46 src/ap-config.c:58
 msgid "Privacy"
 msgstr "Klucze"
 
 # lib/common.c:50 src/ap-config.c:147
-#: src/ap-config.c:45
+#: src/ap-config.c:47
 #, fuzzy
 msgid "Auth"
 msgstr "O..."
 
 # src/ap-config.c:47 src/ap-config.c:59
-#: src/ap-config.c:46 src/ap-config.c:58
+#: src/ap-config.c:48 src/ap-config.c:60
 msgid "Community"
 msgstr "Dostêp"
 
 # src/ap-config.c:48
-#: src/ap-config.c:47
+#: src/ap-config.c:49
 msgid "Radio"
 msgstr "Radio"
 
 # src/ap-config.c:48
-#: src/ap-config.c:47
+#: src/ap-config.c:49
 msgid "Set radio signal power and antenna options"
 msgstr "Ustawianie mocy sygna³u i opcji antenowych"
 
 # src/ap-config.c:55
-#: src/ap-config.c:54
+#: src/ap-config.c:56
 msgid "General"
 msgstr "Ogólne"
 
 # src/ap-config.c:55
-#: src/ap-config.c:54
+#: src/ap-config.c:56
 msgid "Set general options"
 msgstr "Opcje ogólne"
 
 # src/ap-config.c:56
-#: src/ap-config.c:55
+#: src/ap-config.c:57
 msgid "Advanced"
 msgstr "Zaawansowane"
 
 # src/ap-config.c:56
-#: src/ap-config.c:55
+#: src/ap-config.c:57
 msgid "Set advanced options"
 msgstr "Opcje zaawansowane"
 
 # src/ap-config.c:46 src/ap-config.c:58
-#: src/ap-config.c:57
+#: src/ap-config.c:59
 msgid "MAC auth"
 msgstr "Blokuj MAC"
 
 # src/ap-config.c:78
-#: src/ap-config.c:80
+#: src/ap-config.c:82
 msgid "Upload"
 msgstr "Wy¶lij"
 
 # src/ap-config.c:78
-#: src/ap-config.c:80
+#: src/ap-config.c:82
 #, fuzzy
 msgid "Activate current configuration"
 msgstr "Uczyñ konfiguracjê aktywn±"
 
 # src/ap-config.c:79
-#: src/ap-config.c:81
+#: src/ap-config.c:83
 msgid "Defaults"
 msgstr "Domy¶lne"
 
 # src/ap-config.c:79
-#: src/ap-config.c:81
+#: src/ap-config.c:83
 msgid "Restore factory default settings"
 msgstr "Przywróæ ustawienia producenta"
 
 # src/ap-config.c:81 src/ap-config.c:89
-#: src/ap-config.c:82 src/ap-config.c:89
+#: src/ap-config.c:84 src/ap-config.c:91
 msgid "Reset"
 msgstr "Reset"
 
 # src/ap-config.c:82
-#: src/ap-config.c:83
+#: src/ap-config.c:85
 msgid "Reset AP. All not uploaded configuration will be lost"
 msgstr "Reset. Wszystkie nie za³adowane opcje bêd± utracone"
 
 # src/ap-config.c:84
-#: src/ap-config.c:84
+#: src/ap-config.c:86
 msgid "TestMode"
 msgstr "TrybTest"
 
 # src/ap-config.c:84
-#: src/ap-config.c:84
+#: src/ap-config.c:86
 msgid "Put Access Point in test mode"
 msgstr "W³±cza tryb testowy AP"
 
 # 
 # src/ap-config.c:89
-#: src/ap-config.c:89
+#: src/ap-config.c:91
 msgid "Reset AP."
 msgstr "Reset AP."
 
 # src/ap-config.c:110 src/ap-config.c:120
-#: src/ap-config.c:110 src/ap-config.c:120
+#: src/ap-config.c:112 src/ap-config.c:122
 msgid "SysInfo"
 msgstr "Ogólne"
 
 # src/ap-config.c:111 src/bridge.c:90
-#: src/ap-config.c:111 src/bridge.c:123 src/bridge.c:127
+#: src/ap-config.c:113 src/bridge.c:124 src/bridge.c:127
 msgid "Ethernet"
 msgstr "Ethernet"
 
 # src/ap-config.c:111
-#: src/ap-config.c:111
+#: src/ap-config.c:113
 msgid "Get ethernet port statistics"
 msgstr "Pobierz statystyki ethernetu"
 
 # src/ap-config.c:113 src/ap-config.c:122
-#: src/ap-config.c:113 src/ap-config.c:122
+#: src/ap-config.c:115 src/ap-config.c:124
 msgid "Stations"
 msgstr "Stacje"
 
-#: src/ap-config.c:114
+#: src/ap-config.c:116
 msgid "AP link"
 msgstr ""
 
 # src/ap-config.c:115
-#: src/ap-config.c:115
+#: src/ap-config.c:117
 msgid "KnownAPs"
 msgstr "Znane AP"
 
 # src/ap-config.c:115
-#: src/ap-config.c:115
+#: src/ap-config.c:117
 msgid "Get info about known Access Points"
 msgstr "Podaj informacje o Access Pointach"
 
 # src/ap-config.c:123
-#: src/ap-config.c:123
+#: src/ap-config.c:125
 msgid "Latest"
 msgstr "Ostatnie"
 
 # src/ap-config.c:123
-#: src/ap-config.c:123
+#: src/ap-config.c:125
 msgid "Get info about latest events"
 msgstr "Pobiera info o ostatnich zdarzeniach"
 
 # src/ap-config.c:141
-#: src/ap-config.c:148
+#: src/ap-config.c:150
 msgid "Info"
 msgstr "Info"
 
 # src/ap-config.c:142
-#: src/ap-config.c:149
+#: src/ap-config.c:151
 msgid "Config"
 msgstr "Konfig"
 
 # src/ap-config.c:143
-#: src/ap-config.c:150
+#: src/ap-config.c:152
 msgid "Commands"
 msgstr "Komendy"
 
 # src/ap-config.c:143
-#: src/ap-config.c:150
+#: src/ap-config.c:152
 msgid "Execute commands on Access Point"
 msgstr "Wykonaj operacje w AP"
 
 # src/ap-config.c:145
-#: src/ap-config.c:152
+#: src/ap-config.c:154
 msgid "Connect"
 msgstr "Po³±cz"
 
 # src/ap-config.c:146
-#: src/ap-config.c:153
+#: src/ap-config.c:155
 msgid "Search"
 msgstr "Znajd¼"
 
+#: src/ap-config.c:156
+msgid "Polling"
+msgstr ""
+
 # src/ap-config.c:148
-#: src/ap-config.c:155
+#: src/ap-config.c:157
 msgid "Shell"
 msgstr "Shell"
 
 # src/ap-config.c:149
-#: src/ap-config.c:156
+#: src/ap-config.c:159
 msgid "Exit"
 msgstr "Wyjd¼"
 
 # src/ap-config.c:194
-#: src/ap-config.c:214
+#: src/ap-config.c:218
 #, c-format
 msgid "Wireless Access Point Configurator ver. %s"
 msgstr "Konfigurator bezprzewodowych access-pointów wersja %s"
 
-#: src/aplink.c:28
+#: src/aplink.c:25
 msgid "RSSI:     ["
 msgstr ""
 
-#: src/aplink.c:29
+#: src/aplink.c:26
 msgid "RSSI avg: ["
 msgstr ""
 
-#: src/aplink.c:30
+#: src/aplink.c:27
 msgid "RSSI top: ["
 msgstr ""
 
-#: src/aplink.c:112
+#: src/aplink.c:28
+msgid "RSSI rou: ["
+msgstr ""
+
+#: src/aplink.c:29
+msgid ""
+"P - pause, T - toggle graph view, Q - quit to menu, Other key - force update."
+msgstr ""
+
+#: src/aplink.c:81
+msgid "RSSI [%]"
+msgstr ""
+
+#: src/aplink.c:82
+msgid "RSSI average [%]"
+msgstr ""
+
+#: src/aplink.c:83
+msgid "RSSI rounded [%]"
+msgstr ""
+
+#: src/aplink.c:84
+msgid "Link Quality [%]"
+msgstr ""
+
+#: src/aplink.c:133
 msgid "Not available - device must have firmware with necessary "
 msgstr ""
 
-#: src/aplink.c:114
+#: src/aplink.c:135
 msgid "vendor extensions and be in either 'Access Point client'"
 msgstr ""
 
-#: src/aplink.c:116
+#: src/aplink.c:137
 msgid "or 'Repeater' mode."
 msgstr ""
 
 # src/ap-mrtg.c:47
-#: src/ap-mrtg.c:43
+#: src/ap-mrtg.c:42
 #, fuzzy
 msgid ""
 "\tap-mrtg -i ip -c community -t type [-b bssid] [-n name] [-v] [-h] [-r]\n"
@@ -1845,7 +1875,7 @@ msgstr ""
 "\n"
 
 # src/ap-mrtg.c:49
-#: src/ap-mrtg.c:45
+#: src/ap-mrtg.c:44
 msgid ""
 "Get stats from AP and return it in MRTG parsable format\n"
 "\n"
@@ -1854,7 +1884,7 @@ msgstr ""
 "\n"
 
 # src/ap-mrtg.c:53
-#: src/ap-mrtg.c:48
+#: src/ap-mrtg.c:47
 #, fuzzy
 msgid ""
 "-t type      - statistics type <w>ireless, <e>thernet, associated <s>tations "
@@ -1863,12 +1893,12 @@ msgstr ""
 "-t type      typ statystyk <w> radio, <e>thernet, <s>tacje lub <l> jako¶æ "
 "po³±czenia w trybie klienta\n"
 
-#: src/ap-mrtg.c:50
+#: src/ap-mrtg.c:49
 msgid "work with ATMEL410 MIB devices in AP Client mode)\n"
 msgstr ""
 
 # src/ap-mrtg.c:55
-#: src/ap-mrtg.c:51
+#: src/ap-mrtg.c:50
 #, fuzzy
 msgid ""
 "-b bssid     - mac address of the AP from which get link quality, only if "
@@ -1877,23 +1907,23 @@ msgstr ""
 "-b bssid     - adres fizyczny AP z którego braæ dane dot jako¶ci ³±cza "
 "(tylko typ=l)\n"
 
-#: src/ap-mrtg.c:53
+#: src/ap-mrtg.c:52
 #, fuzzy
 msgid "-n name      - AP name - for check only\n"
 msgstr "-n nazwa    - Nazwa AP - tylko do kontroli\n"
 
 # src/ap-mrtg.c:57
-#: src/ap-mrtg.c:54
+#: src/ap-mrtg.c:53
 msgid "-v           - report MRTG about problems connecting to AP\n"
 msgstr "-v           - zg³aszaj MRTG o problemach z po³±czeniem do AP\n"
 
 # src/ap-mrtg.c:58
-#: src/ap-mrtg.c:55 src/ap-rrd.c:56
+#: src/ap-mrtg.c:54 src/ap-rrd.c:54
 msgid "-r           - reset AP when getting LinkQuality stats\n"
 msgstr "-r           - resetuj AP po wziêciu statystyk jako¶ci ³±cza\n"
 
 # src/ap-mrtg.c:60
-#: src/ap-mrtg.c:57
+#: src/ap-mrtg.c:56
 #, c-format
 msgid ""
 "ap-mrtg %s Copyright (c) 2002-2003 Roman Festchook\n"
@@ -1902,8 +1932,13 @@ msgstr ""
 "ap-mrtg %s Prawa autorskie © 2002-2003 Roman Festchook\n"
 "\n"
 
+#: src/ap-rrd.c:32
+#, c-format
+msgid "Error getting data from AP %s\n"
+msgstr ""
+
 # src/ap-mrtg.c:47
-#: src/ap-rrd.c:44
+#: src/ap-rrd.c:42
 #, fuzzy
 msgid ""
 "\tap-rrd -i ip -c community -t type -d db_file [-b bssid] [-n name] [-a "
@@ -1914,7 +1949,7 @@ msgstr ""
 "\n"
 
 # src/ap-mrtg.c:49
-#: src/ap-rrd.c:46
+#: src/ap-rrd.c:44
 #, fuzzy
 msgid ""
 "Get stats from AP and put it in to specified RRDtool database\n"
@@ -1924,7 +1959,7 @@ msgstr ""
 "\n"
 
 # src/ap-mrtg.c:53
-#: src/ap-rrd.c:50
+#: src/ap-rrd.c:48
 msgid ""
 "-t type      - statistics type <w>ireless, <e>thernet, associated <s>tations "
 "or <l>ink quality in client mode\n"
@@ -1932,12 +1967,12 @@ msgstr ""
 "-t type      typ statystyk <w> radio, <e>thernet, <s>tacje lub <l> jako¶æ "
 "po³±czenia w trybie klienta\n"
 
-#: src/ap-rrd.c:51
+#: src/ap-rrd.c:49
 msgid "-d db_file   - RRD database file with full path\n"
 msgstr ""
 
 # src/ap-mrtg.c:55
-#: src/ap-rrd.c:53
+#: src/ap-rrd.c:51
 msgid ""
 "-b bssid     - mac address of the AP to which get link quality, only if "
 "type=l\n"
@@ -1945,18 +1980,18 @@ msgstr ""
 "-b bssid     - adres fizyczny AP z którego braæ dane dot jako¶ci ³±cza "
 "(tylko typ=l)\n"
 
-#: src/ap-rrd.c:54
+#: src/ap-rrd.c:52
 msgid "-n name     - AP name - for check only\n"
 msgstr "-n nazwa    - Nazwa AP - tylko do kontroli\n"
 
-#: src/ap-rrd.c:55
+#: src/ap-rrd.c:53
 msgid ""
 "-a aptype    - AP type - 410 (default) or 510 for ATMEL12350's, like the ME-"
 "102\n"
 msgstr ""
 
 # src/ap-mrtg.c:60
-#: src/ap-rrd.c:58
+#: src/ap-rrd.c:56
 #, fuzzy, c-format
 msgid ""
 "ap-rrd %s Copyright (c) 2002-2004 Roman Festchook\n"
@@ -1966,163 +2001,165 @@ msgstr ""
 "\n"
 
 # src/ap-mrtg.c:142
-#: src/ap-rrd.c:142
+#: src/ap-rrd.c:133
 msgid "Invalid IP-address\n"
 msgstr "B³êdny adres IP\n"
 
-#: src/ap-rrd.c:188
+#: src/ap-rrd.c:179
 #, c-format
 msgid "Invalid AP-Type '%s' - valid types are 510 or 410\n"
 msgstr "B³êdny typ AP '%s' - mo¿esz wpisaæ tylko 410 lub 510\n"
 
-#: src/ap-tftp.c:81
+#: src/ap-tftp.c:84
 #, fuzzy
 msgid "yes"
 msgstr "Tak"
 
 # src/ap-config.c:141
-#: src/ap-tftp.c:82
+#: src/ap-tftp.c:85
 #, fuzzy
 msgid "no"
 msgstr "Info"
 
-#: src/ap-tftp.c:84
+#: src/ap-tftp.c:87
 msgid "Error while read()ing firmware file"
 msgstr ""
 
-#: src/ap-tftp.c:88
+#: src/ap-tftp.c:100
 msgid "Undefined error"
 msgstr ""
 
-#: src/ap-tftp.c:89
+#: src/ap-tftp.c:101
 msgid "File not found"
 msgstr ""
 
 # src/bridge.c:86
-#: src/ap-tftp.c:90
+#: src/ap-tftp.c:102
 #, fuzzy
 msgid "Access violation"
 msgstr "Access Point"
 
-#: src/ap-tftp.c:91
+#: src/ap-tftp.c:103
 msgid "Disk full or allocation error"
 msgstr ""
 
-#: src/ap-tftp.c:92
+#: src/ap-tftp.c:104
 msgid "Illegal TFTP operation"
 msgstr ""
 
-#: src/ap-tftp.c:93
+#: src/ap-tftp.c:105
 msgid "Unknown transfer ID"
 msgstr ""
 
-#: src/ap-tftp.c:94
+#: src/ap-tftp.c:106
 msgid "File already exists"
 msgstr ""
 
-#: src/ap-tftp.c:95
+#: src/ap-tftp.c:107
 msgid "No such user"
 msgstr ""
 
-#: src/ap-tftp.c:161
+#: src/ap-tftp.c:157
 msgid "Remote-filename too long.\n"
 msgstr ""
 
-#: src/ap-tftp.c:187
+#: src/ap-tftp.c:183
 #, c-format
 msgid "%sError in read()"
 msgstr ""
 
-#: src/ap-tftp.c:215
+#: src/ap-tftp.c:212
 #, c-format
 msgid "sending %u bytes\n"
 msgstr ""
 
-#: src/ap-tftp.c:224
+#: src/ap-tftp.c:221
 #, c-format
 msgid "%sError in sendto()"
 msgstr ""
 
-#: src/ap-tftp.c:247
+#: src/ap-tftp.c:244
 #, c-format
 msgid "%sError in recvfrom()"
 msgstr ""
 
-#: src/ap-tftp.c:261
+#: src/ap-tftp.c:256
 #, c-format
-msgid "\rProgress: uploaded %.0f %%."
+msgid "\rProgress: uploaded %3i%%."
 msgstr ""
 
-#: src/ap-tftp.c:272
+#: src/ap-tftp.c:267
 #, c-format
 msgid "%sMalformed packet received. Aborting.\n"
 msgstr ""
 
-#: src/ap-tftp.c:281
+#: src/ap-tftp.c:276
 #, c-format
 msgid "%sTimed out waiting for response from server (%i/%i).\n"
 msgstr ""
 
-#: src/ap-tftp.c:288
+#: src/ap-tftp.c:283
 #, c-format
 msgid "%sError in select()"
 msgstr ""
 
-#: src/ap-tftp.c:302
+#: src/ap-tftp.c:297
 #, c-format
 msgid "Received %d bytes: %04x %04x\n"
 msgstr ""
 
-#: src/ap-tftp.c:313
+#: src/ap-tftp.c:308
 #, c-format
 msgid "%sError: server responded with %s. Aborting.\n"
 msgstr ""
 
-#: src/ap-tftp.c:320
+#: src/ap-tftp.c:315
 #, c-format
 msgid "%sFlash programming in progress...\n"
 msgstr ""
 
-#: src/ap-tftp.c:322
+#: src/ap-tftp.c:317
 msgid "Finished successfully.\n"
 msgstr ""
 
-#: src/ap-tftp.c:340
+#: src/ap-tftp.c:335
 msgid "PLEASE BE _ABSOLUTELY_ SURE TO READ MANPAGE PRIOR USE!!!\n"
 msgstr ""
 
-#: src/ap-tftp.c:341
+#: src/ap-tftp.c:337
 #, c-format
 msgid ""
 "\n"
-"Usage: %s <-l firmware_file.rom> <IP>\n"
+"Usage: %s -i IP -f firmware_file.rom [-c community] [-h]\n"
 msgstr ""
 
-#: src/ap-tftp.c:363
+#: src/ap-tftp.c:361
 msgid "TFTP client for upgrading firmware in ATMEL AT76C510 WiSOC-based APs.\n"
 msgstr ""
 
-#: src/ap-tftp.c:365
+#: src/ap-tftp.c:363
 msgid "(C) 2004-2005 Jan Rafaj <jr-aputils at cedric dot unob dot cz>\n"
 msgstr ""
 
-#: src/ap-tftp.c:391
-msgid "Error: invalid arguments given.\n"
-msgstr ""
-
-#: src/ap-tftp.c:398
+#: src/ap-tftp.c:379
 msgid "Error: invalid IP address format given.\n"
 msgstr ""
 
+# src/ap-mrtg.c:142
 #: src/ap-tftp.c:405
+#, fuzzy
+msgid "Error: invalid argument combination.\n"
+msgstr "B³êdny adres IP\n"
+
+#: src/ap-tftp.c:412
 msgid "Error while open()ing firmware file"
 msgstr ""
 
-#: src/ap-tftp.c:411 src/ap-tftp.c:462
+#: src/ap-tftp.c:419 src/ap-tftp.c:472
 msgid "Error: invalid firmware file given.\n"
 msgstr ""
 
-#: src/ap-tftp.c:451
+#: src/ap-tftp.c:461
 #, c-format
 msgid ""
 "Firmware file contains:\n"
@@ -2132,7 +2169,7 @@ msgid ""
 "- string \"atsingle.bin\": %s\n"
 msgstr ""
 
-#: src/ap-tftp.c:474
+#: src/ap-tftp.c:485
 #, c-format
 msgid ""
 "Using:\n"
@@ -2141,7 +2178,16 @@ msgid ""
 "- name used for upload: \"%s\"\n"
 msgstr ""
 
-#: src/ap-tftp.c:537
+#: src/ap-tftp.c:568
+msgid ""
+"Error: device with the given IP does not seem to run SmartBridges firmware.\n"
+msgstr ""
+
+#: src/ap-tftp.c:574
+msgid "Error: SNMP authorization error or device unavailable.\n"
+msgstr ""
+
+#: src/ap-tftp.c:653
 msgid "Error while lseek()ing in firmware file\n"
 msgstr ""
 
@@ -2251,7 +2297,7 @@ msgstr ""
 # lib/ap-utils.h:117
 #: src/auth.c:41
 #, fuzzy
-msgid "[T] Reauthorization time (sec): "
+msgid "[T] Reauthorization time (minutes): "
 msgstr "[A] Ograniczenie dostêpu dla wybranych adresów MAC: "
 
 #: src/auth.c:42
@@ -2272,9 +2318,11 @@ msgstr ""
 msgid "[M] 802.1x authorization: "
 msgstr "[A] Ograniczenie dostêpu dla wybranych adresów MAC: "
 
+# lib/ap-utils.h:117
 #: src/auth.c:46
-msgid "[T] key broadcasting time period (sec): "
-msgstr ""
+#, fuzzy
+msgid "[T] key broadcasting time period (seconds): "
+msgstr "[A] Ograniczenie dostêpu dla wybranych adresów MAC: "
 
 #: src/auth.c:47
 msgid "[I] 802.1x auth. server IP: "
@@ -2320,16 +2368,16 @@ msgid "(not shown)"
 msgstr ""
 
 # lib/ap-utils.h:118
-#: src/auth.c:270
+#: src/auth.c:276
 #, fuzzy
 msgid "Authorized MAC addresses:"
 msgstr "Dostêp w/g MAC"
 
-#: src/auth.c:339
+#: src/auth.c:345
 msgid "(insufficient community used)"
 msgstr ""
 
-#: src/auth.c:466
+#: src/auth.c:472
 #, c-format
 msgid "Given MAC already exists in MAC list at position %d. Press any key."
 msgstr ""
@@ -2405,17 +2453,17 @@ msgstr "[U] Izolacja klient
 msgid "INGFPDOMSCRBUT - set; W - write conf; Q - quit to menu"
 msgstr "BPGINFDRT - ustaw; W - Zapisz; Q - powrót"
 
-# lib/ap-utils.h:66
-#: src/bridge.c:126
-msgid "Both"
-msgstr "Oba"
-
 # src/wlan.c:104
 #: src/bridge.c:128
 #, fuzzy
 msgid "Wireless (can be risky)"
 msgstr "Parametry radia"
 
+# lib/ap-utils.h:66
+#: src/bridge.c:129
+msgid "Both"
+msgstr "Oba"
+
 # src/nwn_advanced.c:64
 #: src/nwn_advanced.c:60
 #, c-format
@@ -2478,17 +2526,17 @@ msgstr "B
 msgid "Not available (device not in AP mode)."
 msgstr ""
 
-#: src/stations.c:93
+#: src/stations.c:92
 msgid "  #     MAC       Parent MAC  RSSI   LQ Sts MACn      IP        "
 msgstr ""
 
 # src/stations.c:110
-#: src/stations.c:139
+#: src/stations.c:136
 msgid "AssociatedSTAsInfo packet error"
 msgstr "B³êdny pakiet AssociatedSTAsInfo"
 
 # src/stations.c:132 src/stations.c:284
-#: src/stations.c:192 src/stations.c:364
+#: src/stations.c:189 src/stations.c:363
 #, fuzzy
 msgid ""
 "Arrows - scroll; S - save to file; Q - return; T - toggle view; Other - "
@@ -2496,16 +2544,32 @@ msgid ""
 msgstr "Strza³ki - przewijanie; S - zapis do zbioru; Q - powrót."
 
 # src/stations.c:132 src/stations.c:284
-#: src/stations.c:196
+#: src/stations.c:193
 #, fuzzy
 msgid "Arrows - scroll; S - save to file; Q - return; Other key - refresh"
 msgstr "Strza³ki - przewijanie; S - zapis do zbioru; Q - powrót."
 
 # src/stations.c:196
-#: src/stations.c:276
+#: src/stations.c:275
 msgid "Id       MAC address     Quality  Age  RSSI"
 msgstr "Id       Adres fizyczny  Jako¶æ   Wiek RSSI"
 
+# lib/ap-utils.h:92
+#~ msgid "Create socket error. Press any key."
+#~ msgstr "Nie moge utworzyæ gniazdka. Wci¶nij dowolny klawisz."
+
+# lib/ap-utils.h:93
+#~ msgid "Bind socket error. Press any key."
+#~ msgstr "Bl±d gniazdka. Wci¶nij dowolny klawisz."
+
+# src/ap-mrtg.c:178
+#~ msgid "Create socket error"
+#~ msgstr "B³±d tworzenia gniazda"
+
+# src/ap-mrtg.c:182
+#~ msgid "Bind socket error"
+#~ msgstr "B³±d bind()"
+
 # lib/ap-utils.h:119
 #~ msgid "NUM       MAC address"
 #~ msgstr "Numer adres fizyczny (MAC)"
index 0ccc77f22a443610f46b08d65e9ea7be898893bf..3da49a063783a740cd86effd950a918c840a5488 100644 (file)
--- a/po/ro.po
+++ b/po/ro.po
@@ -6,7 +6,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: ap-utils-1.3.2-pre3\n"
-"POT-Creation-Date: 2005-01-16 02:07+0200\n"
+"POT-Creation-Date: 2005-03-07 01:13+0200\n"
 "PO-Revision-Date: 2003-05-19 12:51+0300\n"
 "Last-Translator: Eugen Hoanca <eugenh@urban-grafx.ro>\n"
 "Language-Team: Romanian <translation-team-ro@lists.sourceforge.net>\n"
@@ -15,82 +15,82 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Report-Msgid-Bugs-To: \n"
 
-#: lib/aps.c:29
+#: lib/aps.c:30
 msgid "Known Access Points"
 msgstr "Access Point-uri Cunoscute"
 
-#: lib/aps.c:129
+#: lib/aps.c:130
 msgid "Your Access Point is not in \"AP client\" mode => getting"
 msgstr ""
 
-#: lib/aps.c:132
+#: lib/aps.c:133
 msgid "up-to-date \"Known APs\" info requires your AP to be"
 msgstr ""
 
-#: lib/aps.c:135
+#: lib/aps.c:136
 msgid "temporarily configured into \"AP client\" mode and rebooted."
 msgstr ""
 
-#: lib/aps.c:138
+#: lib/aps.c:139
 msgid "Your AP will be reconfigured back to original mode by this"
 msgstr ""
 
-#: lib/aps.c:141
+#: lib/aps.c:142
 msgid "utility once you quit the \"KnownAP\" view. This, in turn, may"
 msgstr ""
 
-#: lib/aps.c:144
+#: lib/aps.c:145
 #, fuzzy
 msgid "cause loss of Access Point's current configuration."
 msgstr "Seteazã configuraþia curentã ca activã"
 
-#: lib/aps.c:148
+#: lib/aps.c:149
 msgid "Do NOT answer \"Yes\" if you're connected to the Access Point"
 msgstr ""
 
-#: lib/aps.c:151
+#: lib/aps.c:152
 #, fuzzy
 msgid "via its wireless port."
 msgstr "Setare opþiuni wireless"
 
-#: lib/aps.c:153 lib/cmd.c:45 lib/cmd.c:75 lib/test.c:96
+#: lib/aps.c:154 lib/cmd.c:45 lib/cmd.c:75 lib/test.c:96
 msgid "Do you want to continue? "
 msgstr "Doriþi sã continuaþi? "
 
-#: lib/aps.c:207
+#: lib/aps.c:208
 msgid "NetworkType"
 msgstr "TipReþea"
 
-#: lib/aps.c:283
+#: lib/aps.c:284
 msgid "Infrastructure"
 msgstr "Infrastructurã"
 
-#: lib/aps.c:343 lib/aps.c:351 lib/aps.c:359
+#: lib/aps.c:344 lib/aps.c:352 lib/aps.c:360
 #, fuzzy
 msgid "CN: Channel Name; P: Preambule Type (S: Short; L: Long);"
 msgstr "P: Tip Preambul; S: Scurt; L: Lung"
 
-#: lib/aps.c:345
+#: lib/aps.c:346
 msgid "RSSI: Radio Signal Strength Indicator [%]"
 msgstr ""
 
-#: lib/aps.c:347 lib/aps.c:355
+#: lib/aps.c:348 lib/aps.c:356
 msgid "; LQ: Link Quality [%]"
 msgstr ""
 
-#: lib/aps.c:353
+#: lib/aps.c:354
 msgid "RSSI: Radio Signal Strength Indicator [dBm]"
 msgstr ""
 
-#: lib/aps.c:361
+#: lib/aps.c:362
 msgid "RSSI: Radio Signal Strength Indicator [raw]"
 msgstr ""
 
-#: lib/aps.c:363
+#: lib/aps.c:364
 msgid "; LQ: Link Q. [raw]"
 msgstr ""
 
-#: lib/aps.c:369
+#: lib/aps.c:370
 #, fuzzy
 msgid ""
 "# con. to AP #; R refresh with reset; T toggle; Q quit; Other = refr. w/o "
@@ -99,7 +99,7 @@ msgstr ""
 "# conectare la acest AP; R împrospãtare cu reset; G împrospãtare fãrã reset; "
 "Q ieºire"
 
-#: lib/aps.c:371
+#: lib/aps.c:372
 #, fuzzy
 msgid ""
 "# con. to AP #; R initiate AP scan; T toggle view; Q quit; Other = refresh "
@@ -108,44 +108,44 @@ msgstr ""
 "# conectare la acest AP; R împrospãtare cu reset; G împrospãtare fãrã reset; "
 "Q ieºire"
 
-#: lib/aps.c:500 lib/ap_search.c:167
+#: lib/aps.c:501 lib/ap_search.c:173
 #, fuzzy, c-format
 msgid "Failure in sendto(): %s. Press any key."
 msgstr "Sendto invalid: %s. Apãsaþi o tastã."
 
-#: lib/aps.c:509
+#: lib/aps.c:510
 msgid "You have just initiated the AP scan. Be advised that it may"
 msgstr ""
 
-#: lib/aps.c:512
+#: lib/aps.c:513
 msgid "take a few seconds for your Access Point to find out some"
 msgstr ""
 
-#: lib/aps.c:515
+#: lib/aps.c:516
 msgid "values, so expect finishing the scan in about 5 seconds."
 msgstr ""
 
-#: lib/aps.c:518
+#: lib/aps.c:519
 msgid "Also note that your Access Point stops forwarding the network"
 msgstr ""
 
-#: lib/aps.c:521
+#: lib/aps.c:522
 msgid "traffic while the scan is in progress, but restores itself"
 msgstr ""
 
-#: lib/aps.c:524
+#: lib/aps.c:525
 msgid "to normal operation in time ranging up to 1 minute."
 msgstr ""
 
-#: lib/aps.c:527
+#: lib/aps.c:528
 msgid "Hence, if you are connected to target Access Point via its"
 msgstr ""
 
-#: lib/aps.c:530
+#: lib/aps.c:531
 msgid "wireless port, you need to wait a bit longer"
 msgstr ""
 
-#: lib/aps.c:533
+#: lib/aps.c:534
 msgid "after pressing 'S'."
 msgstr ""
 
@@ -156,301 +156,298 @@ msgstr "Comunitate"
 
 #: lib/ap_search.c:49
 #, fuzzy
-msgid "  NUM  IP ADDRESS       MIB TYPE    NAME"
+msgid "  NUM  IP ADDRESS       MIB TYPE    FW TYPE (VERSION) AP NAME"
 msgstr "NUM       ADRES? IP   TIP"
 
-#: lib/ap_search.c:100
+#: lib/ap_search.c:106
 msgid "Please wait while scanning, or press 'Q' to quit."
 msgstr ""
 
-#: lib/ap_search.c:116
+#: lib/ap_search.c:122
 #, fuzzy
 msgid "Can't set broadcast option on socket. Press any key."
 msgstr "Nu se poate seta opþiunea de broadcast spre socket. Apãsaþi o tastã."
 
-#: lib/ap_search.c:125
+#: lib/ap_search.c:131
 #, fuzzy
 msgid "Can't set multicast membership on socket. Press any key."
 msgstr ""
 "Nu se poate seta apartenenþa(membership) multicast la socket. Apãsaþi o "
 "tastã."
 
-#: lib/ap_search.c:132
+#: lib/ap_search.c:138
 msgid "Scanning via network interface:"
 msgstr ""
 
-#: lib/ap_search.c:133
+#: lib/ap_search.c:139
 #, c-format
 msgid "  Index: %i"
 msgstr ""
 
-#: lib/ap_search.c:135
+#: lib/ap_search.c:141
 #, fuzzy, c-format
 msgid "  Name: %s"
 msgstr "[N] Nume AP:"
 
-#: lib/ap_search.c:137
+#: lib/ap_search.c:143
 #, c-format
 msgid "  IP: %s"
 msgstr ""
 
-#: lib/ap_search.c:146
+#: lib/ap_search.c:152
 #, c-format
 msgid "Scanning for AP with MIB type: %s"
 msgstr ""
 
-#: lib/ap_search.c:334
-msgid "Please enter SNMP community name that will be used for AP detection."
-msgstr ""
-
-#: lib/ap_search.c:345
+#: lib/ap_search.c:378
 msgid "Access Points Search"
 msgstr "Cãutare de Access Points."
 
-#: lib/ap_search.c:363
+#: lib/ap_search.c:396
 #, fuzzy
 msgid "realloc() error."
 msgstr "Eroare în crearea socketului"
 
-#: lib/ap_search.c:375
+#: lib/ap_search.c:408
 msgid "Network interface discovery error."
 msgstr ""
 
-#: lib/ap_search.c:450
+#: lib/ap_search.c:483
 #, fuzzy
 msgid "No local network interfaces found. Press any key."
 msgstr "Eroare la fork. Apãsaþi o tastã."
 
-#: lib/ap_search.c:452
+#: lib/ap_search.c:485
 msgid "No directly reachable Access Points found. Press any key."
 msgstr ""
 
-#: lib/ap_search.c:457
+#: lib/ap_search.c:490
 msgid "Single-screen maximum number of APs found."
 msgstr ""
 
-#: lib/ap_search.c:460
+#: lib/ap_search.c:493
 #, fuzzy
 msgid "# - connect to AP; Q - quit"
 msgstr "Conectare la AP num:"
 
-#: lib/ap-utils.h:79
+#: lib/ap-utils.h:82
 #, fuzzy
 msgid "MAC address: "
 msgstr "Adresã IP: %s"
 
-#: lib/ap-utils.h:80
+#: lib/ap-utils.h:83
 #, fuzzy
 msgid "[S] SNMP traps: "
 msgstr "[S] Referinþe(traps) SNMP: %s"
 
-#: lib/ap-utils.h:82
+#: lib/ap-utils.h:85
 #, fuzzy
 msgid "[C] Frequency channel: "
 msgstr "[C] Frecvenþã Canal: %02u (%u MHz)"
 
-#: lib/ap-utils.h:84
+#: lib/ap-utils.h:87
 #, fuzzy
 msgid "Receive  antenna:"
 msgstr "Primite:"
 
-#: lib/ap-utils.h:85
+#: lib/ap-utils.h:88
 #, fuzzy
 msgid "[U] Left"
 msgstr "Stânga"
 
-#: lib/ap-utils.h:86
+#: lib/ap-utils.h:89
 #, fuzzy
 msgid "[I] Right"
 msgstr "Dreapta"
 
-#: lib/ap-utils.h:87
+#: lib/ap-utils.h:90
 #, fuzzy
 msgid "Transmit antenna:"
 msgstr "Transmise:"
 
-#: lib/ap-utils.h:88
+#: lib/ap-utils.h:91
 #, fuzzy
 msgid "[O] Left"
 msgstr "Stânga"
 
-#: lib/ap-utils.h:89
+#: lib/ap-utils.h:92
 #, fuzzy
 msgid "[P] Right"
 msgstr "Dreapta"
 
-#: lib/ap-utils.h:90
+#: lib/ap-utils.h:93
 #, fuzzy
 msgid "Diversity select:"
 msgstr "Variaþie: %s"
 
-#: lib/ap-utils.h:91
+#: lib/ap-utils.h:94
 #, fuzzy
 msgid "[T] Left"
 msgstr "Stânga"
 
-#: lib/ap-utils.h:92
+#: lib/ap-utils.h:95
 #, fuzzy
 msgid "[Y] Right"
 msgstr "Dreapta"
 
-#: lib/ap-utils.h:94
+#: lib/ap-utils.h:97
 msgid "Yes"
 msgstr ""
 
-#: lib/ap-utils.h:95
+#: lib/ap-utils.h:98
 msgid "No"
 msgstr ""
 
-#: lib/ap-utils.h:97
+#: lib/ap-utils.h:100
 msgid "On"
 msgstr ""
 
-#: lib/ap-utils.h:98
+#: lib/ap-utils.h:101
 #, fuzzy
 msgid "Off"
 msgstr "oprit(off)"
 
-#: lib/ap-utils.h:100
+#: lib/ap-utils.h:103
 #, fuzzy
 msgid "Basic"
 msgstr "de bazã"
 
-#: lib/ap-utils.h:102
+#: lib/ap-utils.h:105
 msgid "Press any key to continue."
 msgstr "Apãsaþi o tastã pentru continuare."
 
-#: lib/ap-utils.h:103
-msgid "Q - quit to menu. T - toggle polling mode, Other key - force update."
+#: lib/ap-utils.h:106
+msgid "Q - quit to menu. T - toggle polling mode, Other key - force update"
 msgstr ""
 
-#: lib/ap-utils.h:105
+#: lib/ap-utils.h:108
 msgid "Unable to write data to AP. Press any key to continue."
 msgstr "Nu se pot scrie date în AP. Apãsaþi o tastã pentru continuare."
 
-#: lib/ap-utils.h:106
+#: lib/ap-utils.h:109
 #, fuzzy
 msgid "Unable to retrieve (valid) data from AP. Press any key to continue."
 msgstr "Nu se pot recupera date din AP. Apãsaþi o tastã pentru continuare."
 
-#: lib/ap-utils.h:107
+#: lib/ap-utils.h:110
 #, fuzzy
-msgid "Trying to retrieve data from AP. Please wait..."
+msgid "Trying to retrieve data from AP - please wait (or press Q to quit)."
 msgstr "Recuperare date din AP. Vã rugãm aºteptaþi..."
 
-#: lib/ap-utils.h:108
+#: lib/ap-utils.h:111
 msgid "Writing data to AP. Please wait..."
 msgstr "Scriere date în AP. Vã rugãm aºteptaþi..."
 
-#: lib/ap-utils.h:109
+#: lib/ap-utils.h:112
 #, fuzzy
 msgid "Configuration written to the AP. Press any key to continue."
 msgstr "Nu se pot scrie date în AP. Apãsaþi o tastã pentru continuare."
 
-#: lib/ap-utils.h:110
+#: lib/ap-utils.h:113
 #, fuzzy
 msgid "select() function error. Press any key."
 msgstr "Eroare fcntl. Apãsaþi o tastã."
 
-#: lib/ap-utils.h:112
-msgid "Create socket error. Press any key."
-msgstr "Eroare în creare socket. Apãsaþi o tastã."
-
-#: lib/ap-utils.h:113
-msgid "Bind socket error. Press any key."
-msgstr "Eroare de legãturã. Apãsaþi o tastã."
+#: lib/ap-utils.h:114
+#, fuzzy
+msgid "socket() or bind() function error. Press any key."
+msgstr "Eroare fcntl. Apãsaþi o tastã."
 
-#: lib/ap-utils.h:115
+#: lib/ap-utils.h:116
 #, fuzzy
 msgid "Unable to write AP list file ~/.ap-config. Press any key."
 msgstr "Nu se pot recupera date din AP. Apãsaþi o tastã pentru continuare."
 
-#: lib/ap-utils.h:116
+#: lib/ap-utils.h:117
 msgid "AP list file ~/.ap-config successfully written. Press any key."
 msgstr ""
 
-#: lib/ap-utils.h:118
+#: lib/ap-utils.h:119
 msgid "Back to main menu"
 msgstr "Înapoi în meniul principal"
 
-#: lib/ap-utils.h:119
+#: lib/ap-utils.h:120
 msgid "Exit program"
 msgstr "Ieºire din program"
 
-#: lib/ap-utils.h:120
+#: lib/ap-utils.h:121
 #, fuzzy
 msgid "Run subshell. To return type 'exit'."
 msgstr "Rulare subshell. Pentru întoarcere scrieþi 'exit'"
 
-#: lib/ap-utils.h:121
+#: lib/ap-utils.h:122
+msgid "Change polling mode interval"
+msgstr ""
+
+#: lib/ap-utils.h:123
 msgid "Short info about program"
 msgstr "Scurte informaþii despre program"
 
-#: lib/ap-utils.h:122
+#: lib/ap-utils.h:124
 msgid "Find connected Access Points"
 msgstr "Cautã Access Pointurile conectate"
 
-#: lib/ap-utils.h:123
+#: lib/ap-utils.h:125
 msgid "Set connection options: ip and community"
 msgstr "Setare opþiuni conexiune: ip ºi comunitate"
 
-#: lib/ap-utils.h:124
+#: lib/ap-utils.h:126
 #, fuzzy
 msgid "Set encryption; edit WEP keys"
 msgstr "Setare encripþie, editare chei WEP"
 
-#: lib/ap-utils.h:125
+#: lib/ap-utils.h:127
 #, fuzzy
 msgid "Set authorization; edit MAC authorization table"
 msgstr "Setare autorizare prin mac, editare tabel autorizare prin mac"
 
-#: lib/ap-utils.h:126
+#: lib/ap-utils.h:128
 #, fuzzy
 msgid "Set SNMP community/password for access to the AP"
 msgstr "Setare comunitate/parolã SNMP pentru accesare AP"
 
-#: lib/ap-utils.h:127
+#: lib/ap-utils.h:129
 #, fuzzy
 msgid "Get info about AP hardware and firmware"
 msgstr "Procurare informaþii despre hardware ºi software AP"
 
-#: lib/ap-utils.h:128
+#: lib/ap-utils.h:130
 #, fuzzy
 msgid "Get wireless port statistics"
 msgstr "Procurare statistici porturi wireless"
 
-#: lib/ap-utils.h:129
+#: lib/ap-utils.h:131
 #, fuzzy
 msgid "Get list of currently associated stations (Access Point clients)"
 msgstr "Procurare listã staþii asociate în acest moment"
 
-#: lib/ap-utils.h:130
+#: lib/ap-utils.h:132
 msgid "Get link status in APclient mode"
 msgstr ""
 
-#: lib/ap-utils.h:131
+#: lib/ap-utils.h:133
 #, fuzzy
 msgid "Get info and statistics from AP"
 msgstr "Procurare informaþii ºi statistici din AP"
 
-#: lib/ap-utils.h:132
+#: lib/ap-utils.h:134
 #, fuzzy
 msgid "Set various configuration options"
 msgstr "Setare diverse opþiuni de configurare"
 
-#: lib/ap-utils.h:134
+#: lib/ap-utils.h:136
 msgid "Associated stations"
 msgstr "Staþii asociate"
 
-#: lib/ap-utils.h:135
+#: lib/ap-utils.h:137
 msgid "AP Client link state"
 msgstr ""
 
-#: lib/ap-utils.h:137
+#: lib/ap-utils.h:139
 msgid "Polling: on"
 msgstr ""
 
-#: lib/ap-utils.h:138
+#: lib/ap-utils.h:140
 msgid "Polling: off"
 msgstr ""
 
@@ -511,161 +508,181 @@ msgstr "Seteaz
 msgid "Configuration uploaded. Press any key to continue."
 msgstr "Upload-ul de configuraþie efectuat. Apãsaþi o tastã pentru continuare."
 
-#: lib/common.c:30
+#: lib/common.c:32
 #, fuzzy
 msgid "Access Point IP-address: "
 msgstr "Adresã IP Access Point:"
 
-#: lib/common.c:31
+#: lib/common.c:33
 #, fuzzy
 msgid "Password (community): "
 msgstr "Parolã (comunitate):"
 
-#: lib/common.c:32
+#: lib/common.c:34
 msgid "Autodetect AP MIB properties? "
 msgstr ""
 
-#: lib/common.c:33
+#: lib/common.c:35
 #, fuzzy
 msgid "AP MIB type: "
 msgstr "Tip AP:"
 
-#: lib/common.c:34
+#: lib/common.c:36
 msgid "AP MIB vendor extensions: "
 msgstr ""
 
-#: lib/common.c:35
+#: lib/common.c:37
 #, fuzzy
 msgid "Do you want to use AP's name as its label? "
 msgstr "Doriþi sã continuaþi? "
 
-#: lib/common.c:36
+#: lib/common.c:38
 #, fuzzy
 msgid "Access Point label: "
 msgstr "Access Point"
 
-#: lib/common.c:37
+#: lib/common.c:39
 #, fuzzy
 msgid "Save connect-settings: "
 msgstr "Salvare setãri conectare:"
 
-#: lib/common.c:84 src/ap-config.c:154
+#: lib/common.c:40
+msgid "[P] Polling mode interval (tenths of second): "
+msgstr ""
+
+#: lib/common.c:41
+#, fuzzy
+msgid "P - change polling mode interval; Q - quit to menu"
+msgstr ""
+"[tastã] - setãri opþiuni; W - scriere configuraþie; Q - ieºire în meniu"
+
+#: lib/common.c:89 src/ap-config.c:158
 msgid "About"
 msgstr "Despre"
 
-#: lib/common.c:101
+#: lib/common.c:106
 #, c-format
 msgid "From %s"
 msgstr "De la %s"
 
-#: lib/common.c:103
+#: lib/common.c:108
 #, c-format
 msgid "Version %s"
 msgstr "Versiunea %s"
 
-#: lib/common.c:106
+#: lib/common.c:111
 msgid "Written by Roman Festchook roma@polesye.net"
 msgstr "Scris de Roman Festchook roma@polesye.net"
 
-#: lib/common.c:108
+#: lib/common.c:113
 msgid "and Jan Rafaj jr-aputils@cedric.unob.cz"
 msgstr ""
 
-#: lib/common.c:110
+#: lib/common.c:115
 #, fuzzy
 msgid "Copyright (c) 2001-2005"
 msgstr "Copyright (c) Roman Festchook 2001-2002"
 
-#: lib/common.c:112
+#: lib/common.c:117
 msgid "Roman Festchook and Jan Rafaj"
 msgstr ""
 
-#: lib/common.c:115
+#: lib/common.c:120
 msgid "This program is distributed under the terms"
 msgstr "Acest program este distribuit sub termenii "
 
-#: lib/common.c:117
+#: lib/common.c:122
 msgid "of the GNU General Public License version 2."
 msgstr "Licenþei Publice Generale GNU versiunea 2"
 
-#: lib/common.c:119
+#: lib/common.c:124
 msgid "See the included COPYING file for details."
 msgstr "Citiþi fiºierul COPYING inclus pentru detalii."
 
-#: lib/common.c:175
+#: lib/common.c:165
 msgid "Connect options"
 msgstr "Opþiuni conectare"
 
-#: lib/common.c:183
+#: lib/common.c:173
 msgid "Enter IP address of your Access Point."
 msgstr "Scrieþi adresa IP a Access Point-ului vostru:"
 
-#: lib/common.c:192
+#: lib/common.c:182
 msgid "Entered characters will not be displayed for security reason."
 msgstr "Caracterele introduse nu vor fi afiºate din motive de securitate."
 
-#: lib/common.c:259
+#: lib/common.c:249
 msgid "This label will be stored on HDD (independently on AP name!)."
 msgstr ""
 
-#: lib/common.c:370
+#: lib/common.c:362
 #, fuzzy
 msgid "Trying to probe AP for MIB properties. Please wait..."
 msgstr "Scriere date în AP. Vã rugãm aºteptaþi..."
 
-#: lib/common.c:399
+#: lib/common.c:391
 #, fuzzy
 msgid ""
 "Unable to determine AP MIB properties (no response from AP). Press any key."
 msgstr "Nu se pot recupera date din AP. Apãsaþi o tastã pentru continuare."
 
-#: lib/file.c:205
+#: lib/common.c:489 lib/set_oeminfo.c:221
+#, c-format
+msgid "%s%u"
+msgstr ""
+
+#: lib/common.c:491
+#, c-format
+msgid "(%0.1f seconds)"
+msgstr ""
+
+#: lib/file.c:199
 msgid "NUM  IP ADDRESS       MIB TYPE    MIB EXT.  LABEL"
 msgstr ""
 
-#: lib/file.c:206
+#: lib/file.c:200
 #, fuzzy
 msgid "Choose an AP to connect to"
 msgstr "Alege?i AP-ul la care se efectueaz? conexiunea"
 
-#: lib/file.c:212
+#: lib/file.c:206
 msgid "1-9,C: connect; N: new; D: delete; W: save; Q: quit; arrows: scroll"
 msgstr ""
 "1-9,C: conectare; N: nou; D: ?tergere; W: salvare; Q: ie?ire; s?ge?i: scroll"
 
-#: lib/file.c:268
+#: lib/file.c:257
 msgid "Connect to AP num:"
 msgstr "Conectare la AP num:"
 
-#: lib/file.c:304
+#: lib/file.c:288
 msgid "Delete num:"
 msgstr "ªterge Num:"
 
-#: lib/file.c:458
+#: lib/file.c:442
 #, fuzzy
 msgid "Unable to write stations file. Press any key."
 msgstr "Nu se pot scrie date în AP. Apãsaþi o tastã pentru continuare."
 
-#: lib/file.c:460
+#: lib/file.c:444
 msgid "Stations file succesfully written. Press any key."
 msgstr ""
 
-#: lib/input.c:33
+#: lib/input.c:32
 #, fuzzy
 msgid "Invalid value. Press any key to continue."
 msgstr "Adresã IP invalidã.  Apãsaþi o tastã pentru continuare."
 
-#: lib/input.c:34
+#: lib/input.c:33
 #, fuzzy, c-format
 msgid "Value must be in range %u - %u. Press any key to continue."
 msgstr "Nu se pot scrie date în AP. Apãsaþi o tastã pentru continuare."
 
-#: lib/input.c:413
+#: lib/input.c:460
 #, fuzzy
 msgid "Y - Yes; Any other key - No (it's safer to answer No)"
 msgstr "(Y - Da; N - Nu (e mai sigur sã rãspundeþi Nu)"
 
-#: lib/oui.c:6058
+#: lib/oui.c:6061
 msgid "Unknown or Private"
 msgstr "Necunoscut sau Privat"
 
@@ -713,7 +730,7 @@ msgstr ""
 "Nu puteþi dezactiva ambele antene, nu se poate salva configuraþia antenei. "
 "Apãsaþi o tastã."
 
-#: lib/scr.c:156
+#: lib/scr.c:157
 #, fuzzy, c-format
 msgid "Current AP: %s Type: %s Ext: %s"
 msgstr "AP Current: %s Tip: %s"
@@ -895,11 +912,6 @@ msgstr ""
 msgid "OEM Info settings"
 msgstr ""
 
-#: lib/set_oeminfo.c:221
-#, c-format
-msgid "%s%u"
-msgstr ""
-
 #: lib/stat.c:29
 msgid "Ethernet Statistics"
 msgstr "Statistici Ethernet"
@@ -940,186 +952,186 @@ msgstr "Descriere sistem: "
 msgid "System Info"
 msgstr "Informaþii Sistem"
 
-#: lib/sysinfo.c:54 src/bridge.c:86
+#: lib/sysinfo.c:55 src/bridge.c:50
 msgid "Wireless Bridge Point to MultiPoint"
 msgstr "Conexiune(bridge) Wireless Point to MultiPoint"
 
-#: lib/sysinfo.c:55 src/bridge.c:87
+#: lib/sysinfo.c:56 src/bridge.c:51
 msgid "Access Point"
 msgstr "Access Point"
 
-#: lib/sysinfo.c:56 src/bridge.c:88
+#: lib/sysinfo.c:57 src/bridge.c:52
 msgid "Access Point client"
 msgstr "Client Access Point"
 
-#: lib/sysinfo.c:57 src/bridge.c:89
+#: lib/sysinfo.c:58 src/bridge.c:53
 msgid "Wireless Bridge Point to Point"
 msgstr "Conexiune(bridge) Wireless Point to Point"
 
-#: lib/sysinfo.c:58 src/bridge.c:90
+#: lib/sysinfo.c:59 src/bridge.c:54
 msgid "Repeater"
 msgstr "Repetor"
 
-#: lib/sysinfo.c:59 lib/sysinfo.c:314 lib/sysinfo.c:423 src/bridge.c:91
+#: lib/sysinfo.c:60 lib/sysinfo.c:315 lib/sysinfo.c:424 src/bridge.c:55
 msgid "unknown"
 msgstr "necunoscut"
 
-#: lib/sysinfo.c:143
+#: lib/sysinfo.c:144
 msgid "Device hardware/software/name info:"
 msgstr ""
 
-#: lib/sysinfo.c:171
+#: lib/sysinfo.c:172
 #, fuzzy, c-format
 msgid "Operational mode: %s"
 msgstr "[O] Mod Operaþional: %s"
 
-#: lib/sysinfo.c:181
+#: lib/sysinfo.c:182
 #, fuzzy
 msgid "Product name: "
 msgstr "Nume Produs:"
 
-#: lib/sysinfo.c:185
+#: lib/sysinfo.c:186
 #, fuzzy, c-format
 msgid "Product type: %u"
 msgstr "TipProdus: %u"
 
-#: lib/sysinfo.c:188
+#: lib/sysinfo.c:189
 #, fuzzy
 msgid "OEM name: "
 msgstr "NumeOEM:"
 
-#: lib/sysinfo.c:195
+#: lib/sysinfo.c:196
 #, fuzzy, c-format
 msgid "Hardware revision: %u"
 msgstr "RevizieHardware: %u"
 
-#: lib/sysinfo.c:203
+#: lib/sysinfo.c:204
 #, fuzzy, c-format
 msgid "Info structure version: %u"
 msgstr "VersiuneStruct: %u"
 
-#: lib/sysinfo.c:206 lib/sysinfo.c:382
+#: lib/sysinfo.c:207 lib/sysinfo.c:383
 #, c-format
 msgid "Manufacturer OUI: %02X %02X %02X (%s)"
 msgstr "OUI Producãtor: %02X %02X %02X (%s)"
 
-#: lib/sysinfo.c:223
+#: lib/sysinfo.c:224
 #, fuzzy, c-format
 msgid "Uptime: %u days, %02u:%02u:%02u hours:mins:secs"
 msgstr "Uptime: %u:%02u:%02u.%02u"
 
-#: lib/sysinfo.c:311
+#: lib/sysinfo.c:312
 msgid "FHSS 2.4 GHz"
 msgstr "FHSS 2.4 GHz"
 
-#: lib/sysinfo.c:311
+#: lib/sysinfo.c:312
 msgid "DSSS 2.4 GHz"
 msgstr "DSSS 2.4 GHz"
 
-#: lib/sysinfo.c:311
+#: lib/sysinfo.c:312
 msgid "IR Baseband"
 msgstr "Bandã de bazã IR"
 
-#: lib/sysinfo.c:312
+#: lib/sysinfo.c:313
 msgid "Commercial range 0..40 C"
 msgstr "Interval comercial 0..40 C"
 
-#: lib/sysinfo.c:313
+#: lib/sysinfo.c:314
 msgid "Industrial range -30..70 C"
 msgstr "Interval industrial -30..70 C"
 
-#: lib/sysinfo.c:316
+#: lib/sysinfo.c:317
 msgid "manual"
 msgstr "manual"
 
-#: lib/sysinfo.c:316
+#: lib/sysinfo.c:317
 msgid "notsupported"
 msgstr "nesuportat"
 
-#: lib/sysinfo.c:316
+#: lib/sysinfo.c:317
 msgid "dynamic"
 msgstr "dinamic"
 
-#: lib/sysinfo.c:372
+#: lib/sysinfo.c:373
 msgid "Manufacturer:"
 msgstr "Producãtor:"
 
-#: lib/sysinfo.c:377
+#: lib/sysinfo.c:378
 msgid "Manufacturer ID:"
 msgstr "ID Producãtor:"
 
-#: lib/sysinfo.c:388
+#: lib/sysinfo.c:389
 msgid "Product Name:"
 msgstr "Nume Produs:"
 
-#: lib/sysinfo.c:394
+#: lib/sysinfo.c:395
 msgid "Product ID:"
 msgstr "ID Produs:"
 
-#: lib/sysinfo.c:400
+#: lib/sysinfo.c:401
 msgid "Product Version:"
 msgstr "Versiune Produs:"
 
-#: lib/sysinfo.c:406
+#: lib/sysinfo.c:407
 #, c-format
 msgid "PHYType: %s"
 msgstr "TipPHY: %s"
 
-#: lib/sysinfo.c:409
+#: lib/sysinfo.c:410
 #, c-format
 msgid "Temperature: %s"
 msgstr "Temperaturã: %s"
 
-#: lib/sysinfo.c:417
+#: lib/sysinfo.c:418
 #, fuzzy, c-format
 msgid "Regulatory Domain: %s"
 msgstr "Domeniu Regularizare: %s"
 
-#: lib/sysinfo.c:418
+#: lib/sysinfo.c:419
 msgid "FCC (USA)"
 msgstr "FCC (USA)"
 
-#: lib/sysinfo.c:419
+#: lib/sysinfo.c:420
 msgid "DOC (Canada)"
 msgstr "DOC (Canada)"
 
-#: lib/sysinfo.c:420
+#: lib/sysinfo.c:421
 msgid "ETSI (Europe)"
 msgstr "ETSI (Europa)"
 
-#: lib/sysinfo.c:421
+#: lib/sysinfo.c:422
 msgid "Spain"
 msgstr "Spania"
 
-#: lib/sysinfo.c:422
+#: lib/sysinfo.c:423
 msgid "France"
 msgstr "Franþa"
 
-#: lib/sysinfo.c:423
+#: lib/sysinfo.c:424
 msgid "MKK (Japan)"
 msgstr "MKK (Japonia)"
 
-#: lib/sysinfo.c:426
+#: lib/sysinfo.c:427
 #, c-format
 msgid "Transmit Power: %u mW"
 msgstr "Putere Transmisie: %u mW"
 
-#: lib/sysinfo.c:456
+#: lib/sysinfo.c:457
 #, fuzzy, c-format
 msgid "WEP implemented: %s"
 msgstr "WEP inplementat: %s"
 
-#: lib/sysinfo.c:459
+#: lib/sysinfo.c:460
 #, c-format
 msgid "Diversity: %s"
 msgstr "Variaþie: %s"
 
-#: lib/sysinfo.c:487
+#: lib/sysinfo.c:488
 #, c-format
 msgid "Uptime: %u:%02u:%02u.%02u"
 msgstr "Uptime: %u:%02u:%02u.%02u"
 
-#: lib/sysinfo.c:507
+#: lib/sysinfo.c:508
 #, c-format
 msgid "IP  Address: %s"
 msgstr "Adresã IP: %s"
@@ -1335,7 +1347,7 @@ msgid "[D] DTIM sending interval (beacons): "
 msgstr ""
 
 #: lib/wlan.c:48
-msgid "[T] SIFS time (ACK timeout) msec: "
+msgid "[T] SIFS time (2nd+ interframe spacing, usec): "
 msgstr ""
 
 #: lib/wlan.c:49
@@ -1351,19 +1363,19 @@ msgstr "Scurt"
 msgid "Long"
 msgstr "Lung"
 
-#: lib/wlan.c:237
+#: lib/wlan.c:239
 msgid "Wireless Settings"
 msgstr "Setãri Wireless"
 
-#: lib/wlan.c:731
+#: lib/wlan.c:735
 msgid "Antenna Configuration:"
 msgstr "Configuraþie Antenã:"
 
-#: lib/wlan.c:748
+#: lib/wlan.c:752
 msgid "General Options"
 msgstr "Opþiuni Generale"
 
-#: lib/wlan.c:750
+#: lib/wlan.c:754
 msgid ""
 "UIOPTY - antenna; SCANLEDFR1234 - options; W - write conf; Q - quit to menu"
 msgstr ""
@@ -1390,7 +1402,7 @@ msgstr ""
 msgid "Error closing file"
 msgstr ""
 
-#: src/ap-auth.c:45 src/ap-mrtg.c:42 src/ap-rrd.c:42
+#: src/ap-auth.c:44 src/ap-mrtg.c:41 src/ap-rrd.c:40
 msgid ""
 "\n"
 "Usage:\n"
@@ -1398,41 +1410,41 @@ msgstr ""
 "\n"
 "Folosire:\n"
 
-#: src/ap-auth.c:46
+#: src/ap-auth.c:45
 msgid "\tap-auth -i ip -c community -d filename [-h]\n"
 msgstr ""
 
-#: src/ap-auth.c:47
+#: src/ap-auth.c:46
 msgid ""
 "\tap-auth -i ip -c community -u filename [-h]\n"
 "\n"
 msgstr ""
 
-#: src/ap-auth.c:48
+#: src/ap-auth.c:47
 msgid ""
 "Change accesspoint's list of authorised MAC addresses\n"
 "\n"
 msgstr ""
 
-#: src/ap-auth.c:49 src/ap-mrtg.c:46 src/ap-rrd.c:47
+#: src/ap-auth.c:48 src/ap-mrtg.c:45 src/ap-rrd.c:45
 msgid "-i ip        - AP ip address\n"
 msgstr "-i ip        - Adresã de ip AP \n"
 
-#: src/ap-auth.c:50 src/ap-mrtg.c:47 src/ap-rrd.c:48
+#: src/ap-auth.c:49 src/ap-mrtg.c:46 src/ap-rrd.c:46
 msgid "-c community - SNMP community string\n"
 msgstr "-c comunitate - SNMP ºir de caractere comunitate\n"
 
-#: src/ap-auth.c:51
+#: src/ap-auth.c:50
 msgid ""
 "-d filename  - download list of authorised MAC addresses from AP to a file\n"
 msgstr ""
 
-#: src/ap-auth.c:53
+#: src/ap-auth.c:52
 msgid ""
 "-u filename  - upload list of authorised MAC addresses from a file to AP\n"
 msgstr ""
 
-#: src/ap-auth.c:55 src/ap-mrtg.c:56 src/ap-rrd.c:57
+#: src/ap-auth.c:54 src/ap-mrtg.c:55 src/ap-rrd.c:55
 msgid ""
 "-h           - print this help screen\n"
 "\n"
@@ -1440,7 +1452,7 @@ msgstr ""
 "-h           - afiºeazã acest ecran de ajutor\n"
 "\n"
 
-#: src/ap-auth.c:56
+#: src/ap-auth.c:55
 #, fuzzy, c-format
 msgid ""
 "ap-auth %s Copyright (c) 2004 Teemu Kiviniemi\n"
@@ -1449,221 +1461,242 @@ msgstr ""
 "ap-mrtg %s Copyright (c) 2002 Roman Festchook\n"
 "\n"
 
-#: src/ap-auth.c:146 src/ap-mrtg.c:139
+#: src/ap-auth.c:138 src/ap-mrtg.c:132
 #, fuzzy
 msgid "Error: invalid IP-address.\n"
 msgstr "Adresã de IP invalidã\n"
 
-#: src/ap-auth.c:178 src/ap-mrtg.c:178 src/ap-rrd.c:207
-msgid "Create socket error"
-msgstr "Eroare în crearea socketului"
-
-#: src/ap-auth.c:182 src/ap-mrtg.c:182 src/ap-rrd.c:211
-msgid "Bind socket error"
-msgstr "Eroare în legãtura(bind) la socket"
-
-#: src/ap-auth.c:220 src/ap-mrtg.c:220
+#: src/ap-auth.c:203 src/ap-mrtg.c:204
 #, fuzzy
 msgid "Unable to determine AP MIB type (no response from AP)."
 msgstr "Nu se pot recupera date din AP. Apãsaþi o tastã pentru continuare."
 
-#: src/ap-auth.c:228
+#: src/ap-auth.c:211
 msgid "NWN devices are not yet supported."
 msgstr ""
 
-#: src/ap-config.c:41 src/bridge.c:200
+#: src/ap-config.c:43 src/bridge.c:201
 msgid "Bridging"
 msgstr "Conexiune(Bridging)"
 
-#: src/ap-config.c:41
+#: src/ap-config.c:43
 msgid "Set bridging and IP-related options"
 msgstr "Setare opþiuni legate de bridging ºi IP"
 
-#: src/ap-config.c:43 src/ap-config.c:112 src/ap-config.c:121 src/bridge.c:124
+#: src/ap-config.c:45 src/ap-config.c:114 src/ap-config.c:123 src/bridge.c:125
 msgid "Wireless"
 msgstr "Wireless"
 
-#: src/ap-config.c:43
+#: src/ap-config.c:45
 msgid "Set wireless options"
 msgstr "Setare opþiuni wireless"
 
-#: src/ap-config.c:44 src/ap-config.c:56
+#: src/ap-config.c:46 src/ap-config.c:58
 msgid "Privacy"
 msgstr "Secret(Privacy)"
 
-#: src/ap-config.c:45
+#: src/ap-config.c:47
 #, fuzzy
 msgid "Auth"
 msgstr "Despre"
 
-#: src/ap-config.c:46 src/ap-config.c:58
+#: src/ap-config.c:48 src/ap-config.c:60
 msgid "Community"
 msgstr "Comunitate"
 
-#: src/ap-config.c:47
+#: src/ap-config.c:49
 msgid "Radio"
 msgstr "Radio"
 
-#: src/ap-config.c:47
+#: src/ap-config.c:49
 msgid "Set radio signal power and antenna options"
 msgstr "Setãri putere semnal radio ºi opþiuni antenã"
 
-#: src/ap-config.c:54
+#: src/ap-config.c:56
 msgid "General"
 msgstr "General"
 
-#: src/ap-config.c:54
+#: src/ap-config.c:56
 msgid "Set general options"
 msgstr "Setare opþiuni generale"
 
-#: src/ap-config.c:55
+#: src/ap-config.c:57
 msgid "Advanced"
 msgstr "Avansat"
 
-#: src/ap-config.c:55
+#: src/ap-config.c:57
 msgid "Set advanced options"
 msgstr "Setare opþiuni avansate"
 
-#: src/ap-config.c:57
+#: src/ap-config.c:59
 #, fuzzy
 msgid "MAC auth"
 msgstr "Autorizare Mac"
 
-#: src/ap-config.c:80
+#: src/ap-config.c:82
 msgid "Upload"
 msgstr "Upload"
 
-#: src/ap-config.c:80
+#: src/ap-config.c:82
 #, fuzzy
 msgid "Activate current configuration"
 msgstr "Seteazã configuraþia curentã ca activã"
 
-#: src/ap-config.c:81
+#: src/ap-config.c:83
 msgid "Defaults"
 msgstr "Implicite"
 
-#: src/ap-config.c:81
+#: src/ap-config.c:83
 msgid "Restore factory default settings"
 msgstr "Restaureazã setãrile implicite din fabricã"
 
-#: src/ap-config.c:82 src/ap-config.c:89
+#: src/ap-config.c:84 src/ap-config.c:91
 msgid "Reset"
 msgstr "Reset"
 
-#: src/ap-config.c:83
+#: src/ap-config.c:85
 msgid "Reset AP. All not uploaded configuration will be lost"
 msgstr "Resetare AP. Toate configuraþiile ne-uploadate vor fi pierdute"
 
-#: src/ap-config.c:84
+#: src/ap-config.c:86
 msgid "TestMode"
 msgstr "ModTestare"
 
-#: src/ap-config.c:84
+#: src/ap-config.c:86
 msgid "Put Access Point in test mode"
 msgstr "Aducere Access Point în mod testare"
 
-#: src/ap-config.c:89
+#: src/ap-config.c:91
 msgid "Reset AP."
 msgstr "Resetare AP."
 
-#: src/ap-config.c:110 src/ap-config.c:120
+#: src/ap-config.c:112 src/ap-config.c:122
 msgid "SysInfo"
 msgstr "SysInfo"
 
-#: src/ap-config.c:111 src/bridge.c:123 src/bridge.c:127
+#: src/ap-config.c:113 src/bridge.c:124 src/bridge.c:127
 msgid "Ethernet"
 msgstr "Ethernet"
 
-#: src/ap-config.c:111
+#: src/ap-config.c:113
 msgid "Get ethernet port statistics"
 msgstr "Procurare statistici port ethernet"
 
-#: src/ap-config.c:113 src/ap-config.c:122
+#: src/ap-config.c:115 src/ap-config.c:124
 msgid "Stations"
 msgstr "Staþii"
 
-#: src/ap-config.c:114
+#: src/ap-config.c:116
 msgid "AP link"
 msgstr ""
 
-#: src/ap-config.c:115
+#: src/ap-config.c:117
 msgid "KnownAPs"
 msgstr "AP-uri cunoscute"
 
-#: src/ap-config.c:115
+#: src/ap-config.c:117
 msgid "Get info about known Access Points"
 msgstr "Procurare informaþii despre Access Point-urile cunoscute"
 
-#: src/ap-config.c:123
+#: src/ap-config.c:125
 msgid "Latest"
 msgstr "Ultimul"
 
-#: src/ap-config.c:123
+#: src/ap-config.c:125
 msgid "Get info about latest events"
 msgstr "Procurare informaþii despre ultimele evenimente"
 
-#: src/ap-config.c:148
+#: src/ap-config.c:150
 msgid "Info"
 msgstr "Informaþii"
 
-#: src/ap-config.c:149
+#: src/ap-config.c:151
 msgid "Config"
 msgstr "Configuraþie"
 
-#: src/ap-config.c:150
+#: src/ap-config.c:152
 msgid "Commands"
 msgstr "Comenzi"
 
-#: src/ap-config.c:150
+#: src/ap-config.c:152
 msgid "Execute commands on Access Point"
 msgstr "Executare comenzi pe Access Point"
 
-#: src/ap-config.c:152
+#: src/ap-config.c:154
 msgid "Connect"
 msgstr "Conectare "
 
-#: src/ap-config.c:153
+#: src/ap-config.c:155
 msgid "Search"
 msgstr "Cãutare"
 
-#: src/ap-config.c:155
+#: src/ap-config.c:156
+msgid "Polling"
+msgstr ""
+
+#: src/ap-config.c:157
 msgid "Shell"
 msgstr "Shell"
 
-#: src/ap-config.c:156
+#: src/ap-config.c:159
 msgid "Exit"
 msgstr "Ieºire"
 
-#: src/ap-config.c:214
+#: src/ap-config.c:218
 #, c-format
 msgid "Wireless Access Point Configurator ver. %s"
 msgstr "Wireless Access Point Configurator ver. %s"
 
-#: src/aplink.c:28
+#: src/aplink.c:25
 msgid "RSSI:     ["
 msgstr ""
 
-#: src/aplink.c:29
+#: src/aplink.c:26
 msgid "RSSI avg: ["
 msgstr ""
 
-#: src/aplink.c:30
+#: src/aplink.c:27
 msgid "RSSI top: ["
 msgstr ""
 
-#: src/aplink.c:112
+#: src/aplink.c:28
+msgid "RSSI rou: ["
+msgstr ""
+
+#: src/aplink.c:29
+msgid ""
+"P - pause, T - toggle graph view, Q - quit to menu, Other key - force update."
+msgstr ""
+
+#: src/aplink.c:81
+msgid "RSSI [%]"
+msgstr ""
+
+#: src/aplink.c:82
+msgid "RSSI average [%]"
+msgstr ""
+
+#: src/aplink.c:83
+msgid "RSSI rounded [%]"
+msgstr ""
+
+#: src/aplink.c:84
+msgid "Link Quality [%]"
+msgstr ""
+
+#: src/aplink.c:133
 msgid "Not available - device must have firmware with necessary "
 msgstr ""
 
-#: src/aplink.c:114
+#: src/aplink.c:135
 msgid "vendor extensions and be in either 'Access Point client'"
 msgstr ""
 
-#: src/aplink.c:116
+#: src/aplink.c:137
 msgid "or 'Repeater' mode."
 msgstr ""
 
-#: src/ap-mrtg.c:43
+#: src/ap-mrtg.c:42
 #, fuzzy
 msgid ""
 "\tap-mrtg -i ip -c community -t type [-b bssid] [-n name] [-v] [-h] [-r]\n"
@@ -1672,7 +1705,7 @@ msgstr ""
 "\tap-mrtg -i ip -c comunitate -t tip [-b bssid] [-v] [-h] [-r]\n"
 "\n"
 
-#: src/ap-mrtg.c:45
+#: src/ap-mrtg.c:44
 msgid ""
 "Get stats from AP and return it in MRTG parsable format\n"
 "\n"
@@ -1680,7 +1713,7 @@ msgstr ""
 "Procurã statistici din AP ºi le returneazã în format MRTG\n"
 "\n"
 
-#: src/ap-mrtg.c:48
+#: src/ap-mrtg.c:47
 #, fuzzy
 msgid ""
 "-t type      - statistics type <w>ireless, <e>thernet, associated <s>tations "
@@ -1689,11 +1722,11 @@ msgstr ""
 "-t tip      - tip statistici <w>ireless, <e>thernet,  <s>taþii asociate sau "
 "calitate  <l>egãturã(link) în mod client\n"
 
-#: src/ap-mrtg.c:50
+#: src/ap-mrtg.c:49
 msgid "work with ATMEL410 MIB devices in AP Client mode)\n"
 msgstr ""
 
-#: src/ap-mrtg.c:51
+#: src/ap-mrtg.c:50
 #, fuzzy
 msgid ""
 "-b bssid     - mac address of the AP from which get link quality, only if "
@@ -1702,21 +1735,21 @@ msgstr ""
 "-b bssid     - adresã mac a AP-ului de la care se procurã calitatea "
 "conexiunii(link), numai dacã tip=l\n"
 
-#: src/ap-mrtg.c:53
+#: src/ap-mrtg.c:52
 msgid "-n name      - AP name - for check only\n"
 msgstr ""
 
-#: src/ap-mrtg.c:54
+#: src/ap-mrtg.c:53
 msgid "-v           - report MRTG about problems connecting to AP\n"
 msgstr ""
 "-v           - raporteazã MRTG-ului problemele apãrute la conectarea la AP\n"
 
-#: src/ap-mrtg.c:55 src/ap-rrd.c:56
+#: src/ap-mrtg.c:54 src/ap-rrd.c:54
 msgid "-r           - reset AP when getting LinkQuality stats\n"
 msgstr ""
 "-r           - reseteazã AP-ul când se procurã statisticile LinkQuality\n"
 
-#: src/ap-mrtg.c:57
+#: src/ap-mrtg.c:56
 #, fuzzy, c-format
 msgid ""
 "ap-mrtg %s Copyright (c) 2002-2003 Roman Festchook\n"
@@ -1725,7 +1758,12 @@ msgstr ""
 "ap-mrtg %s Copyright (c) 2002 Roman Festchook\n"
 "\n"
 
-#: src/ap-rrd.c:44
+#: src/ap-rrd.c:32
+#, c-format
+msgid "Error getting data from AP %s\n"
+msgstr ""
+
+#: src/ap-rrd.c:42
 #, fuzzy
 msgid ""
 "\tap-rrd -i ip -c community -t type -d db_file [-b bssid] [-n name] [-a "
@@ -1735,7 +1773,7 @@ msgstr ""
 "\tap-mrtg -i ip -c comunitate -t tip [-b bssid] [-v] [-h] [-r]\n"
 "\n"
 
-#: src/ap-rrd.c:46
+#: src/ap-rrd.c:44
 #, fuzzy
 msgid ""
 "Get stats from AP and put it in to specified RRDtool database\n"
@@ -1744,7 +1782,7 @@ msgstr ""
 "Procurã statistici din AP ºi le returneazã în format MRTG\n"
 "\n"
 
-#: src/ap-rrd.c:50
+#: src/ap-rrd.c:48
 msgid ""
 "-t type      - statistics type <w>ireless, <e>thernet, associated <s>tations "
 "or <l>ink quality in client mode\n"
@@ -1752,11 +1790,11 @@ msgstr ""
 "-t tip      - tip statistici <w>ireless, <e>thernet,  <s>taþii asociate sau "
 "calitate  <l>egãturã(link) în mod client\n"
 
-#: src/ap-rrd.c:51
+#: src/ap-rrd.c:49
 msgid "-d db_file   - RRD database file with full path\n"
 msgstr ""
 
-#: src/ap-rrd.c:53
+#: src/ap-rrd.c:51
 msgid ""
 "-b bssid     - mac address of the AP to which get link quality, only if "
 "type=l\n"
@@ -1764,17 +1802,17 @@ msgstr ""
 "-b bssid     - adresã mac a AP-ului de la care se procurã calitatea "
 "conexiunii(link), numai dacã tip=l\n"
 
-#: src/ap-rrd.c:54
+#: src/ap-rrd.c:52
 msgid "-n name     - AP name - for check only\n"
 msgstr ""
 
-#: src/ap-rrd.c:55
+#: src/ap-rrd.c:53
 msgid ""
 "-a aptype    - AP type - 410 (default) or 510 for ATMEL12350's, like the ME-"
 "102\n"
 msgstr ""
 
-#: src/ap-rrd.c:58
+#: src/ap-rrd.c:56
 #, fuzzy, c-format
 msgid ""
 "ap-rrd %s Copyright (c) 2002-2004 Roman Festchook\n"
@@ -1783,160 +1821,161 @@ msgstr ""
 "ap-mrtg %s Copyright (c) 2002 Roman Festchook\n"
 "\n"
 
-#: src/ap-rrd.c:142
+#: src/ap-rrd.c:133
 msgid "Invalid IP-address\n"
 msgstr "Adresã de IP invalidã\n"
 
-#: src/ap-rrd.c:188
+#: src/ap-rrd.c:179
 #, c-format
 msgid "Invalid AP-Type '%s' - valid types are 510 or 410\n"
 msgstr ""
 
-#: src/ap-tftp.c:81
+#: src/ap-tftp.c:84
 msgid "yes"
 msgstr ""
 
-#: src/ap-tftp.c:82
+#: src/ap-tftp.c:85
 #, fuzzy
 msgid "no"
 msgstr "Informaþii"
 
-#: src/ap-tftp.c:84
+#: src/ap-tftp.c:87
 msgid "Error while read()ing firmware file"
 msgstr ""
 
-#: src/ap-tftp.c:88
+#: src/ap-tftp.c:100
 msgid "Undefined error"
 msgstr ""
 
-#: src/ap-tftp.c:89
+#: src/ap-tftp.c:101
 msgid "File not found"
 msgstr ""
 
-#: src/ap-tftp.c:90
+#: src/ap-tftp.c:102
 #, fuzzy
 msgid "Access violation"
 msgstr "Access Point"
 
-#: src/ap-tftp.c:91
+#: src/ap-tftp.c:103
 msgid "Disk full or allocation error"
 msgstr ""
 
-#: src/ap-tftp.c:92
+#: src/ap-tftp.c:104
 msgid "Illegal TFTP operation"
 msgstr ""
 
-#: src/ap-tftp.c:93
+#: src/ap-tftp.c:105
 msgid "Unknown transfer ID"
 msgstr ""
 
-#: src/ap-tftp.c:94
+#: src/ap-tftp.c:106
 msgid "File already exists"
 msgstr ""
 
-#: src/ap-tftp.c:95
+#: src/ap-tftp.c:107
 msgid "No such user"
 msgstr ""
 
-#: src/ap-tftp.c:161
+#: src/ap-tftp.c:157
 msgid "Remote-filename too long.\n"
 msgstr ""
 
-#: src/ap-tftp.c:187
+#: src/ap-tftp.c:183
 #, c-format
 msgid "%sError in read()"
 msgstr ""
 
-#: src/ap-tftp.c:215
+#: src/ap-tftp.c:212
 #, c-format
 msgid "sending %u bytes\n"
 msgstr ""
 
-#: src/ap-tftp.c:224
+#: src/ap-tftp.c:221
 #, c-format
 msgid "%sError in sendto()"
 msgstr ""
 
-#: src/ap-tftp.c:247
+#: src/ap-tftp.c:244
 #, c-format
 msgid "%sError in recvfrom()"
 msgstr ""
 
-#: src/ap-tftp.c:261
+#: src/ap-tftp.c:256
 #, c-format
-msgid "\rProgress: uploaded %.0f %%."
+msgid "\rProgress: uploaded %3i%%."
 msgstr ""
 
-#: src/ap-tftp.c:272
+#: src/ap-tftp.c:267
 #, c-format
 msgid "%sMalformed packet received. Aborting.\n"
 msgstr ""
 
-#: src/ap-tftp.c:281
+#: src/ap-tftp.c:276
 #, c-format
 msgid "%sTimed out waiting for response from server (%i/%i).\n"
 msgstr ""
 
-#: src/ap-tftp.c:288
+#: src/ap-tftp.c:283
 #, c-format
 msgid "%sError in select()"
 msgstr ""
 
-#: src/ap-tftp.c:302
+#: src/ap-tftp.c:297
 #, c-format
 msgid "Received %d bytes: %04x %04x\n"
 msgstr ""
 
-#: src/ap-tftp.c:313
+#: src/ap-tftp.c:308
 #, c-format
 msgid "%sError: server responded with %s. Aborting.\n"
 msgstr ""
 
-#: src/ap-tftp.c:320
+#: src/ap-tftp.c:315
 #, c-format
 msgid "%sFlash programming in progress...\n"
 msgstr ""
 
-#: src/ap-tftp.c:322
+#: src/ap-tftp.c:317
 msgid "Finished successfully.\n"
 msgstr ""
 
-#: src/ap-tftp.c:340
+#: src/ap-tftp.c:335
 msgid "PLEASE BE _ABSOLUTELY_ SURE TO READ MANPAGE PRIOR USE!!!\n"
 msgstr ""
 
-#: src/ap-tftp.c:341
+#: src/ap-tftp.c:337
 #, c-format
 msgid ""
 "\n"
-"Usage: %s <-l firmware_file.rom> <IP>\n"
+"Usage: %s -i IP -f firmware_file.rom [-c community] [-h]\n"
 msgstr ""
 
-#: src/ap-tftp.c:363
+#: src/ap-tftp.c:361
 msgid "TFTP client for upgrading firmware in ATMEL AT76C510 WiSOC-based APs.\n"
 msgstr ""
 
-#: src/ap-tftp.c:365
+#: src/ap-tftp.c:363
 msgid "(C) 2004-2005 Jan Rafaj <jr-aputils at cedric dot unob dot cz>\n"
 msgstr ""
 
-#: src/ap-tftp.c:391
-msgid "Error: invalid arguments given.\n"
-msgstr ""
-
-#: src/ap-tftp.c:398
+#: src/ap-tftp.c:379
 msgid "Error: invalid IP address format given.\n"
 msgstr ""
 
 #: src/ap-tftp.c:405
+#, fuzzy
+msgid "Error: invalid argument combination.\n"
+msgstr "Adresã de IP invalidã\n"
+
+#: src/ap-tftp.c:412
 msgid "Error while open()ing firmware file"
 msgstr ""
 
-#: src/ap-tftp.c:411 src/ap-tftp.c:462
+#: src/ap-tftp.c:419 src/ap-tftp.c:472
 msgid "Error: invalid firmware file given.\n"
 msgstr ""
 
-#: src/ap-tftp.c:451
+#: src/ap-tftp.c:461
 #, c-format
 msgid ""
 "Firmware file contains:\n"
@@ -1946,7 +1985,7 @@ msgid ""
 "- string \"atsingle.bin\": %s\n"
 msgstr ""
 
-#: src/ap-tftp.c:474
+#: src/ap-tftp.c:485
 #, c-format
 msgid ""
 "Using:\n"
@@ -1955,7 +1994,16 @@ msgid ""
 "- name used for upload: \"%s\"\n"
 msgstr ""
 
-#: src/ap-tftp.c:537
+#: src/ap-tftp.c:568
+msgid ""
+"Error: device with the given IP does not seem to run SmartBridges firmware.\n"
+msgstr ""
+
+#: src/ap-tftp.c:574
+msgid "Error: SNMP authorization error or device unavailable.\n"
+msgstr ""
+
+#: src/ap-tftp.c:653
 msgid "Error while lseek()ing in firmware file\n"
 msgstr ""
 
@@ -2054,7 +2102,7 @@ msgstr ""
 
 #: src/auth.c:41
 #, fuzzy
-msgid "[T] Reauthorization time (sec): "
+msgid "[T] Reauthorization time (minutes): "
 msgstr "[A] Autorizare prin MAC: %s"
 
 #: src/auth.c:42
@@ -2075,8 +2123,9 @@ msgid "[M] 802.1x authorization: "
 msgstr "[A] Autorizare prin MAC: %s"
 
 #: src/auth.c:46
-msgid "[T] key broadcasting time period (sec): "
-msgstr ""
+#, fuzzy
+msgid "[T] key broadcasting time period (seconds): "
+msgstr "[A] Autorizare prin MAC: %s"
 
 #: src/auth.c:47
 msgid "[I] 802.1x auth. server IP: "
@@ -2120,16 +2169,16 @@ msgstr ""
 msgid "(not shown)"
 msgstr ""
 
-#: src/auth.c:270
+#: src/auth.c:276
 #, fuzzy
 msgid "Authorized MAC addresses:"
 msgstr "Adrese MAC Autorizate"
 
-#: src/auth.c:339
+#: src/auth.c:345
 msgid "(insufficient community used)"
 msgstr ""
 
-#: src/auth.c:466
+#: src/auth.c:472
 #, c-format
 msgid "Given MAC already exists in MAC list at position %d. Press any key."
 msgstr ""
@@ -2203,16 +2252,16 @@ msgstr ""
 msgid "INGFPDOMSCRBUT - set; W - write conf; Q - quit to menu"
 msgstr "BPGINFDRT - setãri; W - scriere configuraþie; Q - ieºire în meniu"
 
-#: src/bridge.c:126
-#, fuzzy
-msgid "Both"
-msgstr "Ambele Tipuri"
-
 #: src/bridge.c:128
 #, fuzzy
 msgid "Wireless (can be risky)"
 msgstr "Setãri Wireless"
 
+#: src/bridge.c:129
+#, fuzzy
+msgid "Both"
+msgstr "Ambele Tipuri"
+
 #: src/nwn_advanced.c:60
 #, c-format
 msgid "[D] DB Station Timeout: %d"
@@ -2265,31 +2314,43 @@ msgstr "Eroare:"
 msgid "Not available (device not in AP mode)."
 msgstr ""
 
-#: src/stations.c:93
+#: src/stations.c:92
 msgid "  #     MAC       Parent MAC  RSSI   LQ Sts MACn      IP        "
 msgstr ""
 
-#: src/stations.c:139
+#: src/stations.c:136
 msgid "AssociatedSTAsInfo packet error"
 msgstr "Eroare pachet AssociatedSTAsInfo"
 
-#: src/stations.c:192 src/stations.c:364
+#: src/stations.c:189 src/stations.c:363
 #, fuzzy
 msgid ""
 "Arrows - scroll; S - save to file; Q - return; T - toggle view; Other - "
 "refresh"
 msgstr "Sãgeþi - scroll; S - salvare în fiºier; Q - ieºire în meniu."
 
-#: src/stations.c:196
+#: src/stations.c:193
 #, fuzzy
 msgid "Arrows - scroll; S - save to file; Q - return; Other key - refresh"
 msgstr "Sãgeþi - scroll; S - salvare în fiºier; Q - ieºire în meniu."
 
-#: src/stations.c:276
+#: src/stations.c:275
 #, fuzzy
 msgid "Id       MAC address     Quality  Age  RSSI"
 msgstr "Id      Adresã MAC     Calitate  Vechime  RSSI"
 
+#~ msgid "Create socket error. Press any key."
+#~ msgstr "Eroare în creare socket. Apãsaþi o tastã."
+
+#~ msgid "Bind socket error. Press any key."
+#~ msgstr "Eroare de legãturã. Apãsaþi o tastã."
+
+#~ msgid "Create socket error"
+#~ msgstr "Eroare în crearea socketului"
+
+#~ msgid "Bind socket error"
+#~ msgstr "Eroare în legãtura(bind) la socket"
+
 #, fuzzy
 #~ msgid "NUM       MAC address"
 #~ msgstr "NUM     adresã MAC"
index cb8bfd2cae1ff59bd4ca8f295b2f8c929c4af556..3fb5f82fb7373c5c0cc8e4dd59456c6c9ad2373f 100644 (file)
--- a/po/tr.po
+++ b/po/tr.po
@@ -6,7 +6,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: ap-utils 1.3.2-pre3\n"
-"POT-Creation-Date: 2005-01-16 02:07+0200\n"
+"POT-Creation-Date: 2005-03-07 01:13+0200\n"
 "PO-Revision-Date: 2004-06-14 14:03+0200\n"
 "Last-Translator: Elif Bilge Maden <bilgemaden_1@yahoo.com>\n"
 "Language-Team: Turkish <gnu-tr-u12a@lists.sourceforge.net>\n"
@@ -15,82 +15,82 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Report-Msgid-Bugs-To: \n"
 
-#: lib/aps.c:29
+#: lib/aps.c:30
 msgid "Known Access Points"
 msgstr "Tanımlana Erişim Noktaları"
 
-#: lib/aps.c:129
+#: lib/aps.c:130
 msgid "Your Access Point is not in \"AP client\" mode => getting"
 msgstr ""
 
-#: lib/aps.c:132
+#: lib/aps.c:133
 msgid "up-to-date \"Known APs\" info requires your AP to be"
 msgstr ""
 
-#: lib/aps.c:135
+#: lib/aps.c:136
 msgid "temporarily configured into \"AP client\" mode and rebooted."
 msgstr ""
 
-#: lib/aps.c:138
+#: lib/aps.c:139
 msgid "Your AP will be reconfigured back to original mode by this"
 msgstr ""
 
-#: lib/aps.c:141
+#: lib/aps.c:142
 msgid "utility once you quit the \"KnownAP\" view. This, in turn, may"
 msgstr ""
 
-#: lib/aps.c:144
+#: lib/aps.c:145
 #, fuzzy
 msgid "cause loss of Access Point's current configuration."
 msgstr "Kablosuz Erişim Noktası Konfigürasyon Tanımlayıcısı"
 
-#: lib/aps.c:148
+#: lib/aps.c:149
 msgid "Do NOT answer \"Yes\" if you're connected to the Access Point"
 msgstr ""
 
-#: lib/aps.c:151
+#: lib/aps.c:152
 #, fuzzy
 msgid "via its wireless port."
 msgstr "Kablosuz seçenekleri kur"
 
-#: lib/aps.c:153 lib/cmd.c:45 lib/cmd.c:75 lib/test.c:96
+#: lib/aps.c:154 lib/cmd.c:45 lib/cmd.c:75 lib/test.c:96
 msgid "Do you want to continue? "
 msgstr "Devam etmek istiyor musunuz?"
 
-#: lib/aps.c:207
+#: lib/aps.c:208
 msgid "NetworkType"
 msgstr "Ağ Türü"
 
-#: lib/aps.c:283
+#: lib/aps.c:284
 msgid "Infrastructure"
 msgstr "Altyapı"
 
-#: lib/aps.c:343 lib/aps.c:351 lib/aps.c:359
+#: lib/aps.c:344 lib/aps.c:352 lib/aps.c:360
 #, fuzzy
 msgid "CN: Channel Name; P: Preambule Type (S: Short; L: Long);"
 msgstr "P: Başlangıç Türü, S: Kısa; L: Uzun"
 
-#: lib/aps.c:345
+#: lib/aps.c:346
 msgid "RSSI: Radio Signal Strength Indicator [%]"
 msgstr ""
 
-#: lib/aps.c:347 lib/aps.c:355
+#: lib/aps.c:348 lib/aps.c:356
 msgid "; LQ: Link Quality [%]"
 msgstr ""
 
-#: lib/aps.c:353
+#: lib/aps.c:354
 msgid "RSSI: Radio Signal Strength Indicator [dBm]"
 msgstr ""
 
-#: lib/aps.c:361
+#: lib/aps.c:362
 msgid "RSSI: Radio Signal Strength Indicator [raw]"
 msgstr ""
 
-#: lib/aps.c:363
+#: lib/aps.c:364
 msgid "; LQ: Link Q. [raw]"
 msgstr ""
 
-#: lib/aps.c:369
+#: lib/aps.c:370
 #, fuzzy
 msgid ""
 "# con. to AP #; R refresh with reset; T toggle; Q quit; Other = refr. w/o "
@@ -99,7 +99,7 @@ msgstr ""
 "# bu AP'ye bağlan; R yeniden başlatarak yenile; G yeniden başlatmadan "
 "yenile; Q geri dön"
 
-#: lib/aps.c:371
+#: lib/aps.c:372
 #, fuzzy
 msgid ""
 "# con. to AP #; R initiate AP scan; T toggle view; Q quit; Other = refresh "
@@ -108,44 +108,44 @@ msgstr ""
 "# bu AP'ye bağlan; R yeniden başlatarak yenile; G yeniden başlatmadan "
 "yenile; Q geri dön"
 
-#: lib/aps.c:500 lib/ap_search.c:167
+#: lib/aps.c:501 lib/ap_search.c:173
 #, fuzzy, c-format
 msgid "Failure in sendto(): %s. Press any key."
 msgstr "Geçersiz gönderim: %s. Bir tuşa basınız."
 
-#: lib/aps.c:509
+#: lib/aps.c:510
 msgid "You have just initiated the AP scan. Be advised that it may"
 msgstr ""
 
-#: lib/aps.c:512
+#: lib/aps.c:513
 msgid "take a few seconds for your Access Point to find out some"
 msgstr ""
 
-#: lib/aps.c:515
+#: lib/aps.c:516
 msgid "values, so expect finishing the scan in about 5 seconds."
 msgstr ""
 
-#: lib/aps.c:518
+#: lib/aps.c:519
 msgid "Also note that your Access Point stops forwarding the network"
 msgstr ""
 
-#: lib/aps.c:521
+#: lib/aps.c:522
 msgid "traffic while the scan is in progress, but restores itself"
 msgstr ""
 
-#: lib/aps.c:524
+#: lib/aps.c:525
 msgid "to normal operation in time ranging up to 1 minute."
 msgstr ""
 
-#: lib/aps.c:527
+#: lib/aps.c:528
 msgid "Hence, if you are connected to target Access Point via its"
 msgstr ""
 
-#: lib/aps.c:530
+#: lib/aps.c:531
 msgid "wireless port, you need to wait a bit longer"
 msgstr ""
 
-#: lib/aps.c:533
+#: lib/aps.c:534
 msgid "after pressing 'S'."
 msgstr ""
 
@@ -156,299 +156,296 @@ msgstr "Topluluk"
 
 #: lib/ap_search.c:49
 #, fuzzy
-msgid "  NUM  IP ADDRESS       MIB TYPE    NAME"
+msgid "  NUM  IP ADDRESS       MIB TYPE    FW TYPE (VERSION) AP NAME"
 msgstr "NO        IP ADRESİ       TÜR"
 
-#: lib/ap_search.c:100
+#: lib/ap_search.c:106
 msgid "Please wait while scanning, or press 'Q' to quit."
 msgstr ""
 
-#: lib/ap_search.c:116
+#: lib/ap_search.c:122
 #, fuzzy
 msgid "Can't set broadcast option on socket. Press any key."
 msgstr "Yuvaya yayın seçeneği kurulamıyor. Bir tuşa basınız."
 
-#: lib/ap_search.c:125
+#: lib/ap_search.c:131
 #, fuzzy
 msgid "Can't set multicast membership on socket. Press any key."
 msgstr "yuvaya çoğa gönderim üyeliği kurulamıyor. Bir tuşa basınız."
 
-#: lib/ap_search.c:132
+#: lib/ap_search.c:138
 msgid "Scanning via network interface:"
 msgstr ""
 
-#: lib/ap_search.c:133
+#: lib/ap_search.c:139
 #, c-format
 msgid "  Index: %i"
 msgstr ""
 
-#: lib/ap_search.c:135
+#: lib/ap_search.c:141
 #, fuzzy, c-format
 msgid "  Name: %s"
 msgstr "(N) AP Adı:"
 
-#: lib/ap_search.c:137
+#: lib/ap_search.c:143
 #, c-format
 msgid "  IP: %s"
 msgstr ""
 
-#: lib/ap_search.c:146
+#: lib/ap_search.c:152
 #, c-format
 msgid "Scanning for AP with MIB type: %s"
 msgstr ""
 
-#: lib/ap_search.c:334
-msgid "Please enter SNMP community name that will be used for AP detection."
-msgstr ""
-
-#: lib/ap_search.c:345
+#: lib/ap_search.c:378
 msgid "Access Points Search"
 msgstr "Erişim Noktaları Araştırması"
 
-#: lib/ap_search.c:363
+#: lib/ap_search.c:396
 #, fuzzy
 msgid "realloc() error."
 msgstr "Soket hatası oluştur"
 
-#: lib/ap_search.c:375
+#: lib/ap_search.c:408
 msgid "Network interface discovery error."
 msgstr ""
 
-#: lib/ap_search.c:450
+#: lib/ap_search.c:483
 #, fuzzy
 msgid "No local network interfaces found. Press any key."
 msgstr "çatal hata. Bir tuşa basınız."
 
-#: lib/ap_search.c:452
+#: lib/ap_search.c:485
 msgid "No directly reachable Access Points found. Press any key."
 msgstr ""
 
-#: lib/ap_search.c:457
+#: lib/ap_search.c:490
 msgid "Single-screen maximum number of APs found."
 msgstr ""
 
-#: lib/ap_search.c:460
+#: lib/ap_search.c:493
 #, fuzzy
 msgid "# - connect to AP; Q - quit"
 msgstr "AP numarasına bağlan:"
 
-#: lib/ap-utils.h:79
+#: lib/ap-utils.h:82
 #, fuzzy
 msgid "MAC address: "
 msgstr "NUM MAKRO adres"
 
-#: lib/ap-utils.h:80
+#: lib/ap-utils.h:83
 #, fuzzy
 msgid "[S] SNMP traps: "
 msgstr "(S) SNMP Tuzakları: %s"
 
-#: lib/ap-utils.h:82
+#: lib/ap-utils.h:85
 #, fuzzy
 msgid "[C] Frequency channel: "
 msgstr "[C] Sıklık Kanalı: %02u (%u MHz)"
 
-#: lib/ap-utils.h:84
+#: lib/ap-utils.h:87
 #, fuzzy
 msgid "Receive  antenna:"
 msgstr "Alındı:"
 
-#: lib/ap-utils.h:85
+#: lib/ap-utils.h:88
 #, fuzzy
 msgid "[U] Left"
 msgstr "Sol"
 
-#: lib/ap-utils.h:86
+#: lib/ap-utils.h:89
 #, fuzzy
 msgid "[I] Right"
 msgstr "Sağ"
 
-#: lib/ap-utils.h:87
+#: lib/ap-utils.h:90
 #, fuzzy
 msgid "Transmit antenna:"
 msgstr "İletildi:"
 
-#: lib/ap-utils.h:88
+#: lib/ap-utils.h:91
 #, fuzzy
 msgid "[O] Left"
 msgstr "Sol"
 
-#: lib/ap-utils.h:89
+#: lib/ap-utils.h:92
 #, fuzzy
 msgid "[P] Right"
 msgstr "Sağ"
 
-#: lib/ap-utils.h:90
+#: lib/ap-utils.h:93
 #, fuzzy
 msgid "Diversity select:"
 msgstr "Çeşitleme: %s"
 
-#: lib/ap-utils.h:91
+#: lib/ap-utils.h:94
 #, fuzzy
 msgid "[T] Left"
 msgstr "Sol"
 
-#: lib/ap-utils.h:92
+#: lib/ap-utils.h:95
 #, fuzzy
 msgid "[Y] Right"
 msgstr "Sağ"
 
-#: lib/ap-utils.h:94
+#: lib/ap-utils.h:97
 msgid "Yes"
 msgstr ""
 
-#: lib/ap-utils.h:95
+#: lib/ap-utils.h:98
 msgid "No"
 msgstr ""
 
-#: lib/ap-utils.h:97
+#: lib/ap-utils.h:100
 msgid "On"
 msgstr ""
 
-#: lib/ap-utils.h:98
+#: lib/ap-utils.h:101
 #, fuzzy
 msgid "Off"
 msgstr "kapama"
 
-#: lib/ap-utils.h:100
+#: lib/ap-utils.h:103
 #, fuzzy
 msgid "Basic"
 msgstr "temel"
 
-#: lib/ap-utils.h:102
+#: lib/ap-utils.h:105
 msgid "Press any key to continue."
 msgstr "devam etmek için bir tuşa basınız"
 
-#: lib/ap-utils.h:103
-msgid "Q - quit to menu. T - toggle polling mode, Other key - force update."
+#: lib/ap-utils.h:106
+msgid "Q - quit to menu. T - toggle polling mode, Other key - force update"
 msgstr ""
 
-#: lib/ap-utils.h:105
+#: lib/ap-utils.h:108
 msgid "Unable to write data to AP. Press any key to continue."
 msgstr "AP' ye veri yazılamıyor. Devam etmek için bir tuşa basınız."
 
-#: lib/ap-utils.h:106
+#: lib/ap-utils.h:109
 #, fuzzy
 msgid "Unable to retrieve (valid) data from AP. Press any key to continue."
 msgstr "AP' den veri alınamıyor. Devam etmek için bir tuşa basınız."
 
-#: lib/ap-utils.h:107
+#: lib/ap-utils.h:110
 #, fuzzy
-msgid "Trying to retrieve data from AP. Please wait..."
+msgid "Trying to retrieve data from AP - please wait (or press Q to quit)."
 msgstr "AP' den veri alınıyor. Lütfen bekleyin."
 
-#: lib/ap-utils.h:108
+#: lib/ap-utils.h:111
 msgid "Writing data to AP. Please wait..."
 msgstr "AP' ye veri yazılıyor. Lütfen bekleyin."
 
-#: lib/ap-utils.h:109
+#: lib/ap-utils.h:112
 #, fuzzy
 msgid "Configuration written to the AP. Press any key to continue."
 msgstr "AP' ye veri yazılamıyor. Devam etmek için bir tuşa basınız."
 
-#: lib/ap-utils.h:110
+#: lib/ap-utils.h:113
 #, fuzzy
 msgid "select() function error. Press any key."
 msgstr "fcntl hatası: Bir tuşa basınız."
 
-#: lib/ap-utils.h:112
-msgid "Create socket error. Press any key."
-msgstr "Yuva hatası oluştur.. Bir tuşa basınız."
-
-#: lib/ap-utils.h:113
-msgid "Bind socket error. Press any key."
-msgstr "Yuva hatasını bağlayınız. Bir tuşa basınız."
+#: lib/ap-utils.h:114
+#, fuzzy
+msgid "socket() or bind() function error. Press any key."
+msgstr "fcntl hatası: Bir tuşa basınız."
 
-#: lib/ap-utils.h:115
+#: lib/ap-utils.h:116
 #, fuzzy
 msgid "Unable to write AP list file ~/.ap-config. Press any key."
 msgstr "AP' den veri alınamıyor. Devam etmek için bir tuşa basınız."
 
-#: lib/ap-utils.h:116
+#: lib/ap-utils.h:117
 msgid "AP list file ~/.ap-config successfully written. Press any key."
 msgstr ""
 
-#: lib/ap-utils.h:118
+#: lib/ap-utils.h:119
 msgid "Back to main menu"
 msgstr "Ana menüye geri dön."
 
-#: lib/ap-utils.h:119
+#: lib/ap-utils.h:120
 msgid "Exit program"
 msgstr "Programdan çık."
 
-#: lib/ap-utils.h:120
+#: lib/ap-utils.h:121
 #, fuzzy
 msgid "Run subshell. To return type 'exit'."
 msgstr "Alt kabuğu çalıştır. Çıkış tipine geri dönüş için"
 
-#: lib/ap-utils.h:121
+#: lib/ap-utils.h:122
+msgid "Change polling mode interval"
+msgstr ""
+
+#: lib/ap-utils.h:123
 msgid "Short info about program"
 msgstr "Program hakkında kısa bilgi"
 
-#: lib/ap-utils.h:122
+#: lib/ap-utils.h:124
 msgid "Find connected Access Points"
 msgstr "Bağlantılı Erişim Noktalarını bul."
 
-#: lib/ap-utils.h:123
+#: lib/ap-utils.h:125
 msgid "Set connection options: ip and community"
 msgstr "Bağlantı seçeneklerini ayarla: ip ve topluluk "
 
-#: lib/ap-utils.h:124
+#: lib/ap-utils.h:126
 #, fuzzy
 msgid "Set encryption; edit WEP keys"
 msgstr "Kriptolamayı ayarla, WEP tuşlarını düzenle."
 
-#: lib/ap-utils.h:125
+#: lib/ap-utils.h:127
 #, fuzzy
 msgid "Set authorization; edit MAC authorization table"
 msgstr "Makro yetkiyi ayarla, makro yetki tablosunu düzelt."
 
-#: lib/ap-utils.h:126
+#: lib/ap-utils.h:128
 #, fuzzy
 msgid "Set SNMP community/password for access to the AP"
 msgstr "AP' ye erişim için SNMP topluluk/ şifre ayarını kur. "
 
-#: lib/ap-utils.h:127
+#: lib/ap-utils.h:129
 #, fuzzy
 msgid "Get info about AP hardware and firmware"
 msgstr "AP donanımı ve yazılımı hakkında bilgi al."
 
-#: lib/ap-utils.h:128
+#: lib/ap-utils.h:130
 #, fuzzy
 msgid "Get wireless port statistics"
 msgstr "kablosuz bağlantı noktaları istatistiklerine ulaş."
 
-#: lib/ap-utils.h:129
+#: lib/ap-utils.h:131
 #, fuzzy
 msgid "Get list of currently associated stations (Access Point clients)"
 msgstr "Geçerli ilişkilendirilmiş istasyonlar listesine ulaş"
 
-#: lib/ap-utils.h:130
+#: lib/ap-utils.h:132
 msgid "Get link status in APclient mode"
 msgstr ""
 
-#: lib/ap-utils.h:131
+#: lib/ap-utils.h:133
 #, fuzzy
 msgid "Get info and statistics from AP"
 msgstr "AP bilgi ve istatistiklerine ulaş"
 
-#: lib/ap-utils.h:132
+#: lib/ap-utils.h:134
 #, fuzzy
 msgid "Set various configuration options"
 msgstr "Çeşitli yapılandırma seçenekleri kurma "
 
-#: lib/ap-utils.h:134
+#: lib/ap-utils.h:136
 msgid "Associated stations"
 msgstr "İlişkili istasyonlar"
 
-#: lib/ap-utils.h:135
+#: lib/ap-utils.h:137
 msgid "AP Client link state"
 msgstr ""
 
-#: lib/ap-utils.h:137
+#: lib/ap-utils.h:139
 msgid "Polling: on"
 msgstr ""
 
-#: lib/ap-utils.h:138
+#: lib/ap-utils.h:140
 msgid "Polling: off"
 msgstr ""
 
@@ -511,160 +508,179 @@ msgstr "Geçerli yapılandırmaları aktif hale getir."
 msgid "Configuration uploaded. Press any key to continue."
 msgstr "Tamamlanmış yapılandırmayı yükle. Devam etmek için bir tuşa basınız."
 
-#: lib/common.c:30
+#: lib/common.c:32
 #, fuzzy
 msgid "Access Point IP-address: "
 msgstr "Erişim Noktası IP-adresi:"
 
-#: lib/common.c:31
+#: lib/common.c:33
 #, fuzzy
 msgid "Password (community): "
 msgstr "Şifre  ( topluluk):"
 
-#: lib/common.c:32
+#: lib/common.c:34
 msgid "Autodetect AP MIB properties? "
 msgstr ""
 
-#: lib/common.c:33
+#: lib/common.c:35
 #, fuzzy
 msgid "AP MIB type: "
 msgstr "AP türü:"
 
-#: lib/common.c:34
+#: lib/common.c:36
 msgid "AP MIB vendor extensions: "
 msgstr ""
 
-#: lib/common.c:35
+#: lib/common.c:37
 #, fuzzy
 msgid "Do you want to use AP's name as its label? "
 msgstr "Devam etmek istiyor musunuz?"
 
-#: lib/common.c:36
+#: lib/common.c:38
 #, fuzzy
 msgid "Access Point label: "
 msgstr "Erişim Noktası"
 
-#: lib/common.c:37
+#: lib/common.c:39
 #, fuzzy
 msgid "Save connect-settings: "
 msgstr "Bağlantı ayarlarını kaydediniz."
 
-#: lib/common.c:84 src/ap-config.c:154
+#: lib/common.c:40
+msgid "[P] Polling mode interval (tenths of second): "
+msgstr ""
+
+#: lib/common.c:41
+#, fuzzy
+msgid "P - change polling mode interval; Q - quit to menu"
+msgstr "(tuş) - seçenek kur; W - yapılandırmayı yaz; Q - menüye geri dön"
+
+#: lib/common.c:89 src/ap-config.c:158
 msgid "About"
 msgstr "Hakkında"
 
-#: lib/common.c:101
+#: lib/common.c:106
 #, c-format
 msgid "From %s"
 msgstr "%s' ten"
 
-#: lib/common.c:103
+#: lib/common.c:108
 #, c-format
 msgid "Version %s"
 msgstr "Sürüm %s"
 
-#: lib/common.c:106
+#: lib/common.c:111
 msgid "Written by Roman Festchook roma@polesye.net"
 msgstr "Roman Festchook tarafından yazılmıştır roma@polesye.net"
 
-#: lib/common.c:108
+#: lib/common.c:113
 msgid "and Jan Rafaj jr-aputils@cedric.unob.cz"
 msgstr ""
 
-#: lib/common.c:110
+#: lib/common.c:115
 #, fuzzy
 msgid "Copyright (c) 2001-2005"
 msgstr "Telif Hakkı (c) Roman Festchoo 2001-2002"
 
-#: lib/common.c:112
+#: lib/common.c:117
 msgid "Roman Festchook and Jan Rafaj"
 msgstr ""
 
-#: lib/common.c:115
+#: lib/common.c:120
 msgid "This program is distributed under the terms"
 msgstr "Bu program GNU Toplu Kamu Lisansı Sürüm 2"
 
-#: lib/common.c:117
+#: lib/common.c:122
 msgid "of the GNU General Public License version 2."
 msgstr "denetiminde dağıtılmaktadır. "
 
-#: lib/common.c:119
+#: lib/common.c:124
 msgid "See the included COPYING file for details."
 msgstr "Ayrıntılar için mevcuti KOPYALAMA dosyasına bakınız."
 
-#: lib/common.c:175
+#: lib/common.c:165
 msgid "Connect options"
 msgstr "Seçeneklere bağlan"
 
-#: lib/common.c:183
+#: lib/common.c:173
 msgid "Enter IP address of your Access Point."
 msgstr "Erişim Noktanızın IP adresini giriniz."
 
-#: lib/common.c:192
+#: lib/common.c:182
 msgid "Entered characters will not be displayed for security reason."
 msgstr "Girdiğiniz karakterler güvenlik nedeniyle gösterilmeyecektir."
 
-#: lib/common.c:259
+#: lib/common.c:249
 msgid "This label will be stored on HDD (independently on AP name!)."
 msgstr ""
 
-#: lib/common.c:370
+#: lib/common.c:362
 #, fuzzy
 msgid "Trying to probe AP for MIB properties. Please wait..."
 msgstr "AP' ye veri yazılıyor. Lütfen bekleyin."
 
-#: lib/common.c:399
+#: lib/common.c:391
 #, fuzzy
 msgid ""
 "Unable to determine AP MIB properties (no response from AP). Press any key."
 msgstr "AP' den veri alınamıyor. Devam etmek için bir tuşa basınız."
 
-#: lib/file.c:205
+#: lib/common.c:489 lib/set_oeminfo.c:221
+#, c-format
+msgid "%s%u"
+msgstr ""
+
+#: lib/common.c:491
+#, c-format
+msgid "(%0.1f seconds)"
+msgstr ""
+
+#: lib/file.c:199
 msgid "NUM  IP ADDRESS       MIB TYPE    MIB EXT.  LABEL"
 msgstr ""
 
-#: lib/file.c:206
+#: lib/file.c:200
 #, fuzzy
 msgid "Choose an AP to connect to"
 msgstr "Bağlanmak için AP'yi seç"
 
-#: lib/file.c:212
+#: lib/file.c:206
 msgid "1-9,C: connect; N: new; D: delete; W: save; Q: quit; arrows: scroll"
 msgstr "1-9,C: bağlan; N: yeni; D: sil; W: kaydet; Q: çıkış; oklar: kaydırma"
 
-#: lib/file.c:268
+#: lib/file.c:257
 msgid "Connect to AP num:"
 msgstr "AP numarasına bağlan:"
 
-#: lib/file.c:304
+#: lib/file.c:288
 msgid "Delete num:"
 msgstr "numarayı sil"
 
-#: lib/file.c:458
+#: lib/file.c:442
 #, fuzzy
 msgid "Unable to write stations file. Press any key."
 msgstr "AP' ye veri yazılamıyor. Devam etmek için bir tuşa basınız."
 
-#: lib/file.c:460
+#: lib/file.c:444
 msgid "Stations file succesfully written. Press any key."
 msgstr ""
 
-#: lib/input.c:33
+#: lib/input.c:32
 #, fuzzy
 msgid "Invalid value. Press any key to continue."
 msgstr "Geçersiz IP- adresi"
 
-#: lib/input.c:34
+#: lib/input.c:33
 #, fuzzy, c-format
 msgid "Value must be in range %u - %u. Press any key to continue."
 msgstr "AP' ye veri yazılamıyor. Devam etmek için bir tuşa basınız."
 
-#: lib/input.c:413
+#: lib/input.c:460
 #, fuzzy
 msgid "Y - Yes; Any other key - No (it's safer to answer No)"
 msgstr "(Y - Evet; N - Hayır (Hayır yanıtı daha güvenlidir)"
 
-#: lib/oui.c:6058
+#: lib/oui.c:6061
 msgid "Unknown or Private"
 msgstr "Bilinmiyor ya da gizli"
 
@@ -711,7 +727,7 @@ msgstr ""
 "İki anten birden geçersiz kılınamaz, anten yapılandırması kaydedilemiyor. "
 "Bir tuşa basınız."
 
-#: lib/scr.c:156
+#: lib/scr.c:157
 #, fuzzy, c-format
 msgid "Current AP: %s Type: %s Ext: %s"
 msgstr "Geçerli AP: %s Çeşit: %s"
@@ -893,11 +909,6 @@ msgstr ""
 msgid "OEM Info settings"
 msgstr ""
 
-#: lib/set_oeminfo.c:221
-#, c-format
-msgid "%s%u"
-msgstr ""
-
 #: lib/stat.c:29
 msgid "Ethernet Statistics"
 msgstr "Eternet İstatistikleri"
@@ -938,186 +949,186 @@ msgstr "Sistem Tanımı:"
 msgid "System Info"
 msgstr "Sistem Bilgisi"
 
-#: lib/sysinfo.c:54 src/bridge.c:86
+#: lib/sysinfo.c:55 src/bridge.c:50
 msgid "Wireless Bridge Point to MultiPoint"
 msgstr "Noktadan Çok Bağlantı Noktasına Kablosuz Köprü"
 
-#: lib/sysinfo.c:55 src/bridge.c:87
+#: lib/sysinfo.c:56 src/bridge.c:51
 msgid "Access Point"
 msgstr "Erişim Noktası"
 
-#: lib/sysinfo.c:56 src/bridge.c:88
+#: lib/sysinfo.c:57 src/bridge.c:52
 msgid "Access Point client"
 msgstr "Erşim Noktası Kullanıcısı"
 
-#: lib/sysinfo.c:57 src/bridge.c:89
+#: lib/sysinfo.c:58 src/bridge.c:53
 msgid "Wireless Bridge Point to Point"
 msgstr "noktadan noktaya kablosuz köprü"
 
-#: lib/sysinfo.c:58 src/bridge.c:90
+#: lib/sysinfo.c:59 src/bridge.c:54
 msgid "Repeater"
 msgstr "Yineleyici"
 
-#: lib/sysinfo.c:59 lib/sysinfo.c:314 lib/sysinfo.c:423 src/bridge.c:91
+#: lib/sysinfo.c:60 lib/sysinfo.c:315 lib/sysinfo.c:424 src/bridge.c:55
 msgid "unknown"
 msgstr "tanımlanamayan"
 
-#: lib/sysinfo.c:143
+#: lib/sysinfo.c:144
 msgid "Device hardware/software/name info:"
 msgstr ""
 
-#: lib/sysinfo.c:171
+#: lib/sysinfo.c:172
 #, fuzzy, c-format
 msgid "Operational mode: %s"
 msgstr "(O) İşlemsel Kip: %s"
 
-#: lib/sysinfo.c:181
+#: lib/sysinfo.c:182
 #, fuzzy
 msgid "Product name: "
 msgstr "Ürün Adı"
 
-#: lib/sysinfo.c:185
+#: lib/sysinfo.c:186
 #, fuzzy, c-format
 msgid "Product type: %u"
 msgstr "ÜrünTürü: %lu"
 
-#: lib/sysinfo.c:188
+#: lib/sysinfo.c:189
 #, fuzzy
 msgid "OEM name: "
 msgstr "OEMAdı:"
 
-#: lib/sysinfo.c:195
+#: lib/sysinfo.c:196
 #, fuzzy, c-format
 msgid "Hardware revision: %u"
 msgstr "DonanımDeğişiklikleri: %lu"
 
-#: lib/sysinfo.c:203
+#: lib/sysinfo.c:204
 #, fuzzy, c-format
 msgid "Info structure version: %u"
 msgstr "YapıSürüm: %lu"
 
-#: lib/sysinfo.c:206 lib/sysinfo.c:382
+#: lib/sysinfo.c:207 lib/sysinfo.c:383
 #, c-format
 msgid "Manufacturer OUI: %02X %02X %02X (%s)"
 msgstr "Üretici OUI: %02X %02X %02X (%s)"
 
-#: lib/sysinfo.c:223
+#: lib/sysinfo.c:224
 #, fuzzy, c-format
 msgid "Uptime: %u days, %02u:%02u:%02u hours:mins:secs"
 msgstr "işlem süresi: %u:%02u:%02u.%02u"
 
-#: lib/sysinfo.c:311
+#: lib/sysinfo.c:312
 msgid "FHSS 2.4 GHz"
 msgstr "FHSS 2.4 GHz"
 
-#: lib/sysinfo.c:311
+#: lib/sysinfo.c:312
 msgid "DSSS 2.4 GHz"
 msgstr "DSSS 2.4 GHz"
 
-#: lib/sysinfo.c:311
+#: lib/sysinfo.c:312
 msgid "IR Baseband"
 msgstr "IR Tabanbant"
 
-#: lib/sysinfo.c:312
+#: lib/sysinfo.c:313
 msgid "Commercial range 0..40 C"
 msgstr "Ticari Aralık 0..40 C"
 
-#: lib/sysinfo.c:313
+#: lib/sysinfo.c:314
 msgid "Industrial range -30..70 C"
 msgstr "Endüstriyel aralık -30..70 C"
 
-#: lib/sysinfo.c:316
+#: lib/sysinfo.c:317
 msgid "manual"
 msgstr "kılavuz"
 
-#: lib/sysinfo.c:316
+#: lib/sysinfo.c:317
 msgid "notsupported"
 msgstr "desteklenmiyor"
 
-#: lib/sysinfo.c:316
+#: lib/sysinfo.c:317
 msgid "dynamic"
 msgstr "dinamik"
 
-#: lib/sysinfo.c:372
+#: lib/sysinfo.c:373
 msgid "Manufacturer:"
 msgstr "Üretici:"
 
-#: lib/sysinfo.c:377
+#: lib/sysinfo.c:378
 msgid "Manufacturer ID:"
 msgstr "Üretici ID:"
 
-#: lib/sysinfo.c:388
+#: lib/sysinfo.c:389
 msgid "Product Name:"
 msgstr "Ürün Adı"
 
-#: lib/sysinfo.c:394
+#: lib/sysinfo.c:395
 msgid "Product ID:"
 msgstr "Ürün ID:"
 
-#: lib/sysinfo.c:400
+#: lib/sysinfo.c:401
 msgid "Product Version:"
 msgstr "Ürün Sürümü:"
 
-#: lib/sysinfo.c:406
+#: lib/sysinfo.c:407
 #, c-format
 msgid "PHYType: %s"
 msgstr "PHYTürü: %s"
 
-#: lib/sysinfo.c:409
+#: lib/sysinfo.c:410
 #, c-format
 msgid "Temperature: %s"
 msgstr "Sıcaklık: %s"
 
-#: lib/sysinfo.c:417
+#: lib/sysinfo.c:418
 #, fuzzy, c-format
 msgid "Regulatory Domain: %s"
 msgstr "Düzenleme Alanı: %s"
 
-#: lib/sysinfo.c:418
+#: lib/sysinfo.c:419
 msgid "FCC (USA)"
 msgstr "FCC ( Amerika)"
 
-#: lib/sysinfo.c:419
+#: lib/sysinfo.c:420
 msgid "DOC (Canada)"
 msgstr "DOC (Kanada)"
 
-#: lib/sysinfo.c:420
+#: lib/sysinfo.c:421
 msgid "ETSI (Europe)"
 msgstr "ETSI (Avrupa)"
 
-#: lib/sysinfo.c:421
+#: lib/sysinfo.c:422
 msgid "Spain"
 msgstr "İspanya"
 
-#: lib/sysinfo.c:422
+#: lib/sysinfo.c:423
 msgid "France"
 msgstr "Fransa"
 
-#: lib/sysinfo.c:423
+#: lib/sysinfo.c:424
 msgid "MKK (Japan)"
 msgstr "MKK ( Japonya)"
 
-#: lib/sysinfo.c:426
+#: lib/sysinfo.c:427
 #, c-format
 msgid "Transmit Power: %u mW"
 msgstr "Geçiş süresi: %u mW"
 
-#: lib/sysinfo.c:456
+#: lib/sysinfo.c:457
 #, fuzzy, c-format
 msgid "WEP implemented: %s"
 msgstr "WEP girildi: %s"
 
-#: lib/sysinfo.c:459
+#: lib/sysinfo.c:460
 #, c-format
 msgid "Diversity: %s"
 msgstr "Çeşitleme: %s"
 
-#: lib/sysinfo.c:487
+#: lib/sysinfo.c:488
 #, c-format
 msgid "Uptime: %u:%02u:%02u.%02u"
 msgstr "işlem süresi: %u:%02u:%02u.%02u"
 
-#: lib/sysinfo.c:507
+#: lib/sysinfo.c:508
 #, c-format
 msgid "IP  Address: %s"
 msgstr "IP Adresi: %s"
@@ -1331,7 +1342,7 @@ msgid "[D] DTIM sending interval (beacons): "
 msgstr ""
 
 #: lib/wlan.c:48
-msgid "[T] SIFS time (ACK timeout) msec: "
+msgid "[T] SIFS time (2nd+ interframe spacing, usec): "
 msgstr ""
 
 #: lib/wlan.c:49
@@ -1346,19 +1357,19 @@ msgstr "Kısa"
 msgid "Long"
 msgstr "Uzun"
 
-#: lib/wlan.c:237
+#: lib/wlan.c:239
 msgid "Wireless Settings"
 msgstr "Kablosuz Ayarlar"
 
-#: lib/wlan.c:731
+#: lib/wlan.c:735
 msgid "Antenna Configuration:"
 msgstr "Anten Yapılandırması"
 
-#: lib/wlan.c:748
+#: lib/wlan.c:752
 msgid "General Options"
 msgstr "Genel Seçenekler"
 
-#: lib/wlan.c:750
+#: lib/wlan.c:754
 msgid ""
 "UIOPTY - antenna; SCANLEDFR1234 - options; W - write conf; Q - quit to menu"
 msgstr ""
@@ -1385,7 +1396,7 @@ msgstr ""
 msgid "Error closing file"
 msgstr ""
 
-#: src/ap-auth.c:45 src/ap-mrtg.c:42 src/ap-rrd.c:42
+#: src/ap-auth.c:44 src/ap-mrtg.c:41 src/ap-rrd.c:40
 msgid ""
 "\n"
 "Usage:\n"
@@ -1393,47 +1404,47 @@ msgstr ""
 "\n"
 "Kullanım:\n"
 
-#: src/ap-auth.c:46
+#: src/ap-auth.c:45
 msgid "\tap-auth -i ip -c community -d filename [-h]\n"
 msgstr ""
 
-#: src/ap-auth.c:47
+#: src/ap-auth.c:46
 msgid ""
 "\tap-auth -i ip -c community -u filename [-h]\n"
 "\n"
 msgstr ""
 
-#: src/ap-auth.c:48
+#: src/ap-auth.c:47
 msgid ""
 "Change accesspoint's list of authorised MAC addresses\n"
 "\n"
 msgstr ""
 
-#: src/ap-auth.c:49 src/ap-mrtg.c:46 src/ap-rrd.c:47
+#: src/ap-auth.c:48 src/ap-mrtg.c:45 src/ap-rrd.c:45
 msgid "-i ip        - AP ip address\n"
 msgstr "-i ip        - AP ip adresi\n"
 
-#: src/ap-auth.c:50 src/ap-mrtg.c:47 src/ap-rrd.c:48
+#: src/ap-auth.c:49 src/ap-mrtg.c:46 src/ap-rrd.c:46
 msgid "-c community - SNMP community string\n"
 msgstr "-c topluluk - SNMP topluluk dizgisi\n"
 
-#: src/ap-auth.c:51
+#: src/ap-auth.c:50
 msgid ""
 "-d filename  - download list of authorised MAC addresses from AP to a file\n"
 msgstr ""
 
-#: src/ap-auth.c:53
+#: src/ap-auth.c:52
 msgid ""
 "-u filename  - upload list of authorised MAC addresses from a file to AP\n"
 msgstr ""
 
-#: src/ap-auth.c:55 src/ap-mrtg.c:56 src/ap-rrd.c:57
+#: src/ap-auth.c:54 src/ap-mrtg.c:55 src/ap-rrd.c:55
 msgid ""
 "-h           - print this help screen\n"
 "\n"
 msgstr "-h            - bu yardım ekranını yazdır\n"
 
-#: src/ap-auth.c:56
+#: src/ap-auth.c:55
 #, fuzzy, c-format
 msgid ""
 "ap-auth %s Copyright (c) 2004 Teemu Kiviniemi\n"
@@ -1442,221 +1453,242 @@ msgstr ""
 "ap-mrtg %s Telifhakkı (c) 2002 Roman Festchook\n"
 "\n"
 
-#: src/ap-auth.c:146 src/ap-mrtg.c:139
+#: src/ap-auth.c:138 src/ap-mrtg.c:132
 #, fuzzy
 msgid "Error: invalid IP-address.\n"
 msgstr "geçersiz IP-adresi\n"
 
-#: src/ap-auth.c:178 src/ap-mrtg.c:178 src/ap-rrd.c:207
-msgid "Create socket error"
-msgstr "Soket hatası oluştur"
-
-#: src/ap-auth.c:182 src/ap-mrtg.c:182 src/ap-rrd.c:211
-msgid "Bind socket error"
-msgstr "Soket hatası bağla"
-
-#: src/ap-auth.c:220 src/ap-mrtg.c:220
+#: src/ap-auth.c:203 src/ap-mrtg.c:204
 #, fuzzy
 msgid "Unable to determine AP MIB type (no response from AP)."
 msgstr "AP' den veri alınamıyor. Devam etmek için bir tuşa basınız."
 
-#: src/ap-auth.c:228
+#: src/ap-auth.c:211
 msgid "NWN devices are not yet supported."
 msgstr ""
 
-#: src/ap-config.c:41 src/bridge.c:200
+#: src/ap-config.c:43 src/bridge.c:201
 msgid "Bridging"
 msgstr "Bağlanıyor"
 
-#: src/ap-config.c:41
+#: src/ap-config.c:43
 msgid "Set bridging and IP-related options"
 msgstr "Bağlantı kurma ve IP bağlantılı seçenekler"
 
-#: src/ap-config.c:43 src/ap-config.c:112 src/ap-config.c:121 src/bridge.c:124
+#: src/ap-config.c:45 src/ap-config.c:114 src/ap-config.c:123 src/bridge.c:125
 msgid "Wireless"
 msgstr "Kablosuz"
 
-#: src/ap-config.c:43
+#: src/ap-config.c:45
 msgid "Set wireless options"
 msgstr "Kablosuz seçenekleri kur"
 
-#: src/ap-config.c:44 src/ap-config.c:56
+#: src/ap-config.c:46 src/ap-config.c:58
 msgid "Privacy"
 msgstr "Gizlilik"
 
-#: src/ap-config.c:45
+#: src/ap-config.c:47
 #, fuzzy
 msgid "Auth"
 msgstr "Hakkında"
 
-#: src/ap-config.c:46 src/ap-config.c:58
+#: src/ap-config.c:48 src/ap-config.c:60
 msgid "Community"
 msgstr "Topluluk"
 
-#: src/ap-config.c:47
+#: src/ap-config.c:49
 msgid "Radio"
 msgstr "Radyo"
 
-#: src/ap-config.c:47
+#: src/ap-config.c:49
 msgid "Set radio signal power and antenna options"
 msgstr "Radyo sinyal gücünü ve anten seçeneklerini ayarlayınız."
 
-#: src/ap-config.c:54
+#: src/ap-config.c:56
 msgid "General"
 msgstr "Genel"
 
-#: src/ap-config.c:54
+#: src/ap-config.c:56
 msgid "Set general options"
 msgstr "Genel seçenekleri kurunuz"
 
-#: src/ap-config.c:55
+#: src/ap-config.c:57
 msgid "Advanced"
 msgstr "Gelişmiş"
 
-#: src/ap-config.c:55
+#: src/ap-config.c:57
 msgid "Set advanced options"
 msgstr "Gelişmiş seçenekleri kurunuz"
 
-#: src/ap-config.c:57
+#: src/ap-config.c:59
 #, fuzzy
 msgid "MAC auth"
 msgstr "Mac adresini gir"
 
-#: src/ap-config.c:80
+#: src/ap-config.c:82
 msgid "Upload"
 msgstr "Yükleme"
 
-#: src/ap-config.c:80
+#: src/ap-config.c:82
 #, fuzzy
 msgid "Activate current configuration"
 msgstr "Geçerli yapılandırmaları aktif hale getir."
 
-#: src/ap-config.c:81
+#: src/ap-config.c:83
 msgid "Defaults"
 msgstr "Varsayılanlar"
 
-#: src/ap-config.c:81
+#: src/ap-config.c:83
 msgid "Restore factory default settings"
 msgstr "Fabrika varsayılan ayarlarını geri yükle "
 
-#: src/ap-config.c:82 src/ap-config.c:89
+#: src/ap-config.c:84 src/ap-config.c:91
 msgid "Reset"
 msgstr "Sıfırla"
 
-#: src/ap-config.c:83
+#: src/ap-config.c:85
 msgid "Reset AP. All not uploaded configuration will be lost"
 msgstr "AP' yi sıfırla. Yüklenmemiş yapılandırmalar kaybolacaktır"
 
-#: src/ap-config.c:84
+#: src/ap-config.c:86
 msgid "TestMode"
 msgstr "TestKipi"
 
-#: src/ap-config.c:84
+#: src/ap-config.c:86
 msgid "Put Access Point in test mode"
 msgstr "Test kipine Erişim Noktası koy"
 
-#: src/ap-config.c:89
+#: src/ap-config.c:91
 msgid "Reset AP."
 msgstr "AP'yi sıfırla"
 
-#: src/ap-config.c:110 src/ap-config.c:120
+#: src/ap-config.c:112 src/ap-config.c:122
 msgid "SysInfo"
 msgstr "Sistembilgisi"
 
-#: src/ap-config.c:111 src/bridge.c:123 src/bridge.c:127
+#: src/ap-config.c:113 src/bridge.c:124 src/bridge.c:127
 msgid "Ethernet"
 msgstr "Eternet"
 
-#: src/ap-config.c:111
+#: src/ap-config.c:113
 msgid "Get ethernet port statistics"
 msgstr "Eternet bağlantı noktaları istatistiklerini bul"
 
-#: src/ap-config.c:113 src/ap-config.c:122
+#: src/ap-config.c:115 src/ap-config.c:124
 msgid "Stations"
 msgstr "İstasyonlar"
 
-#: src/ap-config.c:114
+#: src/ap-config.c:116
 msgid "AP link"
 msgstr ""
 
-#: src/ap-config.c:115
+#: src/ap-config.c:117
 msgid "KnownAPs"
 msgstr "Bilinen AP' ler"
 
-#: src/ap-config.c:115
+#: src/ap-config.c:117
 msgid "Get info about known Access Points"
 msgstr "Bilinen Erişim Noktaları hakkında bilgi edinin."
 
-#: src/ap-config.c:123
+#: src/ap-config.c:125
 msgid "Latest"
 msgstr "Son haberler"
 
-#: src/ap-config.c:123
+#: src/ap-config.c:125
 msgid "Get info about latest events"
 msgstr "son gelişmeler hakkında bilgi edinin."
 
-#: src/ap-config.c:148
+#: src/ap-config.c:150
 msgid "Info"
 msgstr "Bilgi"
 
-#: src/ap-config.c:149
+#: src/ap-config.c:151
 msgid "Config"
 msgstr "Yapılandırma"
 
-#: src/ap-config.c:150
+#: src/ap-config.c:152
 msgid "Commands"
 msgstr "Komutlar"
 
-#: src/ap-config.c:150
+#: src/ap-config.c:152
 msgid "Execute commands on Access Point"
 msgstr "Erişim Noktasında komut gönder"
 
-#: src/ap-config.c:152
+#: src/ap-config.c:154
 msgid "Connect"
 msgstr "Bağlan"
 
-#: src/ap-config.c:153
+#: src/ap-config.c:155
 msgid "Search"
 msgstr "Ara"
 
-#: src/ap-config.c:155
+#: src/ap-config.c:156
+msgid "Polling"
+msgstr ""
+
+#: src/ap-config.c:157
 msgid "Shell"
 msgstr "Kabuk"
 
-#: src/ap-config.c:156
+#: src/ap-config.c:159
 msgid "Exit"
 msgstr "Çıkış"
 
-#: src/ap-config.c:214
+#: src/ap-config.c:218
 #, c-format
 msgid "Wireless Access Point Configurator ver. %s"
 msgstr "Kablosuz Erişim Noktası Konfigürasyon Tanımlayıcısı Sürümü %s"
 
-#: src/aplink.c:28
+#: src/aplink.c:25
 msgid "RSSI:     ["
 msgstr ""
 
-#: src/aplink.c:29
+#: src/aplink.c:26
 msgid "RSSI avg: ["
 msgstr ""
 
-#: src/aplink.c:30
+#: src/aplink.c:27
 msgid "RSSI top: ["
 msgstr ""
 
-#: src/aplink.c:112
+#: src/aplink.c:28
+msgid "RSSI rou: ["
+msgstr ""
+
+#: src/aplink.c:29
+msgid ""
+"P - pause, T - toggle graph view, Q - quit to menu, Other key - force update."
+msgstr ""
+
+#: src/aplink.c:81
+msgid "RSSI [%]"
+msgstr ""
+
+#: src/aplink.c:82
+msgid "RSSI average [%]"
+msgstr ""
+
+#: src/aplink.c:83
+msgid "RSSI rounded [%]"
+msgstr ""
+
+#: src/aplink.c:84
+msgid "Link Quality [%]"
+msgstr ""
+
+#: src/aplink.c:133
 msgid "Not available - device must have firmware with necessary "
 msgstr ""
 
-#: src/aplink.c:114
+#: src/aplink.c:135
 msgid "vendor extensions and be in either 'Access Point client'"
 msgstr ""
 
-#: src/aplink.c:116
+#: src/aplink.c:137
 msgid "or 'Repeater' mode."
 msgstr ""
 
-#: src/ap-mrtg.c:43
+#: src/ap-mrtg.c:42
 #, fuzzy
 msgid ""
 "\tap-mrtg -i ip -c community -t type [-b bssid] [-n name] [-v] [-h] [-r]\n"
@@ -1665,7 +1697,7 @@ msgstr ""
 "\tap-mrtg -i ip -c topluluk -t türü [-b bssid] [-v] [-h] [-r]\n"
 "\n"
 
-#: src/ap-mrtg.c:45
+#: src/ap-mrtg.c:44
 msgid ""
 "Get stats from AP and return it in MRTG parsable format\n"
 "\n"
@@ -1673,7 +1705,7 @@ msgstr ""
 "AP'den istatistik al ve çözümlenebilir formatta MRTG'ye aktar\n"
 "\n"
 
-#: src/ap-mrtg.c:48
+#: src/ap-mrtg.c:47
 #, fuzzy
 msgid ""
 "-t type      - statistics type <w>ireless, <e>thernet, associated <s>tations "
@@ -1682,11 +1714,11 @@ msgstr ""
 "-t türü       - kablosuz türden istatistikler, eternet, ilişkilendirilmiş "
 "istasyonlar ya da kullanıcı kipinde bağlantı kalitesi\n"
 
-#: src/ap-mrtg.c:50
+#: src/ap-mrtg.c:49
 msgid "work with ATMEL410 MIB devices in AP Client mode)\n"
 msgstr ""
 
-#: src/ap-mrtg.c:51
+#: src/ap-mrtg.c:50
 #, fuzzy
 msgid ""
 "-b bssid     - mac address of the AP from which get link quality, only if "
@@ -1695,20 +1727,20 @@ msgstr ""
 "-b bssid       -bağlantı kalitesinin ulaştığı AP mac adresi, ancak tür =l "
 "ise kullanılır\n"
 
-#: src/ap-mrtg.c:53
+#: src/ap-mrtg.c:52
 msgid "-n name      - AP name - for check only\n"
 msgstr ""
 
-#: src/ap-mrtg.c:54
+#: src/ap-mrtg.c:53
 msgid "-v           - report MRTG about problems connecting to AP\n"
 msgstr "-v           - r AP ilişkili problemleri MRTG'ye aktar\n"
 
-#: src/ap-mrtg.c:55 src/ap-rrd.c:56
+#: src/ap-mrtg.c:54 src/ap-rrd.c:54
 msgid "-r           - reset AP when getting LinkQuality stats\n"
 msgstr ""
 "-r           - BağlantıKalitesi istatistiklerini alıp AP'yi yeniden başlat \n"
 
-#: src/ap-mrtg.c:57
+#: src/ap-mrtg.c:56
 #, fuzzy, c-format
 msgid ""
 "ap-mrtg %s Copyright (c) 2002-2003 Roman Festchook\n"
@@ -1717,7 +1749,12 @@ msgstr ""
 "ap-mrtg %s Telifhakkı (c) 2002 Roman Festchook\n"
 "\n"
 
-#: src/ap-rrd.c:44
+#: src/ap-rrd.c:32
+#, c-format
+msgid "Error getting data from AP %s\n"
+msgstr ""
+
+#: src/ap-rrd.c:42
 #, fuzzy
 msgid ""
 "\tap-rrd -i ip -c community -t type -d db_file [-b bssid] [-n name] [-a "
@@ -1727,7 +1764,7 @@ msgstr ""
 "\tap-mrtg -i ip -c topluluk -t türü [-b bssid] [-v] [-h] [-r]\n"
 "\n"
 
-#: src/ap-rrd.c:46
+#: src/ap-rrd.c:44
 #, fuzzy
 msgid ""
 "Get stats from AP and put it in to specified RRDtool database\n"
@@ -1736,7 +1773,7 @@ msgstr ""
 "AP'den istatistik al ve çözümlenebilir formatta MRTG'ye aktar\n"
 "\n"
 
-#: src/ap-rrd.c:50
+#: src/ap-rrd.c:48
 msgid ""
 "-t type      - statistics type <w>ireless, <e>thernet, associated <s>tations "
 "or <l>ink quality in client mode\n"
@@ -1744,11 +1781,11 @@ msgstr ""
 "-t türü       - kablosuz türden istatistikler, eternet, ilişkilendirilmiş "
 "istasyonlar ya da kullanıcı kipinde bağlantı kalitesi\n"
 
-#: src/ap-rrd.c:51
+#: src/ap-rrd.c:49
 msgid "-d db_file   - RRD database file with full path\n"
 msgstr ""
 
-#: src/ap-rrd.c:53
+#: src/ap-rrd.c:51
 msgid ""
 "-b bssid     - mac address of the AP to which get link quality, only if "
 "type=l\n"
@@ -1756,17 +1793,17 @@ msgstr ""
 "-b bssid       -bağlantı kalitesinin ulaştığı AP mac adresi, ancak tür =l "
 "ise kullanılır\n"
 
-#: src/ap-rrd.c:54
+#: src/ap-rrd.c:52
 msgid "-n name     - AP name - for check only\n"
 msgstr ""
 
-#: src/ap-rrd.c:55
+#: src/ap-rrd.c:53
 msgid ""
 "-a aptype    - AP type - 410 (default) or 510 for ATMEL12350's, like the ME-"
 "102\n"
 msgstr ""
 
-#: src/ap-rrd.c:58
+#: src/ap-rrd.c:56
 #, fuzzy, c-format
 msgid ""
 "ap-rrd %s Copyright (c) 2002-2004 Roman Festchook\n"
@@ -1775,160 +1812,161 @@ msgstr ""
 "ap-mrtg %s Telifhakkı (c) 2002 Roman Festchook\n"
 "\n"
 
-#: src/ap-rrd.c:142
+#: src/ap-rrd.c:133
 msgid "Invalid IP-address\n"
 msgstr "geçersiz IP-adresi\n"
 
-#: src/ap-rrd.c:188
+#: src/ap-rrd.c:179
 #, c-format
 msgid "Invalid AP-Type '%s' - valid types are 510 or 410\n"
 msgstr ""
 
-#: src/ap-tftp.c:81
+#: src/ap-tftp.c:84
 msgid "yes"
 msgstr ""
 
-#: src/ap-tftp.c:82
+#: src/ap-tftp.c:85
 #, fuzzy
 msgid "no"
 msgstr "Bilgi"
 
-#: src/ap-tftp.c:84
+#: src/ap-tftp.c:87
 msgid "Error while read()ing firmware file"
 msgstr ""
 
-#: src/ap-tftp.c:88
+#: src/ap-tftp.c:100
 msgid "Undefined error"
 msgstr ""
 
-#: src/ap-tftp.c:89
+#: src/ap-tftp.c:101
 msgid "File not found"
 msgstr ""
 
-#: src/ap-tftp.c:90
+#: src/ap-tftp.c:102
 #, fuzzy
 msgid "Access violation"
 msgstr "Erişim Noktası"
 
-#: src/ap-tftp.c:91
+#: src/ap-tftp.c:103
 msgid "Disk full or allocation error"
 msgstr ""
 
-#: src/ap-tftp.c:92
+#: src/ap-tftp.c:104
 msgid "Illegal TFTP operation"
 msgstr ""
 
-#: src/ap-tftp.c:93
+#: src/ap-tftp.c:105
 msgid "Unknown transfer ID"
 msgstr ""
 
-#: src/ap-tftp.c:94
+#: src/ap-tftp.c:106
 msgid "File already exists"
 msgstr ""
 
-#: src/ap-tftp.c:95
+#: src/ap-tftp.c:107
 msgid "No such user"
 msgstr ""
 
-#: src/ap-tftp.c:161
+#: src/ap-tftp.c:157
 msgid "Remote-filename too long.\n"
 msgstr ""
 
-#: src/ap-tftp.c:187
+#: src/ap-tftp.c:183
 #, c-format
 msgid "%sError in read()"
 msgstr ""
 
-#: src/ap-tftp.c:215
+#: src/ap-tftp.c:212
 #, c-format
 msgid "sending %u bytes\n"
 msgstr ""
 
-#: src/ap-tftp.c:224
+#: src/ap-tftp.c:221
 #, c-format
 msgid "%sError in sendto()"
 msgstr ""
 
-#: src/ap-tftp.c:247
+#: src/ap-tftp.c:244
 #, c-format
 msgid "%sError in recvfrom()"
 msgstr ""
 
-#: src/ap-tftp.c:261
+#: src/ap-tftp.c:256
 #, c-format
-msgid "\rProgress: uploaded %.0f %%."
+msgid "\rProgress: uploaded %3i%%."
 msgstr ""
 
-#: src/ap-tftp.c:272
+#: src/ap-tftp.c:267
 #, c-format
 msgid "%sMalformed packet received. Aborting.\n"
 msgstr ""
 
-#: src/ap-tftp.c:281
+#: src/ap-tftp.c:276
 #, c-format
 msgid "%sTimed out waiting for response from server (%i/%i).\n"
 msgstr ""
 
-#: src/ap-tftp.c:288
+#: src/ap-tftp.c:283
 #, c-format
 msgid "%sError in select()"
 msgstr ""
 
-#: src/ap-tftp.c:302
+#: src/ap-tftp.c:297
 #, c-format
 msgid "Received %d bytes: %04x %04x\n"
 msgstr ""
 
-#: src/ap-tftp.c:313
+#: src/ap-tftp.c:308
 #, c-format
 msgid "%sError: server responded with %s. Aborting.\n"
 msgstr ""
 
-#: src/ap-tftp.c:320
+#: src/ap-tftp.c:315
 #, c-format
 msgid "%sFlash programming in progress...\n"
 msgstr ""
 
-#: src/ap-tftp.c:322
+#: src/ap-tftp.c:317
 msgid "Finished successfully.\n"
 msgstr ""
 
-#: src/ap-tftp.c:340
+#: src/ap-tftp.c:335
 msgid "PLEASE BE _ABSOLUTELY_ SURE TO READ MANPAGE PRIOR USE!!!\n"
 msgstr ""
 
-#: src/ap-tftp.c:341
+#: src/ap-tftp.c:337
 #, c-format
 msgid ""
 "\n"
-"Usage: %s <-l firmware_file.rom> <IP>\n"
+"Usage: %s -i IP -f firmware_file.rom [-c community] [-h]\n"
 msgstr ""
 
-#: src/ap-tftp.c:363
+#: src/ap-tftp.c:361
 msgid "TFTP client for upgrading firmware in ATMEL AT76C510 WiSOC-based APs.\n"
 msgstr ""
 
-#: src/ap-tftp.c:365
+#: src/ap-tftp.c:363
 msgid "(C) 2004-2005 Jan Rafaj <jr-aputils at cedric dot unob dot cz>\n"
 msgstr ""
 
-#: src/ap-tftp.c:391
-msgid "Error: invalid arguments given.\n"
-msgstr ""
-
-#: src/ap-tftp.c:398
+#: src/ap-tftp.c:379
 msgid "Error: invalid IP address format given.\n"
 msgstr ""
 
 #: src/ap-tftp.c:405
+#, fuzzy
+msgid "Error: invalid argument combination.\n"
+msgstr "geçersiz IP-adresi\n"
+
+#: src/ap-tftp.c:412
 msgid "Error while open()ing firmware file"
 msgstr ""
 
-#: src/ap-tftp.c:411 src/ap-tftp.c:462
+#: src/ap-tftp.c:419 src/ap-tftp.c:472
 msgid "Error: invalid firmware file given.\n"
 msgstr ""
 
-#: src/ap-tftp.c:451
+#: src/ap-tftp.c:461
 #, c-format
 msgid ""
 "Firmware file contains:\n"
@@ -1938,7 +1976,7 @@ msgid ""
 "- string \"atsingle.bin\": %s\n"
 msgstr ""
 
-#: src/ap-tftp.c:474
+#: src/ap-tftp.c:485
 #, c-format
 msgid ""
 "Using:\n"
@@ -1947,7 +1985,16 @@ msgid ""
 "- name used for upload: \"%s\"\n"
 msgstr ""
 
-#: src/ap-tftp.c:537
+#: src/ap-tftp.c:568
+msgid ""
+"Error: device with the given IP does not seem to run SmartBridges firmware.\n"
+msgstr ""
+
+#: src/ap-tftp.c:574
+msgid "Error: SNMP authorization error or device unavailable.\n"
+msgstr ""
+
+#: src/ap-tftp.c:653
 msgid "Error while lseek()ing in firmware file\n"
 msgstr ""
 
@@ -2045,7 +2092,7 @@ msgstr ""
 
 #: src/auth.c:41
 #, fuzzy
-msgid "[T] Reauthorization time (sec): "
+msgid "[T] Reauthorization time (minutes): "
 msgstr "(A) Makro yetki: %s"
 
 #: src/auth.c:42
@@ -2066,8 +2113,9 @@ msgid "[M] 802.1x authorization: "
 msgstr "(A) Makro yetki: %s"
 
 #: src/auth.c:46
-msgid "[T] key broadcasting time period (sec): "
-msgstr ""
+#, fuzzy
+msgid "[T] key broadcasting time period (seconds): "
+msgstr "(A) Makro yetki: %s"
 
 #: src/auth.c:47
 msgid "[I] 802.1x auth. server IP: "
@@ -2111,16 +2159,16 @@ msgstr ""
 msgid "(not shown)"
 msgstr ""
 
-#: src/auth.c:270
+#: src/auth.c:276
 #, fuzzy
 msgid "Authorized MAC addresses:"
 msgstr "Yetkili makro adresler"
 
-#: src/auth.c:339
+#: src/auth.c:345
 msgid "(insufficient community used)"
 msgstr ""
 
-#: src/auth.c:466
+#: src/auth.c:472
 #, c-format
 msgid "Given MAC already exists in MAC list at position %d. Press any key."
 msgstr ""
@@ -2193,16 +2241,16 @@ msgstr ""
 msgid "INGFPDOMSCRBUT - set; W - write conf; Q - quit to menu"
 msgstr "BPGINFDRT - kur;W - yapılandırmayı yaz; Q - menüye dön"
 
-#: src/bridge.c:126
-#, fuzzy
-msgid "Both"
-msgstr "Her İki Tür"
-
 #: src/bridge.c:128
 #, fuzzy
 msgid "Wireless (can be risky)"
 msgstr "Kablosuz Ayarlar"
 
+#: src/bridge.c:129
+#, fuzzy
+msgid "Both"
+msgstr "Her İki Tür"
+
 #: src/nwn_advanced.c:60
 #, c-format
 msgid "[D] DB Station Timeout: %d"
@@ -2255,31 +2303,43 @@ msgstr "Hata"
 msgid "Not available (device not in AP mode)."
 msgstr ""
 
-#: src/stations.c:93
+#: src/stations.c:92
 msgid "  #     MAC       Parent MAC  RSSI   LQ Sts MACn      IP        "
 msgstr ""
 
-#: src/stations.c:139
+#: src/stations.c:136
 msgid "AssociatedSTAsInfo packet error"
 msgstr "İlişkiliSTAbilgi paketi hatası"
 
-#: src/stations.c:192 src/stations.c:364
+#: src/stations.c:189 src/stations.c:363
 #, fuzzy
 msgid ""
 "Arrows - scroll; S - save to file; Q - return; T - toggle view; Other - "
 "refresh"
 msgstr "Oklar - kaydırma; S - dosyaya kaydet; Q - menüye geri dön"
 
-#: src/stations.c:196
+#: src/stations.c:193
 #, fuzzy
 msgid "Arrows - scroll; S - save to file; Q - return; Other key - refresh"
 msgstr "Oklar - kaydırma; S - dosyaya kaydet; Q - menüye geri dön"
 
-#: src/stations.c:276
+#: src/stations.c:275
 #, fuzzy
 msgid "Id       MAC address     Quality  Age  RSSI"
 msgstr "Id       MAC adresi       Kalite Yükseltme RSSI"
 
+#~ msgid "Create socket error. Press any key."
+#~ msgstr "Yuva hatası oluştur.. Bir tuşa basınız."
+
+#~ msgid "Bind socket error. Press any key."
+#~ msgstr "Yuva hatasını bağlayınız. Bir tuşa basınız."
+
+#~ msgid "Create socket error"
+#~ msgstr "Soket hatası oluştur"
+
+#~ msgid "Bind socket error"
+#~ msgstr "Soket hatası bağla"
+
 #, fuzzy
 #~ msgid "NUM       MAC address"
 #~ msgstr "NUM MAKRO adres"
index d0b4728b3824767b5d5ba0df33c5deb4bcb6c425..61f122b16d1e84ec70371e8c5328443cdc353d20 100644 (file)
--- a/po/uk.po
+++ b/po/uk.po
@@ -6,7 +6,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: ap-utils 1.4.1\n"
-"POT-Creation-Date: 2005-01-16 02:07+0200\n"
+"POT-Creation-Date: 2005-03-07 01:13+0200\n"
 "PO-Revision-Date: 2004-02-27 00:44+0200\n"
 "Last-Translator: Roman Festchook <roma@polesye.net>\n"
 "Language-Team: UK <roma@polesye.net>\n"
@@ -15,131 +15,131 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Report-Msgid-Bugs-To: \n"
 
-#: lib/aps.c:29
+#: lib/aps.c:30
 msgid "Known Access Points"
 msgstr "÷¦ÄÏͦ ÔÏÞËÉ ÄÏÓÔÕÐÕ"
 
-#: lib/aps.c:129
+#: lib/aps.c:130
 msgid "Your Access Point is not in \"AP client\" mode => getting"
 msgstr "÷ÁÛÁ ÔÏÞËÁ ÄÏÓÔÕÐÕ ÎÅ Õ ÒÅÖÉͦ ë̦¤ÎÔÁ, ÏÔÒÉÍÁÎÎÑ ÄÁÎÎÉÈ"
 
-#: lib/aps.c:132
+#: lib/aps.c:133
 msgid "up-to-date \"Known APs\" info requires your AP to be"
 msgstr "ÐÒϠצÄÏͦ ÔÏÞËÉ ÄÏÓÔÕÐÕ ×ÉÍÁÇÁ¤ ÔÉÍÞÁÓÏ×ÏÇÏ ËÏÎƦÇÕÒÕ×ÁÎÎÑ"
 
-#: lib/aps.c:135
+#: lib/aps.c:136
 msgid "temporarily configured into \"AP client\" mode and rebooted."
 msgstr "Õ ÒÅÖÉÍ ë̦¤ÎÔÁ ÔÁ ÐÅÒÅÚÁ×ÁÎÔÁÖÅÎÎÑ."
 
-#: lib/aps.c:138
+#: lib/aps.c:139
 msgid "Your AP will be reconfigured back to original mode by this"
 msgstr "÷ÁÛÕ ÔÏÞËÕ ÄÏÓÔÕÐÕ ÂÕÄÅ ÐÏ×ÅÒÎÅÎÏ ÄÏ ÐÏÞÁÔËÏ×ÏÇÏ ÓÔÁÎÕ ËÏÌÉ"
 
-#: lib/aps.c:141
+#: lib/aps.c:142
 msgid "utility once you quit the \"KnownAP\" view. This, in turn, may"
 msgstr "÷É ×ÉÊÄÅÔÅ Ú ÒÅÖÉÍÕ \"÷¦ÄÏͦôÏÞËÉ\". ¶ÎËÏÌÉ, ÃÅ ÍÏÖÅ ÓÐÒÉÞÉÎÉÔÉ"
 
-#: lib/aps.c:144
+#: lib/aps.c:145
 msgid "cause loss of Access Point's current configuration."
 msgstr "×ÔÒÁÔÕ ÐÏÔÏÞÎϧ ËÏÎƦÇÕÒÁ槠÷ÁÛϧ ôÏÞËÉ äÏÓÔÕÐÕ"
 
-#: lib/aps.c:148
+#: lib/aps.c:149
 msgid "Do NOT answer \"Yes\" if you're connected to the Access Point"
 msgstr "îŠצÄÐÏצÄÁÊÔÅ ôÁË ÑËÝÏ ÷ɠЦÄ'¤ÄÎÁΦ ÄÏ ÔÏÞËÉ ÄÏÓÔÕÐÕ"
 
-#: lib/aps.c:151
+#: lib/aps.c:152
 msgid "via its wireless port."
 msgstr "ÞÅÒÅÚ §§ ÒÁĦÏÐÏÒÔ."
 
-#: lib/aps.c:153 lib/cmd.c:45 lib/cmd.c:75 lib/test.c:96
+#: lib/aps.c:154 lib/cmd.c:45 lib/cmd.c:75 lib/test.c:96
 msgid "Do you want to continue? "
 msgstr "âÁÖÁ¤ÔÅ ÐÒÏÄÏ×ÖÉÔÉ? "
 
-#: lib/aps.c:207
+#: lib/aps.c:208
 msgid "NetworkType"
 msgstr "ôÉРÍÅÒÅÖ¦"
 
-#: lib/aps.c:283
+#: lib/aps.c:284
 msgid "Infrastructure"
 msgstr "¶ÎÆÒÁÓÔÒÕËÔÕÒÁ"
 
-#: lib/aps.c:343 lib/aps.c:351 lib/aps.c:359
+#: lib/aps.c:344 lib/aps.c:352 lib/aps.c:360
 msgid "CN: Channel Name; P: Preambule Type (S: Short; L: Long);"
 msgstr "CN: ëÁÎÁÌ; P: ôÉРÐÒÅÁÍÂÕÌÉ (S: ëÏÒÏÔËÁ; L: äÏ×ÇÁ)"
 
-#: lib/aps.c:345
+#: lib/aps.c:346
 msgid "RSSI: Radio Signal Strength Indicator [%]"
 msgstr "RSSI: ¶ÎÄÉËÁÔÏÒ ÐÏÔÕÖÎÏÓÔ¦ ÓÉÇÎÁÌÕ [%]"
 
-#: lib/aps.c:347 lib/aps.c:355
+#: lib/aps.c:348 lib/aps.c:356
 msgid "; LQ: Link Quality [%]"
 msgstr "; LQ: ñ˦ÓÔØ Ú'¤ÄÎÁÎÎÑ [%]"
 
-#: lib/aps.c:353
+#: lib/aps.c:354
 msgid "RSSI: Radio Signal Strength Indicator [dBm]"
 msgstr "RSSI: ¶ÎÄÉËÁÔÏÒ ÐÏÔÕÖÎÏÓÔ¦ ÓÉÇÎÁÌÕ [dBm]"
 
-#: lib/aps.c:361
+#: lib/aps.c:362
 msgid "RSSI: Radio Signal Strength Indicator [raw]"
 msgstr "RSSI: ¶ÎÄÉËÁÔÏÒ ÐÏÔÕÖÎÏÓÔ¦ ÓÉÇÎÁÌÕ [ÎÅÏÂÒÏÂÌÅÎÅ]"
 
-#: lib/aps.c:363
+#: lib/aps.c:364
 msgid "; LQ: Link Q. [raw]"
 msgstr "; LQ: ñ˦ÓÔؠ̦ÎËÕ [ÎÅÏÂÒÏÂÌÅÎÅ]"
 
-#: lib/aps.c:369
+#: lib/aps.c:370
 msgid ""
 "# con. to AP #; R refresh with reset; T toggle; Q quit; Other = refr. w/o "
 "reset"
 msgstr ""
 "# ÐÒɤÄÎÁÔÉÓÑ ÄÏ áò; R ÐÅÒÅÚÁ×ÁÎÔÁÖÉÔÉ; S ÐÏÎÏ×ÉÔÉ; T ÐÅÒÅÍËÎÕÔÉ; Q ×ÉÊÔÉ"
 
-#: lib/aps.c:371
+#: lib/aps.c:372
 msgid ""
 "# con. to AP #; R initiate AP scan; T toggle view; Q quit; Other = refresh "
 "view"
 msgstr ""
 "# ÐÒɤÄÎÁÔÉÓÑ ÄÏ áò; R ÚÁÐÕÓÔÉÔÉ ÐÏÛÕË; S ÐÏÎÏ×ÉÔÉ; T ÐÅÒÅÍËÎÕÔÉ; Q ×ÉÊÔÉ"
 
-#: lib/aps.c:500 lib/ap_search.c:167
+#: lib/aps.c:501 lib/ap_search.c:173
 #, c-format
 msgid "Failure in sendto(): %s. Press any key."
 msgstr "îÅ×iÒÎÉÊ sendto: %s. âÕÄØ ÑËÁ ËÌÁצÛÁ ÄÌÑ ÐÒÏÄÏ×ÖÅÎÎÑ."
 
-#: lib/aps.c:509
+#: lib/aps.c:510
 msgid "You have just initiated the AP scan. Be advised that it may"
 msgstr "÷É ÚÁÐÕÓÔÉÌÉ ÓËÁÎÕ×ÁÎÎÑ ÄÌÑ ÐÏÛÕËÕ ÔÏÞÏË ÄÏÓÔÕÐÕ. ãÅ ÍÏÖÅ"
 
-#: lib/aps.c:512
+#: lib/aps.c:513
 msgid "take a few seconds for your Access Point to find out some"
 msgstr "ÚÁÊÎÑÔÉ ÄÅ˦ÌØËÁ ÓÅËÕÎÄ ÄÏËÉ ×ÁÛÁ ÔÏÞËÁ ÄÏÓÔÕÐÕ ÚÎÁÊÄÅ"
 
-#: lib/aps.c:515
+#: lib/aps.c:516
 msgid "values, so expect finishing the scan in about 5 seconds."
 msgstr ""
 "ÎÅÏÂȦÄΦ ÄÁÎΦ, ÔÏÖ ÒÁÚÒÁÈÏ×ÕÊÔÅ ÎÁ ÚÁ×ÅÒÛÅÎΦ ÓËÁÎÕ×ÁÎÎÑ ÚÁ 5 ÓÅËÕÎÄ."
 
-#: lib/aps.c:518
+#: lib/aps.c:519
 msgid "Also note that your Access Point stops forwarding the network"
 msgstr "ôÁËÖ ÚÁÕ×ÁÖÔÅ, ÝÏ ÷ÁÛÁ ÔÏÞËÁ ÄÏÓÔÕÐÕ ÐÒÉÐÉÎѤ ÐÅÒÅÄÁ×ÁÔÉ"
 
-#: lib/aps.c:521
+#: lib/aps.c:522
 msgid "traffic while the scan is in progress, but restores itself"
 msgstr "ÍÅÒÅÖÅ×ÉÊ ÔÒÁƦˠÐÒÉ ÓËÁÎÕ×ÁÎΦ, ÔÁ ×¦ÄÎÏ×ÌÀ¤ ÓÅÂÅ Õ ÎÏÒÍÁÌØÎÉÊ"
 
-#: lib/aps.c:524
+#: lib/aps.c:525
 msgid "to normal operation in time ranging up to 1 minute."
 msgstr "ÒÅÖÉÍ ÒÁÂÏÔÉ ÐÒÉÂÌÉÚÎÏ ÚÁ È×ÉÌÉÎÕ."
 
-#: lib/aps.c:527
+#: lib/aps.c:528
 msgid "Hence, if you are connected to target Access Point via its"
 msgstr "ôÁËÏÖ, ÑËÝÏ ÷ɠЦÄ'¤ÄÎÁΦ ÄϠæÏÌØÏ×ϧ ÔÏÞËÉ ÄÏÓÔÕÐÕ ÞÅÒÅÚ §§"
 
-#: lib/aps.c:530
+#: lib/aps.c:531
 msgid "wireless port, you need to wait a bit longer"
 msgstr "ÒÁĦϠÐÏÒÔ, ÔÏ ÷ÁÍ ÐÏÔÒ¦ÂÎÏ ÚÁÖÄÁÔÉ ÔÒÏÈÉ ÄÏ×ÛÅ "
 
-#: lib/aps.c:533
+#: lib/aps.c:534
 msgid "after pressing 'S'."
 msgstr "ЦÓÌÑ ÎÁÔÉÓËÁÎÎÑ 'S'."
 
@@ -148,272 +148,272 @@ msgid "Community name: "
 msgstr "ëÏÍ'ÀΦԦ: "
 
 #: lib/ap_search.c:49
-msgid "  NUM  IP ADDRESS       MIB TYPE    NAME"
+#, fuzzy
+msgid "  NUM  IP ADDRESS       MIB TYPE    FW TYPE (VERSION) AP NAME"
 msgstr "    #  IP áäòåóá        ôéð         ¶í'ñ"
 
-#: lib/ap_search.c:100
+#: lib/ap_search.c:106
 msgid "Please wait while scanning, or press 'Q' to quit."
 msgstr "úÁÞÅËÁÊÔÅ ÐÏËÉ ÊÄÅ ÐÏÛÕË ÁÂÏ ÎÁÔÉÓΦÔØ 'Q' ÄÌÑ ×ÉÈÏÄÕ. "
 
-#: lib/ap_search.c:116
+#: lib/ap_search.c:122
 msgid "Can't set broadcast option on socket. Press any key."
 msgstr ""
 "îÅ ÍÏÖÕ ×ÓÔÁÎÏ×ÉÔÉ ÂÒÏÁÄËÁÓÔÏ×ÉÊ ÓÏËÅÔ. âÕÄØ ÑËÁ ËÌÁצÛÁ ÄÌÑ ÐÒÏÄÏ×ÖÅÎÎÑ."
 
-#: lib/ap_search.c:125
+#: lib/ap_search.c:131
 msgid "Can't set multicast membership on socket. Press any key."
 msgstr "îÅ ÍÏÖÕ ×ÓÔÁÎÏ×ÉÔÉ ÍÕÌØÔÉËÁÓÔÏ×ÉÊ ÓÏËÅÔ. ðÒÏÄÏ×ÖÅÎÎÑ ÂÕÄØ ÑËÁ ËÌÁצÛÁ."
 
-#: lib/ap_search.c:132
+#: lib/ap_search.c:138
 msgid "Scanning via network interface:"
 msgstr "ûÕËÁ¤ÍÏ ÞÅÒÅÚ ÍÅÒÅÖÅ×ÉÊ ¦ÎÔÅÒÆÅÊÓ:"
 
-#: lib/ap_search.c:133
+#: lib/ap_search.c:139
 #, c-format
 msgid "  Index: %i"
 msgstr "  ¶ÎÄÅËÓ: %i"
 
-#: lib/ap_search.c:135
+#: lib/ap_search.c:141
 #, c-format
 msgid "  Name: %s"
 msgstr "  ¶Í'Ñ: %s"
 
-#: lib/ap_search.c:137
+#: lib/ap_search.c:143
 #, c-format
 msgid "  IP: %s"
 msgstr "  IP: %s"
 
-#: lib/ap_search.c:146
+#: lib/ap_search.c:152
 #, c-format
 msgid "Scanning for AP with MIB type: %s"
 msgstr "÷ÉÚÎÁÞÁÀ ÔÉРáò: %s"
 
-#: lib/ap_search.c:334
-msgid "Please enter SNMP community name that will be used for AP detection."
-msgstr "÷×ÅĦÔØ SNMP ËÏÍ'ÀΦԦ, ÝÏ ÂÕÄÅ ×ÉËÏÒÉÓÔÁÎÏ ÄÌÑ ÐÏÛÕËÕ áò"
-
-#: lib/ap_search.c:345
+#: lib/ap_search.c:378
 msgid "Access Points Search"
 msgstr "ðÏÛÕË ÔÏÞÏË ÄÏÓÔÕÐÕ"
 
-#: lib/ap_search.c:363
+#: lib/ap_search.c:396
 msgid "realloc() error."
 msgstr "ðÏÍÉÌËÁ realloc()."
 
-#: lib/ap_search.c:375
+#: lib/ap_search.c:408
 msgid "Network interface discovery error."
 msgstr "ðÏÍÉÌËÁ ×ÉÚÎÁÞÅÎÎÑ ÍÅÒÅÖÅ×ÉÈ ¦ÎÔÅÒÆÅÊÓ¦×."
 
-#: lib/ap_search.c:450
+#: lib/ap_search.c:483
 msgid "No local network interfaces found. Press any key."
 msgstr "îÅ ÚÎÁÊÄÅÎÏ ÍÅÒÅÖÅ×ÉÈ ¦ÎÔÅÒÆÅÊÓ¦×. âÕÄØ ÑËÁ ËÌÁצÛÁ ÄÌÑ ÐÒÏÄÏ×ÖÅÎÎÑ."
 
-#: lib/ap_search.c:452
+#: lib/ap_search.c:485
 msgid "No directly reachable Access Points found. Press any key."
 msgstr "îÅ ÚÎÁÊÄÅÎÏ ÄÏÓÔÕÐÎÉÈ ÎÁÐÒÑÍÕ áò. âÕÄØ ÑËÁ ËÌÁצÛÁ ÄÌÑ ÐÒÏÄÏ×ÖÅÎÎÑ."
 
-#: lib/ap_search.c:457
+#: lib/ap_search.c:490
 msgid "Single-screen maximum number of APs found."
 msgstr "úÎÁÊÄÅÎÏ ÍÁËÓÉÍÁÌØÎÕ ÄÌÑ ÐÒÏÇÒÁÍɠ˦ÌØ˦ÓÔØ áò."
 
-#: lib/ap_search.c:460
+#: lib/ap_search.c:493
 msgid "# - connect to AP; Q - quit"
 msgstr "# - Ð¦Ä'¤ÄÎÁÔÉÓÑ ÄÏ AP; Q - ×ÉÊÔÉ"
 
-#: lib/ap-utils.h:79
+#: lib/ap-utils.h:82
 msgid "MAC address: "
 msgstr "MAC ÁÄÒÅÓÁ: "
 
-#: lib/ap-utils.h:80
+#: lib/ap-utils.h:83
 msgid "[S] SNMP traps: "
 msgstr "[S] SNMP ÔÒÁÐÉ: "
 
-#: lib/ap-utils.h:82
+#: lib/ap-utils.h:85
 msgid "[C] Frequency channel: "
 msgstr "[C] þÁÓÔÏÔÎÉÊ ËÁÎÁÌ: "
 
-#: lib/ap-utils.h:84
+#: lib/ap-utils.h:87
 msgid "Receive  antenna:"
 msgstr "ðÒÉÊÍÁÀÞÁ ÁÎÔÅÎÁ:"
 
-#: lib/ap-utils.h:85
+#: lib/ap-utils.h:88
 msgid "[U] Left"
 msgstr "[U] ì¦×Á"
 
-#: lib/ap-utils.h:86
+#: lib/ap-utils.h:89
 msgid "[I] Right"
 msgstr "[I] ðÒÁ×Á"
 
-#: lib/ap-utils.h:87
+#: lib/ap-utils.h:90
 msgid "Transmit antenna:"
 msgstr "ðÅÒÅÄÁÀÞÁ ÁÎÔÅÎÁ:"
 
-#: lib/ap-utils.h:88
+#: lib/ap-utils.h:91
 msgid "[O] Left"
 msgstr "[O] ì¦×Á"
 
-#: lib/ap-utils.h:89
+#: lib/ap-utils.h:92
 msgid "[P] Right"
 msgstr "[P] ðÒÁ×Á"
 
-#: lib/ap-utils.h:90
+#: lib/ap-utils.h:93
 msgid "Diversity select:"
 msgstr "÷ɦҠÁÎÔÅÎÉ:"
 
-#: lib/ap-utils.h:91
+#: lib/ap-utils.h:94
 msgid "[T] Left"
 msgstr "[T] ì¦×Á"
 
-#: lib/ap-utils.h:92
+#: lib/ap-utils.h:95
 msgid "[Y] Right"
 msgstr "[Y] ðÒÁ×Á"
 
-#: lib/ap-utils.h:94
+#: lib/ap-utils.h:97
 msgid "Yes"
 msgstr "ôÁË"
 
-#: lib/ap-utils.h:95
+#: lib/ap-utils.h:98
 msgid "No"
 msgstr "î¦"
 
-#: lib/ap-utils.h:97
+#: lib/ap-utils.h:100
 msgid "On"
 msgstr "ôÁË"
 
-#: lib/ap-utils.h:98
+#: lib/ap-utils.h:101
 msgid "Off"
 msgstr "î¦"
 
-#: lib/ap-utils.h:100
+#: lib/ap-utils.h:103
 msgid "Basic"
 msgstr "ïÓÎÏ×ÎÉÊ"
 
-#: lib/ap-utils.h:102
+#: lib/ap-utils.h:105
 msgid "Press any key to continue."
 msgstr "âÕÄØ ÑËÁ ËÌÁצÛÁ ÄÌÑ ÐÒÏÄÏ×ÖÅÎÎÑ."
 
-#: lib/ap-utils.h:103
-msgid "Q - quit to menu. T - toggle polling mode, Other key - force update."
+#: lib/ap-utils.h:106
+#, fuzzy
+msgid "Q - quit to menu. T - toggle polling mode, Other key - force update"
 msgstr "Q - ×ÉÊÔÉ × ÍÅÎÀ. T - ÐÅÒÅÍËÎÕÔÉ ÒÅÖÉÍ ÚÁÐÉÔÕ, ¶ÎÛ¦ - ÐÏÎÏ×ÉÔÉ."
 
-#: lib/ap-utils.h:105
+#: lib/ap-utils.h:108
 msgid "Unable to write data to AP. Press any key to continue."
 msgstr "îÅ ÍÏÖÕ ÚÁÐÉÓÁÔÉ ÄÁÎΦ × áò. âÕÄØ ÑËÁ ËÌÁצÛÁ ÄÌÑ ÐÒÏÄÏ×ÖÅÎÎÑ."
 
-#: lib/ap-utils.h:106
+#: lib/ap-utils.h:109
 msgid "Unable to retrieve (valid) data from AP. Press any key to continue."
 msgstr "îÅ ÍÏÖÕ ÏÔÒÉÍÁÔÉ (צÒΦ) ÄÁÎΦ Ú áò. âÕÄØ ÑËÁ ËÌÁצÛÁ ÄÌÑ ÐÒÏÄÏ×ÖÅÎÎÑ."
 
-#: lib/ap-utils.h:107
-msgid "Trying to retrieve data from AP. Please wait..."
+#: lib/ap-utils.h:110
+#, fuzzy
+msgid "Trying to retrieve data from AP - please wait (or press Q to quit)."
 msgstr "ïÔÒÉÍÕÀ ÄÁÎΦ - ÚÁÖĦÔØ ÂÕÄØ ÌÁÓËÁ..."
 
-#: lib/ap-utils.h:108
+#: lib/ap-utils.h:111
 msgid "Writing data to AP. Please wait..."
 msgstr "úÁÐÉÓÕÀ ÄÁÎΦ - ÚÁÖĦÔØ ÂÕÄØ ÌÁÓËÁ..."
 
-#: lib/ap-utils.h:109
+#: lib/ap-utils.h:112
 msgid "Configuration written to the AP. Press any key to continue."
 msgstr "ëÏÎƦÇÕÒÁæÀ ÚÁÐÉÓÁÎÏ × áò. âÕÄØ ÑËÁ ËÌÁצÛÁ ÄÌÑ ÐÒÏÄÏ×ÖÅÎÎÑ."
 
-#: lib/ap-utils.h:110
+#: lib/ap-utils.h:113
 msgid "select() function error. Press any key."
 msgstr "ðÏÍÉÌËÁ ×ÉËÏÎÁÎÎÑ select(). âÕÄØ ÑËÁ ËÌÁצÛÁ ÄÌÑ ÐÒÏÄÏ×ÖÅÎÎÑ."
 
-#: lib/ap-utils.h:112
-msgid "Create socket error. Press any key."
-msgstr "ðÏÍÉÌËÁ ÓÔ×ÏÒÅÎÎÑ ÓÏËÅÔÕ. âÕÄØ ÑËÁ ËÌÁצÛÁ ÄÌÑ ÐÒÏÄÏ×ÖÅÎÎÑ"
-
-#: lib/ap-utils.h:113
-msgid "Bind socket error. Press any key."
-msgstr "ðÏÍÉÌËÁ ÐÒÉ×`ÑÚËÉ ÓÏËÅÔÕ. âÕÄØ ÑËÁ ËÌÁצÛÁ ÄÌÑ ÐÒÏÄÏ×ÖÅÎÎÑ"
+#: lib/ap-utils.h:114
+#, fuzzy
+msgid "socket() or bind() function error. Press any key."
+msgstr "ðÏÍÉÌËÁ ×ÉËÏÎÁÎÎÑ select(). âÕÄØ ÑËÁ ËÌÁצÛÁ ÄÌÑ ÐÒÏÄÏ×ÖÅÎÎÑ."
 
-#: lib/ap-utils.h:115
+#: lib/ap-utils.h:116
 msgid "Unable to write AP list file ~/.ap-config. Press any key."
 msgstr ""
 "îÅ ÍÏÖÕ ÚÁÐÉÓÁÔÉ ÆÁÊÌ ÓÐÉÓËÕ AP ~/.ap-config. âÕÄØ ÑËÁ ËÌÁצÛÁ ÄÌÑ "
 "ÐÒÏÄÏ×ÖÅÎÎÑ"
 
-#: lib/ap-utils.h:116
+#: lib/ap-utils.h:117
 msgid "AP list file ~/.ap-config successfully written. Press any key."
 msgstr ""
 "æÁÊÌ ÓÐÉÓËÕ AP ~/.ap-config ×ÄÁÌÏ ÚÁÐÉÓÁÎÏ. îÁÔÉÓΦÔØ ÂÕÄØ ÑËÕ ËÌÁצÛÕ."
 
-#: lib/ap-utils.h:118
+#: lib/ap-utils.h:119
 msgid "Back to main menu"
 msgstr "ðÏ×ÅÒÎÕÔÉÓÑ ÄÏ ÍÅÎÀ"
 
-#: lib/ap-utils.h:119
+#: lib/ap-utils.h:120
 msgid "Exit program"
 msgstr "÷ÉÊÔÉ Ú ÐÒÏÇÒÁÍÉ"
 
-#: lib/ap-utils.h:120
+#: lib/ap-utils.h:121
 msgid "Run subshell. To return type 'exit'."
 msgstr "úÁÐÕÓÔÉÔÉ ÛÅÌÌ. äÌÑ ÐÏ×ÅÒÎÅÎÎÑ ÎÁÂÅÒ¦ÔØ 'exit'."
 
-#: lib/ap-utils.h:121
+#: lib/ap-utils.h:122
+msgid "Change polling mode interval"
+msgstr ""
+
+#: lib/ap-utils.h:123
 msgid "Short info about program"
 msgstr "ðÒÏ ÐÒÏÇÒÁÍÍÕ"
 
-#: lib/ap-utils.h:122
+#: lib/ap-utils.h:124
 msgid "Find connected Access Points"
 msgstr "úÎÁÊÔɠЦÄËÌÀÞÅΦ áò"
 
-#: lib/ap-utils.h:123
+#: lib/ap-utils.h:125
 msgid "Set connection options: ip and community"
 msgstr "÷ÓÔÁÎÏ×ÉÔÉ ÐÁÒÁÍÅÔÒÉ Ú`¤ÄÎÁÎÎÑ"
 
-#: lib/ap-utils.h:124
+#: lib/ap-utils.h:126
 msgid "Set encryption; edit WEP keys"
 msgstr "÷ÓÔÁÎÏ×ÉÔÉ ÛÉÆÒÕ×ÁÎÎÑ, ÒÅÄÁÇÕ×ÁÔÉ WEP ËÌÀÞ¦"
 
-#: lib/ap-utils.h:125
+#: lib/ap-utils.h:127
 #, fuzzy
 msgid "Set authorization; edit MAC authorization table"
 msgstr "÷ÓÔÁÎÏ×ÉÔÉ íáó Á×ÔÏÒÉÚÁæÀ; ÒÅÄÁÇÕ×ÁÔÉ ÔÁÂÌÉÃÀ Á×ÔÏÒÉÚÁæ§"
 
-#: lib/ap-utils.h:126
+#: lib/ap-utils.h:128
 msgid "Set SNMP community/password for access to the AP"
 msgstr "÷ÓÔÁÎÏ×ÉÔÉ SNMP ËÏÍ'ÀΦԦ/ÐÁÒÏÌØ ÄÌÑ ÄÏÓÔÕÐÕ ÄÏ áò"
 
-#: lib/ap-utils.h:127
+#: lib/ap-utils.h:129
 msgid "Get info about AP hardware and firmware"
 msgstr "ïÔÒÉÍÁÔÉ ¦ÎÆÏÒÍÁæÀ ÐÒÏ ÁÐÁÒÁÔÎÅ ÔÁ ÐÒÏÇÒÁÍÎÅ ÚÁÂÅÚÐÅÞÅÎÎÑ"
 
-#: lib/ap-utils.h:128
+#: lib/ap-utils.h:130
 msgid "Get wireless port statistics"
 msgstr "ïÔÒÉÍÁÔÉ ÓÔÁÔÉÓÔÉËÕ ÒÁĦϠÐÏÒÔÕ"
 
-#: lib/ap-utils.h:129
+#: lib/ap-utils.h:131
 msgid "Get list of currently associated stations (Access Point clients)"
 msgstr "ïÔÒÉÍÁÔÉ ÐÅÒÅ̦ˠÁÓÏæÊÏ×ÁÎÉÈ ÓÔÁÎæʠ(Ë̦¤ÎԦנáò)"
 
-#: lib/ap-utils.h:130
+#: lib/ap-utils.h:132
 msgid "Get link status in APclient mode"
 msgstr ""
 
-#: lib/ap-utils.h:131
+#: lib/ap-utils.h:133
 msgid "Get info and statistics from AP"
 msgstr "ïÔÒÉÍÁÔÉ ¦ÎÆÏÒÍÁæÀ ÔÁ ÓÔÁÔÉÓÔÉËÕ Ú áò"
 
-#: lib/ap-utils.h:132
+#: lib/ap-utils.h:134
 msgid "Set various configuration options"
 msgstr "÷ÓÔÁÎÏ×ÉÔÉ ÐÁÒÁÍÅÔÒÉ ËÏÎƦÇÕÒÁæ§"
 
-#: lib/ap-utils.h:134
+#: lib/ap-utils.h:136
 msgid "Associated stations"
 msgstr "áÓÏæÊÏ×ÁΦ ÓÔÁÎæ§"
 
-#: lib/ap-utils.h:135
+#: lib/ap-utils.h:137
 #, fuzzy
 msgid "AP Client link state"
 msgstr "óÔÁΠÚ×'ÑÚËÕ Ú AP"
 
-#: lib/ap-utils.h:137
+#: lib/ap-utils.h:139
 msgid "Polling: on"
 msgstr "ïÐÉÔÕ×ÁÎÎÑ: ÔÁË"
 
-#: lib/ap-utils.h:138
+#: lib/ap-utils.h:140
 msgid "Polling: off"
 msgstr "ïÐÉÔÕ×ÁÎÎÑ: Î¦"
 
@@ -465,154 +465,173 @@ msgstr "
 msgid "Configuration uploaded. Press any key to continue."
 msgstr "ëÏÎƦÇÕÒÁæÀ ÁËÔÉצÚÏ×ÁÎÏ. âÕÄØ ÑËÁ ËÌÁצÛÁ ÄÌÑ ÐÒÏÄÏ×ÖÅÎÎÑ."
 
-#: lib/common.c:30
+#: lib/common.c:32
 msgid "Access Point IP-address: "
 msgstr "¶ò ÁÄÒÅÓÁ áò: "
 
-#: lib/common.c:31
+#: lib/common.c:33
 msgid "Password (community): "
 msgstr "ðÁÒÏÌØ (ËÏÍ`ÀΦԦ): "
 
-#: lib/common.c:32
+#: lib/common.c:34
 msgid "Autodetect AP MIB properties? "
 msgstr "á×ÔÏÍÁÔÉÞÎÏ ×ÉÚÎÁÞÉÔÉ MIB ÔÉРáò? "
 
-#: lib/common.c:33
+#: lib/common.c:35
 msgid "AP MIB type: "
 msgstr "ôÉРMIB áò: "
 
-#: lib/common.c:34
+#: lib/common.c:36
 msgid "AP MIB vendor extensions: "
 msgstr "MIB áò ÒÏÚÛÉÒÅÎÎÑ ×ÉÒÏÂÎÉËÁ: "
 
-#: lib/common.c:35
+#: lib/common.c:37
 msgid "Do you want to use AP's name as its label? "
 msgstr "âÁÖÁ¤ÔÅ ×ÉËÏÒÉÓÔÏ×Õ×ÁÔÉ ÎÁÚ×Õ áò ÑË ÊÏÇϠͦÔËÕ? "
 
-#: lib/common.c:36
+#: lib/common.c:38
 msgid "Access Point label: "
 msgstr "í¦ÔËÁ áò: "
 
-#: lib/common.c:37
+#: lib/common.c:39
 msgid "Save connect-settings: "
 msgstr "úÂÅÒÅÇÔɠæ ÐÁÒÁÍÅÔÒÉ: "
 
-#: lib/common.c:84 src/ap-config.c:154
+#: lib/common.c:40
+msgid "[P] Polling mode interval (tenths of second): "
+msgstr ""
+
+#: lib/common.c:41
+#, fuzzy
+msgid "P - change polling mode interval; Q - quit to menu"
+msgstr "# - ×ÓÔÁÎÏ×ÉÔÉ ÐÁÒÁÍÅÔÒ; W - ÚÁÐÉÓÁÔÉ ËÏÎƦÇÕÒÁæÀ; Q - ×ÉÊÔÉ × ÍÅÎÀ"
+
+#: lib/common.c:89 src/ap-config.c:158
 msgid "About"
 msgstr "ðÒÏÇÒÁÍÁ"
 
-#: lib/common.c:101
+#: lib/common.c:106
 #, c-format
 msgid "From %s"
 msgstr "Ú %s"
 
-#: lib/common.c:103
+#: lib/common.c:108
 #, c-format
 msgid "Version %s"
 msgstr "÷ÅÒӦѠ%s"
 
-#: lib/common.c:106
+#: lib/common.c:111
 msgid "Written by Roman Festchook roma@polesye.net"
 msgstr "á×ÔÏÒ òÏÍÁΠæÅÝÕË roma@polesye.net"
 
-#: lib/common.c:108
+#: lib/common.c:113
 #, fuzzy
 msgid "and Jan Rafaj jr-aputils@cedric.unob.cz"
 msgstr "þÁÓÔËÏ×Ï Jan Rafaj aputils@cedric.unob.cz"
 
-#: lib/common.c:110
+#: lib/common.c:115
 #, fuzzy
 msgid "Copyright (c) 2001-2005"
 msgstr "Copyright (c) 2001-2004"
 
-#: lib/common.c:112
+#: lib/common.c:117
 msgid "Roman Festchook and Jan Rafaj"
 msgstr "òÏÍÁΠæÅÝÕË ÔÁ Jan Rafaj"
 
-#: lib/common.c:115
+#: lib/common.c:120
 msgid "This program is distributed under the terms"
 msgstr "ãÑ ÐÒÏÇÒÁÍÁ ÒÏÚÐÏ×ÓÀÄÖÕ¤ÔØÓÑ ÎÁ ÕÍÏ×ÁÈ"
 
-#: lib/common.c:117
+#: lib/common.c:122
 msgid "of the GNU General Public License version 2."
 msgstr "GNU úÁÇÁÌØÎϧ ðÕÂ̦ÞÎϧ ì¦ÃÅÎÚ¦§ ×ÅÒÓ¦§ 2"
 
-#: lib/common.c:119
+#: lib/common.c:124
 msgid "See the included COPYING file for details."
 msgstr "ÄÌÑ ¦ÎÆÏÒÍÁ槠ÄÉצÔØÓÑ ÆÁÊÌ COPYING"
 
-#: lib/common.c:175
+#: lib/common.c:165
 msgid "Connect options"
 msgstr "ïÐ槠Ú'¤ÄÎÁÎÎÑ"
 
-#: lib/common.c:183
+#: lib/common.c:173
 msgid "Enter IP address of your Access Point."
 msgstr "÷×ÅĦÔØ ¶ò ÁÄÒÅÓÕ ÔÏÞËÉ ÄÏÓÔÕÐÕ."
 
-#: lib/common.c:192
+#: lib/common.c:182
 msgid "Entered characters will not be displayed for security reason."
 msgstr "÷×ÅÄÅΦ ÓÉÍ×ÏÌɠΊצÄÏÂÒÁÖÕÀÔØÓѠڠͦÒËÕ×ÁΦ ÂÅÚÐÅËÉ."
 
-#: lib/common.c:259
+#: lib/common.c:249
 msgid "This label will be stored on HDD (independently on AP name!)."
 msgstr "í¦ÔËÕ ÂÕÄÅ ÚÂÅÒÅÖÅÎÏ ÎÁ ÖÏÒÓÔËÉÊ ÄÉÓË (ÎÅÚÁÌÅÖÎϠצĠÎÁÚ×É áò)."
 
-#: lib/common.c:370
+#: lib/common.c:362
 msgid "Trying to probe AP for MIB properties. Please wait..."
 msgstr "ïÐÉÔÕÀ áò Õ ÐÏÛÕËÕ ×ÌÁÓÔÉ×ÏÓÔÅÊ MIB - ÚÁÖĦÔØ ÂÕÄØ ÌÁÓËÁ..."
 
-#: lib/common.c:399
+#: lib/common.c:391
 msgid ""
 "Unable to determine AP MIB properties (no response from AP). Press any key."
 msgstr ""
 "îÅ ÍÏÖÕ ×ÉÚÎÁÞÉÔÉ ÔÉРáò MIB (ΊצÄÐÏצÄÁ¤). âÕÄØ ÑËÁ ËÌÁצÛÁ ÄÌÑ "
 "ÐÒÏÄÏ×ÖÅÎÎÑ"
 
-#: lib/file.c:205
+#: lib/common.c:489 lib/set_oeminfo.c:221
+#, c-format
+msgid "%s%u"
+msgstr ""
+
+#: lib/common.c:491
+#, c-format
+msgid "(%0.1f seconds)"
+msgstr ""
+
+#: lib/file.c:199
 msgid "NUM  IP ADDRESS       MIB TYPE    MIB EXT.  LABEL"
 msgstr "  #  ¶ò ÁÄÒÅÓÁ        ôÉРMIB     MIB ÒÏÚ.  í¦ÔËÁ"
 
-#: lib/file.c:206
+#: lib/file.c:200
 msgid "Choose an AP to connect to"
 msgstr "÷ÉÂÅÒ¦ÔØ áò ÄÌÑ Ú`¤ÄÎÁÎÎÑ"
 
-#: lib/file.c:212
+#: lib/file.c:206
 msgid "1-9,C: connect; N: new; D: delete; W: save; Q: quit; arrows: scroll"
 msgstr ""
 "1-9,C Ú`¤ÄÎÁÎÎÑ; N ÎÏ×ÉÊ; D ×ÉÄÁÌÉÔÉ; W ÚÂÅÒÅÇÔÉ; Q ×ÉÊÔÉ; ÓÔÒ¦ÌËÉ ÐÒÏËÒÕÔËÁ"
 
-#: lib/file.c:268
+#: lib/file.c:257
 msgid "Connect to AP num:"
 msgstr "ú`ÜÄÎÁÔÉÓÑ Ú áò #:"
 
-#: lib/file.c:304
+#: lib/file.c:288
 msgid "Delete num:"
 msgstr "÷ÉÄÁÌÉÔÉ #:"
 
-#: lib/file.c:458
+#: lib/file.c:442
 msgid "Unable to write stations file. Press any key."
 msgstr ""
 "îÅ ÍÏÖÕ ÚÁÐÉÓÁÔÉ ÆÁÊÌ ÓÐÉÓËÕ ÓÔÁÎæÊ. âÕÄØ ÑËÁ ËÌÁצÛÁ ÄÌÑ ÐÒÏÄÏ×ÖÅÎÎÑ."
 
-#: lib/file.c:460
+#: lib/file.c:444
 msgid "Stations file succesfully written. Press any key."
 msgstr "æÁÊÌ ÓÐÉÓËÕ ÓÔÁÎæʠ×ÄÁÌÏ ÚÁÐÉÓÁÎÏ. îÁÔÉÓΦÔØ ÂÕÄØ ÑËÕ ËÌÁצÛÕ."
 
-#: lib/input.c:33
+#: lib/input.c:32
 msgid "Invalid value. Press any key to continue."
 msgstr "îÅצÒÎÅ ÚÎÁÞÅÎÎÑ. âÕÄØ ÑËÁ ËÌÁצÛÁ ÄÌÑ ÐÒÏÄÏ×ÖÅÎÎÑ."
 
-#: lib/input.c:34
+#: lib/input.c:33
 #, c-format
 msgid "Value must be in range %u - %u. Press any key to continue."
 msgstr ""
 "úÎÁÞÅÎÎÑ ÍÁ¤ ÂÕÔÉ Õ ÄÉÁÐÁÚÏΦ %u - %u. âÕÄØ ÑËÁ ËÌÁצÛÁ ÄÌÑ ÐÒÏÄÏ×ÖÅÎÎÑ"
 
-#: lib/input.c:413
+#: lib/input.c:460
 msgid "Y - Yes; Any other key - No (it's safer to answer No)"
 msgstr "(Y - ÔÁË; N - Î¦ (ÂÅÚÐÅÞΦÛŠצÄÐÏצÓÔɠΦ)"
 
-#: lib/oui.c:6058
+#: lib/oui.c:6061
 msgid "Unknown or Private"
 msgstr "îÅצÄÏÍÉÊ ÁÂÏ ÐÒÉ×ÁÔÎÉÊ"
 
@@ -651,7 +670,7 @@ msgid ""
 "key."
 msgstr "÷É ÎÅ ÍÏÖÅÔÅ ×ÉÍËÎÕÔÉ ÏÂÉÄצ ÁÎÔÅÎÉ. âÕÄØ ÑËÁ ËÌÁצÛÁ ÄÌÑ ÐÒÏÄÏ×ÖÅÎÎÑ."
 
-#: lib/scr.c:156
+#: lib/scr.c:157
 #, c-format
 msgid "Current AP: %s Type: %s Ext: %s"
 msgstr "ðÏÔÏÞÎÉÊ ÐÒÉÓÔÒ¦Ê: %s ôÉÐ: %s òÏÚ: %s"
@@ -827,11 +846,6 @@ msgstr ""
 msgid "OEM Info settings"
 msgstr ""
 
-#: lib/set_oeminfo.c:221
-#, c-format
-msgid "%s%u"
-msgstr ""
-
 #: lib/stat.c:29
 msgid "Ethernet Statistics"
 msgstr "óÔÁÔÉÓÔÉËÁ ÅÚÅÒÎÅÔ ÐÏÒÔÕ"
@@ -868,186 +882,186 @@ msgstr "
 msgid "System Info"
 msgstr "óÉÓÔÅÍÎÁ ¦ÎÆÏÒÍÁæÑ"
 
-#: lib/sysinfo.c:54 src/bridge.c:86
+#: lib/sysinfo.c:55 src/bridge.c:50
 msgid "Wireless Bridge Point to MultiPoint"
 msgstr "òÁĦÏÍÏÓÔ ÔÏÞËÁ-ÂÁÇÁÔÏÔÏÞËÁ"
 
-#: lib/sysinfo.c:55 src/bridge.c:87
+#: lib/sysinfo.c:56 src/bridge.c:51
 msgid "Access Point"
 msgstr "âÁÚÏ×Á ÓÔÁÎæÑ"
 
-#: lib/sysinfo.c:56 src/bridge.c:88
+#: lib/sysinfo.c:57 src/bridge.c:52
 msgid "Access Point client"
 msgstr "ë̦¤ÎÔÓØËÁ ÓÔÁÎæÑ"
 
-#: lib/sysinfo.c:57 src/bridge.c:89
+#: lib/sysinfo.c:58 src/bridge.c:53
 msgid "Wireless Bridge Point to Point"
 msgstr "òÁĦÏÍÏÓÔ ÔÏÞËÁ-ÔÏÞËÁ"
 
-#: lib/sysinfo.c:58 src/bridge.c:90
+#: lib/sysinfo.c:59 src/bridge.c:54
 msgid "Repeater"
 msgstr "ðÏ×ÔÏÒÀ×ÁÞ"
 
-#: lib/sysinfo.c:59 lib/sysinfo.c:314 lib/sysinfo.c:423 src/bridge.c:91
+#: lib/sysinfo.c:60 lib/sysinfo.c:315 lib/sysinfo.c:424 src/bridge.c:55
 msgid "unknown"
 msgstr "ÎÅצÄÏÍÉÊ"
 
-#: lib/sysinfo.c:143
+#: lib/sysinfo.c:144
 msgid "Device hardware/software/name info:"
 msgstr "¶ÎÆÏÒÍÁæѠÐÒÏ ÐÒÉÓÔҦʠÁÐÁÒÁÔÕÒÁ/ÐÒÏÇÒÁÍÁ/ÎÁÚ×Á:"
 
-#: lib/sysinfo.c:171
+#: lib/sysinfo.c:172
 #, fuzzy, c-format
 msgid "Operational mode: %s"
 msgstr "[O] òÅÖÉÍ ÒÏÂÏÔÉ: "
 
-#: lib/sysinfo.c:181
+#: lib/sysinfo.c:182
 #, fuzzy
 msgid "Product name: "
 msgstr "¶Í`Ñ ÐÒÏÄÕËÔÕ:"
 
-#: lib/sysinfo.c:185
+#: lib/sysinfo.c:186
 #, c-format
 msgid "Product type: %u"
 msgstr "ôÉРÐÒÏÄÕËÔÕ: %u"
 
-#: lib/sysinfo.c:188
+#: lib/sysinfo.c:189
 #, fuzzy
 msgid "OEM name: "
 msgstr "OEM ¶Í`Ñ:"
 
-#: lib/sysinfo.c:195
+#: lib/sysinfo.c:196
 #, c-format
 msgid "Hardware revision: %u"
 msgstr "áÐÁÒÁÔÎÁ ×ÅÒÓ¦Ñ: %u"
 
-#: lib/sysinfo.c:203
+#: lib/sysinfo.c:204
 #, c-format
 msgid "Info structure version: %u"
 msgstr "÷ÅÒӦѠÓÔÒÕËÔÕÒÉ: %u"
 
-#: lib/sysinfo.c:206 lib/sysinfo.c:382
+#: lib/sysinfo.c:207 lib/sysinfo.c:383
 #, c-format
 msgid "Manufacturer OUI: %02X %02X %02X (%s)"
 msgstr "OUI ×ÉÒÏÂÎÉËÁ: %02X %02X %02X (%s)"
 
-#: lib/sysinfo.c:223
+#: lib/sysinfo.c:224
 #, c-format
 msgid "Uptime: %u days, %02u:%02u:%02u hours:mins:secs"
 msgstr "îÁÐÒÁÃØÏ×ÁÎÏ: %u ÄΦ×, :%02u:%02u.%02u ÇÏÄ:È×:ÓÅË"
 
-#: lib/sysinfo.c:311
+#: lib/sysinfo.c:312
 msgid "FHSS 2.4 GHz"
 msgstr "FHSS 2.4 ççÃ"
 
-#: lib/sysinfo.c:311
+#: lib/sysinfo.c:312
 msgid "DSSS 2.4 GHz"
 msgstr "ûðó 2.4 ççÃ"
 
-#: lib/sysinfo.c:311
+#: lib/sysinfo.c:312
 msgid "IR Baseband"
 msgstr "¶ÎÆÒÁÞÅÒ×ÏÎÉÊ"
 
-#: lib/sysinfo.c:312
+#: lib/sysinfo.c:313
 msgid "Commercial range 0..40 C"
 msgstr "ëÏÍÅÒæÊÎÉʠĦÁÐÁÚÏΠ0..40 C"
 
-#: lib/sysinfo.c:313
+#: lib/sysinfo.c:314
 msgid "Industrial range -30..70 C"
 msgstr "¶ÎÄÕÓÔÒ¦ÁÌØÎÉʠĦÁÐÁÚÏΠ-30..70 C"
 
-#: lib/sysinfo.c:316
+#: lib/sysinfo.c:317
 msgid "manual"
 msgstr "×ÒÕÞÎÕ"
 
-#: lib/sysinfo.c:316
+#: lib/sysinfo.c:317
 msgid "notsupported"
 msgstr "ΊЦÄÔÒÉÍÕ¤ÔØÓÑ"
 
-#: lib/sysinfo.c:316
+#: lib/sysinfo.c:317
 msgid "dynamic"
 msgstr "ĦÎÁͦÞÎÏ"
 
-#: lib/sysinfo.c:372
+#: lib/sysinfo.c:373
 msgid "Manufacturer:"
 msgstr "÷ÉÒÏÂÎÉË:"
 
-#: lib/sysinfo.c:377
+#: lib/sysinfo.c:378
 msgid "Manufacturer ID:"
 msgstr "ID ×ÉÒÏÂÎÉËÁ:"
 
-#: lib/sysinfo.c:388
+#: lib/sysinfo.c:389
 msgid "Product Name:"
 msgstr "¶Í`Ñ ÐÒÏÄÕËÔÕ:"
 
-#: lib/sysinfo.c:394
+#: lib/sysinfo.c:395
 msgid "Product ID:"
 msgstr "ID ÐÒÏÄÕËÔÕ:"
 
-#: lib/sysinfo.c:400
+#: lib/sysinfo.c:401
 msgid "Product Version:"
 msgstr "÷ÅÒӦѠÐÒÏÄÕËÔÕ:"
 
-#: lib/sysinfo.c:406
+#: lib/sysinfo.c:407
 #, c-format
 msgid "PHYType: %s"
 msgstr "ôÉРPHY: %s"
 
-#: lib/sysinfo.c:409
+#: lib/sysinfo.c:410
 #, c-format
 msgid "Temperature: %s"
 msgstr "ôÅÍÐÅÒÁÔÕÒÁ: %s"
 
-#: lib/sysinfo.c:417
+#: lib/sysinfo.c:418
 #, c-format
 msgid "Regulatory Domain: %s"
 msgstr "òÅÇÕÌÑÔÏÒΦ ÏÂÍÅÖÅÎÎÑ: %s"
 
-#: lib/sysinfo.c:418
+#: lib/sysinfo.c:419
 msgid "FCC (USA)"
 msgstr "FCC (óûá)"
 
-#: lib/sysinfo.c:419
+#: lib/sysinfo.c:420
 msgid "DOC (Canada)"
 msgstr "DOC (ëÁÎÁÄÁ)"
 
-#: lib/sysinfo.c:420
+#: lib/sysinfo.c:421
 msgid "ETSI (Europe)"
 msgstr "ETSI (´×ÒÏÐÁ)"
 
-#: lib/sysinfo.c:421
+#: lib/sysinfo.c:422
 msgid "Spain"
 msgstr "¶ÓÐÁΦÑ"
 
-#: lib/sysinfo.c:422
+#: lib/sysinfo.c:423
 msgid "France"
 msgstr "æÒÁÎæÑ"
 
-#: lib/sysinfo.c:423
+#: lib/sysinfo.c:424
 msgid "MKK (Japan)"
 msgstr "MKK (ñÐÏΦÑ)"
 
-#: lib/sysinfo.c:426
+#: lib/sysinfo.c:427
 #, c-format
 msgid "Transmit Power: %u mW"
 msgstr "ðÏÔÕÖΦÓÔØ: %u Í÷Ô"
 
-#: lib/sysinfo.c:456
+#: lib/sysinfo.c:457
 #, c-format
 msgid "WEP implemented: %s"
 msgstr "ð¦ÄÔÒÉÍËÁ WEP: %s"
 
-#: lib/sysinfo.c:459
+#: lib/sysinfo.c:460
 #, c-format
 msgid "Diversity: %s"
 msgstr "÷ɦҠÁÎÔÅÎÉ: %s"
 
-#: lib/sysinfo.c:487
+#: lib/sysinfo.c:488
 #, c-format
 msgid "Uptime: %u:%02u:%02u.%02u"
 msgstr "îÁÐÒÁÃØÏ×ÁÎÏ: %u:%02u:%02u.%02u"
 
-#: lib/sysinfo.c:507
+#: lib/sysinfo.c:508
 #, c-format
 msgid "IP  Address: %s"
 msgstr "IP ÁÄÒÅÓÁ: %s"
@@ -1232,7 +1246,7 @@ msgstr "[D] 
 
 #: lib/wlan.c:48
 #, fuzzy
-msgid "[T] SIFS time (ACK timeout) msec: "
+msgid "[T] SIFS time (2nd+ interframe spacing, usec): "
 msgstr "[T] þÁÓ SIFS (ÍÓÅË): "
 
 #: lib/wlan.c:49
@@ -1247,19 +1261,19 @@ msgstr "
 msgid "Long"
 msgstr "ÄÏ×ÇÁ"
 
-#: lib/wlan.c:237
+#: lib/wlan.c:239
 msgid "Wireless Settings"
 msgstr "ðÁÒÁÍÅÔÒÉ ÒÁĦÏÍÅÒÅÖ¦"
 
-#: lib/wlan.c:731
+#: lib/wlan.c:735
 msgid "Antenna Configuration:"
 msgstr "ëÏÎƦÇÕÒÁæѠÁÎÔÅÎ:"
 
-#: lib/wlan.c:748
+#: lib/wlan.c:752
 msgid "General Options"
 msgstr "úÁÇÁÌØΦ ÐÁÒÁÍÅÔÒÉ"
 
-#: lib/wlan.c:750
+#: lib/wlan.c:754
 msgid ""
 "UIOPTY - antenna; SCANLEDFR1234 - options; W - write conf; Q - quit to menu"
 msgstr "UIOPTY - ÁÎÔÅÎÁ; SCANLEDFR1234 - ×ÓÔÁÎÏ×ÉÔÉ; W - ÚÁÐÉÓÁÔÉ; Q - ×ÉÊÔÉ"
@@ -1284,7 +1298,7 @@ msgstr ""
 msgid "Error closing file"
 msgstr ""
 
-#: src/ap-auth.c:45 src/ap-mrtg.c:42 src/ap-rrd.c:42
+#: src/ap-auth.c:44 src/ap-mrtg.c:41 src/ap-rrd.c:40
 msgid ""
 "\n"
 "Usage:\n"
@@ -1292,41 +1306,41 @@ msgstr ""
 "\n"
 "÷ÉËÏÒÉÓÔÁÎÎÑ:\n"
 
-#: src/ap-auth.c:46
+#: src/ap-auth.c:45
 msgid "\tap-auth -i ip -c community -d filename [-h]\n"
 msgstr ""
 
-#: src/ap-auth.c:47
+#: src/ap-auth.c:46
 msgid ""
 "\tap-auth -i ip -c community -u filename [-h]\n"
 "\n"
 msgstr ""
 
-#: src/ap-auth.c:48
+#: src/ap-auth.c:47
 msgid ""
 "Change accesspoint's list of authorised MAC addresses\n"
 "\n"
 msgstr ""
 
-#: src/ap-auth.c:49 src/ap-mrtg.c:46 src/ap-rrd.c:47
+#: src/ap-auth.c:48 src/ap-mrtg.c:45 src/ap-rrd.c:45
 msgid "-i ip        - AP ip address\n"
 msgstr "-i ip        - ip ÁÄÒÅÓÁ ÔÏÞËÉ ÄÏÓÔÕÐÕ\n"
 
-#: src/ap-auth.c:50 src/ap-mrtg.c:47 src/ap-rrd.c:48
+#: src/ap-auth.c:49 src/ap-mrtg.c:46 src/ap-rrd.c:46
 msgid "-c community - SNMP community string\n"
 msgstr "-c ËÏÍ`ÀΦԦ - SNMP ËÏÍ'ÀΦԦ\n"
 
-#: src/ap-auth.c:51
+#: src/ap-auth.c:50
 msgid ""
 "-d filename  - download list of authorised MAC addresses from AP to a file\n"
 msgstr ""
 
-#: src/ap-auth.c:53
+#: src/ap-auth.c:52
 msgid ""
 "-u filename  - upload list of authorised MAC addresses from a file to AP\n"
 msgstr ""
 
-#: src/ap-auth.c:55 src/ap-mrtg.c:56 src/ap-rrd.c:57
+#: src/ap-auth.c:54 src/ap-mrtg.c:55 src/ap-rrd.c:55
 msgid ""
 "-h           - print this help screen\n"
 "\n"
@@ -1334,7 +1348,7 @@ msgstr ""
 "-h           - ÎÁÄÒÕËÕ×ÁÔÉ ÃÅÊ ÅËÒÁΠÄÏÐÏÍÏÇÉ\n"
 "\n"
 
-#: src/ap-auth.c:56
+#: src/ap-auth.c:55
 #, fuzzy, c-format
 msgid ""
 "ap-auth %s Copyright (c) 2004 Teemu Kiviniemi\n"
@@ -1343,222 +1357,246 @@ msgstr ""
 "ap-mrtg %s Copyright (c) 2002-2003 òÏÍÁΠæÅÝÕË\n"
 "\n"
 
-#: src/ap-auth.c:146 src/ap-mrtg.c:139
+#: src/ap-auth.c:138 src/ap-mrtg.c:132
 #, fuzzy
 msgid "Error: invalid IP-address.\n"
 msgstr "îÅצÒÎÁ ¶ò ÁÄÒÅÓÁ\n"
 
-#: src/ap-auth.c:178 src/ap-mrtg.c:178 src/ap-rrd.c:207
-msgid "Create socket error"
-msgstr "ðÏÍÉÌËÁ ÓÔ×ÏÒÅÎÎÑ ÓÏËÅÔÕ"
-
-#: src/ap-auth.c:182 src/ap-mrtg.c:182 src/ap-rrd.c:211
-msgid "Bind socket error"
-msgstr "ðÏÍÉÌËÁ ÐÒÉ×`ÑÚËÉ ÓÏËÅÔÕ"
-
-#: src/ap-auth.c:220 src/ap-mrtg.c:220
+#: src/ap-auth.c:203 src/ap-mrtg.c:204
 #, fuzzy
 msgid "Unable to determine AP MIB type (no response from AP)."
 msgstr ""
 "îÅ ÍÏÖÕ ×ÉÚÎÁÞÉÔÉ ÔÉРáò MIB (ΊצÄÐÏצÄÁ¤). âÕÄØ ÑËÁ ËÌÁצÛÁ ÄÌÑ "
 "ÐÒÏÄÏ×ÖÅÎÎÑ"
 
-#: src/ap-auth.c:228
+#: src/ap-auth.c:211
 msgid "NWN devices are not yet supported."
 msgstr ""
 
-#: src/ap-config.c:41 src/bridge.c:200
+#: src/ap-config.c:43 src/bridge.c:201
 msgid "Bridging"
 msgstr "íÏÓÔ"
 
-#: src/ap-config.c:41
+#: src/ap-config.c:43
 msgid "Set bridging and IP-related options"
 msgstr "÷ÓÔÁÎÏ×ÉÔÉ ÏÐ槠ÍÏÓÔÁ ÔÁ ¶ò ÐÒÏÔÏËÏÌÕ"
 
-#: src/ap-config.c:43 src/ap-config.c:112 src/ap-config.c:121 src/bridge.c:124
+#: src/ap-config.c:45 src/ap-config.c:114 src/ap-config.c:123 src/bridge.c:125
 msgid "Wireless"
 msgstr "òÁĦÏ"
 
-#: src/ap-config.c:43
+#: src/ap-config.c:45
 msgid "Set wireless options"
 msgstr "÷ÓÔÁÎÏ×ÉÔÉ ÐÁÒÁÍÅÔÒÉ ÒÁĦÏÍÅÒÅÖ¦"
 
-#: src/ap-config.c:44 src/ap-config.c:56
+#: src/ap-config.c:46 src/ap-config.c:58
 msgid "Privacy"
 msgstr "ûÉÆÒÕ×ÁÎÎÑ"
 
-#: src/ap-config.c:45
+#: src/ap-config.c:47
 #, fuzzy
 msgid "Auth"
 msgstr "ðÒÏÇÒÁÍÁ"
 
-#: src/ap-config.c:46 src/ap-config.c:58
+#: src/ap-config.c:48 src/ap-config.c:60
 msgid "Community"
 msgstr "ëÏÍ'ÀΦԦ"
 
-#: src/ap-config.c:47
+#: src/ap-config.c:49
 msgid "Radio"
 msgstr "ðÅÒÅÄÁ×ÁÞ"
 
-#: src/ap-config.c:47
+#: src/ap-config.c:49
 msgid "Set radio signal power and antenna options"
 msgstr "÷ÓÔÁÎÏ×ÉÔÉ ÐÏÔÕÖΦÓÔØ ÐÅÒÅÄÁ×ÁÞÁ ÔÁ ÁÎÔÅÎÉ"
 
-#: src/ap-config.c:54
+#: src/ap-config.c:56
 msgid "General"
 msgstr "çÏÌÏ×Φ"
 
-#: src/ap-config.c:54
+#: src/ap-config.c:56
 msgid "Set general options"
 msgstr "÷ÓÔÁÎÏ×ÉÔÉ ÚÁÇÁÌØΦ ÐÁÒÁÍÅÔÒÉ"
 
-#: src/ap-config.c:55
+#: src/ap-config.c:57
 msgid "Advanced"
 msgstr "óÐÅæÁÌØΦ"
 
-#: src/ap-config.c:55
+#: src/ap-config.c:57
 msgid "Set advanced options"
 msgstr "÷ÓÔÁÎÏ×ÉÔÉ ÓÐÅæÁÌØΦ ÐÁÒÁÍÅÔÒÉ"
 
-#: src/ap-config.c:57
+#: src/ap-config.c:59
 msgid "MAC auth"
 msgstr "íáó ÄÏÓÔÕÐ"
 
-#: src/ap-config.c:80
+#: src/ap-config.c:82
 msgid "Upload"
 msgstr "úÁ×ÁÎÔÁÖÉÔÉ"
 
-#: src/ap-config.c:80
+#: src/ap-config.c:82
 msgid "Activate current configuration"
 msgstr "áËÔÉצÚÕ×ÁÔÉ ÐÏÔÏÞÎÕ ËÏÎƦÇÕÒÁæÀ"
 
-#: src/ap-config.c:81
+#: src/ap-config.c:83
 msgid "Defaults"
 msgstr "æÁÂÒ¦ÞΦ"
 
-#: src/ap-config.c:81
+#: src/ap-config.c:83
 msgid "Restore factory default settings"
 msgstr "÷¦ÄÎÏ×ÉÔÉ ÆÁÂÒ¦ÞΦ ÎÁÓÔÒÏÊËÉ."
 
-#: src/ap-config.c:82 src/ap-config.c:89
+#: src/ap-config.c:84 src/ap-config.c:91
 msgid "Reset"
 msgstr "òÅÓÔÁÒÔ"
 
-#: src/ap-config.c:83
+#: src/ap-config.c:85
 msgid "Reset AP. All not uploaded configuration will be lost"
 msgstr "ðÅÒÅÚÁ×ÁÎÔÁÖÉÔÉ áò. îÅÁËÔÉצÚÏ×ÁΦ ÚͦÎÉ Õ ËÏÎƦÇÕÒÁ槠ÂÕÄÁ ×ÔÒÁÞÅÎÏ."
 
-#: src/ap-config.c:84
+#: src/ap-config.c:86
 msgid "TestMode"
 msgstr "ôÅÓÔ"
 
-#: src/ap-config.c:84
+#: src/ap-config.c:86
 msgid "Put Access Point in test mode"
 msgstr "ðÏÓÔÁ×ÉÔÉ áò Õ ÔÅÓÔÏ×ÉÊ ÒÅÖÉÍ"
 
-#: src/ap-config.c:89
+#: src/ap-config.c:91
 msgid "Reset AP."
 msgstr "òÅÓÔÁÒÔ"
 
-#: src/ap-config.c:110 src/ap-config.c:120
+#: src/ap-config.c:112 src/ap-config.c:122
 msgid "SysInfo"
 msgstr "óÉÓÔÅÍÁ"
 
-#: src/ap-config.c:111 src/bridge.c:123 src/bridge.c:127
+#: src/ap-config.c:113 src/bridge.c:124 src/bridge.c:127
 msgid "Ethernet"
 msgstr "åÚÅÒÎÅÔ"
 
-#: src/ap-config.c:111
+#: src/ap-config.c:113
 msgid "Get ethernet port statistics"
 msgstr "ïÔÒÉÍÁÔÉ ÓÔÁÔÉÓÔÉËÕ ÅÚÅÒÎÅÔ ÐÏÒÔÕ"
 
-#: src/ap-config.c:113 src/ap-config.c:122
+#: src/ap-config.c:115 src/ap-config.c:124
 msgid "Stations"
 msgstr "óÔÁÎæ§"
 
-#: src/ap-config.c:114
+#: src/ap-config.c:116
 #, fuzzy
 msgid "AP link"
 msgstr "óÔÁΠÚ×'ÑÚËÕ Ú AP"
 
-#: src/ap-config.c:115
+#: src/ap-config.c:117
 msgid "KnownAPs"
 msgstr "÷¦ÄÏͦôÏÞËÉ"
 
-#: src/ap-config.c:115
+#: src/ap-config.c:117
 msgid "Get info about known Access Points"
 msgstr "ïÔÒÉÍÁÔÉ ¦ÎÆÏÒÍÁÃÉÀ ÐÒϠצÄÏͦ ôÏÞËÉ äÏÓÔÕÐÕ"
 
-#: src/ap-config.c:123
+#: src/ap-config.c:125
 msgid "Latest"
 msgstr "ðÏĦ§"
 
-#: src/ap-config.c:123
+#: src/ap-config.c:125
 msgid "Get info about latest events"
 msgstr "ïÔÒÉÍÁÔÉ ¦ÎÆÏÒÍÁæÀ ÐÒÏ ÏÓÔÁÎΦ ÐÏĦ§"
 
-#: src/ap-config.c:148
+#: src/ap-config.c:150
 msgid "Info"
 msgstr "¶ÎÆÏÒÍÁæÑ"
 
-#: src/ap-config.c:149
+#: src/ap-config.c:151
 msgid "Config"
 msgstr "õÓÔÁÎÏ×ËÉ"
 
-#: src/ap-config.c:150
+#: src/ap-config.c:152
 msgid "Commands"
 msgstr "ëÏÍÁÎÄÉ"
 
-#: src/ap-config.c:150
+#: src/ap-config.c:152
 msgid "Execute commands on Access Point"
 msgstr "÷ÉËÏÎÁÔÉ ËÏÍÁÎÄÉ ÎÁ áò"
 
-#: src/ap-config.c:152
+#: src/ap-config.c:154
 msgid "Connect"
 msgstr "ú'¤ÄÎÁÎÎÑ"
 
-#: src/ap-config.c:153
+#: src/ap-config.c:155
 msgid "Search"
 msgstr "ðÏÛÕË"
 
-#: src/ap-config.c:155
+#: src/ap-config.c:156
+#, fuzzy
+msgid "Polling"
+msgstr "ïÐÉÔÕ×ÁÎÎÑ: ÔÁË"
+
+#: src/ap-config.c:157
 msgid "Shell"
 msgstr "ïÂÏÌÏÎËÁ"
 
-#: src/ap-config.c:156
+#: src/ap-config.c:159
 msgid "Exit"
 msgstr "÷ÉȦÄ"
 
-#: src/ap-config.c:214
+#: src/ap-config.c:218
 #, c-format
 msgid "Wireless Access Point Configurator ver. %s"
 msgstr "ëÏÎƦÇÕÒÁÔÏÒ ÔÏÞËÉ ÄÏÓÔÕÐÕ ÒÁĦÏÍÅÒÅÖ¦ ×ÅÒ. %s"
 
-#: src/aplink.c:28
+#: src/aplink.c:25
 msgid "RSSI:     ["
 msgstr ""
 
-#: src/aplink.c:29
+#: src/aplink.c:26
 msgid "RSSI avg: ["
 msgstr ""
 
-#: src/aplink.c:30
+#: src/aplink.c:27
 msgid "RSSI top: ["
 msgstr ""
 
-#: src/aplink.c:112
+#: src/aplink.c:28
+msgid "RSSI rou: ["
+msgstr ""
+
+#: src/aplink.c:29
+#, fuzzy
+msgid ""
+"P - pause, T - toggle graph view, Q - quit to menu, Other key - force update."
+msgstr "Q - ×ÉÊÔÉ × ÍÅÎÀ. T - ÐÅÒÅÍËÎÕÔÉ ÒÅÖÉÍ ÚÁÐÉÔÕ, ¶ÎÛ¦ - ÐÏÎÏ×ÉÔÉ."
+
+#: src/aplink.c:81
+msgid "RSSI [%]"
+msgstr ""
+
+#: src/aplink.c:82
+msgid "RSSI average [%]"
+msgstr ""
+
+#: src/aplink.c:83
+msgid "RSSI rounded [%]"
+msgstr ""
+
+#: src/aplink.c:84
+#, fuzzy
+msgid "Link Quality [%]"
+msgstr "; LQ: ñ˦ÓÔØ Ú'¤ÄÎÁÎÎÑ [%]"
+
+#: src/aplink.c:133
 msgid "Not available - device must have firmware with necessary "
 msgstr ""
 
-#: src/aplink.c:114
+#: src/aplink.c:135
 msgid "vendor extensions and be in either 'Access Point client'"
 msgstr ""
 
-#: src/aplink.c:116
+#: src/aplink.c:137
 msgid "or 'Repeater' mode."
 msgstr ""
 
-#: src/ap-mrtg.c:43
+#: src/ap-mrtg.c:42
 #, fuzzy
 msgid ""
 "\tap-mrtg -i ip -c community -t type [-b bssid] [-n name] [-v] [-h] [-r]\n"
@@ -1568,7 +1606,7 @@ msgstr ""
 "h] [-r]\n"
 "\n"
 
-#: src/ap-mrtg.c:45
+#: src/ap-mrtg.c:44
 msgid ""
 "Get stats from AP and return it in MRTG parsable format\n"
 "\n"
@@ -1576,7 +1614,7 @@ msgstr ""
 "ïÔÒÉÍÕ¤ ÄÁÎΦ Ú ÔÏÞËÉ ÄÏÓÔÕÐÕ ÔÁ ÐÏ×ÅÒÔÁ¤ §È Õ MRTG ÆÏÒÍÁÔ¦\n"
 "\n"
 
-#: src/ap-mrtg.c:48
+#: src/ap-mrtg.c:47
 #, fuzzy
 msgid ""
 "-t type      - statistics type <w>ireless, <e>thernet, associated <s>tations "
@@ -1585,11 +1623,11 @@ msgstr ""
 "-t ÔÉР      - ÔÉРÓÔÁÔÉÓÔÉËÉ w - ÒÁĦÏ, e - ÅÚÅÒÎÅÔ, s - ÁÓÏæÊÏ×ÁΦ "
 "ÓÔÁÎ槠ÁÂÏ l - Ñ˦ÓÔØ ËÁÎÁÌÕ Õ ÒÅÖÉͦ Ë̦ÅÎÔÁ\n"
 
-#: src/ap-mrtg.c:50
+#: src/ap-mrtg.c:49
 msgid "work with ATMEL410 MIB devices in AP Client mode)\n"
 msgstr ""
 
-#: src/ap-mrtg.c:51
+#: src/ap-mrtg.c:50
 #, fuzzy
 msgid ""
 "-b bssid     - mac address of the AP from which get link quality, only if "
@@ -1598,23 +1636,23 @@ msgstr ""
 "-b bssid     - ÍÁË-ÁÄÒÅÓÁ ÂÁÚÏ×ϧ ÓÔÁÎ槠ÄÏ ÑËϧ ×ÉÚÎÁÞÁÔÉ Ñ˦ÓÔØ "
 "̦ÎËÕ×ÉËÏÒÉÓÔÏ×ÕÊÔÅ Ô¦ÌØ˦ ÌÉÛÅ, ÑËÝÏ ÔÉÐ=l\n"
 
-#: src/ap-mrtg.c:53
+#: src/ap-mrtg.c:52
 #, fuzzy
 msgid "-n name      - AP name - for check only\n"
 msgstr "-n ÎÁÚ×Á     - ÎÁÚ×Á ÔÏÞËÉ ÄÏÓÔÕÐÕ (ÌÉÛÅ ÄÌÑ ÐÅÒÅצÒËÉ)\n"
 
-#: src/ap-mrtg.c:54
+#: src/ap-mrtg.c:53
 msgid "-v           - report MRTG about problems connecting to AP\n"
 msgstr ""
 "-v           - ÐÏצÄÏÍÌÑÔÉ MRTG ÐÒÏ ÐÏÍÉÌËÉ Ú`¤ÄÎÁÎÎÑ Ú ÔÏÞËÏÀ ÄÏÓÔÕÐÕ\n"
 
-#: src/ap-mrtg.c:55 src/ap-rrd.c:56
+#: src/ap-mrtg.c:54 src/ap-rrd.c:54
 msgid "-r           - reset AP when getting LinkQuality stats\n"
 msgstr ""
 "-r           - ÒÅÓÔÁÒÔÕ×ÁÔÉ ÔÏÞËÕ ÄÏÓÔÕÐÕ ÐÒÉ ÏÔÒÉÍÁÎΦ ÄÁÎÎÉÈ ÐÒÏ Ñ˦ÓÔØ "
 "̦ÎËÕ\n"
 
-#: src/ap-mrtg.c:57
+#: src/ap-mrtg.c:56
 #, c-format
 msgid ""
 "ap-mrtg %s Copyright (c) 2002-2003 Roman Festchook\n"
@@ -1623,7 +1661,12 @@ msgstr ""
 "ap-mrtg %s Copyright (c) 2002-2003 òÏÍÁΠæÅÝÕË\n"
 "\n"
 
-#: src/ap-rrd.c:44
+#: src/ap-rrd.c:32
+#, c-format
+msgid "Error getting data from AP %s\n"
+msgstr ""
+
+#: src/ap-rrd.c:42
 #, fuzzy
 msgid ""
 "\tap-rrd -i ip -c community -t type -d db_file [-b bssid] [-n name] [-a "
@@ -1634,7 +1677,7 @@ msgstr ""
 "h] [-r]\n"
 "\n"
 
-#: src/ap-rrd.c:46
+#: src/ap-rrd.c:44
 #, fuzzy
 msgid ""
 "Get stats from AP and put it in to specified RRDtool database\n"
@@ -1643,7 +1686,7 @@ msgstr ""
 "ïÔÒÉÍÕ¤ ÄÁÎΦ Ú ÔÏÞËÉ ÄÏÓÔÕÐÕ ÔÁ ÐÏ×ÅÒÔÁ¤ §È Õ MRTG ÆÏÒÍÁÔ¦\n"
 "\n"
 
-#: src/ap-rrd.c:50
+#: src/ap-rrd.c:48
 msgid ""
 "-t type      - statistics type <w>ireless, <e>thernet, associated <s>tations "
 "or <l>ink quality in client mode\n"
@@ -1651,11 +1694,11 @@ msgstr ""
 "-t ÔÉР      - ÔÉРÓÔÁÔÉÓÔÉËÉ w - ÒÁĦÏ, e - ÅÚÅÒÎÅÔ, s - ÁÓÏæÊÏ×ÁΦ "
 "ÓÔÁÎ槠ÁÂÏ l - Ñ˦ÓÔØ ËÁÎÁÌÕ Õ ÒÅÖÉͦ Ë̦ÅÎÔÁ\n"
 
-#: src/ap-rrd.c:51
+#: src/ap-rrd.c:49
 msgid "-d db_file   - RRD database file with full path\n"
 msgstr ""
 
-#: src/ap-rrd.c:53
+#: src/ap-rrd.c:51
 msgid ""
 "-b bssid     - mac address of the AP to which get link quality, only if "
 "type=l\n"
@@ -1663,11 +1706,11 @@ msgstr ""
 "-b bssid     - ÍÁË-ÁÄÒÅÓÁ ÂÁÚÏ×ϧ ÓÔÁÎ槠ÄÏ ÑËϧ ×ÉÚÎÁÞÁÔÉ Ñ˦ÓÔØ "
 "̦ÎËÕ×ÉËÏÒÉÓÔÏ×ÕÊÔÅ Ô¦ÌØ˦ ÌÉÛÅ, ÑËÝÏ ÔÉÐ=l\n"
 
-#: src/ap-rrd.c:54
+#: src/ap-rrd.c:52
 msgid "-n name     - AP name - for check only\n"
 msgstr "-n ÎÁÚ×Á     - ÎÁÚ×Á ÔÏÞËÉ ÄÏÓÔÕÐÕ (ÌÉÛÅ ÄÌÑ ÐÅÒÅצÒËÉ)\n"
 
-#: src/ap-rrd.c:55
+#: src/ap-rrd.c:53
 #, fuzzy
 msgid ""
 "-a aptype    - AP type - 410 (default) or 510 for ATMEL12350's, like the ME-"
@@ -1676,7 +1719,7 @@ msgstr ""
 "-a ÔÉР          - ÔÉРÔÏÞËÉ ÄÏÓÔÕÐÕ - 410 (ÐÏ ÚÁÍÏ×ÞÕ×ÁÎÎÀ) ÁÂÏ 510 ÄÌÑ "
 "ATMEL12350, ÑË íå-102\n"
 
-#: src/ap-rrd.c:58
+#: src/ap-rrd.c:56
 #, fuzzy, c-format
 msgid ""
 "ap-rrd %s Copyright (c) 2002-2004 Roman Festchook\n"
@@ -1685,161 +1728,162 @@ msgstr ""
 "ap-mrtg %s Copyright (c) 2002-2003 òÏÍÁΠæÅÝÕË\n"
 "\n"
 
-#: src/ap-rrd.c:142
+#: src/ap-rrd.c:133
 msgid "Invalid IP-address\n"
 msgstr "îÅצÒÎÁ ¶ò ÁÄÒÅÓÁ\n"
 
-#: src/ap-rrd.c:188
+#: src/ap-rrd.c:179
 #, c-format
 msgid "Invalid AP-Type '%s' - valid types are 510 or 410\n"
 msgstr "îÅצÒÎÉÊ ÔÉР'%s' - ÄÏÚ×ÏÌÅΦ ÔÉÐÉ 510 ÔÁ 410\n"
 
-#: src/ap-tftp.c:81
+#: src/ap-tftp.c:84
 #, fuzzy
 msgid "yes"
 msgstr "ôÁË"
 
-#: src/ap-tftp.c:82
+#: src/ap-tftp.c:85
 #, fuzzy
 msgid "no"
 msgstr "¶ÎÆÏÒÍÁæÑ"
 
-#: src/ap-tftp.c:84
+#: src/ap-tftp.c:87
 msgid "Error while read()ing firmware file"
 msgstr ""
 
-#: src/ap-tftp.c:88
+#: src/ap-tftp.c:100
 msgid "Undefined error"
 msgstr ""
 
-#: src/ap-tftp.c:89
+#: src/ap-tftp.c:101
 msgid "File not found"
 msgstr ""
 
-#: src/ap-tftp.c:90
+#: src/ap-tftp.c:102
 #, fuzzy
 msgid "Access violation"
 msgstr "âÁÚÏ×Á ÓÔÁÎæÑ"
 
-#: src/ap-tftp.c:91
+#: src/ap-tftp.c:103
 msgid "Disk full or allocation error"
 msgstr ""
 
-#: src/ap-tftp.c:92
+#: src/ap-tftp.c:104
 msgid "Illegal TFTP operation"
 msgstr ""
 
-#: src/ap-tftp.c:93
+#: src/ap-tftp.c:105
 msgid "Unknown transfer ID"
 msgstr ""
 
-#: src/ap-tftp.c:94
+#: src/ap-tftp.c:106
 msgid "File already exists"
 msgstr ""
 
-#: src/ap-tftp.c:95
+#: src/ap-tftp.c:107
 msgid "No such user"
 msgstr ""
 
-#: src/ap-tftp.c:161
+#: src/ap-tftp.c:157
 msgid "Remote-filename too long.\n"
 msgstr ""
 
-#: src/ap-tftp.c:187
+#: src/ap-tftp.c:183
 #, c-format
 msgid "%sError in read()"
 msgstr ""
 
-#: src/ap-tftp.c:215
+#: src/ap-tftp.c:212
 #, c-format
 msgid "sending %u bytes\n"
 msgstr ""
 
-#: src/ap-tftp.c:224
+#: src/ap-tftp.c:221
 #, c-format
 msgid "%sError in sendto()"
 msgstr ""
 
-#: src/ap-tftp.c:247
+#: src/ap-tftp.c:244
 #, c-format
 msgid "%sError in recvfrom()"
 msgstr ""
 
-#: src/ap-tftp.c:261
+#: src/ap-tftp.c:256
 #, c-format
-msgid "\rProgress: uploaded %.0f %%."
+msgid "\rProgress: uploaded %3i%%."
 msgstr ""
 
-#: src/ap-tftp.c:272
+#: src/ap-tftp.c:267
 #, c-format
 msgid "%sMalformed packet received. Aborting.\n"
 msgstr ""
 
-#: src/ap-tftp.c:281
+#: src/ap-tftp.c:276
 #, c-format
 msgid "%sTimed out waiting for response from server (%i/%i).\n"
 msgstr ""
 
-#: src/ap-tftp.c:288
+#: src/ap-tftp.c:283
 #, c-format
 msgid "%sError in select()"
 msgstr ""
 
-#: src/ap-tftp.c:302
+#: src/ap-tftp.c:297
 #, c-format
 msgid "Received %d bytes: %04x %04x\n"
 msgstr ""
 
-#: src/ap-tftp.c:313
+#: src/ap-tftp.c:308
 #, c-format
 msgid "%sError: server responded with %s. Aborting.\n"
 msgstr ""
 
-#: src/ap-tftp.c:320
+#: src/ap-tftp.c:315
 #, c-format
 msgid "%sFlash programming in progress...\n"
 msgstr ""
 
-#: src/ap-tftp.c:322
+#: src/ap-tftp.c:317
 msgid "Finished successfully.\n"
 msgstr ""
 
-#: src/ap-tftp.c:340
+#: src/ap-tftp.c:335
 msgid "PLEASE BE _ABSOLUTELY_ SURE TO READ MANPAGE PRIOR USE!!!\n"
 msgstr ""
 
-#: src/ap-tftp.c:341
+#: src/ap-tftp.c:337
 #, c-format
 msgid ""
 "\n"
-"Usage: %s <-l firmware_file.rom> <IP>\n"
+"Usage: %s -i IP -f firmware_file.rom [-c community] [-h]\n"
 msgstr ""
 
-#: src/ap-tftp.c:363
+#: src/ap-tftp.c:361
 msgid "TFTP client for upgrading firmware in ATMEL AT76C510 WiSOC-based APs.\n"
 msgstr ""
 
-#: src/ap-tftp.c:365
+#: src/ap-tftp.c:363
 msgid "(C) 2004-2005 Jan Rafaj <jr-aputils at cedric dot unob dot cz>\n"
 msgstr ""
 
-#: src/ap-tftp.c:391
-msgid "Error: invalid arguments given.\n"
-msgstr ""
-
-#: src/ap-tftp.c:398
+#: src/ap-tftp.c:379
 msgid "Error: invalid IP address format given.\n"
 msgstr ""
 
 #: src/ap-tftp.c:405
+#, fuzzy
+msgid "Error: invalid argument combination.\n"
+msgstr "îÅצÒÎÁ ¶ò ÁÄÒÅÓÁ\n"
+
+#: src/ap-tftp.c:412
 msgid "Error while open()ing firmware file"
 msgstr ""
 
-#: src/ap-tftp.c:411 src/ap-tftp.c:462
+#: src/ap-tftp.c:419 src/ap-tftp.c:472
 msgid "Error: invalid firmware file given.\n"
 msgstr ""
 
-#: src/ap-tftp.c:451
+#: src/ap-tftp.c:461
 #, c-format
 msgid ""
 "Firmware file contains:\n"
@@ -1849,7 +1893,7 @@ msgid ""
 "- string \"atsingle.bin\": %s\n"
 msgstr ""
 
-#: src/ap-tftp.c:474
+#: src/ap-tftp.c:485
 #, c-format
 msgid ""
 "Using:\n"
@@ -1858,7 +1902,16 @@ msgid ""
 "- name used for upload: \"%s\"\n"
 msgstr ""
 
-#: src/ap-tftp.c:537
+#: src/ap-tftp.c:568
+msgid ""
+"Error: device with the given IP does not seem to run SmartBridges firmware.\n"
+msgstr ""
+
+#: src/ap-tftp.c:574
+msgid "Error: SNMP authorization error or device unavailable.\n"
+msgstr ""
+
+#: src/ap-tftp.c:653
 msgid "Error while lseek()ing in firmware file\n"
 msgstr ""
 
@@ -1952,7 +2005,7 @@ msgstr ""
 
 #: src/auth.c:41
 #, fuzzy
-msgid "[T] Reauthorization time (sec): "
+msgid "[T] Reauthorization time (minutes): "
 msgstr "[A] Máó Á×ÔÏÒÉÚÁæÑ: "
 
 #: src/auth.c:42
@@ -1973,7 +2026,7 @@ msgstr "[A] M
 
 #: src/auth.c:46
 #, fuzzy
-msgid "[T] key broadcasting time period (sec): "
+msgid "[T] key broadcasting time period (seconds): "
 msgstr "[B] ðÅÒ¦ÏÄ ÂÅËÏΦנ(ÍÓÅË): "
 
 #: src/auth.c:47
@@ -2016,16 +2069,16 @@ msgstr ""
 msgid "(not shown)"
 msgstr ""
 
-#: src/auth.c:270
+#: src/auth.c:276
 #, fuzzy
 msgid "Authorized MAC addresses:"
 msgstr "á×ÔÏÒÉÚÏ×ÁΦ íáó ÁÄÒÅÓÉ"
 
-#: src/auth.c:339
+#: src/auth.c:345
 msgid "(insufficient community used)"
 msgstr ""
 
-#: src/auth.c:466
+#: src/auth.c:472
 #, c-format
 msgid "Given MAC already exists in MAC list at position %d. Press any key."
 msgstr ""
@@ -2092,15 +2145,15 @@ msgstr "[U] 
 msgid "INGFPDOMSCRBUT - set; W - write conf; Q - quit to menu"
 msgstr "INGFPDOMSCTRBU - ×ÓÔÁÎÏ×ÉÔÉ; W - ÚÁÐÉÓÁÔÉ; Q - ×ÉÊÔÉ"
 
-#: src/bridge.c:126
-msgid "Both"
-msgstr "ïÂÉÄ×Á"
-
 #: src/bridge.c:128
 #, fuzzy
 msgid "Wireless (can be risky)"
 msgstr "ðÁÒÁÍÅÔÒÉ ÒÁĦÏÍÅÒÅÖ¦"
 
+#: src/bridge.c:129
+msgid "Both"
+msgstr "ïÂÉÄ×Á"
+
 #: src/nwn_advanced.c:60
 #, c-format
 msgid "[D] DB Station Timeout: %d"
@@ -2152,30 +2205,45 @@ msgstr "
 msgid "Not available (device not in AP mode)."
 msgstr ""
 
-#: src/stations.c:93
+#: src/stations.c:92
 #, fuzzy
 msgid "  #     MAC       Parent MAC  RSSI   LQ Sts MACn      IP        "
 msgstr " #     MAC       MAC ÂÁÚÉ      RSSI   óÔÁÔÕ MACn      IP        "
 
-#: src/stations.c:139
+#: src/stations.c:136
 msgid "AssociatedSTAsInfo packet error"
 msgstr "ðÏÍÉÌËÏ×ÉÊ ÐÁËÅÔ AssociatedSTAsInfo."
 
-#: src/stations.c:192 src/stations.c:364
+#: src/stations.c:189 src/stations.c:363
 msgid ""
 "Arrows - scroll; S - save to file; Q - return; T - toggle view; Other - "
 "refresh"
 msgstr ""
 "óÔÒ¦ÌËÉ - ÐÒÏËÒÕÔËÁ; S - ÚÂÅÒÅÇÔÉ Õ ÆÁÊÌ; T - ÐÅÒÅÍËÎÕÔÉ; Q - ×ÉÊÔÉ × ÍÅÎÀ."
 
-#: src/stations.c:196
+#: src/stations.c:193
 msgid "Arrows - scroll; S - save to file; Q - return; Other key - refresh"
 msgstr "óÔÒ¦ÌËÉ - ÐÒÏËÒÕÔËÁ; S - ÚÂÅÒÅÇÔÉ Õ ÆÁÊÌ; Q - ×ÉÊÔÉ × ÍÅÎÀ."
 
-#: src/stations.c:276
+#: src/stations.c:275
 msgid "Id       MAC address     Quality  Age  RSSI"
 msgstr "#        MAC ÁÄÒÅÓÁ      ñ˦ÓÔØ âÅÚĦѠóÉÌÁ ÓÉÇÎÁÌÕ"
 
+#~ msgid "Please enter SNMP community name that will be used for AP detection."
+#~ msgstr "÷×ÅĦÔØ SNMP ËÏÍ'ÀΦԦ, ÝÏ ÂÕÄÅ ×ÉËÏÒÉÓÔÁÎÏ ÄÌÑ ÐÏÛÕËÕ áò"
+
+#~ msgid "Create socket error. Press any key."
+#~ msgstr "ðÏÍÉÌËÁ ÓÔ×ÏÒÅÎÎÑ ÓÏËÅÔÕ. âÕÄØ ÑËÁ ËÌÁצÛÁ ÄÌÑ ÐÒÏÄÏ×ÖÅÎÎÑ"
+
+#~ msgid "Bind socket error. Press any key."
+#~ msgstr "ðÏÍÉÌËÁ ÐÒÉ×`ÑÚËÉ ÓÏËÅÔÕ. âÕÄØ ÑËÁ ËÌÁצÛÁ ÄÌÑ ÐÒÏÄÏ×ÖÅÎÎÑ"
+
+#~ msgid "Create socket error"
+#~ msgstr "ðÏÍÉÌËÁ ÓÔ×ÏÒÅÎÎÑ ÓÏËÅÔÕ"
+
+#~ msgid "Bind socket error"
+#~ msgstr "ðÏÍÉÌËÁ ÐÒÉ×`ÑÚËÉ ÓÏËÅÔÕ"
+
 #~ msgid "NUM       MAC address"
 #~ msgstr "#         íáó ÁÄÒÅÓÁ"
 
index 70edeebc8c7ab7080c6f5b5eeedd6078844323e9..78305481b9d88fa5cef494fa4dc537180504c34a 100644 (file)
@@ -27,17 +27,17 @@ sbin_PROGRAMS = ap-trapd
 ap_config_SOURCES = ap-config.c auth.c bridge.c nwn_advanced.c nwn_latest.c stations.c aplink.c
 ap_config_LDADD = ../lib/libap.a -lmenu @CURSESLIBS@
 
-ap_mrtg_SOURCES = ap-mrtg.c
-ap_mrtg_LDADD = ../lib/libap.a
+ap_tftp_SOURCES = ap-tftp.c
+ap_tftp_LDADD = ../lib/libap.a
 
 ap_trapd_SOURCES = ap-trapd.c
 
 ap_auth_SOURCES = ap-auth.c
 ap_auth_LDADD = ../lib/libap.a
 
+ap_mrtg_SOURCES = ap-mrtg.c
+ap_mrtg_LDADD = ../lib/libap.a
+
 ap_rrd_SOURCES = ap-rrd.c
 ap_rrd_LDADD = ../lib/libap.a
 
-
-ap_tftp_SOURCES = ap-tftp.c
-
index 969f8f885ee7210092d2473f83732536ce9bcab7..7f05e48b84fd3c98153ce7a5403bd7a5798701cf 100644 (file)
@@ -166,18 +166,19 @@ sbin_PROGRAMS = ap-trapd
 ap_config_SOURCES = ap-config.c auth.c bridge.c nwn_advanced.c nwn_latest.c stations.c aplink.c
 ap_config_LDADD = ../lib/libap.a -lmenu @CURSESLIBS@
 
-ap_mrtg_SOURCES = ap-mrtg.c
-ap_mrtg_LDADD = ../lib/libap.a
+ap_tftp_SOURCES = ap-tftp.c
+ap_tftp_LDADD = ../lib/libap.a
 
 ap_trapd_SOURCES = ap-trapd.c
 
 ap_auth_SOURCES = ap-auth.c
 ap_auth_LDADD = ../lib/libap.a
 
+ap_mrtg_SOURCES = ap-mrtg.c
+ap_mrtg_LDADD = ../lib/libap.a
+
 ap_rrd_SOURCES = ap-rrd.c
 ap_rrd_LDADD = ../lib/libap.a
-
-ap_tftp_SOURCES = ap-tftp.c
 subdir = src
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs
@@ -208,8 +209,7 @@ ap_rrd_DEPENDENCIES = ../lib/libap.a
 ap_rrd_LDFLAGS =
 am_ap_tftp_OBJECTS = ap-tftp.$(OBJEXT)
 ap_tftp_OBJECTS = $(am_ap_tftp_OBJECTS)
-ap_tftp_LDADD = $(LDADD)
-ap_tftp_DEPENDENCIES =
+ap_tftp_DEPENDENCIES = ../lib/libap.a
 ap_tftp_LDFLAGS =
 am_ap_trapd_OBJECTS = ap-trapd.$(OBJEXT)
 ap_trapd_OBJECTS = $(am_ap_trapd_OBJECTS)
index 9b8b95fb35ae6fe487a2bb63019e73dc46cb8eec..9375c3d568cb964207e4055959365e51e9cf4716 100644 (file)
@@ -37,7 +37,6 @@
 
 short ap_type;
 char *community = NULL;
-int sockfd;
 struct in_addr ap_ip;
 
 void usage()
@@ -95,10 +94,8 @@ int main(int argc, char **argv)
     extern int optopt;
     int opt = 0;
     int mode = 0; /* 1 = download, 2 = upload */
-
     FILE *f;
     char *filename = NULL;
-    struct sockaddr_in client;
 
     struct AuthorizedMacTableString {
        unsigned int short Action;
@@ -132,11 +129,6 @@ int main(int argc, char **argv)
     textdomain("ap-utils");
 #endif
 
-    memset(&client, 0, sizeof client);
-    client.sin_family = AF_INET;
-    client.sin_port = INADDR_ANY;
-    client.sin_addr.s_addr = INADDR_ANY;
-
     do {
        opterr = 0;
        switch (opt = getopt(argc, argv, "i:c:d:u:")) {
@@ -174,15 +166,6 @@ int main(int argc, char **argv)
        return 1;
     }
 
-    if ((sockfd = socket(AF_INET, SOCK_DGRAM, 0)) == -1) {
-       perror(_("Create socket error"));
-       return 1;
-    }
-    if (bind(sockfd, (struct sockaddr *) &client, SIZE) == -1) {
-       perror(_("Bind socket error"));
-       return 1;
-    }
-
     /*
      * Part detecting ap_type (ATMEL AP MIB type) follows.
      * We could use get_mib_details() here with advantage, but it would
@@ -386,8 +369,6 @@ int main(int argc, char **argv)
        return 1;
     }
 
-    close(sockfd);
-
     curr = first;
     while (curr != NULL) {
         curr = curr->next;
index e17926d75339ca318975b88d994cc50a957e9348..fa82c8c2faccc7ecbb9165c20d4e9cc62dceb1cb 100644 (file)
 #include <sys/ioctl.h>
 #include "ap-utils.h"
 
+extern short ap_type;
+extern int snmp_quit_by_keypress;
+
 WINDOW *win_for_menu, *sub_for_menu, *win_for_help, *main_win, *main_sub;
 char *community;
-int sockfd, atmel410_filter = 0, wait_mode = WAIT_FOREVER;
+int atmel410_filter = 0, wait_mode = WAIT_FOREVER;
 struct in_addr ap_ip;
 char *prog_title = "Wireless Access Point Configurator";
 char set_oeminfo_allowed = 0;
-extern short ap_type;
 
 void config_menu()
 {
@@ -151,8 +153,9 @@ void main_menu()
         command_menu, 1},
        {_("Connect"), MENU_CONNECT, _auth, 0},
        {_("Search"), MENU_SEARCH, ap_search, 0},
-       {_("About"), MENU_ABOUT, about, 0},
+       {_("Polling"), MENU_POLLING, polling_interval, 0},
        {_("Shell"), MENU_SHELL, exit_shell, 0},
+       {_("About"), MENU_ABOUT, about, 0},
        {_("Exit"), MENU_EXIT, exit_program, 0},
        {0, 0, NULL, 0}
     };
@@ -184,7 +187,7 @@ int main( /*int argc, char **argv */ )
        init_pair (COLOR_GREEN, COLOR_GREEN, COLOR_BLACK);
        init_pair (COLOR_YELLOW, COLOR_YELLOW, COLOR_BLACK);
        init_pair (COLOR_BLUE, COLOR_BLUE, COLOR_BLACK);
-       init_pair (COLOR_MAGENTA, COLOR_MAGENTA, COLOR_BLACK );
+       init_pair (COLOR_MAGENTA, COLOR_MAGENTA, COLOR_BLACK);
        init_pair (COLOR_CYAN, COLOR_CYAN, COLOR_BLACK);
 
        init_pair(11, COLOR_BLACK, COLOR_CYAN);
@@ -199,6 +202,7 @@ int main( /*int argc, char **argv */ )
     scrollok(stdscr, TRUE);
     idlok(stdscr, TRUE);
     keypad(stdscr, TRUE);
+    snmp_quit_by_keypress = 1;
     refresh();
 
 /* draw help win */
@@ -263,4 +267,3 @@ int main( /*int argc, char **argv */ )
 /* Not reachable */
     return 0;
 }
-
index b64a4e8582e5a1be247a134149844d0c0c22f962..7dec50ace31fcf7d28dfc20e701c1777a432dc14 100644 (file)
@@ -34,7 +34,6 @@
 
 short ap_type;
 char *community = NULL;
-int sockfd;
 struct in_addr ap_ip;
 
 void usage()
@@ -112,7 +111,6 @@ int main(int argc, char **argv)
     int i, reset_flag=0;
     char message[12], bssid_flag,  stat_type = 0, *ERR_STR =
        ERR_STR_N, *bssid = NULL, *name = NULL, *cp;
-    struct sockaddr_in client;
 
 #ifdef HAVE_GETTEXT
     setlocale(LC_ALL, "");
@@ -120,11 +118,6 @@ int main(int argc, char **argv)
     textdomain("ap-utils");
 #endif
 
-    memset(&client, 0, sizeof client);
-    client.sin_family = AF_INET;
-    client.sin_port = INADDR_ANY;
-    client.sin_addr.s_addr = INADDR_ANY;
-
     if (argc < 4) {
        usage();
        exit(0);
@@ -174,15 +167,6 @@ int main(int argc, char **argv)
        goto quit;
     }
 
-    if ((sockfd = socket(AF_INET, SOCK_DGRAM, 0)) == -1) {
-       perror(_("Create socket error"));
-       return 1;
-    }
-    if (bind(sockfd, (struct sockaddr *) &client, SIZE) == -1) {
-       perror(_("Bind socket error"));
-       return 1;
-    }
-
     /*
      * Part detecting ap_type (ATMEL AP MIB type) follows.
      * We could use get_mib_details() here with advantage, but it would
@@ -429,9 +413,6 @@ int main(int argc, char **argv)
         printf("-\n");
     }
 
-    close(sockfd);
-
-    
   quit:
     if (community)
        free(community);
@@ -443,4 +424,3 @@ int main(int argc, char **argv)
        free(name);
     return 0;
 }
-
index 33b5463b507fe350f654f4bf8e058c11b9135923..9b15269636f813042028a7c96bca300e843956e4 100644 (file)
@@ -1,5 +1,5 @@
 /*
- *      ap-mrtg.c from Access Point SNMP Utils for Linux
+ *      ap-rrd.c from Access Point SNMP Utils for Linux
  *
  * Copyright (c) 2002 Roman Festchook <roma at polesye dot net>
  *
 #endif
 #include "ap-utils.h"
 
-#define ERR_STR_V "\n\n-\n\n"
-#define ERR_STR_N "999999999\n999999999\n-\n\n"
+#define ERR_STR _("Error getting data from AP %s\n")
 
 short ap_type = ATMEL410;
 char *community = NULL;
-int sockfd;
 struct in_addr ap_ip;
 
 void usage()
@@ -114,9 +112,7 @@ int main(int argc, char **argv)
     struct wirelessStatistics_s *WirelessStat = NULL;
     varbind varbinds[2];
     int i, reset_flag=0;
-    char message[12], bssid_flag,  stat_type = 0, *ERR_STR =
-       ERR_STR_N, *bssid = NULL, *name = NULL, *rrd_file = NULL, cmd[1024];
-    struct sockaddr_in client;
+    char message[12], bssid_flag,  stat_type = 0, *bssid = NULL, *name = NULL, *rrd_file = NULL, cmd[1024];
 
 #ifdef HAVE_GETTEXT
     setlocale(LC_ALL, "");
@@ -124,11 +120,6 @@ int main(int argc, char **argv)
     textdomain("ap-utils");
 #endif
 
-    memset(&client, 0, sizeof client);
-    client.sin_family = AF_INET;
-    client.sin_port = INADDR_ANY;
-    client.sin_addr.s_addr = INADDR_ANY;
-
     if (argc < 4) {
        usage();
        exit(0);
@@ -202,16 +193,6 @@ int main(int argc, char **argv)
        goto quit;
     }
 
-
-    if ((sockfd = socket(AF_INET, SOCK_DGRAM, 0)) == -1) {
-       perror(_("Create socket error"));
-       return 1;
-    }
-    if (bind(sockfd, (struct sockaddr *) &client, SIZE) == -1) {
-       perror(_("Bind socket error"));
-       return 1;
-    }
-
     switch (stat_type) {
 
     case 'e':
@@ -228,7 +209,7 @@ int main(int argc, char **argv)
        varbinds[1].type = NULL_VALUE;
 
        if (snmp(varbinds, 2, GET) <= 0) {
-           printf(ERR_STR);
+           printf(ERR_STR, inet_ntoa(ap_ip));
            return 1;
        }
 
@@ -240,7 +221,7 @@ int main(int argc, char **argv)
                                                       len_val);
            memcpy(EthRxStat, varbinds[0].value, varbinds[0].len_val);
        } else {
-           printf(ERR_STR);
+           printf(ERR_STR, inet_ntoa(ap_ip));
            return 1;
        }
 
@@ -252,7 +233,7 @@ int main(int argc, char **argv)
                                                       len_val);
            memcpy(EthTxStat, varbinds[1].value, varbinds[1].len_val);
        } else {
-           printf(ERR_STR);
+           printf(ERR_STR, inet_ntoa(ap_ip));
            return 1;
        }
        sprintf(cmd, "rrdtool update %s N:%u:%u", rrd_file, swap4(EthRxStat->TotalBytesRx), swap4(EthTxStat->TotalBytesTx));
@@ -270,7 +251,7 @@ int main(int argc, char **argv)
        varbinds[0].type = NULL_VALUE;
 
        if (snmp(varbinds, 1, GET) <= 0) {
-           printf(ERR_STR);
+           printf(ERR_STR, inet_ntoa(ap_ip));
            return 1;
        }
 
@@ -281,7 +262,7 @@ int main(int argc, char **argv)
                (struct wirelessStatistics_s *) malloc(varbinds[0].len_val);
            memcpy(WirelessStat, varbinds[0].value, varbinds[0].len_val);
        } else {
-           printf(ERR_STR);
+           printf(ERR_STR, inet_ntoa(ap_ip));
            return 1;
        }
        sprintf(cmd, "rrdtool update %s N:%u:%u", rrd_file,
@@ -302,7 +283,7 @@ int main(int argc, char **argv)
        varbinds[0].type = NULL_VALUE;
 
        if (snmp(varbinds, 1, GET) <= 0) {
-           printf(ERR_STR);
+           printf(ERR_STR, inet_ntoa(ap_ip));
            return 1;
        }
 
@@ -318,18 +299,18 @@ int main(int argc, char **argv)
        varbinds[0].type = NULL_VALUE;
 
        if (snmp(varbinds, 1, GET) <= 0) {
-           printf(ERR_STR);
+           printf(ERR_STR, inet_ntoa(ap_ip));
            return 1;
        }
 
        if (*(varbinds[0].value) != 3) {
-           printf(ERR_STR);
+           printf(ERR_STR, inet_ntoa(ap_ip));
            return 1;
        }
 
        if (reset_flag) {
                if (SysReset()) {
-                   printf(ERR_STR);
+                   printf(ERR_STR, inet_ntoa(ap_ip));
                    return 1;
                }
                sleep(10);
@@ -341,7 +322,7 @@ int main(int argc, char **argv)
        varbinds[0].len_val = 0;
 
        if (snmp(varbinds, 1, GET) <= 0) {
-           printf(ERR_STR);
+           printf(ERR_STR, inet_ntoa(ap_ip));
            return 1;
        }
        bssid_flag = 1;
@@ -366,7 +347,7 @@ int main(int argc, char **argv)
            break;
        }
        if (bssid_flag)
-           printf(ERR_STR);
+           printf(ERR_STR, inet_ntoa(ap_ip));
        break;
     default:
        usage();
@@ -396,8 +377,6 @@ int main(int argc, char **argv)
         printf("-\n");
     }
 */
-    close(sockfd);
-
     
   quit:
     if (community)
@@ -410,4 +389,3 @@ int main(int argc, char **argv)
        free(name);
     return 0;
 }
-
index 990de43e7eea26f48004fc185cf89fadc1c25f7d..5e6ac579cbd05651b0292d994545aef51e9f810b 100644 (file)
@@ -1,20 +1,22 @@
 /* ------------------------------------------------------------------------- */
 /* ap-tftp.c                                                                 */
 /*                                                                           */
+/* Version: 1.1                                                              */
+/*                                                                           */
+/* Copyright (C) 2004-2005 Jan Rafaj <jr-aputils at cedric dot unob dot cz>  */
+/*                                                                           */
 /* A simple tftp client for upgrading ATMEL AT76C510 WiSOC-based APs.        */
 /* Supports ATMEL+INTERSIL boards (1.4x.y firmware) and ATMEL+RFMD boards    */
 /* (0.x.y.z firmware).                                                       */
-/* Modelled around TELLUS (GEMTEK/ATMEL OEM) TFTP client functionality.      */
+/* Modelled around TELLUS (GEMTEK/ATMEL OEM) and SMARTBRIDGES TFTP clients   */
+/* functionality.                                                            */
+/* Tested with TELLUS, D-Link and SmartBridges hardware.                     */
 /* This program is part of AP-UTILS project (http://ap-utils.polesye.net)    */
 /*                                                                           */
-/* Copyright (C) 2004-2005 Jan Rafaj <jr-aputils at cedric dot unob dot cz>  */
-/*                                                                           */
 /* Loosely based on a simple tftp client for busybox.                        */
 /* Tries to follow RFC1350.                                                  */
 /* Only "octet" mode and "put" method supported.                             */
 /*                                                                           */
-/* Version: 1.0                                                              */
-/*                                                                           */
 /* Not implemented:                                                          */
 /* - uploading of OEM (default) settings                                     */
 /* - uploading of PATCH code                                                 */
@@ -56,6 +58,7 @@
 #include <arpa/inet.h>
 #include <unistd.h>
 #include <fcntl.h>
+#include "ap-utils.h"
 
 #ifdef HAVE_GETTEXT
 /* GNU gettext stuff*/
@@ -66,7 +69,7 @@
 #define _(String) (String)
 #endif
 
-#define TFTP_BLOCKSIZE_DEFAULT 512 /* according to RFC 1350, don't change */
+#define TFTP_BLOCKSIZE_DEFAULT 512 /* according to RFC 1350, do not change */
 #define TFTP_TIMEOUT 2             /* # seconds waiting for single response */
 #define TFTP_RETRIES 5             /* # retries with TFTP_TIMEOUT */
 #undef FEATURE_TFTP_DEBUG
 #endif
 #define ERR_READFW _("Error while read()ing firmware file")
 
+
+/* This is necessary becouse of linkage to libap.a */
+short ap_type = ATMEL410;
+char *community = NULL;
+struct in_addr ap_ip;
+
+int tftp(int ip, const char *remotefile, int localfd, const char *wopt,
+        int woptlen, int maxdlen)
+{
 /* known errors server may respond with */
-static const char *tftp_error_msg[] = {
+char *tftp_error_msg[8] = {
     _("Undefined error"),
     _("File not found"),
     _("Access violation"),
@@ -94,14 +106,10 @@ static const char *tftp_error_msg[] = {
     _("File already exists"),
     _("No such user")
 };
-
-int tftp(int ip, const char *remotefile, int localfd, const char *options)
-{
     const int port = 69;
     struct sockaddr_in to;
     struct sockaddr_in from;
     struct timeval tv;
-    struct stat sb;
     fd_set rfds;
     unsigned short tmp;
     int fromlen;
@@ -112,8 +120,7 @@ int tftp(int ip, const char *remotefile, int localfd, const char *options)
     int finished = 0;
     int socketfd;
     int len;
-    int maxlen;
-    int optlen;
+    int bc = lseek(localfd, 0, SEEK_CUR);
     char *nl = "";
     char *cp;
     char *buf = malloc(tftp_bufsize);
@@ -121,17 +128,6 @@ int tftp(int ip, const char *remotefile, int localfd, const char *options)
 
     printf("Trying to upload firmware to the AP...\n");
 
-    if (!strcmp(remotefile, "atbrfirm.bin")) {
-       optlen = 8;
-       maxlen = 94448;
-    } else {
-       /* remotefile = atsingle.bin */
-       optlen = 234;
-       maxlen = 0;
-    }
-
-    fstat(localfd, &sb);
-
     if ((socketfd = socket(PF_INET, SOCK_DGRAM, 0)) < 0) {
        perror("socket()");
        return EXIT_FAILURE;
@@ -157,7 +153,7 @@ int tftp(int ip, const char *remotefile, int localfd, const char *options)
        if (opcode == TFTP_WRQ) {
            /* see if the filename fits into buf */
            len = strlen(remotefile) + 1;
-           if ((cp + len + 1 + 6 + optlen) >= &buf[tftp_bufsize - 1]) {
+           if ((cp + len + 1 + 6 + woptlen) >= &buf[tftp_bufsize - 1]) {
                printf(_("Remote-filename too long.\n"));
                break;
            }
@@ -173,8 +169,8 @@ int tftp(int ip, const char *remotefile, int localfd, const char *options)
            cp += 6;
 
            // ATMEL tftp client specific ("upload auth. code")
-           memcpy(cp, options, optlen);
-           cp += optlen;
+           memcpy(cp, wopt, woptlen);
+           cp += woptlen;
        }
 
        if (opcode == TFTP_DATA) {
@@ -192,13 +188,14 @@ int tftp(int ip, const char *remotefile, int localfd, const char *options)
            block_nr++;
 
            /*
-            * assure we wont upload more than maxlen bytes
-            * even if total file length > maxlen
+            * assure we wont upload more than maxdlen bytes
+            * even if total file length > maxdlen
             */
-           if (maxlen && (block_nr - 2) * tftp_bufsize + len > maxlen) {
-               len = maxlen - (block_nr - 2) * tftp_bufsize;
+           if (bc + len > maxdlen) {
+               len = maxdlen - bc;
                cp[len] = '\0';
            }
+           bc += len;
 
            if (len != tftp_bufsize)
                finished++;
@@ -256,10 +253,8 @@ int tftp(int ip, const char *remotefile, int localfd, const char *options)
                    if (to.sin_port == from.sin_port) {
 #ifndef FEATURE_TFTP_DEBUG
                        if (opcode == TFTP_DATA) {
-                           float f = (block_nr - 2) * tftp_bufsize + len;
-
-                           sprintf(buf2, _("\rProgress: uploaded %.0f %%."),
-                               f / sb.st_size * 100);
+                           sprintf(buf2, _("\rProgress: uploaded %3i%%."),
+                               bc * 100 / maxdlen);
                            write(fileno(stdout), buf2, strlen(buf2));
                            nl = "\n";
                        }
@@ -338,12 +333,13 @@ int tftp(int ip, const char *remotefile, int localfd, const char *options)
 void usage(char **argv)
 {
     printf (_("PLEASE BE _ABSOLUTELY_ SURE TO READ MANPAGE PRIOR USE!!!\n"));
-    printf (_("\nUsage: %s <-l firmware_file.rom> <IP>\n"), argv[0]);
+    printf (_(
+       "\nUsage: %s -i IP -f firmware_file.rom [-c community] [-h]\n"),
+       argv[0]);
 }
 
 int main(int argc, char **argv)
 {
-    struct in_addr in;
     struct stat sb;
     char *localfile = NULL;
     char *remotefile = NULL;
@@ -351,7 +347,9 @@ int main(int argc, char **argv)
     int fd;
     int result = 0;
     int i;
-    static char buf[256];
+    static char wopt[256];
+    int woptlen;
+    int maxdlen;
 
 #ifdef HAVE_GETTEXT
     /* locale support init */
@@ -365,75 +363,87 @@ int main(int argc, char **argv)
     printf (_("(C) 2004-2005 Jan Rafaj "
            "<jr-aputils at cedric dot unob dot cz>\n"));
 
-    while ((i = getopt(argc, argv, "l:h")) != -1) {
+    if (argc == 1) {
+       usage(argv);
+       return EXIT_SUCCESS;
+    }
+
+    ap_ip.s_addr = 0;
+
+    while ((i = getopt(argc, argv, "i:f:c:h")) != -1) {
        switch (i) {
-           case 'l': 
+           case 'i':
+               /* host = gethostbyname(optarg); */
+               for (cp = optarg, i = 0; *cp && (cp = index(cp, '.')); cp++, i++);
+               if (i < 3 || !(inet_aton(optarg, &ap_ip))) {
+                   printf(_("Error: invalid IP address format given.\n"));
+                   result = EXIT_FAILURE;
+                   goto quit;
+               }
+               break;
+           case 'f': 
                localfile = strdup(optarg);
                break;
+           case 'c':
+               community = strdup(optarg);
+               break;
            case 'h':
                usage(argv);
-               return EXIT_SUCCESS;
+               result = EXIT_SUCCESS;
+               goto quit;
            default:
-               return EXIT_FAILURE;
+               result = EXIT_FAILURE;
+               goto quit;
        }
     }
 
-    if (argc == 1) {
-       usage(argv);
-       return EXIT_SUCCESS;
-    }
-
     /*
-     * either no mandatory opts, or too few mandatory opts, or more than 1
-     * non-opt arg. specified, or no non-option arg. specified
+     * either any of mandatory options (IP, firmware path) not specified,
+     * or some extra non-option arguments specified
      */
-    if (optind == 1 || optind < 3 || argc > 4 || optind == argc) {
-       printf(_("Error: invalid arguments given.\n"));
-       return EXIT_FAILURE;
+    if (ap_ip.s_addr == 0 || !localfile || optind != argc) {
+       printf(_("Error: invalid argument combination.\n"));
+       result = EXIT_FAILURE;
+       goto quit;
     }
 
-    /* host = gethostbyname(argv[optind]); */
-    for (cp = argv[optind], i = 0; *cp && (cp = index(cp, '.')); cp++, i++);
-    if (i < 3 || !(inet_aton(argv[optind], &in))) {
-       printf(_("Error: invalid IP address format given.\n"));
-       return EXIT_FAILURE;
-    }
-    inet_aton(argv[optind], &in);
-
     fd = open(localfile, O_RDONLY, 0644);
     if (fd < 0) {
        perror(_("Error while open()ing firmware file"));
-       return EXIT_FAILURE;
+       result = EXIT_FAILURE;
+       goto quit;
     }
 
     fstat(fd, &sb);
     if (sb.st_size < 94448 || sb.st_size > 524288) {
        printf(_("Error: invalid firmware file given.\n"));
-       return EXIT_FAILURE;
+       result = EXIT_FAILURE;
+       goto quit;
     }
 
-    while ((i = read(fd, buf, sizeof(buf))) != 0) {
+    while ((i = read(fd, wopt, sizeof(wopt))) != 0) {
        if (i < 0) {
            perror(ERR_READFW);
-           return EXIT_FAILURE;
+           result = EXIT_FAILURE;
+           goto quit;
        }
 
-       if (i == sizeof(buf))
+       if (i == sizeof(wopt))
            lseek(fd, -13, SEEK_CUR);
 
        while (i--) {
-           if (!(memcmp(&buf[i], "ATMEL", 5)))
+           if (!(memcmp(&wopt[i], "ATMEL", 5)))
                result |= 1;
 
-           if (!(memcmp(&buf[i], "802.11 AP", 9)))
+           if (!(memcmp(&wopt[i], "802.11 AP", 9)))
                result |= 2;
 
-           if (!(memcmp(&buf[i], "atbrfirm.bin", 12))) {
+           if (!(memcmp(&wopt[i], "atbrfirm.bin", 12))) {
                result |= 16;
                remotefile = "atbrfirm.bin";
            }
 
-           if (!(memcmp(&buf[i], "atsingle.bin", 12))) {
+           if (!(memcmp(&wopt[i], "atsingle.bin", 12))) {
                result |= 32;
                remotefile = "atsingle.bin";
            }
@@ -445,7 +455,7 @@ int main(int argc, char **argv)
        if (result > 18)
            break;
 
-       memset(buf, 0, sizeof(buf));
+       memset(wopt, 0, sizeof(wopt));
     }
 #if FEATURE_TFTP_DEBUG
     printf(_("Firmware file contains:\n"
@@ -460,7 +470,8 @@ int main(int argc, char **argv)
        (result & (16|32)) == 0)
     {
        printf(_("Error: invalid firmware file given.\n"));
-       return EXIT_FAILURE;
+       result = EXIT_FAILURE;
+       goto quit;
     }
 
     lseek(fd, 0, SEEK_SET);
@@ -475,32 +486,118 @@ int main(int argc, char **argv)
        "- server: %s\n"
        "- firmware file: \"%s\"\n"
        "- name used for upload: \"%s\"\n"),
-       inet_ntoa(in), cp, remotefile);
+       inet_ntoa(ap_ip), cp, remotefile);
 
     if (result & 16) {
        /* Firmware series 1.4x.y - atbrfirm.bin */
 
+       /*
+        * For most devices using 1.4x.y firmware:
+        * - at most 94448 bytes needs to be written (file content above
+        *   this offset is simply cut off)
+        * - checksum is only performed on the uploaded (first 94448)
+        *   bytes of the firmware file
+        * - auth. code has 8 bytes in length (see below for its structure)
+        * SmartBridges, however, differs in this:
+        * - the TFTP firmware upgrade utility first checks whether the OUI
+        *   portion of its MAC address is 00301A (SMARTBRIDGES PTE. LTD.),
+        *   followed by 09 (apparently AT76C510-based SmartBridges devices),
+        *   and will continue only upon match. This is to prevent performing
+        *   this SmartBridges-style upgrade to non-SmartBridges devices, that
+        *   could otherwise end up with damaged flash content. Note that
+        *   this is still somewhat clumsy, since there's a remote possibility
+        *   that someone redefined his/her ATMEL AP MAC address with
+        *   SmartBridges OUI and added 09, so this check would not prevent
+        *   damage in this case (ouch!). There's however, a better check
+        *   we could come up up with: lets borrow a part of the code from
+        *   get_mib_details() to find out whether the target device appears
+        *   to be running firmware with ATMEL410 SBRIDGES MIB, and proceed
+        *   with 'SmartBridges' upgrade method only, if it does.
+        * - entire file is being written; there's no 'first 94448 bytes only'
+        *   limitation
+        * - 8-byte auth. code (see below) is followed by:
+        *   - (char):   length of the following "password" string
+        *   - (string): "password" string - the firmware will perform
+        *               actual upgrade only if this "password" matches with
+        *               any of the three communities defined in the AP
+        *               (sysadmin's note: finally something reasonable)
+        */
+
        unsigned short sum = 0;
        unsigned short *wp;
-       int maxlen = 94448;
-       int bufs_read = 0;
+       int readen = 0;
+
+       if (community) {
+           /*
+            * OK, looks like we want to upgrade SmartBridges hardware => no
+            * firmware file cutoff, and lets check whether the target device
+            * appears to have SmartBridges firmware. If not, bail out.
+            */
+/*
+           char operEthernetAddress[12] = {
+               0x2B, 0x06, 0x01, 0x04, 0x01, 0x83, 0x1A,
+               0x01, 0x01, 0x02, 0x03, 0x00
+           };
+*/
+           char AuthRadiusIP[] = {
+               0x2B, 0x06, 0x01, 0x04, 0x01, 0x83, 0x1A,
+               0x01, 0x02, 0x06, 0x03, 0x00
+           };
+           varbind varbinds[1];
+
+           maxdlen = sb.st_size;
+
+/*
+           varbinds[0].oid = operEthernetAddress;
+           varbinds[0].len_oid = sizeof(operEthernetAddress);
+*/
+           varbinds[0].oid = AuthRadiusIP;
+           varbinds[0].len_oid = sizeof(AuthRadiusIP);
+           varbinds[0].value = NULL;
+           varbinds[0].len_val = 0;
+           varbinds[0].type = NULL_VALUE;
+           if (snmp(varbinds, 1, GET) > 0) {
+/*
+               i = varbinds[0].value[0] << 24 |
+                   varbinds[0].value[1] << 16 |
+                   varbinds[0].value[2] << 8  |
+                   varbinds[0].value[3];
+               if (i != 0x00301A09) {
+*/
+               if (varbinds[0].len_val != 4) {
+                   printf(_("Error: device with the given IP does not seem "
+                            "to run SmartBridges firmware.\n"));
+                   result = EXIT_FAILURE;
+                   goto quit;
+               }
+           } else {
+               printf(_("Error: SNMP authorization error or device unavailable"
+                   ".\n"));
+               result = EXIT_FAILURE;
+               goto quit;
+           }
+       } else {
+           /* non-SB hardware */
+           maxdlen = 94448;
+       }
 
        /* compute checksum */
-       while ((i = read(fd, buf, sizeof(buf))) != 0) {
+       while ((i = read(fd, wopt, sizeof(wopt))) != 0) {
            if (i < 0) {
                perror(ERR_READFW);
-               return EXIT_FAILURE;
+               result = EXIT_FAILURE;
+               goto quit;
            }
 
-           /* assure we do not checksum more than maxlen bytes */
-           if ((bufs_read + i) > maxlen)
-               i = maxlen - bufs_read;
+           /* assure we do not checksum more than maxdlen bytes */
+           if ((readen + i) > maxdlen)
+               i = maxdlen - readen;
 
-           bufs_read += i;
+           readen += i;
 
            /* perform iterative checksumming */
            i /= 2;
-           wp = (unsigned short *)buf;
+           wp = (unsigned short *)wopt;
            while (i--) {
                if (sum + *wp > 0xFFFF)
                    sum++;
@@ -508,38 +605,66 @@ int main(int argc, char **argv)
                sum += *(wp++);
            };
 
-           /* prevent eventual fread() if file length > maxlen */
-           if (bufs_read == maxlen)
+           /* prevent eventual fread() if file length > maxdlen */
+           if (readen == maxdlen)
                break;
        }
        sum ^= 0xFFFF;
        lseek (fd, 0, SEEK_SET);
 
-       buf[0] = 0xf0;
-       buf[1] = 0x70;
-       buf[2] = sum;
-       buf[3] = sum >> 8;
-       buf[4] = 0xf0;
-       buf[5] = 0x70;
-       buf[6] = 0x01;
-       buf[7] = 0x00;
+       /*
+        * wopt[0] - wopt[1] are fw length in unsigned short form
+        * wopt[2] - wopt[3] are fw checksum in unsigned short form
+        * wopt[4] - wopt[7] are fw length in unsigned int form
+        */
+       wopt[0] = maxdlen;
+       wopt[1] = maxdlen >> 8;
+       wopt[2] = sum;
+       wopt[3] = sum >> 8;
+       wopt[4] = maxdlen;
+       wopt[5] = maxdlen >> 8;
+       wopt[6] = maxdlen >> 16;
+       wopt[7] = maxdlen >> 24;
 
        printf("- checksum: %x\n", ntohs(sum));
+
+       woptlen = 8;
+
+       if (community) {
+           wopt[8] = strlen(community);
+           memcpy((void *) &wopt[9], (void *)community, strlen(community));
+           woptlen += (1 + strlen(community));
+       }
     } else { /* result & 32 */
        /* Firmware series 0.x.y.z - atsingle.bin */
 
-       i = read(fd, buf, 234);
+       /* For 0.x.y.z firmware:
+        * - first 234 bytes from the file are used as auth. code
+        * - the actual firmware is being uploaded since offset 256 in the file
+        */
+
+       i = read(fd, wopt, 234);
        if (i < 234) {
            printf(ERR_READFW);
-           return EXIT_FAILURE;
+           result = EXIT_FAILURE;
+           goto quit;
        }
        if (lseek(fd, 256, SEEK_SET) == -1) {
            perror(_("Error while lseek()ing in firmware file\n"));
-           return EXIT_FAILURE;
+           result = EXIT_FAILURE;
+           goto quit;
        }
+       woptlen = 234;
+       maxdlen = sb.st_size; /* no limit */
     }
 
-    result = tftp(in.s_addr, remotefile, fd, buf);
+    result = tftp(ap_ip.s_addr, remotefile, fd, wopt, woptlen, maxdlen);
+
+quit:
+    if (localfile)
+       free(localfile);
+    if (community)
+       free(community);
 
     return(result);
 }
index eb5ed3d0640c80acf462aae7c72a51ea42823a63..e3e5413133893be188995e6cbeda226c2fe2f078 100644 (file)
  * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  *
  */
-#include <sys/wait.h>
-#include <unistd.h>
 #include <stdlib.h>
-#include <fcntl.h>
-#include <signal.h>
 #include <string.h>
+#include <unistd.h>
 #include "ap-utils.h"
 
 #define S_RSSI     _("RSSI:     [")
 #define S_RSSI_AVG _("RSSI avg: [")
 #define S_RSSI_TOP _("RSSI top: [")
+#define S_RSSI_ROU _("RSSI rou: [")
+#define APLINK_HELP _("P - pause, T - toggle graph view, Q - quit to menu, Other key - force update.")
+
+#define GRWIN_LENGTH   (COLS - MCOLS - 7)
+#define GRWIN_HEIGHT    (LAST_ROW - 10)
+
+int gr_mode = 0;
 
 extern WINDOW *main_sub;
 extern short ap_type, ap_vendorext;
-extern int wait_mode, snmp_retries;
+extern int wait_mode, poll_delay;
 
 /*
  * TODO: Implement APClientInfo as alternative, for NetGear ME102 MIB
@@ -44,7 +48,7 @@ void atmel_aplink()
        0x2B, 0x06, 0x01, 0x04, 0x01, 0x83, 0x1A, 0x01, 0x01, 0x04, 0x01, 0x00
     };
     /*
-     * ATMEL12350 EZYNET MIB and ATMEL410 SBRIDGES MIB specific:
+     * ATMEL12350 EZYNET MIB and ATMEL410 SBRIDGES MIB specific OIDs:
      * for ATMEL410 SBRIDGES MIB: .1.3.6.1.4.1.410.1.2.8.1.0
      * for ATMEL12350 EZYNET MIB: .1.3.6.1.4.1.12350.1.2.7.4.0
      */
@@ -68,11 +72,26 @@ void atmel_aplink()
     unsigned char ESSID[32];
     unsigned long ESSLEN; /* uchar for NetworkSettings_ATMEL410_SBRIDGES */
 
+    int i, j = 0, linked = 0, samples = 0, sum = 0, rssi_perc;
+    int rssi_avg = 0, rssi_avg_perc, rssi_top = 0, rssi_top_perc;
+    int rssi_rou, rssi_rou_perc, lq_perc = 0, lq_perc_top = 0;
+    int ringbuf_pos = 0, p_wait_mode = wait_mode;
+    char ringbuf[20];
     char message[1024];
-    int i, linked = 0, rssi_perc, samples = 0, sum = 0, avg = 0, avg_perc;
-    int top = 0, top_perc;
+    char *gr_modes[5] = { _("RSSI [%]"),
+                         _("RSSI average [%]"),
+                         _("RSSI rounded [%]"),
+                         _("Link Quality [%]"),
+                         NULL };
+    WINDOW *gauge_rssi;
+    WINDOW *gauge_rssi_top;
+    WINDOW *gauge_rssi_avg;
+    WINDOW *gauge_rssi_rou;
+    WINDOW *grwin_rssi;
+    WINDOW *grwin_rssi_avg = NULL;
+    WINDOW *grwin_rssi_rou = NULL;
+    WINDOW *grwin_lq = NULL;
     varbind varbinds[1];
-    WINDOW *gauge_rssi, *gauge_rssi_avg, *gauge_rssi_top;
 
     if (ap_type == ATMEL12350) {
        bridgeOperationalMode[5] = 0xE0;
@@ -87,6 +106,8 @@ void atmel_aplink()
     gauge_rssi = derwin(main_sub, 1, 20, 2, strlen(S_RSSI));
     gauge_rssi_top = derwin(main_sub, 1, 20, 3, strlen(S_RSSI_TOP));
     gauge_rssi_avg = derwin(main_sub, 1, 20, 4, strlen(S_RSSI_AVG));
+    gauge_rssi_rou = derwin(main_sub, 1, 20, 5, strlen(S_RSSI_ROU));
+    grwin_rssi = derwin(main_sub, GRWIN_HEIGHT + 2, GRWIN_LENGTH + 2, 9, 3);
 
     /* find out mode the device is currently in */
     varbinds[0].oid = bridgeOperationalMode;
@@ -120,35 +141,86 @@ void atmel_aplink()
        goto exit;
     }
 
-    print_top(wait_mode == WAIT_TIMEOUT ? POLL_ON : POLL_OFF, AP_TITLE);
-    print_help(QT_HELP);
+    wait_mode = WAIT_TIMEOUT;
+
+    print_top(POLL_ON, AP_TITLE);
+    print_help(APLINK_HELP);
     noecho();
 
+    memset(ringbuf, 0, sizeof(ringbuf));
+
+    box(grwin_rssi, 0, 0);
+    for (i = GRWIN_HEIGHT - GRWIN_HEIGHT / 3; i > 0; i -= GRWIN_HEIGHT / 3) {
+       j += 33;
+       mvwprintw(main_sub, 9 + i, 0, "%u", j);
+       mvwaddch(grwin_rssi, i, 0, ACS_SSSS);
+    }
+    delwin(grwin_rssi);
+    wmove(main_sub, 9, 6);
+    print_bold(main_sub, gr_modes[gr_mode]);
+    grwin_rssi     = newwin(GRWIN_HEIGHT, GRWIN_LENGTH, 12, MCOLS + 4);
+    grwin_rssi_avg = newwin(GRWIN_HEIGHT, GRWIN_LENGTH, 12, MCOLS + 4);
+    grwin_rssi_rou = newwin(GRWIN_HEIGHT, GRWIN_LENGTH, 12, MCOLS + 4);
+    if (ap_type == ATMEL410)
+       grwin_lq       = newwin(GRWIN_HEIGHT, GRWIN_LENGTH, 12, MCOLS + 4);
+    wattrset(grwin_rssi,     COLOR_PAIR(COLOR_BLUE));
+    wattrset(grwin_rssi_avg, COLOR_PAIR(COLOR_BLUE));
+    wattrset(grwin_rssi_rou, COLOR_PAIR(COLOR_BLUE));
+    if (ap_type == ATMEL410)
+       wattrset(grwin_lq, COLOR_PAIR(COLOR_BLUE));
+
     while (1) {
-       /* find out how many STAtions is in the list */
+       mvwaddstr(main_sub, 0, 0, "Associated with AP: ");
+
        varbinds[0].oid = NetworkSettings;
        varbinds[0].len_oid = sizeof(NetworkSettings);
        varbinds[0].value = NetworkSettings;
        varbinds[0].type = STRING_VALUE;
        varbinds[0].len_val = 0;
 
-       if (wait_mode == WAIT_FOREVER)
-           print_help(WAIT_RET);
-
-       snmp_retries = 1;
-       mvwaddstr(main_sub, 0, 0, "Associated with AP: ");
        if (snmp(varbinds, 1, GET) <= 0) {
+           /* do just once */
            waddstr(main_sub, NO);
-           if (linked)
-               clear_main(0);
+           if (linked) {
+               linked = sum = samples = ringbuf_pos = 0;
+               memset(ringbuf, 0, sizeof(ringbuf));
+
+               wclrtoeol(main_sub);
+               clear_main_new(1, 9);
+               /* wclrtobot(main_sub); */
+
+               wattrset(grwin_rssi,     COLOR_PAIR(COLOR_RED));
+               wattrset(grwin_rssi_avg, COLOR_PAIR(COLOR_RED));
+               wattrset(grwin_rssi_rou, COLOR_PAIR(COLOR_RED));
+               if (ap_type == ATMEL410)
+                   wattrset(grwin_lq,   COLOR_PAIR(COLOR_RED));
+
+               for (i = 0; i < GRWIN_HEIGHT; i++) {
+                   mvwdelch(grwin_rssi,     i, 0);
+                   mvwdelch(grwin_rssi_avg, i, 0);
+                   mvwdelch(grwin_rssi_rou, i, 0);
+                   mvwaddch(grwin_rssi,     i, GRWIN_LENGTH - 1, ACS_SBSB);
+                   mvwaddch(grwin_rssi_avg, i, GRWIN_LENGTH - 1, ACS_SBSB);
+                   mvwaddch(grwin_rssi_rou, i, GRWIN_LENGTH - 1, ACS_SBSB);
+                   if (ap_type == ATMEL410) {
+                       mvwdelch(grwin_lq,   i, 0);
+                       mvwaddch(grwin_lq,   i, GRWIN_LENGTH - 1, ACS_SBSB);
+                   }
+               }
+               wattrset(grwin_rssi,     COLOR_PAIR(COLOR_BLUE));
+               wattrset(grwin_rssi_avg, COLOR_PAIR(COLOR_BLUE));
+               wattrset(grwin_rssi_rou, COLOR_PAIR(COLOR_BLUE));
+               if (ap_type == ATMEL410)
+                   wattrset(grwin_lq,   COLOR_PAIR(COLOR_BLUE));
+           }
 
-           wrefresh(main_sub);
-           linked = 0;
-           sum = samples = 0;
-       } else {
-           if (wait_mode == WAIT_FOREVER)
-               print_help(QT_HELP);
+           wnoutrefresh(main_sub);
+           wnoutrefresh(gr_mode == 0 ? grwin_rssi :
+                        gr_mode == 1 ? grwin_rssi_avg :
+                        gr_mode == 2 ? grwin_rssi_rou : grwin_lq);
 
+           doupdate();
+       } else {
            waddstr(main_sub, YES);
 
            if (ap_type == ATMEL410) {
@@ -192,15 +264,15 @@ void atmel_aplink()
            }
            wnoutrefresh(gauge_rssi);
            sprintf(message, "] [%4ddBm] [%3u%%] [%3u]",
-               -96 + Rssi, rssi_perc, Rssi);
+               dbmconv(Rssi), rssi_perc, Rssi);
            mvwaddstr(main_sub, 2, strlen(S_RSSI) + 20, message);
 
            mvwaddstr(main_sub, 3, 0, S_RSSI_TOP);
-           if (Rssi > top)
-               top = Rssi;
-           top_perc = (int)((minimum (top, 40)) * (float)2.5);
+           if (Rssi > rssi_top)
+               rssi_top = Rssi;
+           rssi_top_perc = (int)((minimum (rssi_top, 40)) * (float)2.5);
            werase(gauge_rssi_top);
-           for (i = 0; i < (20 * top_perc / 100); i++) {
+           for (i = 0; i < (20 * rssi_top_perc / 100); i++) {
                if (i == 0)
                    wattrset(gauge_rssi_top, COLOR_PAIR(COLOR_RED));
                if (i == 7)
@@ -211,19 +283,19 @@ void atmel_aplink()
            }
            wnoutrefresh(gauge_rssi_top);
            sprintf(message, "] [%4ddBm] [%3u%%] [%3u]",
-               -96 + top, top_perc, top);
+               dbmconv(rssi_top), rssi_top_perc, rssi_top);
            mvwaddstr(main_sub, 3, strlen(S_RSSI_TOP) + 20, message);
 
            mvwaddstr(main_sub, 4, 0, S_RSSI_AVG);
            sum += Rssi;
-           avg = sum / ++samples;
+           rssi_avg = sum / ++samples;
            if (samples == 100000) {
                samples = 1;
                sum = Rssi;
            }
-           avg_perc = (int)((minimum (avg, 40)) * (float)2.5);
+           rssi_avg_perc = (int)((minimum (rssi_avg, 40)) * (float)2.5);
            werase(gauge_rssi_avg);
-           for (i = 0; i < (20 * avg_perc / 100); i++) {
+           for (i = 0; i < (20 * rssi_avg_perc / 100); i++) {
                if (i == 0)
                    wattrset(gauge_rssi_avg, COLOR_PAIR(COLOR_RED));
                if (i == 7)
@@ -234,12 +306,38 @@ void atmel_aplink()
            }
            wnoutrefresh(gauge_rssi_avg);
            sprintf(message, "] [%4ddBm] [%3u%%] / %5u sampl.",
-               -96 + avg, avg_perc, samples);
+               dbmconv(rssi_avg), rssi_avg_perc, samples);
            mvwaddstr(main_sub, 4, strlen(S_RSSI_AVG) + 20, message);
 
+           mvwaddstr(main_sub, 5, 0, S_RSSI_ROU);
+           ringbuf[ringbuf_pos++] = Rssi;
+           if (ringbuf_pos == sizeof(ringbuf))
+               ringbuf_pos = 0;
+           rssi_rou = 0;
+           for (i = 0; i < (int)sizeof(ringbuf); rssi_rou += ringbuf[i], i++);
+           rssi_rou /= sizeof(ringbuf);
+           rssi_rou_perc = (int)((minimum (rssi_rou, 40)) * (float)2.5);
+           werase(gauge_rssi_rou);
+           for (i = 0; i < (20 * rssi_rou_perc / 100); i++) {
+               if (i == 0)
+                   wattrset(gauge_rssi_rou, COLOR_PAIR(COLOR_RED));
+               if (i == 7)
+                   wattrset(gauge_rssi_rou, COLOR_PAIR(COLOR_YELLOW) | A_BOLD);
+               if (i == 14)
+                   wattrset(gauge_rssi_rou, COLOR_PAIR(COLOR_GREEN));
+               waddch(gauge_rssi_rou, ACS_BLOCK);
+           }
+           wnoutrefresh(gauge_rssi_rou);
+           sprintf(message, "] [%4ddBm] [%3u%%] / last %2u sam.",
+               dbmconv(rssi_rou), rssi_rou_perc, sizeof(ringbuf));
+           mvwaddstr(main_sub, 5, strlen(S_RSSI_ROU) + 20, message);
+
            if (ap_type == ATMEL410) {
-               sprintf(message, "Link quality: %3u%%",
-                   (int)(100 - (minimum (LQCR, 40)) * (float)2.5));
+               lq_perc = (int)(100 - (minimum (LQCR, 40)) * (float)2.5);
+               if (lq_perc > lq_perc_top)
+                   lq_perc_top = lq_perc;
+               sprintf(message, "Link quality: %3u%% (top: %3u%%)",
+                   lq_perc, lq_perc_top);
            } else { /* ap_type == ATMEL12350 */
                sprintf(message, "Current rate: ");
                switch(LQCR) {
@@ -256,49 +354,86 @@ void atmel_aplink()
                        strcat(message, "11 Mbps ");
                }
            }
-           mvwaddstr(main_sub, 5, 0, message);
+           mvwaddstr(main_sub, 6, 0, message);
 
            sprintf(message, "Channel: %2u", Channel);
-           mvwaddstr(main_sub, 6, 0, message);
+           mvwaddstr(main_sub, 7, 0, message);
 
-           mvwaddstr(main_sub, 7, 0, "ESSID: ");
+           mvwaddstr(main_sub, 8, 0, "ESSID: ");
            waddnstr(main_sub, ESSID, ESSLEN);
 /*
            sprintf(message, "InfoCapability: %3u", InfoCapability & 0xFF);
-           mvwaddstr(main_sub, 8, 0, message);
+           mvwaddstr(main_sub, 9, 0, message);
 */
            wnoutrefresh(main_sub);
 
-           doupdate();
-
-           i = wait_key();
-           if (i == -1)
-               goto exit;
-
-           switch((char) i) {
-               case 'q':
-               case 'Q':
-                   goto exit;
-               case 't':
-               case 'T':
-                   wait_mode = (wait_mode == WAIT_FOREVER ?
-                       WAIT_TIMEOUT : WAIT_FOREVER);
-                   print_top(wait_mode == WAIT_TIMEOUT ? POLL_ON : POLL_OFF,
-                       AP_TITLE);
+           for (i = 0; i < GRWIN_HEIGHT; i++) {
+               mvwdelch(grwin_rssi,     i, 0);
+               mvwdelch(grwin_rssi_avg, i, 0);
+               mvwdelch(grwin_rssi_rou, i, 0);
+               if (ap_type == ATMEL410)
+                   mvwdelch(grwin_lq,   i, 0);
            }
+           for (i = 0; i < GRWIN_HEIGHT * rssi_perc / 100; i++)
+               mvwaddch(grwin_rssi,
+                   GRWIN_HEIGHT - 1 - i, GRWIN_LENGTH - 1, ACS_BLOCK);
+           for (i = 0; i < GRWIN_HEIGHT * rssi_avg_perc / 100; i++)
+               mvwaddch(grwin_rssi_avg,
+                   GRWIN_HEIGHT - 1 - i, GRWIN_LENGTH - 1, ACS_BLOCK);
+           for (i = 0; i < GRWIN_HEIGHT * rssi_rou_perc / 100; i++)
+               mvwaddch(grwin_rssi_rou,
+                   GRWIN_HEIGHT - 1 - i, GRWIN_LENGTH - 1, ACS_BLOCK);
+           if (ap_type == ATMEL410)
+               for (i = 0; i < GRWIN_HEIGHT * lq_perc / 100; i++)
+                   mvwaddch(grwin_lq,
+                       GRWIN_HEIGHT - 1 - i, GRWIN_LENGTH - 1, ACS_BLOCK);
+
+           wnoutrefresh(gr_mode == 0 ? grwin_rssi :
+                        gr_mode == 1 ? grwin_rssi_avg :
+                        gr_mode == 2 ? grwin_rssi_rou : grwin_lq);
+
+           doupdate();
 
            linked = 1;
+       }
 
-           /* either timeout for user input (i == 0) or invalid key => cont. */
+       i = wait_key(poll_delay);
+       switch(i) {
+           case 'p':
+           case 'P':
+               getch();
+               break;
+           case 'q':
+           case 'Q':
+               goto exit;
+           case 't':
+           case 'T':
+               gr_mode++;
+               if (gr_mode == (ap_type == ATMEL410 ? 4 : 3))
+                   gr_mode = 0;
+
+               wmove(main_sub, 9, 6);
+               print_bold(main_sub, gr_modes[gr_mode]);
+               for (i = 0; i < 10; i++)
+                   waddch(main_sub, ACS_BSBS);
        }
+       /* either timeout for user input (i == 0) or invalid key => cont. */
     }
 
 exit:
-    snmp_retries = 5;
+    wait_mode = p_wait_mode;
+
     delwin(gauge_rssi);
     delwin(gauge_rssi_top);
     delwin(gauge_rssi_avg);
+    delwin(gauge_rssi_rou);
+
+    delwin(grwin_rssi);
+    delwin(grwin_rssi_avg);
+    delwin(grwin_rssi_rou);
+    if (ap_type == ATMEL410)
+       delwin(grwin_lq);
+
     print_top(NULL, NULL);
     clear_main(0);
 }
-
index e201b8e8e1ce2ac2272cdfa91189c24c031c19fa..b4cf968d5e187b1b1c8b304ab77103193ba23408 100644 (file)
 #define RADIUS_IP _("[I] Radius server IP: ")
 #define RADIUS_DEST_PORT _("[P] Radius server port: ")
 #define RADIUS_SECRET _("[S] Radius server secret: ")
-#define RADIUS_TIME _("[T] Reauthorization time (sec): ")
+#define RADIUS_TIME _("[T] Reauthorization time (minutes): ")
 #define RADIUS_PORT _("[F] Radius source port: ")
 #define RADIUS_HELP _("A: auth; N: new; D: del; IPSTF: set; arrows: scroll; W: write conf; Q: quit")
 
 #define DOT1X_MODE _("[M] 802.1x authorization: ")
-#define DOT1X_TIME _("[T] key broadcasting time period (sec): ")
+#define DOT1X_TIME _("[T] key broadcasting time period (seconds): ")
 #define DOT1X_IP _("[I] 802.1x auth. server IP: ")
 #define DOT1X_SECRET _("[S] 802.1x auth. server secret: ")
 #define DOT1X_HELP _("A: auth; N: new; D: del; MTIS: set; arrows: scroll; W: write conf; Q: quit")
@@ -221,21 +221,27 @@ void atmel_auth()
            sprintf(message, "%s%s", RADIUS_IP, inet_ntoa(ea_ip));
            mvwaddstr(main_sub, 1, 0, message);
 
-           memcpy(&ea_dest_port, varbinds[4].value, 2);
-           ea_dest_port = ntohs(ea_dest_port);
+           ea_dest_port = varbinds[4].len_val == 2 ?
+               (varbinds[4].value[0] << 8) | varbinds[4].value[1] :
+               varbinds[4].value[0] < 0x80 ?
+               varbinds[4].value[0] : 0xff00 | varbinds[4].value[0];
            sprintf(message, "%s%d", RADIUS_DEST_PORT, ea_dest_port);
            mvwaddstr(main_sub, 2, 0, message);
 
            sprintf(message, "%s%s", RADIUS_SECRET, ea_secret);
            mvwaddstr(main_sub, 3, 0, message);
 
-           memcpy(&ea_time, varbinds[3].value, 2);
-           ea_time = ntohs(ea_time);
+           ea_time = varbinds[3].len_val == 2 ?
+               (varbinds[3].value[0] << 8) | varbinds[3].value[1] :
+               varbinds[3].value[0] < 0x80 ?
+               varbinds[3].value[0] : 0xff00 | varbinds[3].value[0];
            sprintf(message, "%s%d", RADIUS_TIME, ea_time);
            mvwaddstr(main_sub, 4, 0, message);
 
-           memcpy(&ea_port, varbinds[2].value, 2);
-           ea_port = ntohs(ea_port);
+           ea_port = varbinds[2].len_val == 2 ?
+               (varbinds[2].value[0] << 8) | varbinds[2].value[1] :
+               varbinds[2].value[0] < 0x80 ?
+               varbinds[2].value[0] : 0xff00 | varbinds[2].value[0];
            sprintf(message, "%s%d", RADIUS_PORT, ea_port);
            mvwaddstr(main_sub, 5, 0, message);
        }
@@ -715,6 +721,11 @@ again:
                print_helperr(ERR_SET);
                goto exit;
            }
+           wbkgd(main_sub, A_NORMAL);
+           wattrset(main_sub, COLOR_PAIR(13));
+           mvwaddstr(main_sub, 8, 0, MAC_HEADER);
+           wattrset(main_sub, A_NORMAL);
+           wrefresh(main_sub);
            print_help(DONE_SET);
            goto exit;
        case KEY_DOWN:
@@ -805,7 +816,7 @@ void nwn_auth_mac()
     varbind varbinds[3];
     print_top(NULL, AUTH_TITLE);
 
-    mvwaddstr(main_sub, 2, 5, MAC_HEADER);
+    mvwaddstr(main_sub, 2, 0, MAC_HEADER);
     wrefresh(main_sub);
     print_help(WAIT_RET);
 
@@ -1049,6 +1060,8 @@ void nwn_auth_mac()
                curr = curr->next;
                i++;
            }
+           wbkgd(main_sub, A_NORMAL);
+           wrefresh(main_sub);
            print_help(DONE_SET);
            goto exit;
        case KEY_DOWN:
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);
 }
-
index a41c1b58ef8b302229f0a8f1d3e769a9fa1b9d7c..1bf7c0122140876fe7e51dc17e10ece095ae6eb8 100644 (file)
@@ -114,11 +114,13 @@ void advanced()
                i++;
            }   
 
-               print_help(WAIT_SET);
-               if (snmp(varbinds, i, SET) <= 0) {
-                   print_helperr(ERR_SET);
+           print_help(WAIT_SET);
+           if (snmp(varbinds, i, SET) <= 0) {
+               print_helperr(ERR_SET);
                    goto exit;
-               }
+           }
+           wbkgd(main_sub, A_NORMAL);
+           wrefresh(main_sub);
            print_help(DONE_SET);
            goto exit;
        default:
@@ -132,4 +134,3 @@ void advanced()
     print_top(NULL, NULL);
     clear_main(0);
 }
-
index b37463e33a826fe37478861459181221673b56df..bb6ca9018cac9f347b8cce6ce4ea0ade72c3327e 100644 (file)
@@ -82,7 +82,6 @@ void atmel_stations()
        mvwaddstr(main_sub, 1, 1, _("Not available (device not in AP mode)."));
        print_help(ANY_KEY);
        wrefresh(main_sub);
-       getch();
        goto exit;
     }
 
@@ -105,7 +104,6 @@ refresh:
 
     if (snmp(varbinds, 1, GET) <= 0) {
        print_helperr(ERR_RET);
-       getch();
        goto exit;
     }
 
@@ -131,7 +129,6 @@ refresh:
 
        if (snmp(varbinds, 1, SET) <= 0) {
            print_helperr(ERR_RET);
-           getch();
            goto exit;
        }
 
@@ -219,7 +216,7 @@ refresh:
                continue;
            case 'Q':
            case 'q':
-               goto exit;
+               goto quit;
            case 'T':
            case 't':
                if ((ap_type == ATMEL410 && ap_vendorext == SBRIDGES) ||
@@ -240,6 +237,8 @@ refresh:
     }
 
 exit:
+    getch();
+quit:
     while ((curr = first)) {
        first = curr->next;
        free(curr);
@@ -414,4 +413,3 @@ void nwn_stations()
     print_top(NULL, NULL);
     clear_main(0);
 }
-