]> git.decadent.org.uk Git - ap-utils.git/commitdiff
Imported Upstream version 1.5~pre2 upstream/1.5.pre2
authorBen Hutchings <ben@decadent.org.uk>
Sun, 19 Apr 2009 00:05:39 +0000 (01:05 +0100)
committerBen Hutchings <ben@decadent.org.uk>
Sun, 19 Apr 2009 00:17:27 +0000 (01:17 +0100)
67 files changed:
ChangeLog
Documentation/Makefile.am
Documentation/Makefile.in
Documentation/ap-tftp.8 [new file with mode: 0644]
Documentation/mibs-atmel/README [new file with mode: 0644]
Documentation/mibs-atmel/mib-12350-ezynet/AT76C510.mib [new file with mode: 0644]
Documentation/mibs-atmel/mib-12350-gemtek/AT76C510.mib [new file with mode: 0644]
Documentation/mibs-atmel/mib-12350-none-netgear/AT76C510.mib [new file with mode: 0644]
Documentation/mibs-atmel/mib-410-none-dlink/AT76C510.mib [new file with mode: 0644]
Documentation/mibs-atmel/mib-410-smartbridges/AT76C510.mib [new file with mode: 0644]
Makefile.am
Makefile.in
README
THANKS
TODO
ap-gl/Makefile.am
ap-gl/Makefile.in
ap-gl/ap-gl.c
ap-gl/auth.c [new file with mode: 0644]
ap-gl/auth_mac.c [deleted file]
ap-gl/bridge.c
ap-gl/stations.c
config.h.in
configure
configure.in
lib/Makefile.in
lib/ap-utils.h
lib/ap_search.c
lib/aps.c
lib/common.c
lib/file.c
lib/input.c
lib/menu.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/test.c
lib/wep.c
lib/wlan.c
po/POTFILES.in
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 [new file with mode: 0644]
src/ap-tftp.c [new file with mode: 0644]
src/ap-trapd.c
src/aplink.c [new file with mode: 0644]
src/auth.c [new file with mode: 0644]
src/auth_mac.c [deleted file]
src/bridge.c
src/nwn_advanced.c
src/nwn_latest.c
src/stations.c

index 8a8b8650603068094766da5f00f60c85cd387b46..78b80e1a35bfb451b54c723901c29253670b767c 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,307 @@
+2005-01-15 Roman Festchook
+       * 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   
+
+2005-01-11 Jan Rafaj
+       Note to SmartBridges PTE: you could have nice support in ap-utils
+       at cost of sending me one APPO sample. Since I actually have
+       no sample to test & verify on, all my support for airPoints is on
+       blind or 'someones trial and error report' basis. You should really
+       support OSS developers better way. Info about how to reliably load
+       airPoint PRO firmware to non-SB brand devices, based on the same HW
+       ref. design, would of course help too.
+
+       NOTE TO ALL USERS: IF YOU HAVE SMARTBRIDGES airPoint PRO (indoor or
+       outdoor) AND WANT BETTER AP-UTILS SUPPORT, YOU CAN SEND ME ONE SAMPLE
+       OF THIS DEVICE. OTHERWISE THERE WILL APPARENTLY BE _INCOMPLETE_ SUPPORT
+       EVEN IN FUTURE! THE LAST APPO I I'VE SEEN IN BAZAAR THAT I WAS PLANNING
+       TO GET IN ORDER TO IMPROVE SUPPORT IN AP-UTILS, HAS BEEN JUST SOLD
+       OUT, SO MY PLANS ARE GONE. I'M NOT WILLING TO PAY LIKE $350
+       FOR ONE SAMPLE JUST TO SUPPORT THE WORLD. SO UNTIL SOMEONE SUPPORTS
+       ME WITH SAMPLE DEVICE TO TEST ON, MY SUPPORT FOR SmartBridges
+       APPO in AP-UTILS IS _OVER_ (and this round of patches is apparently
+       the last effort to improve support in this area).
+       I'LL ALSO ACCEPT ANY DEVICE THAT USES THE SAME FIRMWARE / MIB
+       AS SMARTBRIDGES airPoint PRO.
+
+       You can contact me about the subjects above via e-mail at
+       <jr-aputils at cedric dot unob dot cz>.
+
+       Dedicated to memory of cat Micka, my pet.
+       * EZYNET-enhanced AP firmware is now freely available! Read more about
+         its availability, upgrade possibilities and caveats in README,
+         section 'Firmware available free of charge for ATMEL12350 MIB
+         devices' !!!
+       * renamed all references of 'VERNET' to 'EZYNET' (true vendor name)
+       * renamed all references of 'TELLUS' to 'GEMTEK' (Tellus, SparkLan,
+         etc. appear to be GemTek subsidiaries or at least they seem to use
+         firmware from GemTek. If someone knows I'm wrong with this
+         conclusion, please let me know).
+       * note: my primary focus is on support for devices running firmware
+         0.2.x.x, equipped with flash memory AT29LV040A (TSOP1), and
+         second SRAM, such as Tellus A14, SparkLan WX-1590L, etc.
+         Easy way of how to tell that the device has second SRAM, is
+         presence of (poor, locky) web management interface. Older devices
+         with single SRAM may be supported too, but my older test equipment
+         is restricted to W-Link WEN2021 and I-TEC AP GOLD / blue, which means
+         that support for other old ATMEL flavours may or may not work,
+         despite all effort towards supporting them.
+       * README:
+         - added entries for supported APs: i-Tec AP GOLD (black front),
+           InterEpoch IWE1000A, OSBRiDGE m2410/p2410, SparkLAN WX-1590,
+           SparkLAN WX-1590L, D-com WX-1590 web, BOSSWAP
+         - the supported AP table is now sorted according to manufacturer name
+         - added section 'Firmware available free of charge for ATMEL12350 MIB
+           devices'
+         - made WARNING notices more accurate
+       * THANKS:
+         - added entry with thanks to EZYNET
+       * Makefile.am:
+         - reordered directory components so that 'intl' and 'po' will be
+           built as last ones. This helps on systems with old/broken auto*
+           tools, where building 'po' may fail (it still will do, but its
+           failure now wont prevent building other components).
+       * Documentation/mibs-atmel:
+         - created & populated with all AT76C510 MIB prototypes that should
+           be supported by ap-utils
+       * ap-gl/ap-gl.c, ap-gl/stations.c:
+         - backport of few changes from respective counterparts in src/,
+           to stay compatible with changed color scheme definitions
+           and format of 'Stations' output (btw, there is now no difference!)
+       * ap-gl/auth.c:
+         - backported few non-invasive changes from auth.c
+       * lib/ap-utils.h:
+         - added DONE_WRITING_APCONF & ERR_WRITING_APCONF, since they are
+           now referred from connect_options() as well as get_opts()
+         - added new structs AssociatedSTAsInfo_ATMEL410,
+           AssociatedSTAsInfo_ATMEL12350, NetworkSettings_ATMEL410_SBRIDGES
+           and NetworkSettings_ATMEL12350_EZYNET in favour of unified support
+           across most available vendor-enhanced MIBs
+       * lib/common.c:
+         - connect_options() is now verbose about status of writing
+           ~/.ap-config file, through DONE_WRITING_APCONF & ERR_WRITING_APCONF
+         - bugfix: fixed ap_vendorexts[ap_type][] boundary check error;
+           no more segfaults when manually specifying MIB type as "ATMEL12350"
+         - bugfix: get_mib_details() no longer relies on OUI part of device's
+           eth. MAC address as authoritative info for MIB vendor extension
+           determination. This was 1. giving totally fake results
+           if someone changed device's MAC, and 2. giving false results
+           for people with devices whose firmware has had certain MIB vendor
+           extensions available (for example SparkLan users with GEMTEK
+           firmware). Autodetection should now work for much broader range
+           of devices with AP firmware.
+       * lib/file.c:
+         - added functionality for HOME, END, PGUP and PGDN keys
+       * lib/input.c:
+         - bugfix: in get_value(), use wmove()/wrefresh() instead of wechochar
+           with 0x08 char. (backspace) as parameter - this fixes visual effect
+           of disrespecting leftmost bound on platforms with older ncurses
+         - bugfix: get_mac() now forces user to specify all 12 numbers of MAC,
+           avoiding ambiguous results
+       * lib/menu.c:
+         - squeezed the number of wrefresh(menu) calls to a minimum
+         - mark and highlighting of current menu item are now
+           cleared/restored upon entering/leaving atmel_set_oeminfo()
+       * lib/oui.c: added OUIs:
+         - 000F3D (D-Link Corporation)
+         - 00112F (ASUSTek Computer Inc.)
+       * lib/scr.c:
+         - simplified & unified 'Stations' menu output section in
+           scroll_rows() - it is now used for all ATMEL AP types.
+           Part separately dealing with APs using SmartBridges firmware
+           has been eliminated.
+         - shorten screen output of print_top_rssi()
+         - bugfix: in scroll_rows(), clear_main(3) changed to
+           clear_main(row), to make the first-row offset of scroll list
+           really configurable (required by auth.c)
+       * lib/set_community.c:
+         - left boundaries of community fields now start at offset 37
+       * lib/set_oeminfo.c:
+         - now also shows board VID & PID
+         - added possibility to configure # of calibrated channels
+         Reached 100% compatibility with original utility.
+       * lib/snmp.c:
+         - removed RETRIES constant. Instead, snmp_retries now keeps
+           the default amount of retries. This was somewhat necessary,
+           as we may eventually influence amount of retries one snmp() call
+           will attempt, in src/aplink.c
+       * lib/test.c:
+         - since test() is not yet ATMEL12350-ready, temporary kludge
+           has been added to disable this menu for devices with
+           such a MIB
+       * lib/wlan.c:
+         - bugfix: fix utility crash, that could previously happen if
+           someone changed value of Fragm. threshold from default to
+           value < length of typical expected SNMP response packet,
+           on device managed with ap-config via wireless port.
+           The return value of snmp() is now checked against the number
+           of varbinds members entering snmp() (it covers return value
+           <= 0 as well).
+           NOTE: IT IS _VERY_ UNWISE AND RISKY TO CHANGE 'RTS threshold'
+           AND 'Fragmentation threshold' VALUES ON DEVICE MANAGED VIA
+           WIRELESS PORT, SINCE THEY HAVE DIRECT IMPACT ON PACKETS TRANSMITTED
+           VIA WIRELESS PORT, AND IF THE VALUE IS BEHIND CERTAIN THRESHOLD,
+           THE DEVICE MAY BECOME COMPLETELY _UNMANAGEABLE_ VIA WIRELESS PORT.
+           If this happens and you have management access to the device
+           via wireless port only, you may try your favourite *-snmp tools to
+           restore RTS threshold and Frag. threshold settings to their
+           default value (2346), but if this fails, the only real way left
+           to fix these values would be through ethernet or USB port. Beware!
+       * lib/set_oeminfo.c, lib/sysinfo.c, lib/wlan.c:
+         - bugfix: changed assumption about selection of proper length
+           sysDeviceInfo OID - this cant be distinguished based on ATMEL MIB
+           type, since, for example, NETGEAR ME102 MIB has ATMEL12350 MIB, but
+           has length of this structure 128 bytes (which most ATMEL410 MIB
+           equipped devices have). Now the proper structure is selected
+           based purely on length of response returned on SysDeviceInfo
+           SNMP query - should 'fix' all places that deal with values
+           generated by query to SysDeviceInfo OID
+       * src/aplink.c:
+         - newly introduced. Embeds atmel_aplink(), which is bound
+           to 'AP link' entry in the 'Info' menu. This entry allows to
+           monitor link state of the device in APclient or WRepeater mode.
+           It will inform user whether the APclient device is actually
+           associated to the AP or not, and if yes, what is the RSSI level of
+           the link (as well as Link Quality in case of device with
+           SmartBridges firmware, or actual connection speed in case of device
+           with EZYNET firmware), MAC of joined BSSID, ESSID, and used
+           RF channel.
+           RSSI top value per entire measurement session is also available.
+           Since the RSSI indication may be somewhat unstable (at least
+           with EZYNET firmware), showing of RSSI average from up to
+           99999 samples has also been implemented.
+           Note that the code will currently only work for ATMEL410 / SBRIDGES
+           or ATMEL12350 / EZYNET MIB devices, as MIBs of firmware from
+           other vendors does not seem to support NetworkSettings OID.
+           Exception is ATMEL12350 / NONE (NetGear ME102), whose APCLientInfo
+           OID is capable to give connection status too, but is not currently
+           implemented, since it uses different OID & structure and I do not
+           possess ME102 board to test with (TODO).
+       * src/ap-auth.c:
+         - hardened input validation for the '-i <ip>' parameter (according to
+           get_ip() in lib/input.c)
+         - added AP MIB type autodetection => utility will now also work
+           for devices with ATMEL12350 MIB. Devices with NWN MIB are yet
+           to be supported (TODO).
+         - assigned credits to Teemu
+       * src/ap-config.c:
+         - added definitions for several 'should be defined by default' color
+           pairs, that are actually used in bargraph code of aplink.c .
+           Previous pairs 1,2,3,4 were redefined to 11,12,13,14 to avoid
+           clash with 'standard' color pairs above. This change has been
+           propagated to all files dealing with color pairs.
+       * src/ap-mrtg.c:
+         - the same level of changes as in src/ap-auth.c. As side result,
+           it is no longer needed to specify AP MIB type (it will be
+           autodetected).
+         - bugfix: take into account different length of wirelessStatistics
+           structure in ATMEL12350 MIB & EZYNET extensions => '-t w'
+           will now also work for devices with this MIB & extensions.
+         - bugfix: restrict the '-t l' to ATMEL410 MIB devices in APClient
+           mode (ATMEL12350 MIB devices usually do not return any LinkQuality
+           indicators in wirelessKnownAPs structure).
+       * src/ap-tftp.c:
+         - introduced tftp client for upgrading ATMEL-based AP firmware.
+           Should work with boards utilising either 1.4x.y firmware (generally
+           AT76C510+INTERSIL boards, such as D-Link 1150, W-Link WEN-2021,
+           SmartBridges APPO, etc.), and boards utilising 0.x.y.z firmware
+           (generally AT76C510+RFMD boards, such as Tellus A14, Sparklan
+           WX-1590L, NetGear ME-102, OSBRiDGE p2410/m2410, etc.).
+           Use with care and NEVER EVER try to use this utility to upload
+           firmware that is from different vendor than your AP, unless you
+           perfectly know what you are doing, of course - otherwise,
+           you may irreversibly turn your AP into paperweight quite easily.
+           ATMEL APs are well known for their general firmware upload
+           design flaw (no authorization necessary for firmware upgrade),
+           that has caused many destroyed APs by joe-blow users uploading
+           incorrect firmware, and even APs destroyed by malicious users
+           that have intentionally uploaded incorrect firmware. See manpage
+           for details.
+           You have been warned.
+       * src/ap-trapd.c:
+         - recognise ATMEL12350 enterprise ID => will now react to traps
+           sent by devices with ATMEL 12350 enterprise MIB
+         - will now also print Trap number along with its string
+           representation
+         - bugfix: fixed problem with printing trap strings from
+           non-SmartBridges traplist when '-s' given, and vice versa
+       * src/auth.c:
+         - introduced as replacement for old 'auth_mac.c'. Simple 'auth'
+           name reflects its purpose better - it now contains not just
+           MAC-based "auth.", but also other auth. types (Radius, 802.1x)
+           based on the available MIB vendor "extensions".
+         - now properly distinguishes between authorization error and
+           invalid data error for SET snmp() operation. Particularly imporant
+           when user tries to enter Config/MAC Auth menu with user community
+           (which only permits reading, but not writing, and since writing
+           is basically required even for pure showing of authorized MAC
+           addresses, we need to distinguish these errors).
+           If the AP is accessed with 'user' community and it has record(s)
+           in MAC auth. list, it will print '(insufficient community used)'
+           in the first row of the MAC auth. list field.
+           public
+         - bugfix: it is now possible to delete last MAC entry too
+         - bugfix: when no MAC address left on the list, disallow 'Delete'
+           function
+         - should now be ready for move to lib/. (and purging in src/)
+         - it is now possible to 'escape' from prompt that appears after
+           pressing 'd' (delete MAC), upon entering '0'
+         - by default, if number of defined MACs is greater than the
+           visible scrolling area, the list tail will be shown
+         - if adding new MAC addresses, the list will advance to the last
+           (currently added) MAC entry to show its position in the MAC table
+         - added functionality for HOME, END, PGUP and PGDN keys
+         - added functionality for extra Auth. enhancements present in
+           ATMEL410 MIB with SBRIDGES extensions (Radius auth.), and
+           in ATMEL12350 MIBs with EZYNET extensions (802.1X auth.)
+         - now properly distinguishes MIBs with 2-mode AuthorizationMacEnable
+           OID, and those with 3-mode AuthorizationMacEnable OID
+         - added check against entering duplicated MAC to the MAC table
+       * src/bridge.c:
+         - bugfixes: since SBRIDGES and GEMTEK represent same lvalue, each
+           occurence of ap_vendorext comparison with value SBRIDGES or GEMTEK
+           must be and-ed with result of comparison against ap_type value
+           or all sorts of weirdness may occur (such as non-working options
+           for specific vendor extensions, although they normally should)
+         - bugfixes: revised presence of all OIDs in all actually supported
+           vendor-extended MIBs. Result: all available OIDs relevant to
+           this menu should now also be correctly supported on devices
+           with SmartBridges APPO firmware and NetGear ME102 device firmware.
+         - Label 'Wireless' for config-enabled port mode changed to
+           'Wireless (can be risky)'. I've finally made a resolution
+           to step forward in this - setting config-enabled port to
+           wireless-only can even be deadly for non-USB equipped devices,
+           if configured improperly, if no second ATMEL-based device
+           is handy for fixing conf. on the peer via its wireless port,
+           for outdoor installations, and in couple of other scenarios.
+           REALLY THINK MANY TIMES PRIOR SETTING THIS TO wireless-only !!!
+       * configure.in, src/Makefile.am:
+         - avoid needless linking with curses library for several utilities
+           (ap-auth, ap-mrtg, ap-tftp, ap-trapd).
+       * Sysinfo menu will now also show current 'Operational mode'
+       * bugfix: all conditions that check return value of to snmp(,i,GET)
+         with i > 1, changed from '<= 0' condition to '< i' condition.
+         This is very important in cases when the device does not return _all_
+         the requested varbinds members filled up, which would usually lead
+         either to memory corruption often followed by ap-config crash
+         with 'segmentation fault' reason. If there's unreliable media
+         between the managed device and ap-config, this could previously
+         happen - typically, devices managed via their wireless port
+         or incorrectly configured devices (bad Frag. threshold and/or
+         RTS threshold) may respond with incomplete replies.
+       * naming convention of many variables, structures and OID names changed
+         to respect this scheme (cosmetics, intended coding standard):
+         - names of several #defines changed to be descriptive as
+           'STATUS_DESCRIPTION'
+         - OID names, unless absolutely necessary, should be always named
+           EXACTLY after the corresponding OID name in MIBs for easier
+           referencing
+         - names of structures named after OID, should end with '_s' or
+           '_' followed by something reasonable
+         - variable names should reflect their whole purpose
+
 2004-12-09 Roman Festchook
        * lib/common.c: fixed getting additional character into AP label during autodetection
 
index eaabc88ab5c34d24b5382ef496b54b194735d53c..9c7c0667484f923dd2a5f699eb018ab79d7f38e8 100644 (file)
@@ -19,5 +19,5 @@
 
 ## Process this file with automake to produce Makefile.in
 
-man_MANS = ap-trapd.8 ap-mrtg.8 ap-config.8 ap-gl.8 ap-auth.8
-EXTRA_DIST = $(man_MANS) FAQ Ukrainian/* Ovislink-HOWTO.html HARDWARE-NOTES README.*
+man_MANS = ap-trapd.8 ap-mrtg.8 ap-config.8 ap-gl.8 ap-auth.8 ap-tftp.8
+EXTRA_DIST = $(man_MANS) FAQ Ukrainian/* Ovislink-HOWTO.html HARDWARE-NOTES README.* mibs-atmel/*
index 5c79c82bb9104e3775ffd4db50af575ac664903c..b53f6060ab6590b54c6b2d2cd42984236d9e1623 100644 (file)
@@ -71,6 +71,7 @@ CCDEPMODE = @CCDEPMODE@
 CFLAGS = @CFLAGS@
 CPP = @CPP@
 CPPFLAGS = @CPPFLAGS@
+CURSESLIBS = @CURSESLIBS@
 CYGPATH_W = @CYGPATH_W@
 DATADIRNAME = @DATADIRNAME@
 DEFS = @DEFS@
@@ -157,8 +158,8 @@ sharedstatedir = @sharedstatedir@
 sysconfdir = @sysconfdir@
 target_alias = @target_alias@
 
-man_MANS = ap-trapd.8 ap-mrtg.8 ap-config.8 ap-gl.8 ap-auth.8
-EXTRA_DIST = $(man_MANS) FAQ Ukrainian/* Ovislink-HOWTO.html HARDWARE-NOTES README.*
+man_MANS = ap-trapd.8 ap-mrtg.8 ap-config.8 ap-gl.8 ap-auth.8 ap-tftp.8
+EXTRA_DIST = $(man_MANS) FAQ Ukrainian/* Ovislink-HOWTO.html HARDWARE-NOTES README.* mibs-atmel/*
 subdir = Documentation
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs
@@ -237,7 +238,7 @@ top_distdir = ..
 distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
 
 distdir: $(DISTFILES)
-       $(mkinstalldirs) $(distdir)/Ukrainian
+       $(mkinstalldirs) $(distdir)/Ukrainian $(distdir)/mibs-atmel
        @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
        topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
        list='$(DISTFILES)'; for file in $$list; do \
diff --git a/Documentation/ap-tftp.8 b/Documentation/ap-tftp.8
new file mode 100644 (file)
index 0000000..ea4dca2
--- /dev/null
@@ -0,0 +1,167 @@
+.\"      Manpage for ap-tftp utility
+.\"   from Wireless Access Point Utilitess for Unix
+.\"
+.\"  Copyright (c) 2004-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
+.\"  June 1991 as published by the Free Software Foundation.
+.\"
+.\"  This program is distributed in the hope that it will be useful, but
+.\"  WITHOUT ANY WARRANTY; without even the implied warranty of
+.\"  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+.\"  GNU General Public License for more details.
+.\"
+.\"  You should have received a copy of the GNU General Public License along
+.\"  with this program; if not, write to the Free Software Foundation, Inc.,
+.\"  59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+.TH ap-tftp 8 "Wireless Access Point Utilites for Unix"
+.SH NAME
+ap-tftp \- TFTP client for upgrading ATMEL AT76C510 WiSOC-based APs
+.TP
+.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
+.IR firmware.rom
+.B IP
+.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.
+.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
+.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:
+.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.
+.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.
+
+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.
+.TP
+.RE 4
+.B WARNING!!! WARNING!!! WARNING!!! WARNING!!! WARNING!!!
+.RS 4
+.IP o 3
+.B WA
+firmwares
+.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
+complain if you use ap-config with such firmware and it damages your AP!
+.IP o
+Since some hardware vendors keep up the bad habit of producing their own firmwares using the original ATMEL firmware naming scheme, it is easy to find firmwares from different hardware vendors for ATMEL-based APs with
+.B exactly the same name and sometimes even the length
+(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
+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
+.B SECURE YOUR AP ON IP (LAYER 3) BASIS! SET UP YOUR AP (AND ITS WIRELESS CLIENTS) WITH IP FROM A DIFFERENT IP SEGMENT THAN THE ONE IT IS PHYSICALLY ON. TO ACCESS AP ON SUCH DIFFERENT SEGMENT, YOU MAY USE IP-ALIAS INTERFACE (on Linux).
+.IP \-
+.B FOR APs IN "Access Point client" MODE, USE ap-config AND IN 'Config -> Bridge' MENU, CHANGE THE VALUE OF 'Configuration-enabled port(s):' TO 'Wireless'. THIS WAY, USER BEHIND Access Point client DEVICE WONT BE ABLE TO REACH ITS MANAGEMENT IP, AND SUBSEQUENTLY (S)HE WONT BE ABLE TO CAUSE ANY DAMAGE WITH TFTP.
+Note that setting Conf.-enabled port to 'Wireless' may be risky if you intend to reconfigure the device through Wireless media (bad values could be written to the AP due to wireless media unreliability). You should choose what is of greater risk for you.
+.RE 1
+.RS 4
+.IP o 3
+.B Users of ATMEL+RFMD APs:
+If you are running
+.B primary
+firmware < 0.2.2.20, you
+.B should upgrade as soon as possible! AP
+firmware of version 0.2.2.19 and lower contains serious 'death by reconfiguration' bug, which, if triggered, may irreversibly damage content in flash memory of your AP. The event to trigger is usually changing & writing some settings in the 'Bridge' menu. So if you run such firmware, please upgrade. You may also look into README to see whether 'Firmware available free of charge for ATMEL12350 MIB devices' (section) applies to your AP.
+.TP
+.RE 1
+.B GENERAL HINTS AND RECOMMENDATIONS PRIOR UPGRADING
+.RS 4
+.IP \- 3
+IF POSSIBLE, PLACE YOUR AP BEHIND A FIREWALL SO THAT YOU PREVENT ACCESS TO ITS MANAGEMENT IP FOR UNWANTED THIRD PARTIES
+.IP \-
+Avoid upgrading your AP via its wireless port, if possible. Due to the unreliable nature of wireless media and UDP protocol used for upgrade, anything could happen - although there is CRC-like check in the firmware, that prevents flashing of (firmware) file that has possibly been altered during transmission, upgrade process interruption might cause damage (but even this is not very likely). You may upgrade AP via its wireless port only if you're 101% sure the wireless connection to the target device is reliable.
+.IP \-
+If you experience upgrade timeout in the 'middle' of the upgrade progress, it is usually ok to wait until the utility completely times out, and repeat the command afterwards. You may also experience 'catch up' (very short network break, so utility will resume uploading firmware to your AP).
+.IP \-
+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.
+.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.
+.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:
+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
+.B WA
+firmware available for your AP (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
+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.
+.RE
+.SH EXAMPLES OF USE
+.PD 0
+
+.SS Upgrading "AP" firmware in AP with INTERSIL radio:
+.BR
+.TP
+ap-tftp -l 1.4j.3.rom 192.168.0.1
+
+.SS Upgrading "AP" firmware in AP with RFMD radio:
+.BR
+.TP
+ap-tftp -l 0.2.0.20.rom 192.168.1.100
+.TP
+ap-tftp -l 0.2.2.20.rom 192.168.1.100
+
+.SS Downgrading "AP" firmware in AP with RFMD radio:
+.BR
+.TP
+ap-tftp -l 0.3.0.6.rom 192.168.1.100
+.TP
+ap-tftp -l 0.3.2.6.rom 192.168.1.100
+.TP
+ap-tftp -l 0.2.0.19.rom 192.168.1.100
+.TP
+ap-tftp -l 0.2.2.19.rom 192.168.1.100
+
+.SH AUTHOR
+Jan Rafaj <jr-aputils at cedric dot unob dot cz>
+.br
+http://ap-utils.polesye.net
+
+.SH SEE ALSO
+ap-config(8), ap-trapd(8), ap-auth(8), ap-mrtg(8)
+
diff --git a/Documentation/mibs-atmel/README b/Documentation/mibs-atmel/README
new file mode 100644 (file)
index 0000000..74667ea
--- /dev/null
@@ -0,0 +1,3 @@
+This is a collection of different "reference prototype" MIBs,
+that are (or are planned to be) supported by ap-utils.
+
diff --git a/Documentation/mibs-atmel/mib-12350-ezynet/AT76C510.mib b/Documentation/mibs-atmel/mib-12350-ezynet/AT76C510.mib
new file mode 100644 (file)
index 0000000..751c249
--- /dev/null
@@ -0,0 +1,1363 @@
+-- Title:      ATMEL  Private MIB                                          \r
+\r
+\r
+--Firmaware Version 1.4 14/5/2001\r
+\r
+\r
+ATMEL-MIB DEFINITIONS ::= BEGIN\r
+\r
+--IMPORTS\r
+--     enterprises,Counter\r
+--FROM RFC1155-SMI\r
+--     DisplayString\r
+--FROM RFC1213-MIB;\r
+--     TRAP-TYPE\r
+--FROM RFC-1215;\r
+\r
+\r
+--MacAddress ::= IMPLICIT OCTET STRING (SIZE(6))\r
+DisplayString ::= OCTET STRING\r
+\r
+internet      OBJECT IDENTIFIER ::= { iso org(3) dod(6) 1 }\r
+directory     OBJECT IDENTIFIER ::= { internet 1 }\r
+mgmt          OBJECT IDENTIFIER ::= { internet 2 }\r
+experimental  OBJECT IDENTIFIER ::= { internet 3 }\r
+private       OBJECT IDENTIFIER ::= { internet 4 }\r
+enterprises   OBJECT IDENTIFIER ::= { private 1 }\r
+\r
+--atmel       OBJECT IDENTIFIER ::= { enterprises 410 } \r
+atmel       OBJECT IDENTIFIER ::= { enterprises 12350 }\r
+atmelmib    OBJECT IDENTIFIER ::= { atmel 1}\r
+atmelSys       OBJECT IDENTIFIER ::= {atmelmib 1}\r
+wireless       OBJECT IDENTIFIER ::= {atmelmib 2}\r
+traps  OBJECT IDENTIFIER ::= {atmelmib 3 }\r
+\r
+\r
+\r
+--*************************** System***************************\r
+--****************************************************************\r
+\r
+\r
+\r
+sysCtrlGRP OBJECT IDENTIFIER ::= {atmelSys 1}\r
+\r
+sysDescr OBJECT-TYPE\r
+    SYNTAX  DisplayString (SIZE (0..255))\r
+    ACCESS  read-only\r
+    STATUS  mandatory\r
+       DESCRIPTION\r
+         "A textual description of the entity.  This value\r
+          should include the full name and version\r
+          identification of the system's hardware type,\r
+          software operating-system, and networking\r
+          software.  It is mandatory that this only contain\r
+          printable ASCII characters."\r
+       ::= { sysCtrlGRP 1 } \r
+\r
+\r
+sysReset OBJECT-TYPE\r
+       SYNTAX INTEGER {enable(1)}\r
+       ACCESS  read-write\r
+       STATUS  mandatory\r
+       DESCRIPTION       \r
+       "By setting this attribute enable(1), a reset command to \r
+       the system is issued." \r
+       ::= { sysCtrlGRP 2 } \r
+\r
+sysTrapSwitch OBJECT-TYPE\r
+       SYNTAX INTEGER {enable(1),disable(2)}\r
+       ACCESS read-write\r
+       STATUS mandatory\r
+       DESCRIPTION\r
+       "This attribute enables the transmission of SNMP.V1 TRAPs."\r
+       ::= {sysCtrlGRP 3}\r
+\r
+sysLoadDefaults OBJECT-TYPE\r
+       SYNTAX INTEGER { enable(1)}\r
+       ACCESS  read-write\r
+       STATUS  mandatory\r
+       DESCRIPTION       \r
+       "Setting this attribute to enable(1), will cause the system to load\r
+       the factory default values of all the operational parameters." \r
+       ::= { sysCtrlGRP 4 }\r
+\r
+sysDeviceInfo  OBJECT-TYPE\r
+                       SYNTAX OCTET STRING (SIZE (92))\r
+                       ACCESS read-write\r
+                       STATUS mandatory\r
+                       DESCRIPTION      \r
+                       "First 92 bytes of Hardware device configuration struct.\r
+                                HARD_CONFIGURATION_STUCT{\r
+                                       unsigned long StructVersion;\r
+       \r
+                                       unsigned char MacAddress[6];\r
+                                       unsigned char Channel;\r
+                                       unsigned char RegulatoryDomain;\r
+       \r
+                                       unsigned long ProductType;\r
+                                       unsigned char OEMname[32];\r
+                                       unsigned long OEMID;\r
+                                       unsigned char ProductName[32];\r
+                                       unsigned long HardwareRevision;\r
+\r
+                                       unsigned char PID_VID[4];       //Product ID/ Vendor ID\r
+       \r
+                                       unsigned int  sysOIDSize;\r
+                                       unsigned short sysOID[16];\r
+       \r
+                                       unsigned char  CountryCode[3];\r
+                                       unsigned char  Reserved1;\r
+                                       unsigned short ChannelInformation;\r
+                                       unsigned char  Reserved2[2];\r
+                                       char       TxPower[14]; \r
+\r
+                                       unsigned char Reserved3[10];\r
+                               } "\r
+\r
+                       ::= {sysCtrlGRP 5 }\r
+\r
+sysUpload OBJECT-TYPE\r
+       SYNTAX INTEGER {enable(1)}\r
+       ACCESS  read-write\r
+       STATUS  mandatory\r
+       DESCRIPTION       \r
+       "By setting this attribute enable(1), a Upload configuration command to \r
+       the system is issued." \r
+       ::= { sysCtrlGRP 6 } \r
+                   \r
+SiteSurveyCommand OBJECT-TYPE\r
+       SYNTAX INTEGER {enable(1)}\r
+       ACCESS  read-write\r
+       STATUS  mandatory\r
+       DESCRIPTION       \r
+       "By setting this attribute enable(1), a Site Survey command to \r
+       the system is issued." \r
+       ::= { sysCtrlGRP 7 } \r
+\r
+sysDeviceMoreInfo      OBJECT-TYPE\r
+                       SYNTAX OCTET STRING (SIZE (32))\r
+                       ACCESS read-write\r
+                       STATUS mandatory\r
+                       DESCRIPTION      \r
+                       "Last 32 bytes of Hardware device configuration struct.\r
+                                HARD_CONFIGURATION_STUCT{\r
+                                       unsigned long StructVersion;\r
+       \r
+                                       unsigned char MacAddress[6];\r
+                                       unsigned char Channel;\r
+                                       unsigned char RegulatoryDomain;\r
+       \r
+                                       unsigned long ProductType;\r
+                                       unsigned char OEMname[32];\r
+                                       unsigned long OEMID;\r
+                                       unsigned char ProductName[32];\r
+                                       unsigned long HardwareRevision;\r
+\r
+                                       unsigned char PID_VID[4];       //Product ID/ Vendor ID\r
+       \r
+                                       unsigned int  sysOIDSize;\r
+                                       unsigned short sysOID[16];\r
+       \r
+                                       unsigned char  CountryCode[3];\r
+                                       unsigned char  Reserved1;\r
+                                       unsigned short ChannelInformation;\r
+                                       unsigned char  Reserved2[2];\r
+                                       char       TxPower[14]; \r
+\r
+                                       unsigned char Reserved3[10];\r
+                               } "\r
+\r
+                       ::= {sysCtrlGRP 8 }\r
+\r
+\r
+                      \r
+\r
+-----------------------------BridgingLevel-----------------------------\r
+\r
+operBridgingLevel OBJECT IDENTIFIER ::= {atmelSys 2}\r
+\r
+operIPAddress OBJECT-TYPE\r
+               SYNTAX IpAddress\r
+               ACCESS read-write\r
+               STATUS mandatory\r
+               DESCRIPTION      \r
+               "The IP address of this device used over its Ethernet\r
+               or Wireless LAN port."\r
+               ::= { operBridgingLevel 1 }\r
+\r
+operIPMask OBJECT-TYPE\r
+           SYNTAX  IpAddress\r
+           ACCESS  read-write\r
+           STATUS  mandatory\r
+           DESCRIPTION\r
+           "The IP Network mask used by the IP entity when accessing\r
+           devices through any of its LAN Ports (Ethernet or WLAN)."\r
+           ::= { operBridgingLevel 2}\r
+\r
+operEthernetAddress OBJECT-TYPE\r
+           SYNTAX  OCTET STRING (SIZE (6))\r
+           ACCESS  read-only\r
+           STATUS  mandatory\r
+           DESCRIPTION\r
+           "The MAC Address of the Ethernet interface."\r
+           ::= { operBridgingLevel 3}\r
+\r
+\r
+operGateway OBJECT-TYPE\r
+               SYNTAX IpAddress\r
+               ACCESS read-write\r
+               STATUS mandatory\r
+               DESCRIPTION      \r
+               "Gateway default IP address."\r
+               ::= { operBridgingLevel 4 }\r
+\r
+operDHCP OBJECT-TYPE\r
+               SYNTAX  INTEGER {enable(1),disable(2)}\r
+               ACCESS read-write\r
+               STATUS mandatory\r
+               DESCRIPTION      \r
+               "When setting this attribute to enable(1), the system will\r
+               enable DHCP protocol."\r
+               ::= { operBridgingLevel 5 }\r
+\r
+operPrimaryPort OBJECT-TYPE\r
+               SYNTAX  INTEGER {Ethernet(1),Wireless(2)}\r
+               ACCESS read-write\r
+               STATUS mandatory\r
+               DESCRIPTION      \r
+               "This attribute indicates the primaty port.Ethernet or Wireless."\r
+               ::= { operBridgingLevel 6 }\r
+\r
+operConfigurationPort OBJECT-TYPE\r
+               SYNTAX  INTEGER {Ethernet(1),Wireless(2),Both(3)}\r
+               ACCESS read-write\r
+               STATUS mandatory\r
+               DESCRIPTION      \r
+               "This attribute indicates the Configuration port.Ethernet or Wireless or Both of them."\r
+               ::= { operBridgingLevel 7 }\r
+\r
+operTrapPort OBJECT-TYPE\r
+               SYNTAX  INTEGER \r
+               ACCESS read-write\r
+               STATUS mandatory\r
+               DESCRIPTION      \r
+               "This attribute indicates the Trap port."\r
+               ::= { operBridgingLevel 8 }\r
+\r
+\r
+\r
+-----------------------------Filtering-----------------------------\r
+\r
+\r
+\r
+operFiltering OBJECT IDENTIFIER ::= {atmelSys 3}\r
+\r
+operIPFilter OBJECT-TYPE\r
+               SYNTAX  INTEGER {enable(1), disable(2)}\r
+               ACCESS read-write\r
+               STATUS mandatory\r
+               DESCRIPTION      \r
+               "When setting this attribute to enable(1), the system will\r
+               filter out all non IP-traffic."\r
+               ::= { operFiltering 1 }\r
+      \r
+operForwarbBcast OBJECT-TYPE\r
+               SYNTAX  INTEGER {enable(1), disable(2)}\r
+               ACCESS read-write\r
+               STATUS mandatory\r
+               DESCRIPTION      \r
+               "When setting this attribute to disable(2), the system will not\r
+               forward broadcast traffic to the Wireless Port."\r
+               ::= { operFiltering 2 }\r
+                                                     \r
+operSendBackBcast OBJECT-TYPE\r
+               SYNTAX  INTEGER {enable(1), disable(2)}\r
+               ACCESS read-write\r
+               STATUS mandatory\r
+               DESCRIPTION      \r
+               "When setting this attribute to disable(2), the system will not\r
+               send back broadcast traffic to the Wireless Port."\r
+               ::= { operFiltering 3 }\r
+                 \r
+operSendBackUnicast OBJECT-TYPE\r
+               SYNTAX  INTEGER {enable(1), disable(2)}\r
+               ACCESS read-write\r
+               STATUS mandatory\r
+               DESCRIPTION      \r
+               "When setting this attribute to disable(2), the system will not\r
+               send back unicast traffic to the Wireless Port."\r
+               ::= { operFiltering 4 }\r
+\r
+\r
+-----------------------------Bridge Operational Mode -----------------------------\r
+\r
+\r
+operBridgeOperationalMode OBJECT IDENTIFIER ::= {atmelSys 4}\r
+\r
+\r
+bridgeOperationalMode OBJECT-TYPE\r
+               SYNTAX  INTEGER {WBPoint2Multipoint(1), AP(2), APclient(3),  WBPoint2Point(4), WRepeater(5)}\r
+               ACCESS read-write\r
+               STATUS mandatory\r
+               DESCRIPTION      \r
+               "The Operational Mode of Bridge. Access Point, Access Point client, Wireless Bridge Point to Point, Wireless Bridge Point to MultiPoint."\r
+               ::= { operBridgeOperationalMode 1 }\r
+\r
+bridgeRemoteBridgeBSSID OBJECT-TYPE\r
+               SYNTAX  OCTET STRING (SIZE (6))\r
+               ACCESS read-write\r
+               STATUS mandatory\r
+               DESCRIPTION      \r
+               "The Preferred BSSID if the device is at Access Point client mode\r
+               or the remote Mac if the device is at Wireless Bridge Point to Point mode."\r
+               ::= { operBridgeOperationalMode 2 }\r
+\r
+\r
+\r
+-----------------------------Static-----------------------------\r
+\r
+\r
+dot1dStatic OBJECT IDENTIFIER ::= {atmelSys 5}\r
+\r
+\r
+StaticMacFilterNum OBJECT-TYPE\r
+      SYNTAX  INTEGER \r
+      ACCESS  read-write\r
+      STATUS  mandatory\r
+      DESCRIPTION\r
+      "This parameter's value indicates the number of the currently\r
+      static MAC filters."\r
+      ::= { dot1dStatic 1 }\r
+\r
+\r
+          dot1dStaticTable OBJECT-TYPE\r
+              SYNTAX  SEQUENCE OF Dot1dStaticEntry\r
+              ACCESS  not-accessible\r
+              STATUS  mandatory\r
+              DESCRIPTION\r
+                      "A table containing filtering information\r
+                      configured into the bridge by (local or network)\r
+                      management specifying the set of ports to which\r
+                      frames received from specific ports and containing\r
+                      specific destination addresses are allowed to be\r
+                      forwarded.  The value of zero in this table as the\r
+                      port number from which frames with a specific\r
+                      destination address are received, is used to\r
+                      specify all ports for which there is no specific\r
+                      entry in this table for that particular\r
+                      destination address.  Entries are valid for\r
+                      unicast and for group/broadcast addresses."\r
+              REFERENCE\r
+                      "IEEE 802.1D-1990: Section 6.7.2"\r
+              ::= { dot1dStatic 2 }\r
+\r
+          dot1dStaticEntry OBJECT-TYPE\r
+              SYNTAX  Dot1dStaticEntry\r
+              ACCESS  not-accessible\r
+              STATUS  mandatory\r
+              DESCRIPTION\r
+                      "Filtering information configured into the bridge\r
+                      by (local or network) management specifying the\r
+                      set of ports to which frames received from a\r
+                      specific port and containing a specific\r
+                      destination address are allowed to be forwarded."\r
+              REFERENCE\r
+                      "IEEE 802.1D-1990: Section 6.7.2"\r
+              INDEX   { dot1dStaticAddress}--, dot1dStaticReceivePort }\r
+              ::= { dot1dStaticTable 1 }\r
+\r
+          Dot1dStaticEntry ::=\r
+              SEQUENCE {\r
+                  dot1dStaticAddress\r
+                      OCTET STRING (SIZE (6))\r
+--                  dot1dStaticReceivePort\r
+--                     INTEGER,\r
+--                  dot1dStaticAllowedToGoTo\r
+--                      INTEGER,\r
+--                  dot1dStaticStatus\r
+--                      INTEGER\r
+              }\r
+\r
+          dot1dStaticAddress OBJECT-TYPE\r
+              SYNTAX  OCTET STRING (SIZE (6))\r
+              ACCESS  read-write\r
+              STATUS  mandatory\r
+              DESCRIPTION\r
+                      "The destination MAC address in a frame to which\r
+                      this entry's filtering information applies.  This\r
+                      object can take the value of a unicast address, a\r
+                      group address or the broadcast address."\r
+              REFERENCE\r
+                      "IEEE 802.1D-1990: Section 3.9.1, 3.9.2"\r
+              ::= { dot1dStaticEntry 1 }\r
+\r
+--          dot1dStaticReceivePort OBJECT-TYPE\r
+--              SYNTAX  INTEGER\r
+--              ACCESS  read-write\r
+--              STATUS  mandatory\r
+--              DESCRIPTION\r
+--                      "Either the value '0', or the port number of the\r
+--                      port from which a frame must be received in order\r
+--                      for this entry's filtering information to apply.\r
+--                      A value of zero indicates that this entry applies\r
+--                      on all ports of the bridge for which there is no\r
+--                      other applicable entry."\r
+--              ::= { dot1dStaticEntry 2 }\r
+\r
+--          dot1dStaticAllowedToGoTo OBJECT-TYPE\r
+--              SYNTAX  INTEGER\r
+--              ACCESS  read-write\r
+--              STATUS  mandatory\r
+--              DESCRIPTION\r
+--                      "The set of ports to which frames received from a\r
+--                      specific port and destined for a specific MAC\r
+--                      address, are allowed to be forwarded.  Each octet\r
+--                      within the value of this object specifies a set of\r
+--                      eight ports, with the first octet specifying ports\r
+--                      1 through 8, the second octet specifying ports 9\r
+--                      through 16, etc.  Within each octet, the most\r
+--                      significant bit represents the lowest numbered\r
+--                      port, and the least significant bit represents the\r
+--                      highest numbered port.  Thus, each port of the\r
+--                      bridge is represented by a single bit within the\r
+--                      value of this object.  If that bit has a value of\r
+--                      '1' then that port is included in the set of\r
+--                      ports; the port is not included if its bit has a\r
+--                      value of '0'.  (Note that the setting of the bit\r
+--                      corresponding to the port from which a frame is\r
+--                      received is irrelevant.)  The default value of\r
+--                      this object is a string of ones of appropriate\r
+--                      length."\r
+--              ::= { dot1dStaticEntry 3 }\r
+--\r
+--          dot1dStaticStatus OBJECT-TYPE\r
+--              SYNTAX  INTEGER {\r
+--                          other(1),\r
+--                          invalid(2),\r
+--                          permanent(3),\r
+--                          deleteOnReset(4),\r
+--                          deleteOnTimeout(5)\r
+--                      }\r
+--              ACCESS  read-write\r
+--              STATUS  mandatory\r
+--              DESCRIPTION\r
+--                      "This object indicates the status of this entry.\r
+--                      The default value is permanent(3).\r
+--                           other(1) - this entry is currently in use but\r
+--                                the conditions under which it will\r
+--                                remain so are different from each of the\r
+--                                following values.\r
+--                           invalid(2) - writing this value to the object\r
+--                                removes the corresponding entry.\r
+--                           permanent(3) - this entry is currently in use\r
+--                                and will remain so after the next reset\r
+--                                of the bridge.\r
+--                           deleteOnReset(4) - this entry is currently in\r
+--                                use and will remain so until the next\r
+--                                reset of the bridge.\r
+--                           deleteOnTimeout(5) - this entry is currently\r
+--                                in use and will remain so until it is\r
+--                                aged out."\r
+--              ::= { dot1dStaticEntry 4 }\r
+\r
+\r
+\r
+----------------------------------Protocol Filtering-------------------\r
+\r
+\r
+ProtocolFilterGRP OBJECT IDENTIFIER ::= {atmelSys 6}\r
+\r
+ProtocolFilterNum OBJECT-TYPE\r
+      SYNTAX  INTEGER \r
+      ACCESS  read-write\r
+      STATUS  mandatory\r
+      DESCRIPTION\r
+      "This parameter's value indicates the number of the currently\r
+      protocol filters."\r
+      ::= { ProtocolFilterGRP 1 }\r
+\r
+\r
+\r
+\r
+          ProtocolFilterTable OBJECT-TYPE\r
+              SYNTAX  SEQUENCE OF ProtocolFilterEntry\r
+              ACCESS  not-accessible\r
+              STATUS  mandatory\r
+              DESCRIPTION\r
+                      "A table containing filtering information\r
+                      configured into the bridge by (local or network)\r
+                      management specifying the set of protocol filter."\r
+              ::= { ProtocolFilterGRP 2 }\r
+\r
+          protocolFilterEntry OBJECT-TYPE\r
+              SYNTAX  ProtocolFilterEntry\r
+              ACCESS  not-accessible\r
+              STATUS  mandatory\r
+              DESCRIPTION\r
+                      "Filtering information configured into the bridge\r
+                      by (local or network) management specifying the\r
+                      set of protocol filter."\r
+              INDEX   { ProtocolFilterCode }\r
+              ::= { ProtocolFilterTable 1 }\r
+\r
+          ProtocolFilterEntry ::=\r
+              SEQUENCE {\r
+                  ProtocolFilterCode\r
+                      OCTET STRING (SIZE (2)),\r
+                  ProtocolFilterDescription\r
+                      DisplayString (SIZE (0..255)),\r
+                  ProtocolFilterActivity\r
+                      INTEGER\r
+              }\r
+\r
+          ProtocolFilterCode OBJECT-TYPE\r
+              SYNTAX  OCTET STRING (SIZE (2))\r
+              ACCESS  read-write\r
+              STATUS  mandatory\r
+              DESCRIPTION\r
+                      "The protocol code configured into the bridge\r
+                      by (local or network) management specifying the\r
+                      set of protocol filter."\r
+              ::= { protocolFilterEntry 1 }\r
+\r
+          ProtocolFilterDescription OBJECT-TYPE\r
+              SYNTAX  DisplayString (SIZE (0..255))\r
+              ACCESS  read-write\r
+              STATUS  mandatory\r
+              DESCRIPTION\r
+                      "A textual description of the protocol."\r
+              ::= { protocolFilterEntry 2 }\r
+\r
+          ProtocolFilterActivity OBJECT-TYPE\r
+              SYNTAX  INTEGER {enable(1),disable(2)}\r
+              ACCESS  read-write\r
+              STATUS  mandatory\r
+              DESCRIPTION\r
+                      "This object indicates the status of this filter."\r
+              ::= { protocolFilterEntry 3 }\r
+\r
+\r
+\r
+-----------------------------Ethernet STATISTICS-----------------------------\r
+\r
+\r
+EthStatisticsGRP OBJECT IDENTIFIER ::= {atmelSys 7}\r
+\r
+EthRxStatistics OBJECT-TYPE\r
+               SYNTAX OCTET STRING (SIZE (64))\r
+               ACCESS read-only\r
+               STATUS mandatory\r
+               DESCRIPTION      \r
+               "Ethernet Rx Statistics\r
+               EthernetRxStatistics{\r
+                       unsigned long   TotalBytesRx;\r
+                       unsigned long   TotalPacketsRx;\r
+                       unsigned long   PacketCRCErrorRx;\r
+                       unsigned long   MulticastPacketRx;\r
+                       unsigned long   BroadcastPacketRx;\r
+                       unsigned long   ControlFramesRx;\r
+                       unsigned long   PauseFramesRx;\r
+                       unsigned long   UnknownOPCodeRx;\r
+                       unsigned long   AlignmentRxError;\r
+                       unsigned long   LengthOutOfRangeRx;\r
+                       unsigned long   CodeErrorRx;\r
+                       unsigned long   FalseCarrierRx;\r
+                       unsigned long   UndersizePacketsRx;\r
+                       unsigned long   OversizePacketsRx;\r
+                       unsigned long   TotalFragmentsRx;\r
+                       unsigned long   TotalJabberRx;\r
+               }"\r
+               ::= {EthStatisticsGRP 1 }\r
+\r
+EthTxStatistics OBJECT-TYPE\r
+               SYNTAX OCTET STRING (SIZE (56))\r
+               ACCESS read-only\r
+               STATUS mandatory\r
+               DESCRIPTION      \r
+               "Ethernet Tx Statistics\r
+               EthernetTxStatistics{\r
+                       unsigned long   TotalBytesTx;\r
+                       unsigned long   TotalPacketsTx;\r
+                       unsigned long   PacketCRCErrorTx;\r
+                       unsigned long   MulticastPacketTx;\r
+                       unsigned long   BroadcastPacketTx;\r
+                       unsigned long   UnicastPacketTx;\r
+                       unsigned long   PauseFramesTx;\r
+                       unsigned long   SingleDeferPacketTx;\r
+                       unsigned long   MultiDeferPacketsTx;\r
+                       unsigned long   SingleCollisionsTx;\r
+                       unsigned long   MultiCollisionsTx;\r
+                       unsigned long   LateCollisionsTx;\r
+                       unsigned long   ExcessiveCollisionTx;\r
+                       unsigned long   TotalCollisionsTx;\r
+               }"\r
+\r
+               ::= {EthStatisticsGRP 2 }\r
+\r
+\r
+\r
+\r
+\r
+-----------------------------Test Mode Settings-----------------------------\r
+\r
+\r
+TestModeSettingsGRP OBJECT IDENTIFIER ::= {atmelSys 8}\r
+\r
+TestModeOnOff  OBJECT-TYPE\r
+                               SYNTAX INTEGER {enable(1),disable(2)}\r
+                               ACCESS read-write\r
+                               STATUS mandatory\r
+                               DESCRIPTION      \r
+                               "When setting this attribute to enable(1), the device be\r
+                               at test mode."\r
+                               ::= { TestModeSettingsGRP 1 }\r
+\r
+\r
+TestModeCommandStruct  OBJECT-TYPE\r
+                               SYNTAX OCTET STRING (SIZE (20))\r
+                               ACCESS read-write\r
+                               STATUS mandatory\r
+                               DESCRIPTION      \r
+                               "\r
+                               typedef struct __CONT_PKT_TX\r
+                               {\r
+                                       UINT8   Channel;\r
+                                       UINT8   Antenna;\r
+                                       UINT8   TxPower;\r
+                                       UINT8   TxRate;\r
+                               \r
+                                       UINT8   TxFilter;\r
+                                       UINT8   Reserved;\r
+                                       UINT16  IFrameTime;\r
+                               \r
+                                       UINT32  FrameLength;\r
+                                       UINT32  FramesToTransmit;\r
+                                       \r
+                                       UINT8   Pattern;\r
+                                       UINT8   Reserved1[3];\r
+                               }CONT_PKT_TX;\r
+                               "\r
+                               ::= {TestModeSettingsGRP 2 }\r
+\r
+TestModeRadioConfiguration     OBJECT-TYPE\r
+                                       SYNTAX OCTET STRING (SIZE (47))\r
+                                       ACCESS read-write\r
+                                       STATUS mandatory\r
+                                       DESCRIPTION      \r
+                                       "Configuration of radio derived from tests. CR17 Reg 1-14, CR20 Reg 1-14, CR21 Reg 1-14, CR1, CR2, CR3, CR28, CR29"\r
+                                       ::= {TestModeSettingsGRP 8 }\r
+\r
+TestModeStatistics             OBJECT-TYPE\r
+                                       SYNTAX OCTET STRING (SIZE (12))\r
+                                       ACCESS read-only\r
+                                       STATUS mandatory\r
+                                       DESCRIPTION      \r
+                                       "Statistics derive from tests\r
+                                       TestModeStatistics{\r
+                                               unsigned long SuccessFrames;\r
+                                               unsigned long FailedFrames;\r
+                                               unsigned long PacketsTx;\r
+                                       } "\r
+\r
+                                       ::= {TestModeSettingsGRP 9 }\r
+\r
+\r
+\r
+\r
+-----------------------------Authorized Settings-----------------------------\r
+\r
+\r
+AuthorizedSettingsGRP OBJECT IDENTIFIER ::= {atmelSys 9}\r
+\r
+AuthorizedUserPass     OBJECT-TYPE\r
+                               SYNTAX OCTET STRING (SIZE (16))\r
+                               ACCESS read-write\r
+                               STATUS mandatory\r
+                               DESCRIPTION      \r
+                               "The community name of User."\r
+                               ::= {AuthorizedSettingsGRP 1 }\r
+\r
+\r
+AuthorizedAdminPass    OBJECT-TYPE\r
+                               SYNTAX OCTET STRING (SIZE (16))\r
+                               ACCESS read-write\r
+                               STATUS mandatory\r
+                               DESCRIPTION      \r
+                               "The community name of Administrator."\r
+                               ::= {AuthorizedSettingsGRP 2 }\r
+\r
+\r
+AuthorizedManufactPass         OBJECT-TYPE\r
+                               SYNTAX OCTET STRING (SIZE (16))\r
+                               ACCESS read-write\r
+                               STATUS mandatory\r
+                               DESCRIPTION      \r
+                               "The community name of Manufacturer."\r
+                               ::= {AuthorizedSettingsGRP 3 }\r
+\r
+\r
+--*************************** wireless ***************************\r
+--****************************************************************\r
+\r
+-----------------------------Operational Settings-----------------------------\r
+\r
+\r
+OperationalSettingsGRP OBJECT IDENTIFIER ::= {wireless 1}\r
+\r
+\r
+operChannelID  OBJECT-TYPE\r
+       SYNTAX  INTEGER  {\r
+                       channel1(1),\r
+                       channel2(2),\r
+                       channel3(3),\r
+                       channel4(4),\r
+                       channel5(5),\r
+                       channel6(6),\r
+                       channel7(7),\r
+                       channel8(8),\r
+                       channel9(9),\r
+                       channel10(10),\r
+                       channel11(11),\r
+                       channel12(12),\r
+                       channel13(13),\r
+                       channel14(14)\r
+               }\r
+       ACCESS  read-write\r
+       STATUS  mandatory\r
+       DESCRIPTION\r
+               "The operating frequency channel. Valid numbers\r
+               are     as defind in ISO/IEC 8802-11:1999, 15.4.6.2."\r
+       ::= { OperationalSettingsGRP 1 }\r
+\r
+\r
+operESSIDLength OBJECT-TYPE\r
+     SYNTAX  INTEGER\r
+     ACCESS  read-write    \r
+     STATUS  mandatory\r
+     DESCRIPTION\r
+     "The ESSID Length"\r
+     ::= {OperationalSettingsGRP 2 }     \r
+\r
+operESSID OBJECT-TYPE\r
+     SYNTAX  OCTET STRING (SIZE (32))\r
+     ACCESS  read-write    \r
+     STATUS  mandatory\r
+     DESCRIPTION\r
+     "The network name. The size of the network name\r
+     should not be more than 32 characters long."\r
+     ::= {OperationalSettingsGRP 3 }     \r
+\r
+\r
+operRTSThreshold OBJECT-TYPE\r
+               SYNTAX  INTEGER  \r
+               ACCESS read-write\r
+               STATUS mandatory\r
+               DESCRIPTION      \r
+               "This attribute indicates the number of bytes in an \r
+               MPDU (frame), above which an RTS/CTS handshake will be\r
+               performed. Setting this attribute to be larger than the\r
+               maximum frame size, will prevent the RTS/CTS handshake \r
+               for frames trassmitted by this station."\r
+       ::= {OperationalSettingsGRP 4 }\r
+\r
+\r
+operFragmentationThreshold OBJECT-TYPE\r
+               SYNTAX  INTEGER  \r
+               ACCESS read-write\r
+               STATUS mandatory\r
+               DESCRIPTION      \r
+               "This attribute indicates the number of bytes in an \r
+               MPDU (frame), above which MPDU fragmentation will be\r
+               performed."\r
+       ::= {OperationalSettingsGRP 5 }\r
+       \r
+\r
+operPreambleType OBJECT-TYPE\r
+      SYNTAX  INTEGER {\r
+                       ShortPreamble(1),\r
+                       LongPreamble(2)\r
+               }\r
+      ACCESS  read-write\r
+      STATUS  mandatory\r
+      DESCRIPTION\r
+      "This parameter's value indicates the Preamble Type of device. Short or Long."\r
+             ::= {OperationalSettingsGRP 6 }\r
+\r
+\r
+operAuthenticationType OBJECT-TYPE\r
+               SYNTAX  INTEGER {\r
+       openSystem(1),\r
+       sharedKey(2),\r
+       BothType(3)\r
+       }\r
+               ACCESS read-write\r
+               STATUS mandatory\r
+               DESCRIPTION      \r
+               "This attribute indicates the authentication algorithm\r
+               used during the authentication sequence.\r
+               The value of this attribute is one of the following:\r
+               1 - Open System,\r
+               2 - Shared Key\r
+               3 - Both Type "\r
+               ::= {OperationalSettingsGRP 7 }\r
+\r
+\r
+operBasicRates OBJECT-TYPE\r
+               SYNTAX OCTET STRING (SIZE (4))\r
+               ACCESS read-write\r
+               STATUS mandatory\r
+               DESCRIPTION      \r
+               "This attribute indicates the basic and supported rates of Access Point.Valid format\r
+               is as defind in ISO/IEC 8802-11:1999"\r
+               ::= { OperationalSettingsGRP 8 }\r
+\r
+\r
+operAutoRateFallBack OBJECT-TYPE\r
+               SYNTAX INTEGER {enable(1),disable(2)}\r
+               ACCESS read-write\r
+               STATUS mandatory\r
+               DESCRIPTION      \r
+               "This attribute indicates if Auto Rate Fall Back is enable or disable."\r
+               ::= {OperationalSettingsGRP 9 }\r
+\r
+operAccessPointName OBJECT-TYPE\r
+     SYNTAX  OCTET STRING (SIZE (32))\r
+     ACCESS  read-write    \r
+     STATUS  mandatory\r
+     DESCRIPTION\r
+     "The AP name."\r
+     ::= {OperationalSettingsGRP 10 }     \r
+\r
+operSSIDBroadcasting OBJECT-TYPE\r
+               SYNTAX INTEGER {enable(1),disable(2)}\r
+               ACCESS read-write\r
+               STATUS mandatory\r
+               DESCRIPTION      \r
+               "This attribute indicates if SSID is broadcasting or not."\r
+               ::= {OperationalSettingsGRP 11 }\r
+\r
+operAntennaSettings OBJECT-TYPE\r
+               SYNTAX INTEGER\r
+               ACCESS read-write\r
+               STATUS mandatory\r
+               DESCRIPTION      \r
+               "."\r
+               ::= {OperationalSettingsGRP 12 }\r
+\r
+operInterRoaming OBJECT-TYPE\r
+               SYNTAX INTEGER\r
+               ACCESS read-write\r
+               STATUS mandatory\r
+               DESCRIPTION      \r
+               "."\r
+               ::= {OperationalSettingsGRP 13 }\r
+\r
+operBeaconPeriod OBJECT-TYPE\r
+               SYNTAX INTEGER\r
+               ACCESS read-write\r
+               STATUS mandatory\r
+               DESCRIPTION      \r
+               "."\r
+               ::= {OperationalSettingsGRP 14 }\r
+\r
+operDTIM OBJECT-TYPE\r
+               SYNTAX INTEGER\r
+               ACCESS read-write\r
+               STATUS mandatory\r
+               DESCRIPTION      \r
+               "."\r
+               ::= {OperationalSettingsGRP 15 }\r
+\r
+\r
+operSIFSTIME OBJECT-TYPE\r
+               SYNTAX INTEGER\r
+               ACCESS read-write\r
+               STATUS mandatory\r
+               DESCRIPTION      \r
+               "."\r
+               ::= {OperationalSettingsGRP 16 }\r
+\r
+\r
+-----------------------------Privacy-----------------------------\r
+\r
+\r
+privacyGRP OBJECT IDENTIFIER ::= { wireless 2 }\r
+\r
+\r
+\r
+defaultWEPKey1 OBJECT-TYPE\r
+    SYNTAX OCTET STRING (SIZE (13))\r
+    ACCESS  write-only\r
+    STATUS  mandatory\r
+    DESCRIPTION    \r
+    "A WEP default secret key value."\r
+    ::= { privacyGRP 1 }    \r
+\r
+defaultWEPKey2 OBJECT-TYPE\r
+    SYNTAX OCTET STRING (SIZE (13))\r
+    ACCESS  write-only\r
+    STATUS  mandatory\r
+    DESCRIPTION    \r
+    "A WEP default secret key value."\r
+    ::= { privacyGRP 2 }    \r
+\r
+defaultWEPKey3 OBJECT-TYPE\r
+    SYNTAX OCTET STRING (SIZE (13))\r
+    ACCESS  write-only\r
+    STATUS  mandatory\r
+    DESCRIPTION    \r
+    "A WEP default secret key value."\r
+    ::= { privacyGRP 3 }    \r
+\r
+defaultWEPKey4 OBJECT-TYPE\r
+    SYNTAX OCTET STRING (SIZE (13))\r
+    ACCESS  write-only\r
+    STATUS  mandatory\r
+    DESCRIPTION    \r
+    "A WEP default secret key value."\r
+    ::= { privacyGRP 4 }    \r
+\r
+\r
+\r
+privacyWEPEnable OBJECT-TYPE\r
+               SYNTAX INTEGER {enable64(1),disable(2),enable128(3) }\r
+               ACCESS read-write\r
+               STATUS mandatory\r
+               DESCRIPTION      \r
+               "This attribute, when enable64(1) or enable128(3), indicates that the 802.11\r
+               standard encryption mechanism (WEP) is implemented. WEP64, WEP128 or disable"\r
+               ::= {privacyGRP 5}\r
+\r
+\r
+privacyDefaultWEPKeyID OBJECT-TYPE\r
+               SYNTAX INTEGER   (1..4)\r
+               ACCESS read-write\r
+               STATUS mandatory\r
+               DESCRIPTION\r
+               "This attribute shall indicate the use of the first, second,\r
+               third or fourth DefaultWEPKey when set to values of one, two,\r
+               three or four."\r
+               ::= {privacyGRP 6}\r
+\r
+\r
+-----------------------------STATISTICS-----------------------------\r
+\r
+\r
+WLstatisticsGRP OBJECT IDENTIFIER ::= {wireless 3}\r
+\r
+wirelessStatistics OBJECT-TYPE\r
+               SYNTAX OCTET STRING (SIZE (104))\r
+               ACCESS read-only\r
+               STATUS mandatory\r
+               DESCRIPTION      \r
+               "Wireless Statistics. 26 elements(ULONG)\r
+               WirelessStatistics{\r
+                       unsigned long   UnicastTransmittedPackets;\r
+                       unsigned long   BroadcastTransmittedPacets;\r
+                       unsigned long   MulticastTransmittedPackets;\r
+                       unsigned long   TransmittedBeacon;\r
+                       unsigned long   TransmittedACK;\r
+                       unsigned long   TransmittedRTS;\r
+                       unsigned long   TransmittedCTS;\r
+                       unsigned long   UnicastReceivedPackets;\r
+                       unsigned long   BroadcastReceivedPackets;\r
+                       unsigned long   MulticastReceivedPackets;\r
+                       unsigned long   ReceivedBeacon;\r
+                       unsigned long   ReceivedACK;\r
+                       unsigned long   ReceivedRTS;\r
+                       unsigned long   ReceivedCTS;\r
+                       unsigned long   ACKFailure;\r
+                       unsigned long   CTSFailure;\r
+                       unsigned long   RetryPackets;\r
+                       unsigned long   ReceivedDuplicate;\r
+                       unsigned long   FailedPackets;\r
+                       unsigned long   AgedPackets;\r
+                       unsigned long   FCSError;\r
+                       unsigned long   InvalidPLCP;\r
+                       unsigned long   TransmittedPackets_11Mbps;\r
+                       unsigned long   TransmittedPackets_55Mbps;\r
+                       unsigned long   TransmittedPackets_2Mbps;\r
+                       unsigned long   TransmittedPackets_1Mbps;\r
+               } "\r
+               ::= {WLstatisticsGRP 1 }\r
+\r
+\r
+-------------------------------Site Survey----------------------\r
+\r
+WLSiteSurveyGRP OBJECT IDENTIFIER ::= {wireless 4}\r
+\r
+ChannelStatus OBJECT-TYPE\r
+               SYNTAX OCTET STRING (SIZE (14))\r
+               ACCESS read-only\r
+               STATUS mandatory\r
+               DESCRIPTION      \r
+               "."\r
+               ::= {WLSiteSurveyGRP 1}\r
+\r
+\r
+\r
+-------------------------------Associated Station----------------------\r
+-----------------------------------------------------------------------\r
+\r
+AssociatedStationsGRP OBJECT IDENTIFIER ::= {wireless 5}\r
+\r
+AssociatedSTAsNum OBJECT-TYPE\r
+      SYNTAX  INTEGER (1..2007)\r
+      ACCESS  read-only\r
+      STATUS  mandatory\r
+      DESCRIPTION\r
+      "This parameter's value indicates the number of the currently\r
+      associated STAtions. Associated STAtions should not be more\r
+      than 2007."\r
+      ::= { AssociatedStationsGRP 1 }\r
+\r
+               \r
+AssociatedSTAsInfo     OBJECT-TYPE\r
+           SYNTAX      OCTET STRING (SIZE (24))\r
+           ACCESS  read-only\r
+           STATUS  mandatory\r
+           DESCRIPTION\r
+           "The associated STAtion's Information.\r
+               AssociatedSTAsInfo{\r
+                       unsigned short Index;\r
+                       unsigned char  MacAddress[6];\r
+                       unsigned char  Status;\r
+                       unsigned char  Port;\r
+                       unsigned char  ParentMacAddress[6];\r
+                       unsigned char  RSSI;\r
+                       unsigned char  IP[4];\r
+                       unsigned char  Reserved1[3];\r
+       \r
+               } "\r
+           ::= { AssociatedStationsGRP 2 }\r
+               \r
+\r
+-------------------------------Authorized Mac Addresses----------------------\r
+\r
+AuthorizedMacAddressesGRP OBJECT IDENTIFIER ::= {wireless 6}\r
+\r
+AuthorizationMacEnable OBJECT-TYPE\r
+               SYNTAX INTEGER (1..3)\r
+               ACCESS read-write\r
+               STATUS mandatory\r
+               DESCRIPTION      \r
+               "When setting this attribute to 1, the Authorization Mac Address Table will be enabled in allow mode.\r
+                When setting this attribute to 3, the Authorization Mac Address Table will be enabled in deny mode."\r
+               ::= {AuthorizedMacAddressesGRP 1}\r
+\r
+\r
+AuthorizedMac  OBJECT-TYPE\r
+           SYNTAX      OCTET STRING (SIZE (12))\r
+           ACCESS  read-write\r
+           STATUS  mandatory\r
+           DESCRIPTION\r
+           "The Authorized Wireless Mac Addresses\r
+               AuthorizedMacTableString{\r
+                       unsigned sort Action; //Set 0x01 or Get 0x02\r
+                       unsigned sort NumOfAllTableAddresses;\r
+                       unsigned sort NumOfCurrentAddress;\r
+                       unsigned char MacAddress[6];\r
+               } "\r
+\r
+           ::= { AuthorizedMacAddressesGRP 2 }\r
+\r
+-----------------------------KNOWN ACCESS POINTS----------------------\r
+\r
+\r
+WLKnownAPGRP OBJECT IDENTIFIER ::= {wireless 7}\r
+\r
+wirelessKnownAPs OBJECT-TYPE\r
+               SYNTAX OCTET STRING (SIZE (160))\r
+               ACCESS read-only\r
+               STATUS mandatory\r
+               DESCRIPTION      \r
+               "."\r
+               ::= {WLKnownAPGRP 1 }\r
+\r
+SelectedBSSListNumber OBJECT-TYPE\r
+               SYNTAX INTEGER\r
+               ACCESS write-only\r
+               STATUS mandatory\r
+               DESCRIPTION      \r
+               "."\r
+               ::= {WLKnownAPGRP 2 }\r
+\r
+NetworkSettings OBJECT-TYPE\r
+               SYNTAX OCTET STRING (SIZE (56))\r
+               ACCESS read-only\r
+               STATUS mandatory\r
+               DESCRIPTION      \r
+               "Network Settings.\r
+               struct NETWORK_SETTINGS {\r
+                       unsigned short reserved1;\r
+                       unsigned char BSSID[6];\r
+                       unsigned short InfoCapability;\r
+                       unsigned char Rssi;\r
+                       unsigned char Channel;\r
+                       unsigned char reserved2[2];\r
+                       unsigned char CurrentRate;\r
+                       unsigned char reserved3[5];\r
+                       unsigned char ESSID[32];\r
+                       unsigned long ESSLEN;\r
+               }"\r
+               ::= {WLKnownAPGRP 4}\r
+\r
+\r
+\r
+-----------------------------Advanced Privacy-----------------------------\r
+\r
+\r
+AdvancedPrivacyGRP OBJECT IDENTIFIER ::= { wireless 8 }\r
+\r
+Dot1xEnable OBJECT-TYPE\r
+               SYNTAX INTEGER {enable(1),disable(2), mixed environment(3)}\r
+               ACCESS read-write\r
+               STATUS mandatory\r
+               DESCRIPTION      \r
+               "."\r
+               ::= {AdvancedPrivacyGRP 1}\r
+\r
+BroadcastKeyPeriod OBJECT-TYPE\r
+               SYNTAX INTEGER  \r
+               ACCESS read-write\r
+               STATUS mandatory\r
+               DESCRIPTION      \r
+               "."\r
+               ::= {AdvancedPrivacyGRP 2}\r
+\r
+ServerIP OBJECT-TYPE\r
+               SYNTAX IpAddress\r
+               ACCESS read-write\r
+               STATUS mandatory\r
+               DESCRIPTION      \r
+               "."\r
+               ::= {AdvancedPrivacyGRP 3}\r
+\r
+ServerSecret OBJECT-TYPE\r
+               SYNTAX OCTET STRING (SIZE (16))\r
+               ACCESS  write-only\r
+               STATUS  mandatory\r
+               DESCRIPTION    \r
+               "."\r
+               ::= {AdvancedPrivacyGRP 4}    \r
+\r
+\r
+\r
+-----------------------------Device Info-----------------------------\r
+\r
+\r
+DeviceInfoGRP OBJECT IDENTIFIER ::= { wireless 9 }\r
+\r
+UpTime OBJECT-TYPE\r
+     SYNTAX INTEGER  \r
+     ACCESS  read-only    \r
+     STATUS  mandatory\r
+     DESCRIPTION\r
+     "The Device Uptime."\r
+     ::= {DeviceInfoGRP 1 }     \r
+\r
+FirmwareVersion OBJECT-TYPE\r
+     SYNTAX  OCTET STRING (SIZE (32))\r
+     ACCESS  read-only    \r
+     STATUS  mandatory\r
+     DESCRIPTION\r
+     "The Firmware Version."\r
+     ::= {DeviceInfoGRP 2 }     \r
+\r
+\r
+\r
+--*************************** Traps ***************************\r
+--*************************************************************\r
+\r
+trapSTAMacAddress OBJECT-TYPE\r
+       SYNTAX OCTET STRING (SIZE (6))\r
+       ACCESS read-only\r
+       STATUS mandatory\r
+       DESCRIPTION      \r
+       "The MAC address of a station device"\r
+\r
+       ::= {traps 1}\r
+\r
+\r
+trapReassociation TRAP-TYPE\r
+       ENTERPRISE atmel\r
+       VARIABLES {\r
+       trapSTAMacAddress\r
+       }\r
+       DESCRIPTION\r
+       "This trap message is sent when a STAtion's reassosiation\r
+       request is received."\r
+       ::= 1\r
+\r
+trapRoamOut TRAP-TYPE\r
+       ENTERPRISE atmel\r
+       VARIABLES {\r
+       trapSTAMacAddress\r
+       }\r
+       DESCRIPTION\r
+       "This trap message is used to indicate that a STAtion has\r
+       roamed out of the Wireless bridge's coverage area."\r
+       ::= 2\r
+\r
+trapAssociation TRAP-TYPE\r
+       ENTERPRISE atmel\r
+       VARIABLES {\r
+       trapSTAMacAddress\r
+       }\r
+       DESCRIPTION\r
+       "Indicates the reception of an association request packet\r
+       and     the sender STAtion's successful association with the\r
+       Access Point."\r
+       ::= 3\r
+       \r
+trapDisassociation TRAP-TYPE\r
+       ENTERPRISE atmel\r
+       VARIABLES {\r
+       trapSTAMacAddress\r
+       }\r
+       DESCRIPTION\r
+       "This trap message is sent when a disassociation notification\r
+       packet is received from a STAtion."\r
+       ::= 4\r
+\r
+trapAssociationExpire TRAP-TYPE\r
+       ENTERPRISE atmel\r
+       VARIABLES {\r
+       trapSTAMacAddress\r
+       }\r
+       DESCRIPTION\r
+       "This trap message is sent when the association's maximum time interval expires for\r
+       an associated STAtion."\r
+       ::= 5\r
+\r
+trapReset TRAP-TYPE\r
+       ENTERPRISE atmel\r
+       VARIABLES {\r
+       sysReset\r
+       }\r
+       DESCRIPTION\r
+       "This trap message is sent when Access Point Resets."\r
+       ::= 6\r
+\r
+trapSettingPingIPAddress TRAP-TYPE\r
+       ENTERPRISE atmel\r
+       VARIABLES {\r
+       operIPAddress\r
+       }\r
+       DESCRIPTION\r
+       "This trap message is sent when the Access Point IP address\r
+       is set with the transmition of a ping message."\r
+       ::= 7\r
+\r
+trapStartUp TRAP-TYPE\r
+       ENTERPRISE atmel\r
+       VARIABLES {\r
+       }\r
+       DESCRIPTION\r
+       "This trap message is sent when Access Point Starts Up."\r
+       ::= 8\r
+\r
+trapFailedToEraseFlash TRAP-TYPE\r
+       ENTERPRISE atmel\r
+       VARIABLES {\r
+       }\r
+       DESCRIPTION\r
+       "This trap message is sent when Access Point Failed To Erase Flash."\r
+       ::= 9\r
+\r
+trapAPClientScanning TRAP-TYPE\r
+       ENTERPRISE atmel\r
+       VARIABLES {\r
+       }\r
+       DESCRIPTION\r
+       "Access Point Client is scanning..."\r
+       ::= 10\r
+\r
+trapAPClientAuthenticating TRAP-TYPE\r
+       ENTERPRISE atmel\r
+       VARIABLES {\r
+       bridgeRemoteBridgeBSSID\r
+       }\r
+       DESCRIPTION\r
+       "Access Point Client is authenticating with the AP."\r
+       ::= 11\r
+\r
+trapAPClientAssociating TRAP-TYPE\r
+       ENTERPRISE atmel\r
+       VARIABLES {\r
+       bridgeRemoteBridgeBSSID\r
+       }\r
+       DESCRIPTION\r
+       "Access Point Client is associating with the AP."\r
+       ::= 12\r
+\r
+trapAPClientReAssociating TRAP-TYPE\r
+       ENTERPRISE atmel\r
+       VARIABLES {\r
+       bridgeRemoteBridgeBSSID\r
+       }\r
+       DESCRIPTION\r
+       "Access Point Client is reassociating with the AP."\r
+       ::= 13\r
+\r
+trapAPClientAuthenticationFailed TRAP-TYPE\r
+       ENTERPRISE atmel\r
+       VARIABLES {\r
+       bridgeRemoteBridgeBSSID\r
+       }\r
+       DESCRIPTION\r
+       "Access Point Client has failed authenticating with the AP."\r
+       ::= 14\r
+\r
+trapAPClientAssociationFailed TRAP-TYPE\r
+       ENTERPRISE atmel\r
+       VARIABLES {\r
+       bridgeRemoteBridgeBSSID\r
+       }\r
+       DESCRIPTION\r
+       "Access Point Client has failed associating with the AP."\r
+       ::= 15\r
+\r
+trapAPClientConnected TRAP-TYPE\r
+       ENTERPRISE atmel\r
+       VARIABLES {\r
+       bridgeRemoteBridgeBSSID\r
+       }\r
+       DESCRIPTION\r
+       "Access Point Client has been connected with the AP."\r
+       ::= 16\r
+\r
+trapAPClientDisconnected TRAP-TYPE\r
+       ENTERPRISE atmel\r
+       VARIABLES {\r
+       bridgeRemoteBridgeBSSID\r
+       }\r
+       DESCRIPTION\r
+       "Access Point Client has been disconnected from the AP."\r
+       ::= 17                         \r
+       \r
+trapAPClientScanFailed TRAP-TYPE\r
+       ENTERPRISE atmel\r
+       VARIABLES {\r
+       }\r
+       DESCRIPTION\r
+       "Access Point Client has failed scanning!"\r
+       ::= 18                         \r
+                        \r
+trapAPClientJoinFailed TRAP-TYPE\r
+       ENTERPRISE atmel\r
+       VARIABLES {\r
+       }\r
+       DESCRIPTION\r
+       "Access Point Client has failed joining!"\r
+       ::= 19       \r
+\r
+trapAPClientJoining    TRAP-TYPE\r
+       ENTERPRISE atmel\r
+       VARIABLES {\r
+       }\r
+       DESCRIPTION\r
+       "Access Point Client is in join state."\r
+       ::= 20       \r
+\r
+END
\ No newline at end of file
diff --git a/Documentation/mibs-atmel/mib-12350-gemtek/AT76C510.mib b/Documentation/mibs-atmel/mib-12350-gemtek/AT76C510.mib
new file mode 100644 (file)
index 0000000..f977e5d
--- /dev/null
@@ -0,0 +1,1302 @@
+-- Title:      ATMEL  Private MIB                                          \r
+\r
+\r
+--Firmaware Version 1.4 14/5/2001\r
+\r
+\r
+ATMEL-MIB DEFINITIONS ::= BEGIN\r
+\r
+--IMPORTS\r
+--     enterprises,Counter\r
+--FROM RFC1155-SMI\r
+--     DisplayString\r
+--FROM RFC1213-MIB;\r
+--     TRAP-TYPE\r
+--FROM RFC-1215;\r
+\r
+\r
+--MacAddress ::= IMPLICIT OCTET STRING (SIZE(6))\r
+DisplayString ::= OCTET STRING\r
+\r
+internet      OBJECT IDENTIFIER ::= { iso org(3) dod(6) 1 }\r
+directory     OBJECT IDENTIFIER ::= { internet 1 }\r
+mgmt          OBJECT IDENTIFIER ::= { internet 2 }\r
+experimental  OBJECT IDENTIFIER ::= { internet 3 }\r
+private       OBJECT IDENTIFIER ::= { internet 4 }\r
+enterprises   OBJECT IDENTIFIER ::= { private 1 }\r
+\r
+--atmel       OBJECT IDENTIFIER ::= { enterprises 410 } \r
+atmel       OBJECT IDENTIFIER ::= { enterprises 12350 }\r
+atmelmib    OBJECT IDENTIFIER ::= { atmel 1}\r
+atmelSys       OBJECT IDENTIFIER ::= {atmelmib 1}\r
+wireless       OBJECT IDENTIFIER ::= {atmelmib 2}\r
+traps  OBJECT IDENTIFIER ::= {atmelmib 3 }\r
+\r
+\r
+\r
+--*************************** System***************************\r
+--****************************************************************\r
+\r
+\r
+\r
+sysCtrlGRP OBJECT IDENTIFIER ::= {atmelSys 1}\r
+\r
+sysDescr OBJECT-TYPE\r
+    SYNTAX  DisplayString (SIZE (0..255))\r
+    ACCESS  read-only\r
+    STATUS  mandatory\r
+       DESCRIPTION\r
+         "A textual description of the entity.  This value\r
+          should include the full name and version\r
+          identification of the system's hardware type,\r
+          software operating-system, and networking\r
+          software.  It is mandatory that this only contain\r
+          printable ASCII characters."\r
+       ::= { sysCtrlGRP 1 } \r
+\r
+\r
+sysReset OBJECT-TYPE\r
+       SYNTAX INTEGER {enable(1)}\r
+       ACCESS  read-write\r
+       STATUS  mandatory\r
+       DESCRIPTION       \r
+       "By setting this attribute enable(1), a reset command to \r
+       the system is issued." \r
+       ::= { sysCtrlGRP 2 } \r
+\r
+sysTrapSwitch OBJECT-TYPE\r
+       SYNTAX INTEGER {enable(1),disable(2)}\r
+       ACCESS read-write\r
+       STATUS mandatory\r
+       DESCRIPTION\r
+       "This attribute enables the transmission of SNMP.V1 TRAPs."\r
+       ::= {sysCtrlGRP 3}\r
+\r
+sysLoadDefaults OBJECT-TYPE\r
+       SYNTAX INTEGER { enable(1)}\r
+       ACCESS  read-write\r
+       STATUS  mandatory\r
+       DESCRIPTION       \r
+       "Setting this attribute to enable(1), will cause the system to load\r
+       the factory default values of all the operational parameters." \r
+       ::= { sysCtrlGRP 4 }\r
+\r
+sysDeviceInfo  OBJECT-TYPE\r
+                       SYNTAX OCTET STRING (SIZE (92))\r
+                       ACCESS read-write\r
+                       STATUS mandatory\r
+                       DESCRIPTION      \r
+                       "First 92 bytes of Hardware device configuration struct.\r
+                                HARD_CONFIGURATION_STUCT{\r
+                                       unsigned long StructVersion;\r
+       \r
+                                       unsigned char MacAddress[6];\r
+                                       unsigned char Channel;\r
+                                       unsigned char RegulatoryDomain;\r
+       \r
+                                       unsigned long ProductType;\r
+                                       unsigned char OEMname[32];\r
+                                       unsigned long OEMID;\r
+                                       unsigned char ProductName[32];\r
+                                       unsigned long HardwareRevision;\r
+\r
+                                       unsigned char PID_VID[4];       //Product ID/ Vendor ID\r
+       \r
+                                       unsigned int  sysOIDSize;\r
+                                       unsigned short sysOID[16];\r
+       \r
+                                       unsigned char  CountryCode[3];\r
+                                       unsigned char  Reserved1;\r
+                                       unsigned short ChannelInformation;\r
+                                       unsigned char  Reserved2[2];\r
+                                       char       TxPower[14]; \r
+\r
+                                       unsigned char Reserved3[10];\r
+                               } "\r
+\r
+                       ::= {sysCtrlGRP 5 }\r
+\r
+sysUpload OBJECT-TYPE\r
+       SYNTAX INTEGER {enable(1)}\r
+       ACCESS  read-write\r
+       STATUS  mandatory\r
+       DESCRIPTION       \r
+       "By setting this attribute enable(1), a Upload configuration command to \r
+       the system is issued." \r
+       ::= { sysCtrlGRP 6 } \r
+                   \r
+SiteSurveyCommand OBJECT-TYPE\r
+       SYNTAX INTEGER {enable(1)}\r
+       ACCESS  read-write\r
+       STATUS  mandatory\r
+       DESCRIPTION       \r
+       "By setting this attribute enable(1), a Site Survey command to \r
+       the system is issued." \r
+       ::= { sysCtrlGRP 7 } \r
+\r
+sysDeviceMoreInfo      OBJECT-TYPE\r
+                       SYNTAX OCTET STRING (SIZE (32))\r
+                       ACCESS read-write\r
+                       STATUS mandatory\r
+                       DESCRIPTION      \r
+                       "Last 32 bytes of Hardware device configuration struct.\r
+                                HARD_CONFIGURATION_STUCT{\r
+                                       unsigned long StructVersion;\r
+       \r
+                                       unsigned char MacAddress[6];\r
+                                       unsigned char Channel;\r
+                                       unsigned char RegulatoryDomain;\r
+       \r
+                                       unsigned long ProductType;\r
+                                       unsigned char OEMname[32];\r
+                                       unsigned long OEMID;\r
+                                       unsigned char ProductName[32];\r
+                                       unsigned long HardwareRevision;\r
+\r
+                                       unsigned char PID_VID[4];       //Product ID/ Vendor ID\r
+       \r
+                                       unsigned int  sysOIDSize;\r
+                                       unsigned short sysOID[16];\r
+       \r
+                                       unsigned char  CountryCode[3];\r
+                                       unsigned char  Reserved1;\r
+                                       unsigned short ChannelInformation;\r
+                                       unsigned char  Reserved2[2];\r
+                                       char       TxPower[14]; \r
+\r
+                                       unsigned char Reserved3[10];\r
+                               } "\r
+\r
+                       ::= {sysCtrlGRP 8 }\r
+\r
+\r
+                      \r
+\r
+-----------------------------BridgingLevel-----------------------------\r
+\r
+operBridgingLevel OBJECT IDENTIFIER ::= {atmelSys 2}\r
+\r
+operIPAddress OBJECT-TYPE\r
+               SYNTAX IpAddress\r
+               ACCESS read-write\r
+               STATUS mandatory\r
+               DESCRIPTION      \r
+               "The IP address of this device used over its Ethernet\r
+               or Wireless LAN port."\r
+               ::= { operBridgingLevel 1 }\r
+\r
+operIPMask OBJECT-TYPE\r
+           SYNTAX  IpAddress\r
+           ACCESS  read-write\r
+           STATUS  mandatory\r
+           DESCRIPTION\r
+           "The IP Network mask used by the IP entity when accessing\r
+           devices through any of its LAN Ports (Ethernet or WLAN)."\r
+           ::= { operBridgingLevel 2}\r
+\r
+operEthernetAddress OBJECT-TYPE\r
+           SYNTAX  OCTET STRING (SIZE (6))\r
+           ACCESS  read-only\r
+           STATUS  mandatory\r
+           DESCRIPTION\r
+           "The MAC Address of the Ethernet interface."\r
+           ::= { operBridgingLevel 3}\r
+\r
+\r
+operGateway OBJECT-TYPE\r
+               SYNTAX IpAddress\r
+               ACCESS read-write\r
+               STATUS mandatory\r
+               DESCRIPTION      \r
+               "Gateway default IP address."\r
+               ::= { operBridgingLevel 4 }\r
+\r
+operDHCP OBJECT-TYPE\r
+               SYNTAX  INTEGER {enable(1),disable(2)}\r
+               ACCESS read-write\r
+               STATUS mandatory\r
+               DESCRIPTION      \r
+               "When setting this attribute to enable(1), the system will\r
+               enable DHCP protocol."\r
+               ::= { operBridgingLevel 5 }\r
+\r
+operPrimaryPort OBJECT-TYPE\r
+               SYNTAX  INTEGER {Ethernet(1),Wireless(2)}\r
+               ACCESS read-write\r
+               STATUS mandatory\r
+               DESCRIPTION      \r
+               "This attribute indicates the primaty port.Ethernet or Wireless."\r
+               ::= { operBridgingLevel 6 }\r
+\r
+operConfigurationPort OBJECT-TYPE\r
+               SYNTAX  INTEGER {Ethernet(1),Wireless(2),Both(3)}\r
+               ACCESS read-write\r
+               STATUS mandatory\r
+               DESCRIPTION      \r
+               "This attribute indicates the Configuration port.Ethernet or Wireless or Both of them."\r
+               ::= { operBridgingLevel 7 }\r
+\r
+operTrapPort OBJECT-TYPE\r
+               SYNTAX  INTEGER \r
+               ACCESS read-write\r
+               STATUS mandatory\r
+               DESCRIPTION      \r
+               "This attribute indicates the Trap port."\r
+               ::= { operBridgingLevel 8 }\r
+\r
+\r
+\r
+-----------------------------Filtering-----------------------------\r
+\r
+\r
+\r
+operFiltering OBJECT IDENTIFIER ::= {atmelSys 3}\r
+\r
+operIPFilter OBJECT-TYPE\r
+               SYNTAX  INTEGER {enable(1), disable(2)}\r
+               ACCESS read-write\r
+               STATUS mandatory\r
+               DESCRIPTION      \r
+               "When setting this attribute to enable(1), the system will\r
+               filter out all non IP-traffic."\r
+               ::= { operFiltering 1 }\r
+      \r
+operForwarbBcast OBJECT-TYPE\r
+               SYNTAX  INTEGER {enable(1), disable(2)}\r
+               ACCESS read-write\r
+               STATUS mandatory\r
+               DESCRIPTION      \r
+               "When setting this attribute to disable(2), the system will not\r
+               forward broadcast traffic to the Wireless Port."\r
+               ::= { operFiltering 2 }\r
+                                                     \r
+operSendBackBcast OBJECT-TYPE\r
+               SYNTAX  INTEGER {enable(1), disable(2)}\r
+               ACCESS read-write\r
+               STATUS mandatory\r
+               DESCRIPTION      \r
+               "When setting this attribute to disable(2), the system will not\r
+               send back broadcast traffic to the Wireless Port."\r
+               ::= { operFiltering 3 }\r
+                 \r
+operSendBackUnicast OBJECT-TYPE\r
+               SYNTAX  INTEGER {enable(1), disable(2)}\r
+               ACCESS read-write\r
+               STATUS mandatory\r
+               DESCRIPTION      \r
+               "When setting this attribute to disable(2), the system will not\r
+               send back unicast traffic to the Wireless Port."\r
+               ::= { operFiltering 4 }\r
+\r
+\r
+-----------------------------Bridge Operational Mode -----------------------------\r
+\r
+\r
+operBridgeOperationalMode OBJECT IDENTIFIER ::= {atmelSys 4}\r
+\r
+\r
+bridgeOperationalMode OBJECT-TYPE\r
+               SYNTAX  INTEGER {WBPoint2Multipoint(1), AP(2), APclient(3),  WBPoint2Point(4), WRepeater(5)}\r
+               ACCESS read-write\r
+               STATUS mandatory\r
+               DESCRIPTION      \r
+               "The Operational Mode of Bridge. Access Point, Access Point client, Wireless Bridge Point to Point, Wireless Bridge Point to MultiPoint."\r
+               ::= { operBridgeOperationalMode 1 }\r
+\r
+bridgeRemoteBridgeBSSID OBJECT-TYPE\r
+               SYNTAX  OCTET STRING (SIZE (6))\r
+               ACCESS read-write\r
+               STATUS mandatory\r
+               DESCRIPTION      \r
+               "The Preferred BSSID if the device is at Access Point client mode\r
+               or the remote Mac if the device is at Wireless Bridge Point to Point mode."\r
+               ::= { operBridgeOperationalMode 2 }\r
+\r
+\r
+\r
+-----------------------------Static-----------------------------\r
+\r
+\r
+dot1dStatic OBJECT IDENTIFIER ::= {atmelSys 5}\r
+\r
+\r
+StaticMacFilterNum OBJECT-TYPE\r
+      SYNTAX  INTEGER \r
+      ACCESS  read-write\r
+      STATUS  mandatory\r
+      DESCRIPTION\r
+      "This parameter's value indicates the number of the currently\r
+      static MAC filters."\r
+      ::= { dot1dStatic 1 }\r
+\r
+\r
+          dot1dStaticTable OBJECT-TYPE\r
+              SYNTAX  SEQUENCE OF Dot1dStaticEntry\r
+              ACCESS  not-accessible\r
+              STATUS  mandatory\r
+              DESCRIPTION\r
+                      "A table containing filtering information\r
+                      configured into the bridge by (local or network)\r
+                      management specifying the set of ports to which\r
+                      frames received from specific ports and containing\r
+                      specific destination addresses are allowed to be\r
+                      forwarded.  The value of zero in this table as the\r
+                      port number from which frames with a specific\r
+                      destination address are received, is used to\r
+                      specify all ports for which there is no specific\r
+                      entry in this table for that particular\r
+                      destination address.  Entries are valid for\r
+                      unicast and for group/broadcast addresses."\r
+              REFERENCE\r
+                      "IEEE 802.1D-1990: Section 6.7.2"\r
+              ::= { dot1dStatic 2 }\r
+\r
+          dot1dStaticEntry OBJECT-TYPE\r
+              SYNTAX  Dot1dStaticEntry\r
+              ACCESS  not-accessible\r
+              STATUS  mandatory\r
+              DESCRIPTION\r
+                      "Filtering information configured into the bridge\r
+                      by (local or network) management specifying the\r
+                      set of ports to which frames received from a\r
+                      specific port and containing a specific\r
+                      destination address are allowed to be forwarded."\r
+              REFERENCE\r
+                      "IEEE 802.1D-1990: Section 6.7.2"\r
+              INDEX   { dot1dStaticAddress}--, dot1dStaticReceivePort }\r
+              ::= { dot1dStaticTable 1 }\r
+\r
+          Dot1dStaticEntry ::=\r
+              SEQUENCE {\r
+                  dot1dStaticAddress\r
+                      OCTET STRING (SIZE (6))\r
+--                  dot1dStaticReceivePort\r
+--                     INTEGER,\r
+--                  dot1dStaticAllowedToGoTo\r
+--                      INTEGER,\r
+--                  dot1dStaticStatus\r
+--                      INTEGER\r
+              }\r
+\r
+          dot1dStaticAddress OBJECT-TYPE\r
+              SYNTAX  OCTET STRING (SIZE (6))\r
+              ACCESS  read-write\r
+              STATUS  mandatory\r
+              DESCRIPTION\r
+                      "The destination MAC address in a frame to which\r
+                      this entry's filtering information applies.  This\r
+                      object can take the value of a unicast address, a\r
+                      group address or the broadcast address."\r
+              REFERENCE\r
+                      "IEEE 802.1D-1990: Section 3.9.1, 3.9.2"\r
+              ::= { dot1dStaticEntry 1 }\r
+\r
+--          dot1dStaticReceivePort OBJECT-TYPE\r
+--              SYNTAX  INTEGER\r
+--              ACCESS  read-write\r
+--              STATUS  mandatory\r
+--              DESCRIPTION\r
+--                      "Either the value '0', or the port number of the\r
+--                      port from which a frame must be received in order\r
+--                      for this entry's filtering information to apply.\r
+--                      A value of zero indicates that this entry applies\r
+--                      on all ports of the bridge for which there is no\r
+--                      other applicable entry."\r
+--              ::= { dot1dStaticEntry 2 }\r
+\r
+--          dot1dStaticAllowedToGoTo OBJECT-TYPE\r
+--              SYNTAX  INTEGER\r
+--              ACCESS  read-write\r
+--              STATUS  mandatory\r
+--              DESCRIPTION\r
+--                      "The set of ports to which frames received from a\r
+--                      specific port and destined for a specific MAC\r
+--                      address, are allowed to be forwarded.  Each octet\r
+--                      within the value of this object specifies a set of\r
+--                      eight ports, with the first octet specifying ports\r
+--                      1 through 8, the second octet specifying ports 9\r
+--                      through 16, etc.  Within each octet, the most\r
+--                      significant bit represents the lowest numbered\r
+--                      port, and the least significant bit represents the\r
+--                      highest numbered port.  Thus, each port of the\r
+--                      bridge is represented by a single bit within the\r
+--                      value of this object.  If that bit has a value of\r
+--                      '1' then that port is included in the set of\r
+--                      ports; the port is not included if its bit has a\r
+--                      value of '0'.  (Note that the setting of the bit\r
+--                      corresponding to the port from which a frame is\r
+--                      received is irrelevant.)  The default value of\r
+--                      this object is a string of ones of appropriate\r
+--                      length."\r
+--              ::= { dot1dStaticEntry 3 }\r
+--\r
+--          dot1dStaticStatus OBJECT-TYPE\r
+--              SYNTAX  INTEGER {\r
+--                          other(1),\r
+--                          invalid(2),\r
+--                          permanent(3),\r
+--                          deleteOnReset(4),\r
+--                          deleteOnTimeout(5)\r
+--                      }\r
+--              ACCESS  read-write\r
+--              STATUS  mandatory\r
+--              DESCRIPTION\r
+--                      "This object indicates the status of this entry.\r
+--                      The default value is permanent(3).\r
+--                           other(1) - this entry is currently in use but\r
+--                                the conditions under which it will\r
+--                                remain so are different from each of the\r
+--                                following values.\r
+--                           invalid(2) - writing this value to the object\r
+--                                removes the corresponding entry.\r
+--                           permanent(3) - this entry is currently in use\r
+--                                and will remain so after the next reset\r
+--                                of the bridge.\r
+--                           deleteOnReset(4) - this entry is currently in\r
+--                                use and will remain so until the next\r
+--                                reset of the bridge.\r
+--                           deleteOnTimeout(5) - this entry is currently\r
+--                                in use and will remain so until it is\r
+--                                aged out."\r
+--              ::= { dot1dStaticEntry 4 }\r
+\r
+\r
+\r
+----------------------------------Protocol Filtering-------------------\r
+\r
+\r
+ProtocolFilterGRP OBJECT IDENTIFIER ::= {atmelSys 6}\r
+\r
+ProtocolFilterNum OBJECT-TYPE\r
+      SYNTAX  INTEGER \r
+      ACCESS  read-write\r
+      STATUS  mandatory\r
+      DESCRIPTION\r
+      "This parameter's value indicates the number of the currently\r
+      protocol filters."\r
+      ::= { ProtocolFilterGRP 1 }\r
+\r
+\r
+\r
+\r
+          ProtocolFilterTable OBJECT-TYPE\r
+              SYNTAX  SEQUENCE OF ProtocolFilterEntry\r
+              ACCESS  not-accessible\r
+              STATUS  mandatory\r
+              DESCRIPTION\r
+                      "A table containing filtering information\r
+                      configured into the bridge by (local or network)\r
+                      management specifying the set of protocol filter."\r
+              ::= { ProtocolFilterGRP 2 }\r
+\r
+          protocolFilterEntry OBJECT-TYPE\r
+              SYNTAX  ProtocolFilterEntry\r
+              ACCESS  not-accessible\r
+              STATUS  mandatory\r
+              DESCRIPTION\r
+                      "Filtering information configured into the bridge\r
+                      by (local or network) management specifying the\r
+                      set of protocol filter."\r
+              INDEX   { ProtocolFilterCode }\r
+              ::= { ProtocolFilterTable 1 }\r
+\r
+          ProtocolFilterEntry ::=\r
+              SEQUENCE {\r
+                  ProtocolFilterCode\r
+                      OCTET STRING (SIZE (2)),\r
+                  ProtocolFilterDescription\r
+                      DisplayString (SIZE (0..255)),\r
+                  ProtocolFilterActivity\r
+                      INTEGER\r
+              }\r
+\r
+          ProtocolFilterCode OBJECT-TYPE\r
+              SYNTAX  OCTET STRING (SIZE (2))\r
+              ACCESS  read-write\r
+              STATUS  mandatory\r
+              DESCRIPTION\r
+                      "The protocol code configured into the bridge\r
+                      by (local or network) management specifying the\r
+                      set of protocol filter."\r
+              ::= { protocolFilterEntry 1 }\r
+\r
+          ProtocolFilterDescription OBJECT-TYPE\r
+              SYNTAX  DisplayString (SIZE (0..255))\r
+              ACCESS  read-write\r
+              STATUS  mandatory\r
+              DESCRIPTION\r
+                      "A textual description of the protocol."\r
+              ::= { protocolFilterEntry 2 }\r
+\r
+          ProtocolFilterActivity OBJECT-TYPE\r
+              SYNTAX  INTEGER {enable(1),disable(2)}\r
+              ACCESS  read-write\r
+              STATUS  mandatory\r
+              DESCRIPTION\r
+                      "This object indicates the status of this filter."\r
+              ::= { protocolFilterEntry 3 }\r
+\r
+\r
+\r
+-----------------------------Ethernet STATISTICS-----------------------------\r
+\r
+\r
+EthStatisticsGRP OBJECT IDENTIFIER ::= {atmelSys 7}\r
+\r
+EthRxStatistics OBJECT-TYPE\r
+               SYNTAX OCTET STRING (SIZE (64))\r
+               ACCESS read-only\r
+               STATUS mandatory\r
+               DESCRIPTION      \r
+               "Ethernet Rx Statistics\r
+               EthernetRxStatistics{\r
+                       unsigned long   TotalBytesRx;\r
+                       unsigned long   TotalPacketsRx;\r
+                       unsigned long   PacketCRCErrorRx;\r
+                       unsigned long   MulticastPacketRx;\r
+                       unsigned long   BroadcastPacketRx;\r
+                       unsigned long   ControlFramesRx;\r
+                       unsigned long   PauseFramesRx;\r
+                       unsigned long   UnknownOPCodeRx;\r
+                       unsigned long   AlignmentRxError;\r
+                       unsigned long   LengthOutOfRangeRx;\r
+                       unsigned long   CodeErrorRx;\r
+                       unsigned long   FalseCarrierRx;\r
+                       unsigned long   UndersizePacketsRx;\r
+                       unsigned long   OversizePacketsRx;\r
+                       unsigned long   TotalFragmentsRx;\r
+                       unsigned long   TotalJabberRx;\r
+               }"\r
+               ::= {EthStatisticsGRP 1 }\r
+\r
+EthTxStatistics OBJECT-TYPE\r
+               SYNTAX OCTET STRING (SIZE (56))\r
+               ACCESS read-only\r
+               STATUS mandatory\r
+               DESCRIPTION      \r
+               "Ethernet Tx Statistics\r
+               EthernetTxStatistics{\r
+                       unsigned long   TotalBytesTx;\r
+                       unsigned long   TotalPacketsTx;\r
+                       unsigned long   PacketCRCErrorTx;\r
+                       unsigned long   MulticastPacketTx;\r
+                       unsigned long   BroadcastPacketTx;\r
+                       unsigned long   UnicastPacketTx;\r
+                       unsigned long   PauseFramesTx;\r
+                       unsigned long   SingleDeferPacketTx;\r
+                       unsigned long   MultiDeferPacketsTx;\r
+                       unsigned long   SingleCollisionsTx;\r
+                       unsigned long   MultiCollisionsTx;\r
+                       unsigned long   LateCollisionsTx;\r
+                       unsigned long   ExcessiveCollisionTx;\r
+                       unsigned long   TotalCollisionsTx;\r
+               }"\r
+\r
+               ::= {EthStatisticsGRP 2 }\r
+\r
+\r
+\r
+\r
+\r
+-----------------------------Test Mode Settings-----------------------------\r
+\r
+\r
+TestModeSettingsGRP OBJECT IDENTIFIER ::= {atmelSys 8}\r
+\r
+TestModeOnOff  OBJECT-TYPE\r
+                               SYNTAX INTEGER {enable(1),disable(2)}\r
+                               ACCESS read-write\r
+                               STATUS mandatory\r
+                               DESCRIPTION      \r
+                               "When setting this attribute to enable(1), the device be\r
+                               at test mode."\r
+                               ::= { TestModeSettingsGRP 1 }\r
+\r
+\r
+TestModeCommandStruct  OBJECT-TYPE\r
+                               SYNTAX OCTET STRING (SIZE (20))\r
+                               ACCESS read-write\r
+                               STATUS mandatory\r
+                               DESCRIPTION      \r
+                               "\r
+                               typedef struct __CONT_PKT_TX\r
+                               {\r
+                                       UINT8   Channel;\r
+                                       UINT8   Antenna;\r
+                                       UINT8   TxPower;\r
+                                       UINT8   TxRate;\r
+                               \r
+                                       UINT8   TxFilter;\r
+                                       UINT8   Reserved;\r
+                                       UINT16  IFrameTime;\r
+                               \r
+                                       UINT32  FrameLength;\r
+                                       UINT32  FramesToTransmit;\r
+                                       \r
+                                       UINT8   Pattern;\r
+                                       UINT8   Reserved1[3];\r
+                               }CONT_PKT_TX;\r
+                               "\r
+                               ::= {TestModeSettingsGRP 2 }\r
+\r
+TestModeRadioConfiguration     OBJECT-TYPE\r
+                                       SYNTAX OCTET STRING (SIZE (47))\r
+                                       ACCESS read-write\r
+                                       STATUS mandatory\r
+                                       DESCRIPTION      \r
+                                       "Configuration of radio derived from tests. CR17 Reg 1-14, CR20 Reg 1-14, CR21 Reg 1-14, CR1, CR2, CR3, CR28, CR29"\r
+                                       ::= {TestModeSettingsGRP 8 }\r
+\r
+TestModeStatistics             OBJECT-TYPE\r
+                                       SYNTAX OCTET STRING (SIZE (12))\r
+                                       ACCESS read-only\r
+                                       STATUS mandatory\r
+                                       DESCRIPTION      \r
+                                       "Statistics derive from tests\r
+                                       TestModeStatistics{\r
+                                               unsigned long SuccessFrames;\r
+                                               unsigned long FailedFrames;\r
+                                               unsigned long PacketsTx;\r
+                                       } "\r
+\r
+                                       ::= {TestModeSettingsGRP 9 }\r
+\r
+\r
+\r
+\r
+-----------------------------Authorized Settings-----------------------------\r
+\r
+\r
+AuthorizedSettingsGRP OBJECT IDENTIFIER ::= {atmelSys 9}\r
+\r
+AuthorizedUserPass     OBJECT-TYPE\r
+                               SYNTAX OCTET STRING (SIZE (16))\r
+                               ACCESS read-write\r
+                               STATUS mandatory\r
+                               DESCRIPTION      \r
+                               "The community name of User."\r
+                               ::= {AuthorizedSettingsGRP 1 }\r
+\r
+\r
+AuthorizedAdminPass    OBJECT-TYPE\r
+                               SYNTAX OCTET STRING (SIZE (16))\r
+                               ACCESS read-write\r
+                               STATUS mandatory\r
+                               DESCRIPTION      \r
+                               "The community name of Administrator."\r
+                               ::= {AuthorizedSettingsGRP 2 }\r
+\r
+\r
+AuthorizedManufactPass         OBJECT-TYPE\r
+                               SYNTAX OCTET STRING (SIZE (16))\r
+                               ACCESS read-write\r
+                               STATUS mandatory\r
+                               DESCRIPTION      \r
+                               "The community name of Manufacturer."\r
+                               ::= {AuthorizedSettingsGRP 3 }\r
+\r
+\r
+--*************************** wireless ***************************\r
+--****************************************************************\r
+\r
+-----------------------------Operational Settings-----------------------------\r
+\r
+\r
+OperationalSettingsGRP OBJECT IDENTIFIER ::= {wireless 1}\r
+\r
+\r
+operChannelID  OBJECT-TYPE\r
+       SYNTAX  INTEGER  {\r
+                       channel1(1),\r
+                       channel2(2),\r
+                       channel3(3),\r
+                       channel4(4),\r
+                       channel5(5),\r
+                       channel6(6),\r
+                       channel7(7),\r
+                       channel8(8),\r
+                       channel9(9),\r
+                       channel10(10),\r
+                       channel11(11),\r
+                       channel12(12),\r
+                       channel13(13),\r
+                       channel14(14)\r
+               }\r
+       ACCESS  read-write\r
+       STATUS  mandatory\r
+       DESCRIPTION\r
+               "The operating frequency channel. Valid numbers\r
+               are     as defind in ISO/IEC 8802-11:1999, 15.4.6.2."\r
+       ::= { OperationalSettingsGRP 1 }\r
+\r
+\r
+operESSIDLength OBJECT-TYPE\r
+     SYNTAX  INTEGER\r
+     ACCESS  read-write    \r
+     STATUS  mandatory\r
+     DESCRIPTION\r
+     "The ESSID Length"\r
+     ::= {OperationalSettingsGRP 2 }     \r
+\r
+operESSID OBJECT-TYPE\r
+     SYNTAX  OCTET STRING (SIZE (32))\r
+     ACCESS  read-write    \r
+     STATUS  mandatory\r
+     DESCRIPTION\r
+     "The network name. The size of the network name\r
+     should not be more than 32 characters long."\r
+     ::= {OperationalSettingsGRP 3 }     \r
+\r
+\r
+operRTSThreshold OBJECT-TYPE\r
+               SYNTAX  INTEGER  \r
+               ACCESS read-write\r
+               STATUS mandatory\r
+               DESCRIPTION      \r
+               "This attribute indicates the number of bytes in an \r
+               MPDU (frame), above which an RTS/CTS handshake will be\r
+               performed. Setting this attribute to be larger than the\r
+               maximum frame size, will prevent the RTS/CTS handshake \r
+               for frames trassmitted by this station."\r
+       ::= {OperationalSettingsGRP 4 }\r
+\r
+\r
+operFragmentationThreshold OBJECT-TYPE\r
+               SYNTAX  INTEGER  \r
+               ACCESS read-write\r
+               STATUS mandatory\r
+               DESCRIPTION      \r
+               "This attribute indicates the number of bytes in an \r
+               MPDU (frame), above which MPDU fragmentation will be\r
+               performed."\r
+       ::= {OperationalSettingsGRP 5 }\r
+       \r
+\r
+operPreambleType OBJECT-TYPE\r
+      SYNTAX  INTEGER {\r
+                       ShortPreamble(1),\r
+                       LongPreamble(2)\r
+               }\r
+      ACCESS  read-write\r
+      STATUS  mandatory\r
+      DESCRIPTION\r
+      "This parameter's value indicates the Preamble Type of device. Short or Long."\r
+             ::= {OperationalSettingsGRP 6 }\r
+\r
+\r
+operAuthenticationType OBJECT-TYPE\r
+               SYNTAX  INTEGER {\r
+       openSystem(1),\r
+       sharedKey(2),\r
+       BothType(3)\r
+       }\r
+               ACCESS read-write\r
+               STATUS mandatory\r
+               DESCRIPTION      \r
+               "This attribute indicates the authentication algorithm\r
+               used during the authentication sequence.\r
+               The value of this attribute is one of the following:\r
+               1 - Open System,\r
+               2 - Shared Key\r
+               3 - Both Type "\r
+               ::= {OperationalSettingsGRP 7 }\r
+\r
+\r
+operBasicRates OBJECT-TYPE\r
+               SYNTAX OCTET STRING (SIZE (4))\r
+               ACCESS read-write\r
+               STATUS mandatory\r
+               DESCRIPTION      \r
+               "This attribute indicates the basic and supported rates of Access Point.Valid format\r
+               is as defind in ISO/IEC 8802-11:1999"\r
+               ::= { OperationalSettingsGRP 8 }\r
+\r
+\r
+operAutoRateFallBack OBJECT-TYPE\r
+               SYNTAX INTEGER {enable(1),disable(2)}\r
+               ACCESS read-write\r
+               STATUS mandatory\r
+               DESCRIPTION      \r
+               "This attribute indicates if Auto Rate Fall Back is enable or disable."\r
+               ::= {OperationalSettingsGRP 9 }\r
+\r
+operAccessPointName OBJECT-TYPE\r
+     SYNTAX  OCTET STRING (SIZE (32))\r
+     ACCESS  read-write    \r
+     STATUS  mandatory\r
+     DESCRIPTION\r
+     "The AP name."\r
+     ::= {OperationalSettingsGRP 10 }     \r
+\r
+operSSIDBroadcasting OBJECT-TYPE\r
+               SYNTAX INTEGER {enable(1),disable(2)}\r
+               ACCESS read-write\r
+               STATUS mandatory\r
+               DESCRIPTION      \r
+               "This attribute indicates if SSID is broadcasting or not."\r
+               ::= {OperationalSettingsGRP 11 }\r
+\r
+operAntennaSettings OBJECT-TYPE\r
+               SYNTAX INTEGER\r
+               ACCESS read-write\r
+               STATUS mandatory\r
+               DESCRIPTION      \r
+               "."\r
+               ::= {OperationalSettingsGRP 12 }\r
+\r
+operInterRoaming OBJECT-TYPE\r
+               SYNTAX INTEGER\r
+               ACCESS read-write\r
+               STATUS mandatory\r
+               DESCRIPTION      \r
+               "."\r
+               ::= {OperationalSettingsGRP 13 }\r
+\r
+operBeaconPeriod OBJECT-TYPE\r
+               SYNTAX INTEGER\r
+               ACCESS read-write\r
+               STATUS mandatory\r
+               DESCRIPTION      \r
+               "."\r
+               ::= {OperationalSettingsGRP 14 }\r
+\r
+operDTIM OBJECT-TYPE\r
+               SYNTAX INTEGER\r
+               ACCESS read-write\r
+               STATUS mandatory\r
+               DESCRIPTION      \r
+               "."\r
+               ::= {OperationalSettingsGRP 15 }\r
+\r
+\r
+\r
+-----------------------------Privacy-----------------------------\r
+\r
+\r
+privacyGRP OBJECT IDENTIFIER ::= { wireless 2 }\r
+\r
+\r
+\r
+defaultWEPKey1 OBJECT-TYPE\r
+    SYNTAX OCTET STRING (SIZE (13))\r
+    ACCESS  write-only\r
+    STATUS  mandatory\r
+    DESCRIPTION    \r
+    "A WEP default secret key value."\r
+    ::= { privacyGRP 1 }    \r
+\r
+defaultWEPKey2 OBJECT-TYPE\r
+    SYNTAX OCTET STRING (SIZE (13))\r
+    ACCESS  write-only\r
+    STATUS  mandatory\r
+    DESCRIPTION    \r
+    "A WEP default secret key value."\r
+    ::= { privacyGRP 2 }    \r
+\r
+defaultWEPKey3 OBJECT-TYPE\r
+    SYNTAX OCTET STRING (SIZE (13))\r
+    ACCESS  write-only\r
+    STATUS  mandatory\r
+    DESCRIPTION    \r
+    "A WEP default secret key value."\r
+    ::= { privacyGRP 3 }    \r
+\r
+defaultWEPKey4 OBJECT-TYPE\r
+    SYNTAX OCTET STRING (SIZE (13))\r
+    ACCESS  write-only\r
+    STATUS  mandatory\r
+    DESCRIPTION    \r
+    "A WEP default secret key value."\r
+    ::= { privacyGRP 4 }    \r
+\r
+\r
+\r
+privacyWEPEnable OBJECT-TYPE\r
+               SYNTAX INTEGER {enable64(1),disable(2),enable128(3) }\r
+               ACCESS read-write\r
+               STATUS mandatory\r
+               DESCRIPTION      \r
+               "This attribute, when enable64(1) or enable128(3), indicates that the 802.11\r
+               standard encryption mechanism (WEP) is implemented. WEP64, WEP128 or disable"\r
+               ::= {privacyGRP 5}\r
+\r
+\r
+privacyDefaultWEPKeyID OBJECT-TYPE\r
+               SYNTAX INTEGER   (1..4)\r
+               ACCESS read-write\r
+               STATUS mandatory\r
+               DESCRIPTION\r
+               "This attribute shall indicate the use of the first, second,\r
+               third or fourth DefaultWEPKey when set to values of one, two,\r
+               three or four."\r
+               ::= {privacyGRP 6}\r
+\r
+\r
+-----------------------------STATISTICS-----------------------------\r
+\r
+\r
+WLstatisticsGRP OBJECT IDENTIFIER ::= {wireless 3}\r
+\r
+wirelessStatistics OBJECT-TYPE\r
+               SYNTAX OCTET STRING (SIZE (88))\r
+               ACCESS read-only\r
+               STATUS mandatory\r
+               DESCRIPTION      \r
+               "Wireless Statistics. 22 elements(ULONG)\r
+               WirelessStatistics{\r
+                       unsigned long   UnicastTransmittedPackets;\r
+                       unsigned long   BroadcastTransmittedPacets;\r
+                       unsigned long   MulticastTransmittedPackets;\r
+                       unsigned long   TransmittedBeacon;\r
+                       unsigned long   TransmittedACK;\r
+                       unsigned long   TransmittedRTS;\r
+                       unsigned long   TransmittedCTS;\r
+                       unsigned long   UnicastReceivedPackets;\r
+                       unsigned long   BroadcastReceivedPackets;\r
+                       unsigned long   MulticastReceivedPackets;\r
+                       unsigned long   ReceivedBeacon;\r
+                       unsigned long   ReceivedACK;\r
+                       unsigned long   ReceivedRTS;\r
+                       unsigned long   ReceivedCTS;\r
+                       unsigned long   ACKFailure;\r
+                       unsigned long   CTSFailure;\r
+                       unsigned long   RetryPackets;\r
+                       unsigned long   ReceivedDuplicate;\r
+                       unsigned long   FailedPackets;\r
+                       unsigned long   AgedPackets;\r
+                       unsigned long   FCSError;\r
+                       unsigned long   InvalidPLCP;\r
+               } "\r
+               ::= {WLstatisticsGRP 1 }\r
+\r
+\r
+-------------------------------Site Survey----------------------\r
+\r
+WLSiteSurveyGRP OBJECT IDENTIFIER ::= {wireless 4}\r
+\r
+ChannelStatus OBJECT-TYPE\r
+               SYNTAX OCTET STRING (SIZE (14))\r
+               ACCESS read-only\r
+               STATUS mandatory\r
+               DESCRIPTION      \r
+               "."\r
+               ::= {WLSiteSurveyGRP 1}\r
+\r
+\r
+-------------------------------Associated Station----------------------\r
+-----------------------------------------------------------------------\r
+\r
+AssociatedStationsGRP OBJECT IDENTIFIER ::= {wireless 5}\r
+\r
+AssociatedSTAsNum OBJECT-TYPE\r
+      SYNTAX  INTEGER (1..2007)\r
+      ACCESS  read-only\r
+      STATUS  mandatory\r
+      DESCRIPTION\r
+      "This parameter's value indicates the number of the currently\r
+      associated STAtions. Associated STAtions should not be more\r
+      than 2007."\r
+      ::= { AssociatedStationsGRP 1 }\r
+\r
+               \r
+AssociatedSTAsInfo     OBJECT-TYPE\r
+           SYNTAX      OCTET STRING (SIZE (24))\r
+           ACCESS  read-only\r
+           STATUS  mandatory\r
+           DESCRIPTION\r
+           "The associated STAtion's Information.\r
+               AssociatedSTAsInfo{\r
+                       unsigned sort Num;\r
+                       unsigned char MacAddress[6];\r
+               } "\r
+           ::= { AssociatedStationsGRP 2 }\r
+               \r
+\r
+-------------------------------Authorized Mac Addresses----------------------\r
+\r
+AuthorizedMacAddressesGRP OBJECT IDENTIFIER ::= {wireless 6}\r
+\r
+AuthorizationMacEnable OBJECT-TYPE\r
+               SYNTAX INTEGER (1..3)\r
+               ACCESS read-write\r
+               STATUS mandatory\r
+               DESCRIPTION      \r
+               "When setting this attribute to 1, the Authorization Mac Address Table will be enabled in allow mode.\r
+                When setting this attribute to 3, the Authorization Mac Address Table will be enabled in deny mode."\r
+               ::= {AuthorizedMacAddressesGRP 1}\r
+\r
+\r
+AuthorizedMac  OBJECT-TYPE\r
+           SYNTAX      OCTET STRING (SIZE (12))\r
+           ACCESS  read-write\r
+           STATUS  mandatory\r
+           DESCRIPTION\r
+           "The Authorized Wireless Mac Addresses\r
+               AuthorizedMacTableString{\r
+                       unsigned sort Action; //Set 0x01 or Get 0x02\r
+                       unsigned sort NumOfAllTableAddresses;\r
+                       unsigned sort NumOfCurrentAddress;\r
+                       unsigned char MacAddress[6];\r
+               } "\r
+\r
+           ::= { AuthorizedMacAddressesGRP 2 }\r
+\r
+-----------------------------KNOWN ACCESS POINTS----------------------\r
+\r
+\r
+WLKnownAPGRP OBJECT IDENTIFIER ::= {wireless 7}\r
+\r
+wirelessKnownAPs OBJECT-TYPE\r
+               SYNTAX OCTET STRING (SIZE (160))\r
+               ACCESS read-only\r
+               STATUS mandatory\r
+               DESCRIPTION      \r
+               "."\r
+               ::= {WLKnownAPGRP 1 }\r
+\r
+SelectedBSSListNumber OBJECT-TYPE\r
+               SYNTAX INTEGER\r
+               ACCESS write-only\r
+               STATUS mandatory\r
+               DESCRIPTION      \r
+               "."\r
+               ::= {WLKnownAPGRP 2 }\r
+\r
+\r
+-----------------------------Advanced Privacy-----------------------------\r
+\r
+\r
+AdvancedPrivacyGRP OBJECT IDENTIFIER ::= { wireless 8 }\r
+\r
+Dot1xEnable OBJECT-TYPE\r
+               SYNTAX INTEGER {enable(1),disable(2), mixed environment(3)}\r
+               ACCESS read-write\r
+               STATUS mandatory\r
+               DESCRIPTION      \r
+               "."\r
+               ::= {AdvancedPrivacyGRP 1}\r
+\r
+BroadcastKeyPeriod OBJECT-TYPE\r
+               SYNTAX INTEGER  \r
+               ACCESS read-write\r
+               STATUS mandatory\r
+               DESCRIPTION      \r
+               "."\r
+               ::= {AdvancedPrivacyGRP 2}\r
+\r
+ServerIP OBJECT-TYPE\r
+               SYNTAX IpAddress\r
+               ACCESS read-write\r
+               STATUS mandatory\r
+               DESCRIPTION      \r
+               "."\r
+               ::= {AdvancedPrivacyGRP 3}\r
+\r
+ServerSecret OBJECT-TYPE\r
+               SYNTAX OCTET STRING (SIZE (16))\r
+               ACCESS  write-only\r
+               STATUS  mandatory\r
+               DESCRIPTION    \r
+               "."\r
+               ::= {AdvancedPrivacyGRP 4}    \r
+\r
+\r
+\r
+--*************************** Traps ***************************\r
+--*************************************************************\r
+\r
+trapSTAMacAddress OBJECT-TYPE\r
+       SYNTAX OCTET STRING (SIZE (6))\r
+       ACCESS read-only\r
+       STATUS mandatory\r
+       DESCRIPTION      \r
+       "The MAC address of a station device"\r
+\r
+       ::= {traps 1}\r
+\r
+\r
+\r
+BroadcastKeyPeriod\r
+\r
+trapReassociation TRAP-TYPE\r
+       ENTERPRISE atmel\r
+       VARIABLES {\r
+       trapSTAMacAddress\r
+       }\r
+       DESCRIPTION\r
+       "This trap message is sent when a STAtion's reassosiation\r
+       request is received."\r
+       ::= 1\r
+\r
+trapRoamOut TRAP-TYPE\r
+       ENTERPRISE atmel\r
+       VARIABLES {\r
+       trapSTAMacAddress\r
+       }\r
+       DESCRIPTION\r
+       "This trap message is used to indicate that a STAtion has\r
+       roamed out of the Wireless bridge's coverage area."\r
+       ::= 2\r
+\r
+trapAssociation TRAP-TYPE\r
+       ENTERPRISE atmel\r
+       VARIABLES {\r
+       trapSTAMacAddress\r
+       }\r
+       DESCRIPTION\r
+       "Indicates the reception of an association request packet\r
+       and     the sender STAtion's successful association with the\r
+       Access Point."\r
+       ::= 3\r
+       \r
+trapDisassociation TRAP-TYPE\r
+       ENTERPRISE atmel\r
+       VARIABLES {\r
+       trapSTAMacAddress\r
+       }\r
+       DESCRIPTION\r
+       "This trap message is sent when a disassociation notification\r
+       packet is received from a STAtion."\r
+       ::= 4\r
+\r
+trapAssociationExpire TRAP-TYPE\r
+       ENTERPRISE atmel\r
+       VARIABLES {\r
+       trapSTAMacAddress\r
+       }\r
+       DESCRIPTION\r
+       "This trap message is sent when the association's maximum time interval expires for\r
+       an associated STAtion."\r
+       ::= 5\r
+\r
+trapReset TRAP-TYPE\r
+       ENTERPRISE atmel\r
+       VARIABLES {\r
+       sysReset\r
+       }\r
+       DESCRIPTION\r
+       "This trap message is sent when Access Point Resets."\r
+       ::= 6\r
+\r
+trapSettingPingIPAddress TRAP-TYPE\r
+       ENTERPRISE atmel\r
+       VARIABLES {\r
+       operIPAddress\r
+       }\r
+       DESCRIPTION\r
+       "This trap message is sent when the Access Point IP address\r
+       is set with the transmition of a ping message."\r
+       ::= 7\r
+\r
+trapStartUp TRAP-TYPE\r
+       ENTERPRISE atmel\r
+       VARIABLES {\r
+       }\r
+       DESCRIPTION\r
+       "This trap message is sent when Access Point Starts Up."\r
+       ::= 8\r
+\r
+trapFailedToEraseFlash TRAP-TYPE\r
+       ENTERPRISE atmel\r
+       VARIABLES {\r
+       }\r
+       DESCRIPTION\r
+       "This trap message is sent when Access Point Failed To Erase Flash."\r
+       ::= 9\r
+\r
+trapAPClientScanning TRAP-TYPE\r
+       ENTERPRISE atmel\r
+       VARIABLES {\r
+       }\r
+       DESCRIPTION\r
+       "Access Point Client is scanning..."\r
+       ::= 10\r
+\r
+trapAPClientAuthenticating TRAP-TYPE\r
+       ENTERPRISE atmel\r
+       VARIABLES {\r
+       bridgeRemoteBridgeBSSID\r
+       }\r
+       DESCRIPTION\r
+       "Access Point Client is authenticating with the AP."\r
+       ::= 11\r
+\r
+trapAPClientAssociating TRAP-TYPE\r
+       ENTERPRISE atmel\r
+       VARIABLES {\r
+       bridgeRemoteBridgeBSSID\r
+       }\r
+       DESCRIPTION\r
+       "Access Point Client is associating with the AP."\r
+       ::= 12\r
+\r
+trapAPClientReAssociating TRAP-TYPE\r
+       ENTERPRISE atmel\r
+       VARIABLES {\r
+       bridgeRemoteBridgeBSSID\r
+       }\r
+       DESCRIPTION\r
+       "Access Point Client is reassociating with the AP."\r
+       ::= 13\r
+\r
+trapAPClientAuthenticationFailed TRAP-TYPE\r
+       ENTERPRISE atmel\r
+       VARIABLES {\r
+       bridgeRemoteBridgeBSSID\r
+       }\r
+       DESCRIPTION\r
+       "Access Point Client has failed authenticating with the AP."\r
+       ::= 14\r
+\r
+trapAPClientAssociationFailed TRAP-TYPE\r
+       ENTERPRISE atmel\r
+       VARIABLES {\r
+       bridgeRemoteBridgeBSSID\r
+       }\r
+       DESCRIPTION\r
+       "Access Point Client has failed associating with the AP."\r
+       ::= 15\r
+\r
+trapAPClientConnected TRAP-TYPE\r
+       ENTERPRISE atmel\r
+       VARIABLES {\r
+       bridgeRemoteBridgeBSSID\r
+       }\r
+       DESCRIPTION\r
+       "Access Point Client has been connected with the AP."\r
+       ::= 16\r
+\r
+trapAPClientDisconnected TRAP-TYPE\r
+       ENTERPRISE atmel\r
+       VARIABLES {\r
+       bridgeRemoteBridgeBSSID\r
+       }\r
+       DESCRIPTION\r
+       "Access Point Client has been disconnected from the AP."\r
+       ::= 17                         \r
+       \r
+trapAPClientScanFailed TRAP-TYPE\r
+       ENTERPRISE atmel\r
+       VARIABLES {\r
+       }\r
+       DESCRIPTION\r
+       "Access Point Client has failed scanning!"\r
+       ::= 18                         \r
+                        \r
+trapAPClientJoinFailed TRAP-TYPE\r
+       ENTERPRISE atmel\r
+       VARIABLES {\r
+       }\r
+       DESCRIPTION\r
+       "Access Point Client has failed joining!"\r
+       ::= 19       \r
+\r
+trapAPClientJoining    TRAP-TYPE\r
+       ENTERPRISE atmel\r
+       VARIABLES {\r
+       }\r
+       DESCRIPTION\r
+       "Access Point Client is in join state."\r
+       ::= 20       \r
+\r
+END
\ No newline at end of file
diff --git a/Documentation/mibs-atmel/mib-12350-none-netgear/AT76C510.mib b/Documentation/mibs-atmel/mib-12350-none-netgear/AT76C510.mib
new file mode 100644 (file)
index 0000000..53de58e
--- /dev/null
@@ -0,0 +1,1196 @@
+-- Title:      ATMEL  Private MIB                                          
+
+
+--Firmaware Version 1.4 14/5/2001
+
+
+ATMEL-MIB DEFINITIONS ::= BEGIN
+
+--IMPORTS
+--     enterprises,Counter
+--FROM RFC1155-SMI
+--     DisplayString
+--FROM RFC1213-MIB;
+--     TRAP-TYPE
+--FROM RFC-1215;
+
+
+--MacAddress ::= IMPLICIT OCTET STRING (SIZE(6))
+DisplayString ::= OCTET STRING
+
+internet      OBJECT IDENTIFIER ::= { iso org(3) dod(6) 1 }
+directory     OBJECT IDENTIFIER ::= { internet 1 }
+mgmt          OBJECT IDENTIFIER ::= { internet 2 }
+experimental  OBJECT IDENTIFIER ::= { internet 3 }
+private       OBJECT IDENTIFIER ::= { internet 4 }
+enterprises   OBJECT IDENTIFIER ::= { private 1 }
+
+--atmel       OBJECT IDENTIFIER ::= { enterprises 410 } 
+atmel       OBJECT IDENTIFIER ::= { enterprises 12350 }
+atmelmib    OBJECT IDENTIFIER ::= { atmel 1}
+atmelSys       OBJECT IDENTIFIER ::= {atmelmib 1}
+wireless       OBJECT IDENTIFIER ::= {atmelmib 2}
+traps  OBJECT IDENTIFIER ::= {atmelmib 3 }
+
+
+
+--*************************** System***************************
+--****************************************************************
+
+
+
+sysCtrlGRP OBJECT IDENTIFIER ::= {atmelSys 1}
+
+sysDescr OBJECT-TYPE
+    SYNTAX  DisplayString (SIZE (0..255))
+    ACCESS  read-only
+    STATUS  mandatory
+       DESCRIPTION
+         "A textual description of the entity.  This value
+          should include the full name and version
+          identification of the system's hardware type,
+          software operating-system, and networking
+          software.  It is mandatory that this only contain
+          printable ASCII characters."
+       ::= { sysCtrlGRP 1 } 
+
+
+sysReset OBJECT-TYPE
+       SYNTAX INTEGER {enable(1)}
+       ACCESS  read-write
+       STATUS  mandatory
+       DESCRIPTION       
+       "By setting this attribute enable(1), a reset command to 
+       the system is issued." 
+       ::= { sysCtrlGRP 2 } 
+
+sysTrapSwitch OBJECT-TYPE
+       SYNTAX INTEGER {enable(1),disable(2)}
+       ACCESS read-write
+       STATUS mandatory
+       DESCRIPTION
+       "This attribute enables the transmission of SNMP.V1 TRAPs."
+       ::= {sysCtrlGRP 3}
+
+sysLoadDefaults OBJECT-TYPE
+       SYNTAX INTEGER { enable(1)}
+       ACCESS  read-write
+       STATUS  mandatory
+       DESCRIPTION       
+       "Setting this attribute to enable(1), will cause the system to load
+       the factory default values of all the operational parameters." 
+       ::= { sysCtrlGRP 4 }
+
+sysDeviceInfo  OBJECT-TYPE
+                       SYNTAX OCTET STRING (SIZE (92))
+                       ACCESS read-write
+                       STATUS mandatory
+                       DESCRIPTION      
+                       "Hardware device configuration struct.
+                                HARD_CONFIGURATION_STUCT{
+                                       unsigned long  StructVersion;
+                                       unsigned char   MacAddress[6];
+                                       unsigned short  Reserved;
+                                       unsigned long  RegulationDomain;
+                                       unsigned long  ProductType; 
+                                       unsigned char   OEMName[32];
+                                       unsigned long  OEMID;
+                                       unsigned char   ProductName[32];
+                                       unsigned long  HardwareRevision; 
+                               } "
+
+
+                       ::= {sysCtrlGRP 5 }
+
+sysUpload OBJECT-TYPE
+       SYNTAX INTEGER {enable(1)}
+       ACCESS  read-write
+       STATUS  mandatory
+       DESCRIPTION       
+       "By setting this attribute enable(1), a Upload configuration command to 
+       the system is issued." 
+       ::= { sysCtrlGRP 6 } 
+                   
+SiteSurveyCommand OBJECT-TYPE
+       SYNTAX INTEGER {enable(1)}
+       ACCESS  read-write
+       STATUS  mandatory
+       DESCRIPTION       
+       "By setting this attribute enable(1), a Site Survey command to 
+       the system is issued." 
+       ::= { sysCtrlGRP 7 } 
+
+                      
+
+-----------------------------BridgingLevel-----------------------------
+
+operBridgingLevel OBJECT IDENTIFIER ::= {atmelSys 2}
+
+operIPAddress OBJECT-TYPE
+               SYNTAX IpAddress
+               ACCESS read-write
+               STATUS mandatory
+               DESCRIPTION      
+               "The IP address of this device used over its Ethernet
+               or Wireless LAN port."
+               ::= { operBridgingLevel 1 }
+
+operIPMask OBJECT-TYPE
+           SYNTAX  IpAddress
+           ACCESS  read-write
+           STATUS  mandatory
+           DESCRIPTION
+           "The IP Network mask used by the IP entity when accessing
+           devices through any of its LAN Ports (Ethernet or WLAN)."
+           ::= { operBridgingLevel 2}
+
+operEthernetAddress OBJECT-TYPE
+           SYNTAX  OCTET STRING (SIZE (6))
+           ACCESS  read-only
+           STATUS  mandatory
+           DESCRIPTION
+           "The MAC Address of the Ethernet interface."
+           ::= { operBridgingLevel 3}
+
+
+operGateway OBJECT-TYPE
+               SYNTAX IpAddress
+               ACCESS read-write
+               STATUS mandatory
+               DESCRIPTION      
+               "Gateway default IP address."
+               ::= { operBridgingLevel 4 }
+
+operDHCP OBJECT-TYPE
+               SYNTAX  INTEGER {enable(1),disable(2)}
+               ACCESS read-write
+               STATUS mandatory
+               DESCRIPTION      
+               "When setting this attribute to enable(1), the system will
+               enable DHCP protocol."
+               ::= { operBridgingLevel 5 }
+
+operPrimaryPort OBJECT-TYPE
+               SYNTAX  INTEGER {Ethernet(1),Wireless(2)}
+               ACCESS read-write
+               STATUS mandatory
+               DESCRIPTION      
+               "This attribute indicates the primaty port.Ethernet or Wireless."
+               ::= { operBridgingLevel 6 }
+
+operConfigurationPort OBJECT-TYPE
+               SYNTAX  INTEGER {Ethernet(1),Wireless(2),Both(3)}
+               ACCESS read-write
+               STATUS mandatory
+               DESCRIPTION      
+               "This attribute indicates the Configuration port.Ethernet or Wireless or Both of them."
+               ::= { operBridgingLevel 7 }
+
+
+
+-----------------------------Filtering-----------------------------
+
+
+
+operFiltering OBJECT IDENTIFIER ::= {atmelSys 3}
+
+operIPFilter OBJECT-TYPE
+               SYNTAX  INTEGER {enable(1), disable(2)}
+               ACCESS read-write
+               STATUS mandatory
+               DESCRIPTION      
+               "When setting this attribute to enable(1), the system will
+               filter out all non IP-traffic."
+               ::= { operFiltering 1 }
+      
+operForwarbBcast OBJECT-TYPE
+               SYNTAX  INTEGER {enable(1), disable(2)}
+               ACCESS read-write
+               STATUS mandatory
+               DESCRIPTION      
+               "When setting this attribute to disable(2), the system will not
+               forward broadcast traffic to the Wireless Port."
+               ::= { operFiltering 2 }
+                                                     
+operSendBackBcast OBJECT-TYPE
+               SYNTAX  INTEGER {enable(1), disable(2)}
+               ACCESS read-write
+               STATUS mandatory
+               DESCRIPTION      
+               "When setting this attribute to disable(2), the system will not
+               send back broadcast traffic to the Wireless Port."
+               ::= { operFiltering 3 }
+                 
+operSendBackUnicast OBJECT-TYPE
+               SYNTAX  INTEGER {enable(1), disable(2)}
+               ACCESS read-write
+               STATUS mandatory
+               DESCRIPTION      
+               "When setting this attribute to disable(2), the system will not
+               send back unicast traffic to the Wireless Port."
+               ::= { operFiltering 4 }
+
+
+-----------------------------Bridge Operational Mode -----------------------------
+
+
+operBridgeOperationalMode OBJECT IDENTIFIER ::= {atmelSys 4}
+
+
+bridgeOperationalMode OBJECT-TYPE
+               SYNTAX  INTEGER {WBPoint2Multipoint(1), AP(2), APclient(3),  WBPoint2Point(4), WRepeater(5)}
+               ACCESS read-write
+               STATUS mandatory
+               DESCRIPTION      
+               "The Operational Mode of Bridge. Access Point, Access Point client, Wireless Bridge Point to Point, Wireless Bridge Point to MultiPoint."
+               ::= { operBridgeOperationalMode 1 }
+
+bridgeRemoteBridgeBSSID OBJECT-TYPE
+               SYNTAX  OCTET STRING (SIZE (6))
+               ACCESS read-write
+               STATUS mandatory
+               DESCRIPTION      
+               "The Preferred BSSID if the device is at Access Point client mode
+               or the remote Mac if the device is at Wireless Bridge Point to Point mode."
+               ::= { operBridgeOperationalMode 2 }
+
+
+
+-----------------------------Static-----------------------------
+
+
+dot1dStatic OBJECT IDENTIFIER ::= {atmelSys 5}
+
+
+StaticMacFilterNum OBJECT-TYPE
+      SYNTAX  INTEGER 
+      ACCESS  read-write
+      STATUS  mandatory
+      DESCRIPTION
+      "This parameter's value indicates the number of the currently
+      static MAC filters."
+      ::= { dot1dStatic 1 }
+
+
+          dot1dStaticTable OBJECT-TYPE
+              SYNTAX  SEQUENCE OF Dot1dStaticEntry
+              ACCESS  not-accessible
+              STATUS  mandatory
+              DESCRIPTION
+                      "A table containing filtering information
+                      configured into the bridge by (local or network)
+                      management specifying the set of ports to which
+                      frames received from specific ports and containing
+                      specific destination addresses are allowed to be
+                      forwarded.  The value of zero in this table as the
+                      port number from which frames with a specific
+                      destination address are received, is used to
+                      specify all ports for which there is no specific
+                      entry in this table for that particular
+                      destination address.  Entries are valid for
+                      unicast and for group/broadcast addresses."
+              REFERENCE
+                      "IEEE 802.1D-1990: Section 6.7.2"
+              ::= { dot1dStatic 2 }
+
+          dot1dStaticEntry OBJECT-TYPE
+              SYNTAX  Dot1dStaticEntry
+              ACCESS  not-accessible
+              STATUS  mandatory
+              DESCRIPTION
+                      "Filtering information configured into the bridge
+                      by (local or network) management specifying the
+                      set of ports to which frames received from a
+                      specific port and containing a specific
+                      destination address are allowed to be forwarded."
+              REFERENCE
+                      "IEEE 802.1D-1990: Section 6.7.2"
+              INDEX   { dot1dStaticAddress}--, dot1dStaticReceivePort }
+              ::= { dot1dStaticTable 1 }
+
+          Dot1dStaticEntry ::=
+              SEQUENCE {
+                  dot1dStaticAddress
+                      OCTET STRING (SIZE (6))
+--                  dot1dStaticReceivePort
+--                     INTEGER,
+--                  dot1dStaticAllowedToGoTo
+--                      INTEGER,
+--                  dot1dStaticStatus
+--                      INTEGER
+              }
+
+          dot1dStaticAddress OBJECT-TYPE
+              SYNTAX  OCTET STRING (SIZE (6))
+              ACCESS  read-write
+              STATUS  mandatory
+              DESCRIPTION
+                      "The destination MAC address in a frame to which
+                      this entry's filtering information applies.  This
+                      object can take the value of a unicast address, a
+                      group address or the broadcast address."
+              REFERENCE
+                      "IEEE 802.1D-1990: Section 3.9.1, 3.9.2"
+              ::= { dot1dStaticEntry 1 }
+
+--          dot1dStaticReceivePort OBJECT-TYPE
+--              SYNTAX  INTEGER
+--              ACCESS  read-write
+--              STATUS  mandatory
+--              DESCRIPTION
+--                      "Either the value '0', or the port number of the
+--                      port from which a frame must be received in order
+--                      for this entry's filtering information to apply.
+--                      A value of zero indicates that this entry applies
+--                      on all ports of the bridge for which there is no
+--                      other applicable entry."
+--              ::= { dot1dStaticEntry 2 }
+
+--          dot1dStaticAllowedToGoTo OBJECT-TYPE
+--              SYNTAX  INTEGER
+--              ACCESS  read-write
+--              STATUS  mandatory
+--              DESCRIPTION
+--                      "The set of ports to which frames received from a
+--                      specific port and destined for a specific MAC
+--                      address, are allowed to be forwarded.  Each octet
+--                      within the value of this object specifies a set of
+--                      eight ports, with the first octet specifying ports
+--                      1 through 8, the second octet specifying ports 9
+--                      through 16, etc.  Within each octet, the most
+--                      significant bit represents the lowest numbered
+--                      port, and the least significant bit represents the
+--                      highest numbered port.  Thus, each port of the
+--                      bridge is represented by a single bit within the
+--                      value of this object.  If that bit has a value of
+--                      '1' then that port is included in the set of
+--                      ports; the port is not included if its bit has a
+--                      value of '0'.  (Note that the setting of the bit
+--                      corresponding to the port from which a frame is
+--                      received is irrelevant.)  The default value of
+--                      this object is a string of ones of appropriate
+--                      length."
+--              ::= { dot1dStaticEntry 3 }
+--
+--          dot1dStaticStatus OBJECT-TYPE
+--              SYNTAX  INTEGER {
+--                          other(1),
+--                          invalid(2),
+--                          permanent(3),
+--                          deleteOnReset(4),
+--                          deleteOnTimeout(5)
+--                      }
+--              ACCESS  read-write
+--              STATUS  mandatory
+--              DESCRIPTION
+--                      "This object indicates the status of this entry.
+--                      The default value is permanent(3).
+--                           other(1) - this entry is currently in use but
+--                                the conditions under which it will
+--                                remain so are different from each of the
+--                                following values.
+--                           invalid(2) - writing this value to the object
+--                                removes the corresponding entry.
+--                           permanent(3) - this entry is currently in use
+--                                and will remain so after the next reset
+--                                of the bridge.
+--                           deleteOnReset(4) - this entry is currently in
+--                                use and will remain so until the next
+--                                reset of the bridge.
+--                           deleteOnTimeout(5) - this entry is currently
+--                                in use and will remain so until it is
+--                                aged out."
+--              ::= { dot1dStaticEntry 4 }
+
+
+
+----------------------------------Protocol Filtering-------------------
+
+
+ProtocolFilterGRP OBJECT IDENTIFIER ::= {atmelSys 6}
+
+ProtocolFilterNum OBJECT-TYPE
+      SYNTAX  INTEGER 
+      ACCESS  read-write
+      STATUS  mandatory
+      DESCRIPTION
+      "This parameter's value indicates the number of the currently
+      protocol filters."
+      ::= { ProtocolFilterGRP 1 }
+
+
+
+
+          ProtocolFilterTable OBJECT-TYPE
+              SYNTAX  SEQUENCE OF ProtocolFilterEntry
+              ACCESS  not-accessible
+              STATUS  mandatory
+              DESCRIPTION
+                      "A table containing filtering information
+                      configured into the bridge by (local or network)
+                      management specifying the set of protocol filter."
+              ::= { ProtocolFilterGRP 2 }
+
+          protocolFilterEntry OBJECT-TYPE
+              SYNTAX  ProtocolFilterEntry
+              ACCESS  not-accessible
+              STATUS  mandatory
+              DESCRIPTION
+                      "Filtering information configured into the bridge
+                      by (local or network) management specifying the
+                      set of protocol filter."
+              INDEX   { ProtocolFilterCode }
+              ::= { ProtocolFilterTable 1 }
+
+          ProtocolFilterEntry ::=
+              SEQUENCE {
+                  ProtocolFilterCode
+                      OCTET STRING (SIZE (2)),
+                  ProtocolFilterDescription
+                      DisplayString (SIZE (0..255)),
+                  ProtocolFilterActivity
+                      INTEGER
+              }
+
+          ProtocolFilterCode OBJECT-TYPE
+              SYNTAX  OCTET STRING (SIZE (2))
+              ACCESS  read-write
+              STATUS  mandatory
+              DESCRIPTION
+                      "The protocol code configured into the bridge
+                      by (local or network) management specifying the
+                      set of protocol filter."
+              ::= { protocolFilterEntry 1 }
+
+          ProtocolFilterDescription OBJECT-TYPE
+              SYNTAX  DisplayString (SIZE (0..255))
+              ACCESS  read-write
+              STATUS  mandatory
+              DESCRIPTION
+                      "A textual description of the protocol."
+              ::= { protocolFilterEntry 2 }
+
+          ProtocolFilterActivity OBJECT-TYPE
+              SYNTAX  INTEGER {enable(1),disable(2)}
+              ACCESS  read-write
+              STATUS  mandatory
+              DESCRIPTION
+                      "This object indicates the status of this filter."
+              ::= { protocolFilterEntry 3 }
+
+
+
+-----------------------------Ethernet STATISTICS-----------------------------
+
+
+EthStatisticsGRP OBJECT IDENTIFIER ::= {atmelSys 7}
+
+EthRxStatistics OBJECT-TYPE
+               SYNTAX OCTET STRING (SIZE (64))
+               ACCESS read-only
+               STATUS mandatory
+               DESCRIPTION      
+               "Ethernet Rx Statistics
+               EthernetRxStatistics{
+                       unsigned long   TotalBytesRx;
+                       unsigned long   TotalPacketsRx;
+                       unsigned long   PacketCRCErrorRx;
+                       unsigned long   MulticastPacketRx;
+                       unsigned long   BroadcastPacketRx;
+                       unsigned long   ControlFramesRx;
+                       unsigned long   PauseFramesRx;
+                       unsigned long   UnknownOPCodeRx;
+                       unsigned long   AlignmentRxError;
+                       unsigned long   LengthOutOfRangeRx;
+                       unsigned long   CodeErrorRx;
+                       unsigned long   FalseCarrierRx;
+                       unsigned long   UndersizePacketsRx;
+                       unsigned long   OversizePacketsRx;
+                       unsigned long   TotalFragmentsRx;
+                       unsigned long   TotalJabberRx;
+               }"
+               ::= {EthStatisticsGRP 1 }
+
+EthTxStatistics OBJECT-TYPE
+               SYNTAX OCTET STRING (SIZE (56))
+               ACCESS read-only
+               STATUS mandatory
+               DESCRIPTION      
+               "Ethernet Tx Statistics
+               EthernetTxStatistics{
+                       unsigned long   TotalBytesTx;
+                       unsigned long   TotalPacketsTx;
+                       unsigned long   PacketCRCErrorTx;
+                       unsigned long   MulticastPacketTx;
+                       unsigned long   BroadcastPacketTx;
+                       unsigned long   UnicastPacketTx;
+                       unsigned long   PauseFramesTx;
+                       unsigned long   SingleDeferPacketTx;
+                       unsigned long   MultiDeferPacketsTx;
+                       unsigned long   SingleCollisionsTx;
+                       unsigned long   MultiCollisionsTx;
+                       unsigned long   LateCollisionsTx;
+                       unsigned long   ExcessiveCollisionTx;
+                       unsigned long   TotalCollisionsTx;
+               }"
+
+               ::= {EthStatisticsGRP 2 }
+
+
+
+
+
+-----------------------------Test Mode Settings-----------------------------
+
+
+TestModeSettingsGRP OBJECT IDENTIFIER ::= {atmelSys 8}
+
+TestModeOnOff  OBJECT-TYPE
+                               SYNTAX INTEGER {enable(1),disable(2)}
+                               ACCESS read-write
+                               STATUS mandatory
+                               DESCRIPTION      
+                               "When setting this attribute to enable(1), the device be
+                               at test mode."
+                               ::= { TestModeSettingsGRP 1 }
+
+
+TestModeCommandStruct  OBJECT-TYPE
+                               SYNTAX OCTET STRING (SIZE (20))
+                               ACCESS read-write
+                               STATUS mandatory
+                               DESCRIPTION      
+                               "
+                               typedef struct __CONT_PKT_TX
+                               {
+                                       UINT8   Channel;
+                                       UINT8   Antenna;
+                                       UINT8   TxPower;
+                                       UINT8   TxRate;
+                               
+                                       UINT8   TxFilter;
+                                       UINT8   Reserved;
+                                       UINT16  IFrameTime;
+                               
+                                       UINT32  FrameLength;
+                                       UINT32  FramesToTransmit;
+                                       
+                                       UINT8   Pattern;
+                                       UINT8   Reserved1[3];
+                               }CONT_PKT_TX;
+                               "
+                               ::= {TestModeSettingsGRP 2 }
+
+TestModeRadioConfiguration     OBJECT-TYPE
+                                       SYNTAX OCTET STRING (SIZE (47))
+                                       ACCESS read-write
+                                       STATUS mandatory
+                                       DESCRIPTION      
+                                       "Configuration of radio derived from tests. CR17 Reg 1-14, CR20 Reg 1-14, CR21 Reg 1-14, CR1, CR2, CR3, CR28, CR29"
+                                       ::= {TestModeSettingsGRP 8 }
+
+TestModeStatistics             OBJECT-TYPE
+                                       SYNTAX OCTET STRING (SIZE (12))
+                                       ACCESS read-only
+                                       STATUS mandatory
+                                       DESCRIPTION      
+                                       "Statistics derive from tests
+                                       TestModeStatistics{
+                                               unsigned long SuccessFrames;
+                                               unsigned long FailedFrames;
+                                               unsigned long PacketsTx;
+                                       } "
+
+                                       ::= {TestModeSettingsGRP 9 }
+
+
+
+
+-----------------------------Authorized Settings-----------------------------
+
+
+AuthorizedSettingsGRP OBJECT IDENTIFIER ::= {atmelSys 9}
+
+AuthorizedUserPass     OBJECT-TYPE
+                               SYNTAX OCTET STRING (SIZE (16))
+                               ACCESS read-write
+                               STATUS mandatory
+                               DESCRIPTION      
+                               "The community name of User."
+                               ::= {AuthorizedSettingsGRP 1 }
+
+
+AuthorizedAdminPass    OBJECT-TYPE
+                               SYNTAX OCTET STRING (SIZE (16))
+                               ACCESS read-write
+                               STATUS mandatory
+                               DESCRIPTION      
+                               "The community name of Administrator."
+                               ::= {AuthorizedSettingsGRP 2 }
+
+
+AuthorizedManufactPass         OBJECT-TYPE
+                               SYNTAX OCTET STRING (SIZE (16))
+                               ACCESS read-write
+                               STATUS mandatory
+                               DESCRIPTION      
+                               "The community name of Manufacturer."
+                               ::= {AuthorizedSettingsGRP 3 }
+
+
+--*************************** wireless ***************************
+--****************************************************************
+
+-----------------------------Operational Settings-----------------------------
+
+
+OperationalSettingsGRP OBJECT IDENTIFIER ::= {wireless 1}
+
+
+operChannelID  OBJECT-TYPE
+       SYNTAX  INTEGER  {
+                       channel1(1),
+                       channel2(2),
+                       channel3(3),
+                       channel4(4),
+                       channel5(5),
+                       channel6(6),
+                       channel7(7),
+                       channel8(8),
+                       channel9(9),
+                       channel10(10),
+                       channel11(11),
+                       channel12(12),
+                       channel13(13),
+                       channel14(14)
+               }
+       ACCESS  read-write
+       STATUS  mandatory
+       DESCRIPTION
+               "The operating frequency channel. Valid numbers
+               are     as defind in ISO/IEC 8802-11:1999, 15.4.6.2."
+       ::= { OperationalSettingsGRP 1 }
+
+
+operESSIDLength OBJECT-TYPE
+     SYNTAX  INTEGER
+     ACCESS  read-write    
+     STATUS  mandatory
+     DESCRIPTION
+     "The ESSID Length"
+     ::= {OperationalSettingsGRP 2 }     
+
+operESSID OBJECT-TYPE
+     SYNTAX  OCTET STRING (SIZE (32))
+     ACCESS  read-write    
+     STATUS  mandatory
+     DESCRIPTION
+     "The network name. The size of the network name
+     should not be more than 32 characters long."
+     ::= {OperationalSettingsGRP 3 }     
+
+
+operRTSThreshold OBJECT-TYPE
+               SYNTAX  INTEGER  
+               ACCESS read-write
+               STATUS mandatory
+               DESCRIPTION      
+               "This attribute indicates the number of bytes in an 
+               MPDU (frame), above which an RTS/CTS handshake will be
+               performed. Setting this attribute to be larger than the
+               maximum frame size, will prevent the RTS/CTS handshake 
+               for frames trassmitted by this station."
+       ::= {OperationalSettingsGRP 4 }
+
+
+operFragmentationThreshold OBJECT-TYPE
+               SYNTAX  INTEGER  
+               ACCESS read-write
+               STATUS mandatory
+               DESCRIPTION      
+               "This attribute indicates the number of bytes in an 
+               MPDU (frame), above which MPDU fragmentation will be
+               performed."
+       ::= {OperationalSettingsGRP 5 }
+       
+
+operPreambleType OBJECT-TYPE
+      SYNTAX  INTEGER {
+                       ShortPreamble(1),
+                       LongPreamble(2)
+               }
+      ACCESS  read-write
+      STATUS  mandatory
+      DESCRIPTION
+      "This parameter's value indicates the Preamble Type of device. Short or Long."
+             ::= {OperationalSettingsGRP 6 }
+
+
+operAuthenticationType OBJECT-TYPE
+               SYNTAX  INTEGER {
+       openSystem(1),
+       sharedKey(2),
+       BothType(3)
+       }
+               ACCESS read-write
+               STATUS mandatory
+               DESCRIPTION      
+               "This attribute indicates the authentication algorithm
+               used during the authentication sequence.
+               The value of this attribute is one of the following:
+               1 - Open System,
+               2 - Shared Key
+               3 - Both Type "
+               ::= {OperationalSettingsGRP 7 }
+
+
+operBasicRates OBJECT-TYPE
+               SYNTAX OCTET STRING (SIZE (4))
+               ACCESS read-write
+               STATUS mandatory
+               DESCRIPTION      
+               "This attribute indicates the basic and supported rates of Access Point.Valid format
+               is as defind in ISO/IEC 8802-11:1999"
+               ::= { OperationalSettingsGRP 8 }
+
+
+operAutoRateFallBack OBJECT-TYPE
+               SYNTAX INTEGER {enable(1),disable(2)}
+               ACCESS read-write
+               STATUS mandatory
+               DESCRIPTION      
+               "This attribute indicates if Auto Rate Fall Back is enable or disable."
+               ::= {OperationalSettingsGRP 9 }
+
+operAccessPointName OBJECT-TYPE
+     SYNTAX  OCTET STRING (SIZE (32))
+     ACCESS  read-write    
+     STATUS  mandatory
+     DESCRIPTION
+     "The AP name."
+     ::= {OperationalSettingsGRP 10 }     
+
+operSSIDBroadcasting OBJECT-TYPE
+               SYNTAX INTEGER {enable(1),disable(2)}
+               ACCESS read-write
+               STATUS mandatory
+               DESCRIPTION      
+               "This attribute indicates if SSID is broadcasting or not."
+               ::= {OperationalSettingsGRP 11 }
+
+operAntennaSettings OBJECT-TYPE
+               SYNTAX INTEGER
+               ACCESS read-write
+               STATUS mandatory
+               DESCRIPTION      
+               "."
+               ::= {OperationalSettingsGRP 12 }
+
+operInterRoaming OBJECT-TYPE
+               SYNTAX INTEGER
+               ACCESS read-write
+               STATUS mandatory
+               DESCRIPTION      
+               "."
+               ::= {OperationalSettingsGRP 13 }
+
+
+-----------------------------Privacy-----------------------------
+
+
+privacyGRP OBJECT IDENTIFIER ::= { wireless 2 }
+
+
+
+defaultWEPKey1 OBJECT-TYPE
+    SYNTAX OCTET STRING (SIZE (13))
+    ACCESS  write-only
+    STATUS  mandatory
+    DESCRIPTION    
+    "A WEP default secret key value."
+    ::= { privacyGRP 1 }    
+
+defaultWEPKey2 OBJECT-TYPE
+    SYNTAX OCTET STRING (SIZE (13))
+    ACCESS  write-only
+    STATUS  mandatory
+    DESCRIPTION    
+    "A WEP default secret key value."
+    ::= { privacyGRP 2 }    
+
+defaultWEPKey3 OBJECT-TYPE
+    SYNTAX OCTET STRING (SIZE (13))
+    ACCESS  write-only
+    STATUS  mandatory
+    DESCRIPTION    
+    "A WEP default secret key value."
+    ::= { privacyGRP 3 }    
+
+defaultWEPKey4 OBJECT-TYPE
+    SYNTAX OCTET STRING (SIZE (13))
+    ACCESS  write-only
+    STATUS  mandatory
+    DESCRIPTION    
+    "A WEP default secret key value."
+    ::= { privacyGRP 4 }    
+
+
+
+privacyWEPEnable OBJECT-TYPE
+               SYNTAX INTEGER {enable64(1),disable(2),enable128(3) }
+               ACCESS read-write
+               STATUS mandatory
+               DESCRIPTION      
+               "This attribute, when enable64(1) or enable128(3), indicates that the 802.11
+               standard encryption mechanism (WEP) is implemented. WEP64, WEP128 or disable"
+               ::= {privacyGRP 5}
+
+
+privacyDefaultWEPKeyID OBJECT-TYPE
+               SYNTAX INTEGER   (1..4)
+               ACCESS read-write
+               STATUS mandatory
+               DESCRIPTION
+               "This attribute shall indicate the use of the first, second,
+               third or fourth DefaultWEPKey when set to values of one, two,
+               three or four."
+               ::= {privacyGRP 6}
+
+
+-----------------------------STATISTICS-----------------------------
+
+
+WLstatisticsGRP OBJECT IDENTIFIER ::= {wireless 3}
+
+wirelessStatistics OBJECT-TYPE
+               SYNTAX OCTET STRING (SIZE (88))
+               ACCESS read-only
+               STATUS mandatory
+               DESCRIPTION      
+               "Wireless Statistics. 22 elements(ULONG)
+               WirelessStatistics{
+                       unsigned long   UnicastTransmittedPackets;
+                       unsigned long   BroadcastTransmittedPacets;
+                       unsigned long   MulticastTransmittedPackets;
+                       unsigned long   TransmittedBeacon;
+                       unsigned long   TransmittedACK;
+                       unsigned long   TransmittedRTS;
+                       unsigned long   TransmittedCTS;
+                       unsigned long   UnicastReceivedPackets;
+                       unsigned long   BroadcastReceivedPackets;
+                       unsigned long   MulticastReceivedPackets;
+                       unsigned long   ReceivedBeacon;
+                       unsigned long   ReceivedACK;
+                       unsigned long   ReceivedRTS;
+                       unsigned long   ReceivedCTS;
+                       unsigned long   ACKFailure;
+                       unsigned long   CTSFailure;
+                       unsigned long   RetryPackets;
+                       unsigned long   ReceivedDuplicate;
+                       unsigned long   FailedPackets;
+                       unsigned long   AgedPackets;
+                       unsigned long   FCSError;
+                       unsigned long   InvalidPLCP;
+               } "
+               ::= {WLstatisticsGRP 1 }
+
+
+-------------------------------Site Survey----------------------
+
+WLSiteSurveyGRP OBJECT IDENTIFIER ::= {wireless 4}
+
+ChannelStatus OBJECT-TYPE
+               SYNTAX OCTET STRING (SIZE (14))
+               ACCESS read-only
+               STATUS mandatory
+               DESCRIPTION      
+               "."
+               ::= {WLSiteSurveyGRP 1}
+
+
+-------------------------------Associated Station----------------------
+-----------------------------------------------------------------------
+
+AssociatedStationsGRP OBJECT IDENTIFIER ::= {wireless 5}
+
+AssociatedSTAsNum OBJECT-TYPE
+      SYNTAX  INTEGER (1..2007)
+      ACCESS  read-only
+      STATUS  mandatory
+      DESCRIPTION
+      "This parameter's value indicates the number of the currently
+      associated STAtions. Associated STAtions should not be more
+      than 2007."
+      ::= { AssociatedStationsGRP 1 }
+
+               
+AssociatedSTAsInfo     OBJECT-TYPE
+           SYNTAX      OCTET STRING (SIZE (24))
+           ACCESS  read-only
+           STATUS  mandatory
+           DESCRIPTION
+           "The associated STAtion's Information.
+               AssociatedSTAsInfo{
+                       unsigned short Num;
+                       unsigned char MacAddress[6];
+               } "
+           ::= { AssociatedStationsGRP 2 }
+               
+
+-------------------------------Authorized Mac Addresses----------------------
+
+AuthorizedMacAddressesGRP OBJECT IDENTIFIER ::= {wireless 6}
+
+AuthorizationMacEnable OBJECT-TYPE
+               SYNTAX INTEGER {enable(1),disable(2)}
+               ACCESS read-write
+               STATUS mandatory
+               DESCRIPTION      
+               "When setting this attribute to enable(1), the Authorization Mac Address Table will be enable."
+               ::= {AuthorizedMacAddressesGRP 1}
+
+
+AuthorizedMac  OBJECT-TYPE
+           SYNTAX      OCTET STRING (SIZE (12))
+           ACCESS  read-write
+           STATUS  mandatory
+           DESCRIPTION
+           "The Authorized Wireless Mac Addresses
+               AuthorizedMacTableString{
+                       unsigned short Action; //Set 0x01 or Get 0x02
+                       unsigned short NumOfAllTableAddresses;
+                       unsigned short NumOfCurrentAddress;
+                       unsigned char MacAddress[6];
+               } "
+
+           ::= { AuthorizedMacAddressesGRP 2 }
+
+-----------------------------KNOWN ACCESS POINTS----------------------
+
+
+WLKnownAPGRP OBJECT IDENTIFIER ::= {wireless 7}
+
+wirelessKnownAPs OBJECT-TYPE
+               SYNTAX OCTET STRING (SIZE (160))
+               ACCESS read-only
+               STATUS mandatory
+               DESCRIPTION      
+               "."
+               ::= {WLKnownAPGRP 1 }
+
+SelectedBSSListNumber OBJECT-TYPE
+               SYNTAX INTEGER
+               ACCESS write-only
+               STATUS mandatory
+               DESCRIPTION      
+               "."
+               ::= {WLKnownAPGRP 2 }
+
+
+-----------------------------ACCESS POINT CLIENT INFO----------------------
+                                              
+WLAPClientGRP OBJECT IDENTIFIER ::= {wireless 8}
+
+APCLientInfo OBJECT-TYPE
+               SYNTAX OCTET STRING (SIZE (8))
+               ACCESS read-only
+               STATUS mandatory
+               DESCRIPTION
+           "The AP Client Info 
+               {
+                       unsigned char   reserved;
+                       unsigned char   State;    // 0->Idle State, 1->Scan State, 2->Scan Completed, 3->Join State, 4->Join Completed State,
+                                                                         // 5->Authentication Request1 Pending, 6->Authentication Request2 Pending,
+                                                                         // 7->Authenticated State, 8->Association Request Pending, 9->Associated State 
+                       unsigned char   BSSID[6];
+               } "
+               ::= {WLAPClientGRP 1 }
+
+--*************************** Traps ***************************
+--*************************************************************
+
+trapSTAMacAddress OBJECT-TYPE
+       SYNTAX OCTET STRING (SIZE (6))
+       ACCESS read-only
+       STATUS mandatory
+       DESCRIPTION      
+       "The MAC address of a station device"
+
+       ::= {traps 1}
+
+
+trapReassociation TRAP-TYPE
+       ENTERPRISE atmel
+       VARIABLES {
+       trapSTAMacAddress
+       }
+       DESCRIPTION
+       "This trap message is sent when a STAtion's reassosiation
+       request is received."
+       ::= 1
+
+trapRoamOut TRAP-TYPE
+       ENTERPRISE atmel
+       VARIABLES {
+       trapSTAMacAddress
+       }
+       DESCRIPTION
+       "This trap message is used to indicate tha a STAtion has
+       roamed out of the Wireless bridge's coverage area."
+       ::= 2
+
+trapAssociation TRAP-TYPE
+       ENTERPRISE atmel
+       VARIABLES {
+       trapSTAMacAddress
+       }
+       DESCRIPTION
+       "Indicates the reception of an association request packet
+       and     the sender STAtion's successful association with the
+       Access Point."
+       ::= 3
+       
+trapDisassociation TRAP-TYPE
+       ENTERPRISE atmel
+       VARIABLES {
+       trapSTAMacAddress
+       }
+       DESCRIPTION
+       "This trap message is sent when a dissasociation notification
+       packet is received from a STAtion."
+       ::= 4
+
+trapAssociationExpire TRAP-TYPE
+       ENTERPRISE atmel
+       VARIABLES {
+       trapSTAMacAddress
+       }
+       DESCRIPTION
+       "This trap message is sent when the association's maximum time interval expires for
+       an associated STAtion."
+       ::= 5
+
+trapReset TRAP-TYPE
+       ENTERPRISE atmel
+       VARIABLES {
+       sysReset
+       }
+       DESCRIPTION
+       "This trap message is sent when Access Point Resets."
+       ::= 6
+
+trapSettingPingIPAddress TRAP-TYPE
+       ENTERPRISE atmel
+       VARIABLES {
+       operIPAddress
+       }
+       DESCRIPTION
+       "This trap message is sent when the Access Point IP address
+       is set with the transmition of a ping message."
+       ::= 7
+
+trapStartUp TRAP-TYPE
+       ENTERPRISE atmel
+       VARIABLES {
+       }
+       DESCRIPTION
+       "This trap message is sent when Access Point Starts Up."
+       ::= 8
+
+trapFailedToEraseFlash TRAP-TYPE
+       ENTERPRISE atmel
+       VARIABLES {
+       }
+       DESCRIPTION
+       "This trap message is sent when Access Point Failed To Erase Flash."
+       ::= 9
+
+trapAPClientScanning TRAP-TYPE
+       ENTERPRISE atmel
+       VARIABLES {
+       }
+       DESCRIPTION
+       "Access Point Client is scanning..."
+       ::= 10
+
+trapAPClientAuthenticating TRAP-TYPE
+       ENTERPRISE atmel
+       VARIABLES {
+       }
+       DESCRIPTION
+       "Access Point Client is authenticating with the AP."
+       ::= 11
+
+trapAPClientAssociating TRAP-TYPE
+       ENTERPRISE atmel
+       VARIABLES {
+       }
+       DESCRIPTION
+       "Access Point Client is associating with the AP."
+       ::= 12
+
+trapAPClientReAssociating TRAP-TYPE
+       ENTERPRISE atmel
+       VARIABLES {
+       }
+       DESCRIPTION
+       "Access Point Client is reassociating with the AP."
+       ::= 13
+
+trapAPClientAuthenticationFailed TRAP-TYPE
+       ENTERPRISE atmel
+       VARIABLES {
+       }
+       DESCRIPTION
+       "Access Point Client has failed authenticating with the AP."
+       ::= 14
+
+trapAPClientAssociationFailed TRAP-TYPE
+       ENTERPRISE atmel
+       VARIABLES {
+       }
+       DESCRIPTION
+       "Access Point Client has failed associating with the AP."
+       ::= 15
+
+trapAPClientConnected TRAP-TYPE
+       ENTERPRISE atmel
+       VARIABLES {
+       }
+       DESCRIPTION
+       "Access Point Client has been connected with the AP."
+       ::= 16
+
+trapAPClientDisconnected TRAP-TYPE
+       ENTERPRISE atmel
+       VARIABLES {
+       }
+       DESCRIPTION
+       "Access Point Client has been disconnected from the AP."
+       ::= 17                         
+       
+trapAPClientScanFailed TRAP-TYPE
+       ENTERPRISE atmel
+       VARIABLES {
+       }
+       DESCRIPTION
+       "Access Point Client has failed scanning!"
+       ::= 18                         
+                        
+trapAPClientJoinFailed TRAP-TYPE
+       ENTERPRISE atmel
+       VARIABLES {
+       }
+       DESCRIPTION
+       "Access Point Client has failed joining!"
+       ::= 19       
+
+trapAPClientJoining    TRAP-TYPE
+       ENTERPRISE atmel
+       VARIABLES {
+       }
+       DESCRIPTION
+       "Access Point Client is in join state."
+       ::= 20       
+
+END
\ No newline at end of file
diff --git a/Documentation/mibs-atmel/mib-410-none-dlink/AT76C510.mib b/Documentation/mibs-atmel/mib-410-none-dlink/AT76C510.mib
new file mode 100644 (file)
index 0000000..bf3b8d9
--- /dev/null
@@ -0,0 +1,907 @@
+-- Title:      ATMEL  Private MIB                                          
+
+ATMEL-MIB DEFINITIONS ::= BEGIN
+
+--IMPORTS
+--     enterprises,Counter
+--FROM RFC1155-SMI
+--     DisplayString
+--FROM RFC1213-MIB;
+--     TRAP-TYPE
+--FROM RFC-1215;
+
+
+--MacAddress ::= IMPLICIT OCTET STRING (SIZE(6))
+DisplayString ::= OCTET STRING
+
+internet      OBJECT IDENTIFIER ::= { iso org(3) dod(6) 1 }
+directory     OBJECT IDENTIFIER ::= { internet 1 }
+mgmt          OBJECT IDENTIFIER ::= { internet 2 }
+experimental  OBJECT IDENTIFIER ::= { internet 3 }
+private       OBJECT IDENTIFIER ::= { internet 4 }
+enterprises   OBJECT IDENTIFIER ::= { private 1 }
+
+atmel       OBJECT IDENTIFIER ::= { enterprises 410 }
+atmelmib    OBJECT IDENTIFIER ::= { atmel 1}
+atmelSys       OBJECT IDENTIFIER ::= {atmelmib 1}
+wireless       OBJECT IDENTIFIER ::= {atmelmib 2}
+traps  OBJECT IDENTIFIER ::= {atmelmib 3 }
+
+
+
+--*************************** System***************************
+--****************************************************************
+
+
+
+sysCtrlGRP OBJECT IDENTIFIER ::= {atmelSys 1}
+
+sysDescr OBJECT-TYPE
+    SYNTAX  DisplayString (SIZE (0..255))
+    ACCESS  read-only
+    STATUS  mandatory
+       DESCRIPTION
+         "A textual description of the entity.  This value
+          should include the full name and version
+          identification of the system's hardware type,
+          software operating-system, and networking
+          software.  It is mandatory that this only contain
+          printable ASCII characters."
+       ::= { sysCtrlGRP 1 } 
+
+
+sysReset OBJECT-TYPE
+       SYNTAX INTEGER {enable(1),disable(2)}
+       ACCESS  read-write
+       STATUS  mandatory
+       DESCRIPTION       
+       "By setting this attribute enable(1), a reset command to 
+       the system is issued." 
+       ::= { sysCtrlGRP 2 } 
+
+sysTrapSwitch OBJECT-TYPE
+       SYNTAX INTEGER {enable(1),disable(2)}
+       ACCESS read-write
+       STATUS mandatory
+       DESCRIPTION
+       "This attribute enables the transmission of SNMP.V1 TRAPs."
+       ::= {sysCtrlGRP 3}
+
+sysLoadDefaults OBJECT-TYPE
+       SYNTAX INTEGER { enable(1), disable(2) }
+       ACCESS  read-write
+       STATUS  mandatory
+       DESCRIPTION       
+       "Setting this attribute to enable(1), will cause the system to load
+       the factory default values of all the operational parameters." 
+       ::= { sysCtrlGRP 4 }
+
+sysDeviceInfo  OBJECT-TYPE
+                       SYNTAX OCTET STRING (SIZE (92))
+                       ACCESS read-only
+                       STATUS mandatory
+                       DESCRIPTION      
+                       "Hardware device configuration struct."
+                       ::= {sysCtrlGRP 5 }
+
+sysUpload OBJECT-TYPE
+       SYNTAX INTEGER {enable(1),disable(2)}
+       ACCESS  read-write
+       STATUS  mandatory
+       DESCRIPTION       
+       "By setting this attribute enable(1), a Upload configuration command to 
+       the system is issued." 
+       ::= { sysCtrlGRP 6 } 
+
+
+
+
+operBridgingLevel OBJECT IDENTIFIER ::= {atmelSys 2}
+
+operIPAddress OBJECT-TYPE
+               SYNTAX IpAddress
+               ACCESS read-write
+               STATUS mandatory
+               DESCRIPTION      
+               "The IP address of this device used over its Ethernet
+               or Wireless LAN port."
+               ::= { operBridgingLevel 1 }
+
+operIPMask OBJECT-TYPE
+           SYNTAX  IpAddress
+           ACCESS  read-write
+           STATUS  mandatory
+           DESCRIPTION
+           "The IP Network mask used by the IP entity when accessing
+           devices through any of its LAN Ports (Ethernet or WLAN)."
+           ::= { operBridgingLevel 2}
+
+operEthernetAddress OBJECT-TYPE
+           SYNTAX  OCTET STRING (SIZE (6))
+           ACCESS  read-write
+           STATUS  mandatory
+           DESCRIPTION
+           "The MAC Address of the Ethernet interface."
+           ::= { operBridgingLevel 3}
+
+
+operGateway OBJECT-TYPE
+               SYNTAX IpAddress
+               ACCESS read-write
+               STATUS mandatory
+               DESCRIPTION      
+               "."
+               ::= { operBridgingLevel 4 }
+
+operDHCP OBJECT-TYPE
+               SYNTAX  INTEGER {enable(1),disable(2)}
+               ACCESS read-write
+               STATUS mandatory
+               DESCRIPTION      
+               "When setting this attribute to ENABLE, the system will
+               enable DHCP protocol."
+               ::= { operBridgingLevel 5 }
+
+operPrimaryPort OBJECT-TYPE
+               SYNTAX  INTEGER {Ethernet(1),Wireless(2)}
+               ACCESS read-write
+               STATUS mandatory
+               DESCRIPTION      
+               "This attribute indicates the primaty port."
+               ::= { operBridgingLevel 6 }
+
+
+
+
+
+
+operFiltering OBJECT IDENTIFIER ::= {atmelSys 3}
+
+operIPFilter OBJECT-TYPE
+               SYNTAX  INTEGER {enable(1), disable(2)}
+               ACCESS read-write
+               STATUS mandatory
+               DESCRIPTION      
+               "When setting this attribute to ENABLE, the system will
+               filter out all non IP-traffic."
+               ::= { operFiltering 1 }
+
+
+
+
+
+operBridgeOperationalMode OBJECT IDENTIFIER ::= {atmelSys 4}
+
+
+bridgeOperationalMode OBJECT-TYPE
+               SYNTAX  INTEGER {WBPoint2Multipoint(1), AP(2), APclient(3),  WBPoint2Point(3)}
+               ACCESS read-write
+               STATUS mandatory
+               DESCRIPTION      
+               "The Operational Mode of Bridge. Access Point, Access Point client, Wireless Bridge Point to Point, Wireless Bridge Point to MultiPoint."
+               ::= { operBridgeOperationalMode 1 }
+
+bridgeRemoteBridgeBSSID OBJECT-TYPE
+               SYNTAX  OCTET STRING (SIZE (6))
+               ACCESS read-write
+               STATUS mandatory
+               DESCRIPTION      
+               "The Preferred BSSID if the device is at Access Point client mode
+               or the remote Mac if the device is at Wireless Bridge Point to Point mode."
+               ::= { operBridgeOperationalMode 2 }
+
+
+
+
+
+dot1dStatic OBJECT IDENTIFIER ::= {atmelSys 5}
+
+
+StaticMacFilterNum OBJECT-TYPE
+      SYNTAX  INTEGER 
+      ACCESS  read-write
+      STATUS  mandatory
+      DESCRIPTION
+      "This parameter's value indicates the number of the currently
+      static MAC filters."
+      ::= { dot1dStatic 1 }
+
+
+          dot1dStaticTable OBJECT-TYPE
+              SYNTAX  SEQUENCE OF Dot1dStaticEntry
+              ACCESS  not-accessible
+              STATUS  mandatory
+              DESCRIPTION
+                      "A table containing filtering information
+                      configured into the bridge by (local or network)
+                      management specifying the set of ports to which
+                      frames received from specific ports and containing
+                      specific destination addresses are allowed to be
+                      forwarded.  The value of zero in this table as the
+                      port number from which frames with a specific
+                      destination address are received, is used to
+                      specify all ports for which there is no specific
+                      entry in this table for that particular
+                      destination address.  Entries are valid for
+                      unicast and for group/broadcast addresses."
+              REFERENCE
+                      "IEEE 802.1D-1990: Section 6.7.2"
+              ::= { dot1dStatic 2 }
+
+          dot1dStaticEntry OBJECT-TYPE
+              SYNTAX  Dot1dStaticEntry
+              ACCESS  not-accessible
+              STATUS  mandatory
+              DESCRIPTION
+                      "Filtering information configured into the bridge
+                      by (local or network) management specifying the
+                      set of ports to which frames received from a
+                      specific port and containing a specific
+                      destination address are allowed to be forwarded."
+              REFERENCE
+                      "IEEE 802.1D-1990: Section 6.7.2"
+              INDEX   { dot1dStaticAddress}--, dot1dStaticReceivePort }
+              ::= { dot1dStaticTable 1 }
+
+          Dot1dStaticEntry ::=
+              SEQUENCE {
+                  dot1dStaticAddress
+                      OCTET STRING (SIZE (6))
+--                  dot1dStaticReceivePort
+--                     INTEGER,
+--                  dot1dStaticAllowedToGoTo
+--                      INTEGER,
+--                  dot1dStaticStatus
+--                      INTEGER
+              }
+
+          dot1dStaticAddress OBJECT-TYPE
+              SYNTAX  OCTET STRING (SIZE (6))
+              ACCESS  read-write
+              STATUS  mandatory
+              DESCRIPTION
+                      "The destination MAC address in a frame to which
+                      this entry's filtering information applies.  This
+                      object can take the value of a unicast address, a
+                      group address or the broadcast address."
+              REFERENCE
+                      "IEEE 802.1D-1990: Section 3.9.1, 3.9.2"
+              ::= { dot1dStaticEntry 1 }
+
+--          dot1dStaticReceivePort OBJECT-TYPE
+--              SYNTAX  INTEGER
+--              ACCESS  read-write
+--              STATUS  mandatory
+--              DESCRIPTION
+--                      "Either the value '0', or the port number of the
+--                      port from which a frame must be received in order
+--                      for this entry's filtering information to apply.
+--                      A value of zero indicates that this entry applies
+--                      on all ports of the bridge for which there is no
+--                      other applicable entry."
+--              ::= { dot1dStaticEntry 2 }
+
+--          dot1dStaticAllowedToGoTo OBJECT-TYPE
+--              SYNTAX  INTEGER
+--              ACCESS  read-write
+--              STATUS  mandatory
+--              DESCRIPTION
+--                      "The set of ports to which frames received from a
+--                      specific port and destined for a specific MAC
+--                      address, are allowed to be forwarded.  Each octet
+--                      within the value of this object specifies a set of
+--                      eight ports, with the first octet specifying ports
+--                      1 through 8, the second octet specifying ports 9
+--                      through 16, etc.  Within each octet, the most
+--                      significant bit represents the lowest numbered
+--                      port, and the least significant bit represents the
+--                      highest numbered port.  Thus, each port of the
+--                      bridge is represented by a single bit within the
+--                      value of this object.  If that bit has a value of
+--                      '1' then that port is included in the set of
+--                      ports; the port is not included if its bit has a
+--                      value of '0'.  (Note that the setting of the bit
+--                      corresponding to the port from which a frame is
+--                      received is irrelevant.)  The default value of
+--                      this object is a string of ones of appropriate
+--                      length."
+--              ::= { dot1dStaticEntry 3 }
+--
+--          dot1dStaticStatus OBJECT-TYPE
+--              SYNTAX  INTEGER {
+--                          other(1),
+--                          invalid(2),
+--                          permanent(3),
+--                          deleteOnReset(4),
+--                          deleteOnTimeout(5)
+--                      }
+--              ACCESS  read-write
+--              STATUS  mandatory
+--              DESCRIPTION
+--                      "This object indicates the status of this entry.
+--                      The default value is permanent(3).
+--                           other(1) - this entry is currently in use but
+--                                the conditions under which it will
+--                                remain so are different from each of the
+--                                following values.
+--                           invalid(2) - writing this value to the object
+--                                removes the corresponding entry.
+--                           permanent(3) - this entry is currently in use
+--                                and will remain so after the next reset
+--                                of the bridge.
+--                           deleteOnReset(4) - this entry is currently in
+--                                use and will remain so until the next
+--                                reset of the bridge.
+--                           deleteOnTimeout(5) - this entry is currently
+--                                in use and will remain so until it is
+--                                aged out."
+--              ::= { dot1dStaticEntry 4 }
+
+
+
+
+
+ProtocolFilterGRP OBJECT IDENTIFIER ::= {atmelSys 6}
+
+ProtocolFilterNum OBJECT-TYPE
+      SYNTAX  INTEGER 
+      ACCESS  read-write
+      STATUS  mandatory
+      DESCRIPTION
+      "This parameter's value indicates the number of the currently
+      protocol filters."
+      ::= { ProtocolFilterGRP 1 }
+
+
+
+
+          ProtocolFilterTable OBJECT-TYPE
+              SYNTAX  SEQUENCE OF ProtocolFilterEntry
+              ACCESS  not-accessible
+              STATUS  mandatory
+              DESCRIPTION
+                      "A table containing filtering information
+                      configured into the bridge by (local or network)
+                      management specifying the set of protocol filter."
+              ::= { ProtocolFilterGRP 2 }
+
+          protocolFilterEntry OBJECT-TYPE
+              SYNTAX  ProtocolFilterEntry
+              ACCESS  not-accessible
+              STATUS  mandatory
+              DESCRIPTION
+                      "Filtering information configured into the bridge
+                      by (local or network) management specifying the
+                      set of protocol filter."
+              INDEX   { ProtocolFilterCode }
+              ::= { ProtocolFilterTable 1 }
+
+          ProtocolFilterEntry ::=
+              SEQUENCE {
+                  ProtocolFilterCode
+                      OCTET STRING (SIZE (2)),
+                  ProtocolFilterDescription
+                      DisplayString (SIZE (0..255)),
+                  ProtocolFilterActivity
+                      INTEGER
+              }
+
+          ProtocolFilterCode OBJECT-TYPE
+              SYNTAX  OCTET STRING (SIZE (2))
+              ACCESS  read-write
+              STATUS  mandatory
+              DESCRIPTION
+                      "The protocol code configured into the bridge
+                      by (local or network) management specifying the
+                      set of protocol filter."
+              ::= { protocolFilterEntry 1 }
+
+          ProtocolFilterDescription OBJECT-TYPE
+              SYNTAX  DisplayString (SIZE (0..255))
+              ACCESS  read-write
+              STATUS  mandatory
+              DESCRIPTION
+                      "A textual description of the protocol."
+              ::= { protocolFilterEntry 2 }
+
+          ProtocolFilterActivity OBJECT-TYPE
+              SYNTAX  INTEGER {enable(1),disable(2)}
+              ACCESS  read-write
+              STATUS  mandatory
+              DESCRIPTION
+                      "This object indicates the status of this filter."
+              ::= { protocolFilterEntry 3 }
+
+
+
+
+
+EthStatisticsGRP OBJECT IDENTIFIER ::= {atmelSys 7}
+
+EthRxStatistics OBJECT-TYPE
+               SYNTAX OCTET STRING (SIZE (64))
+               ACCESS read-only
+               STATUS mandatory
+               DESCRIPTION      
+               "Ethernet Rx Statistics."
+               ::= {EthStatisticsGRP 1 }
+
+EthTxStatistics OBJECT-TYPE
+               SYNTAX OCTET STRING (SIZE (56))
+               ACCESS read-only
+               STATUS mandatory
+               DESCRIPTION      
+               "Ethernet Tx Statistics."
+               ::= {EthStatisticsGRP 2 }
+
+
+
+
+
+
+
+TestModeSettingsGRP OBJECT IDENTIFIER ::= {atmelSys 8}
+
+TestModeOnOff  OBJECT-TYPE
+                               SYNTAX INTEGER {enable(1),disable(2)}
+                               ACCESS read-write
+                               STATUS mandatory
+                               DESCRIPTION      
+                               "."
+                               ::= { TestModeSettingsGRP 1 }
+
+
+TestModeCommandStruct  OBJECT-TYPE
+                               SYNTAX OCTET STRING (SIZE (8))
+                               ACCESS read-write
+                               STATUS mandatory
+                               DESCRIPTION      
+                               "."
+                               ::= {TestModeSettingsGRP 2 }
+
+TestModeRadioConfiguration     OBJECT-TYPE
+                                       SYNTAX OCTET STRING (SIZE (14))
+                                       ACCESS read-write
+                                       STATUS mandatory
+                                       DESCRIPTION      
+                                       "Configuration of radio derive from tests."
+                                       ::= {TestModeSettingsGRP 8 }
+
+TestModeStatistics             OBJECT-TYPE
+                                       SYNTAX OCTET STRING (SIZE (8))
+                                       ACCESS read-only
+                                       STATUS mandatory
+                                       DESCRIPTION      
+                                       "Statistics derive from tests."
+                                       ::= {TestModeSettingsGRP 9 }
+
+
+
+
+
+
+AuthorizedSettingsGRP OBJECT IDENTIFIER ::= {atmelSys 9}
+
+AuthorizedUserPass     OBJECT-TYPE
+                               SYNTAX OCTET STRING (SIZE (16))
+                               ACCESS read-write
+                               STATUS mandatory
+                               DESCRIPTION      
+                               "."
+                               ::= {AuthorizedSettingsGRP 1 }
+
+
+AuthorizedAdminPass    OBJECT-TYPE
+                               SYNTAX OCTET STRING (SIZE (16))
+                               ACCESS read-write
+                               STATUS mandatory
+                               DESCRIPTION      
+                               "."
+                               ::= {AuthorizedSettingsGRP 2 }
+
+
+AuthorizedManufactPass         OBJECT-TYPE
+                               SYNTAX OCTET STRING (SIZE (16))
+                               ACCESS read-write
+                               STATUS mandatory
+                               DESCRIPTION      
+                               "."
+                               ::= {AuthorizedSettingsGRP 3 }
+
+
+--*************************** wireless ***************************
+--****************************************************************
+
+
+
+OperationalSettingsGRP OBJECT IDENTIFIER ::= {wireless 1}
+
+
+
+
+operChannelID  OBJECT-TYPE
+       SYNTAX  INTEGER  {
+                       channel1(1),
+                       channel2(2),
+                       channel3(3),
+                       channel4(4),
+                       channel5(5),
+                       channel6(6),
+                       channel7(7),
+                       channel8(8),
+                       channel9(9),
+                       channel10(10),
+                       channel11(11),
+                       channel12(12),
+                       channel13(13),
+                       channel14(14)
+               }
+       ACCESS  read-write
+       STATUS  mandatory
+       DESCRIPTION
+               "The operating frequency channel. Valid numbers
+               are     as defind in ISO/IEC 8802-11:1999, 15.4.6.2."
+       ::= { OperationalSettingsGRP 1 }
+
+
+operESSIDLength OBJECT-TYPE
+     SYNTAX  INTEGER
+     ACCESS  read-write    
+     STATUS  mandatory
+     DESCRIPTION
+     "The ESSID Length"
+     ::= {OperationalSettingsGRP 2 }     
+
+operESSID OBJECT-TYPE
+     SYNTAX  OCTET STRING (SIZE (32))
+     ACCESS  read-write    
+     STATUS  mandatory
+     DESCRIPTION
+     "The network name. The size of the network name
+     should not be more than 32 characters long."
+     ::= {OperationalSettingsGRP 3 }     
+
+
+operRTSThreshold OBJECT-TYPE
+               SYNTAX  INTEGER  
+               ACCESS read-write
+               STATUS mandatory
+               DESCRIPTION      
+               "This attribute indicates the number of bytes in an 
+               MPDU (frame), above which an RTS/CTS handshake will be
+               performed. Setting this attribute to be larger than the
+               maximum frame size, will prevent the RTS/CTS handshake 
+               for frames trassmitted by this station."
+       ::= {OperationalSettingsGRP 4 }
+
+
+operFragmentationThreshold OBJECT-TYPE
+               SYNTAX  INTEGER  
+               ACCESS read-write
+               STATUS mandatory
+               DESCRIPTION      
+               "This attribute indicates the number of bytes in an 
+               MPDU (frame), above which MPDU fragmentation will be
+               performed."
+       ::= {OperationalSettingsGRP 5 }
+       
+
+operPreambleType OBJECT-TYPE
+      SYNTAX  INTEGER {
+                       ShortPreamble(1),
+                       LongPreamble(2)
+               }
+      ACCESS  read-write
+      STATUS  mandatory
+      DESCRIPTION
+      "This parameter's value indicates the number of the currently
+      associated STAtions. Associated STAtions should not be more
+      than 2007."
+             ::= {OperationalSettingsGRP 6 }
+
+
+operAuthenticationType OBJECT-TYPE
+               SYNTAX  INTEGER {
+       openSystem(1),
+       sharedKey(2),
+       BothType(3)
+       }
+               ACCESS read-write
+               STATUS mandatory
+               DESCRIPTION      
+               "This attribute indicates the authentication algorithm
+               used during the authentication sequence.
+               The value of this attribute is one of the following:
+               1 - Open System,
+               2 - Shared Key
+               3 - Both Type "
+               ::= {OperationalSettingsGRP 7 }
+
+
+operBasicRates OBJECT-TYPE
+               SYNTAX OCTET STRING (SIZE (4))
+               ACCESS read-write
+               STATUS mandatory
+               DESCRIPTION      
+               "This attribute indicates the basic rates of AP-Bridge."
+               ::= { OperationalSettingsGRP 8 }
+
+
+operAutoRateFallBack OBJECT-TYPE
+               SYNTAX INTEGER {enable(1),disable(2)}
+               ACCESS read-write
+               STATUS mandatory
+               DESCRIPTION      
+               "This attribute indicates if Auto Rate Fall Back is enable or disable."
+               ::= {OperationalSettingsGRP 9 }
+
+operAccessPointName OBJECT-TYPE
+     SYNTAX  OCTET STRING (SIZE (32))
+     ACCESS  read-write    
+     STATUS  mandatory
+     DESCRIPTION
+     "The AP name."
+     ::= {OperationalSettingsGRP 10 }     
+
+
+
+
+
+privacyGRP OBJECT IDENTIFIER ::= { wireless 2 }
+
+
+
+defaultWEPKey1 OBJECT-TYPE
+    SYNTAX OCTET STRING (SIZE (13))
+    ACCESS  read-write
+    STATUS  mandatory
+    DESCRIPTION    
+    "A WEP default secret key value."
+    ::= { privacyGRP 1 }    
+
+defaultWEPKey2 OBJECT-TYPE
+    SYNTAX OCTET STRING (SIZE (13))
+    ACCESS  read-write
+    STATUS  mandatory
+    DESCRIPTION    
+    "A WEP default secret key value."
+    ::= { privacyGRP 2 }    
+
+defaultWEPKey3 OBJECT-TYPE
+    SYNTAX OCTET STRING (SIZE (13))
+    ACCESS  read-write
+    STATUS  mandatory
+    DESCRIPTION    
+    "A WEP default secret key value."
+    ::= { privacyGRP 3 }    
+
+defaultWEPKey4 OBJECT-TYPE
+    SYNTAX OCTET STRING (SIZE (13))
+    ACCESS  read-write
+    STATUS  mandatory
+    DESCRIPTION    
+    "A WEP default secret key value."
+    ::= { privacyGRP 4 }    
+
+
+
+privacyWEPEnable OBJECT-TYPE
+               SYNTAX INTEGER {enable64(1),disable(2),enable128(3) }
+               ACCESS read-write
+               STATUS mandatory
+               DESCRIPTION      
+               "This attribute, when true, indicates that the 802.11
+               standard encryption mechanism (WEP) is implemented."
+               ::= {privacyGRP 5}
+
+
+privacyDefaultWEPKeyID OBJECT-TYPE
+               SYNTAX INTEGER   (1..4)
+               ACCESS read-write
+               STATUS mandatory
+               DESCRIPTION
+               "This attribute shall indicate the use of the first, second,
+               third or fourth DefaultWEPKey when set to values of one, two,
+               three or four."
+               ::= {privacyGRP 6}
+
+
+
+
+WLstatisticsGRP OBJECT IDENTIFIER ::= {wireless 3}
+
+wirelessStatistics OBJECT-TYPE
+               SYNTAX OCTET STRING (SIZE (88))
+               ACCESS read-only
+               STATUS mandatory
+               DESCRIPTION      
+               "Wireless Statistics. 22 elements(ULONG)."
+               ::= {WLstatisticsGRP 1 }
+
+
+
+WLSiteSurveyGRP OBJECT IDENTIFIER ::= {wireless 4}
+
+ChannelStatus OBJECT-TYPE
+               SYNTAX OCTET STRING (SIZE (14))
+               ACCESS read-only
+               STATUS mandatory
+               DESCRIPTION      
+               "."
+               ::= {WLSiteSurveyGRP 1}
+
+
+
+AssociatedStationsGRP OBJECT IDENTIFIER ::= {wireless 5}
+
+AssociatedSTAsNum OBJECT-TYPE
+      SYNTAX  INTEGER (1..2007)
+      ACCESS  read-only
+      STATUS  mandatory
+      DESCRIPTION
+      "This parameter's value indicates the number of the currently
+      associated STAtions. Associated STAtions should not be more
+      than 2007."
+      ::= { AssociatedStationsGRP 1 }
+
+               
+AssociatedSTAsInfo     OBJECT-TYPE
+           SYNTAX      OCTET STRING (SIZE (24))
+           ACCESS  read-only
+           STATUS  mandatory
+           DESCRIPTION
+           "The associated STAtion's Information."
+           ::= { AssociatedStationsGRP 2 }
+               
+
+
+AuthorizedMacAddressesGRP OBJECT IDENTIFIER ::= {wireless 6}
+
+AuthorizationMacEnable OBJECT-TYPE
+               SYNTAX INTEGER {enable(1),disable(2)}
+               ACCESS read-write
+               STATUS mandatory
+               DESCRIPTION      
+               "."
+               ::= {AuthorizedMacAddressesGRP 1}
+
+
+
+AuthorizedMac  OBJECT-TYPE
+           SYNTAX      OCTET STRING (SIZE (64))
+           ACCESS  read-write
+           STATUS  mandatory
+           DESCRIPTION
+           "The Authorized Wireless Mac Addresses."
+           ::= { AuthorizedMacAddressesGRP 2 }
+
+
+
+
+WLKnownAPGRP OBJECT IDENTIFIER ::= {wireless 7}
+
+wirelessKnownAPsNum OBJECT-TYPE
+               SYNTAX INTEGER (1..8)
+               ACCESS read-only
+               STATUS mandatory
+               DESCRIPTION      
+               "."
+               ::= {WLKnownAPGRP 1 }
+
+
+
+wirelessKnownAPs OBJECT-TYPE
+               SYNTAX OCTET STRING (SIZE (32))
+               ACCESS read-only
+               STATUS mandatory
+               DESCRIPTION      
+               "."
+               ::= {WLKnownAPGRP 2 }
+
+
+
+--*************************** Traps ***************************
+--*************************************************************
+
+trapSTAMacAddress OBJECT-TYPE
+       SYNTAX OCTET STRING (SIZE (6))
+       ACCESS read-only
+       STATUS mandatory
+       DESCRIPTION      
+       "The MAC address of a station device"
+
+       ::= {traps 1}
+
+
+trapReassociation TRAP-TYPE
+       ENTERPRISE atmel
+       VARIABLES {
+       trapSTAMacAddress
+       }
+       DESCRIPTION
+       "This trap message is sent when a STAtion's reassosiation
+       request is received."
+       ::= 1
+
+trapRoamOut TRAP-TYPE
+       ENTERPRISE atmel
+       VARIABLES {
+       trapSTAMacAddress
+       }
+       DESCRIPTION
+       "This trap message is used to indicate tha a STAtion has
+       roamed out of the Wireless bridge's coverage area."
+       ::= 2
+
+trapAssociation TRAP-TYPE
+       ENTERPRISE atmel
+       VARIABLES {
+       trapSTAMacAddress
+       }
+       DESCRIPTION
+       "Indicates the reception of an association request packet
+       and     the sender STAtion's successful association with the
+       Wireless Bridge."
+       ::= 3
+       
+trapDisassociation TRAP-TYPE
+       ENTERPRISE atmel
+       VARIABLES {
+       trapSTAMacAddress
+       }
+       DESCRIPTION
+       "This trap message is sent when a dissasociation notification
+       packet is received from a STAtion."
+       ::= 4
+
+trapAssociationExpire TRAP-TYPE
+       ENTERPRISE atmel
+       VARIABLES {
+       trapSTAMacAddress
+       }
+       DESCRIPTION
+       "When the association's maximum time interval expires for
+       an associated STAtion this trap message is sent."
+       ::= 5
+
+trapReset TRAP-TYPE
+       ENTERPRISE atmel
+       VARIABLES {
+       sysReset
+       }
+       DESCRIPTION
+       "This trap message is sent when Bridge Resets."
+       ::= 6
+
+trapSettingPingIPAddress TRAP-TYPE
+       ENTERPRISE atmel
+       VARIABLES {
+       operIPAddress
+       }
+       DESCRIPTION
+       "This trap message is sent when the ATMEL Bridge IP address
+       is set with the transmition of a ping message."
+       ::= 7
+
+trapStartUp TRAP-TYPE
+       ENTERPRISE atmel
+-- apparently the 4.2.1 ucd-snmp tools do not liek
+-- empty variable blocks - msp 9jul2001
+--     VARIABLES {
+--     }
+       DESCRIPTION
+       "This trap message is sent when Bridge Starts Up."
+       ::= 8
+
+trapFailedToEraseFlash TRAP-TYPE
+       ENTERPRISE atmel
+-- apparently the 4.2.1 ucd-snmp tools do not liek
+-- empty variable blocks - msp 9jul2001
+       --VARIABLES {
+       --}
+       DESCRIPTION
+       "This trap message is sent when Bridge Failed To Erase Flash."
+       ::= 9
+
+
+END
diff --git a/Documentation/mibs-atmel/mib-410-smartbridges/AT76C510.mib b/Documentation/mibs-atmel/mib-410-smartbridges/AT76C510.mib
new file mode 100644 (file)
index 0000000..2898101
--- /dev/null
@@ -0,0 +1,1255 @@
+-- Title:      ATMEL  Private MIB                                          \r
+\r
+\r
+--Firmaware Version 1.4 14/5/2001\r
+\r
+\r
+ATMEL-MIB DEFINITIONS ::= BEGIN\r
+\r
+--IMPORTS\r
+--     enterprises,Counter\r
+--FROM RFC1155-SMI\r
+--     DisplayString\r
+--FROM RFC1213-MIB;\r
+--     TRAP-TYPE\r
+--FROM RFC-1215;\r
+\r
+\r
+--MacAddress ::= IMPLICIT OCTET STRING (SIZE(6))\r
+DisplayString ::= OCTET STRING\r
+\r
+internet      OBJECT IDENTIFIER ::= { iso org(3) dod(6) 1 }\r
+directory     OBJECT IDENTIFIER ::= { internet 1 }\r
+mgmt          OBJECT IDENTIFIER ::= { internet 2 }\r
+experimental  OBJECT IDENTIFIER ::= { internet 3 }\r
+private       OBJECT IDENTIFIER ::= { internet 4 }\r
+enterprises   OBJECT IDENTIFIER ::= { private 1 }\r
+\r
+atmel       OBJECT IDENTIFIER ::= { enterprises 410 }\r
+atmelmib    OBJECT IDENTIFIER ::= { atmel 1}\r
+atmelSys       OBJECT IDENTIFIER ::= {atmelmib 1}\r
+wireless       OBJECT IDENTIFIER ::= {atmelmib 2}\r
+traps  OBJECT IDENTIFIER ::= {atmelmib 3 }\r
+\r
+\r
+\r
+--*************************** System***************************\r
+--****************************************************************\r
+\r
+\r
+\r
+sysCtrlGRP OBJECT IDENTIFIER ::= {atmelSys 1}\r
+\r
+sysDescr OBJECT-TYPE\r
+    SYNTAX  DisplayString (SIZE (0..255))\r
+    ACCESS  read-only\r
+    STATUS  mandatory\r
+       DESCRIPTION\r
+         "A textual description of the entity.  This value\r
+          should include the full name and version\r
+          identification of the system's hardware type,\r
+          software operating-system, and networking\r
+          software.  It is mandatory that this only contain\r
+          printable ASCII characters."\r
+       ::= { sysCtrlGRP 1 } \r
+\r
+\r
+sysReset OBJECT-TYPE\r
+       SYNTAX INTEGER {enable(1)}\r
+       ACCESS  read-write\r
+       STATUS  mandatory\r
+       DESCRIPTION       \r
+       "By setting this attribute enable(1), a reset command to \r
+       the system is issued." \r
+       ::= { sysCtrlGRP 2 } \r
+\r
+sysTrapSwitch OBJECT-TYPE\r
+       SYNTAX INTEGER {enable(1),disable(2)}\r
+       ACCESS read-write\r
+       STATUS mandatory\r
+       DESCRIPTION\r
+       "This attribute enables the transmission of SNMP.V1 TRAPs."\r
+       ::= {sysCtrlGRP 3}\r
+\r
+sysLoadDefaults OBJECT-TYPE\r
+       SYNTAX INTEGER { enable(1)}\r
+       ACCESS  read-write\r
+       STATUS  mandatory\r
+       DESCRIPTION       \r
+       "Setting this attribute to enable(1), will cause the system to load\r
+       the factory default values of all the operational parameters." \r
+       ::= { sysCtrlGRP 4 }\r
+\r
+sysDeviceInfo  OBJECT-TYPE\r
+                       SYNTAX OCTET STRING (SIZE (92))\r
+                       ACCESS read-write\r
+                       STATUS mandatory\r
+                       DESCRIPTION      \r
+                       "Hardware device configuration struct.\r
+                                HARD_CONFIGURATION_STUCT{\r
+                                       unsigned long  StructVersion;\r
+                                       unsigned char   MacAddress[6];\r
+                                       unsigned short  Reserved;\r
+                                       unsigned long  RegulationDomain;\r
+                                       unsigned long  ProductType; \r
+                                       unsigned char   OEMName[32];\r
+                                       unsigned long  OEMID;\r
+                                       unsigned char   ProductName[32];\r
+                                       unsigned long  HardwareRevision; \r
+                               } "\r
+\r
+\r
+                       ::= {sysCtrlGRP 5 }\r
+\r
+sysUpload OBJECT-TYPE\r
+       SYNTAX INTEGER {enable(1)}\r
+       ACCESS  read-write\r
+       STATUS  mandatory\r
+       DESCRIPTION       \r
+       "By setting this attribute enable(1), a Upload configuration command to \r
+       the system is issued." \r
+       ::= { sysCtrlGRP 6 } \r
+\r
+\r
+\r
+-----------------------------BridgingLevel-----------------------------\r
+\r
+operBridgingLevel OBJECT IDENTIFIER ::= {atmelSys 2}\r
+\r
+operIPAddress OBJECT-TYPE\r
+               SYNTAX IpAddress\r
+               ACCESS read-write\r
+               STATUS mandatory\r
+               DESCRIPTION      \r
+               "The IP address of this device used over its Ethernet\r
+               or Wireless LAN port."\r
+               ::= { operBridgingLevel 1 }\r
+\r
+operIPMask OBJECT-TYPE\r
+           SYNTAX  IpAddress\r
+           ACCESS  read-write\r
+           STATUS  mandatory\r
+           DESCRIPTION\r
+           "The IP Network mask used by the IP entity when accessing\r
+           devices through any of its LAN Ports (Ethernet or WLAN)."\r
+           ::= { operBridgingLevel 2}\r
+\r
+operEthernetAddress OBJECT-TYPE\r
+           SYNTAX  OCTET STRING (SIZE (6))\r
+           ACCESS  read-only\r
+           STATUS  mandatory\r
+           DESCRIPTION\r
+           "The MAC Address of the Ethernet interface."\r
+           ::= { operBridgingLevel 3}\r
+\r
+\r
+operGateway OBJECT-TYPE\r
+               SYNTAX IpAddress\r
+               ACCESS read-write\r
+               STATUS mandatory\r
+               DESCRIPTION      \r
+               "Gateway default IP address."\r
+               ::= { operBridgingLevel 4 }\r
+\r
+operDHCP OBJECT-TYPE\r
+               SYNTAX  INTEGER {enable(1),disable(2)}\r
+               ACCESS read-write\r
+               STATUS mandatory\r
+               DESCRIPTION      \r
+               "When setting this attribute to enable(1), the system will\r
+               enable DHCP protocol."\r
+               ::= { operBridgingLevel 5 }\r
+\r
+operPrimaryPort OBJECT-TYPE\r
+               SYNTAX  INTEGER {Ethernet(1),Wireless(2)}\r
+               ACCESS read-write\r
+               STATUS mandatory\r
+               DESCRIPTION      \r
+               "This attribute indicates the primaty port.Ethernet or Wireless."\r
+               ::= { operBridgingLevel 6 }\r
+\r
+operConfigurationPort OBJECT-TYPE\r
+               SYNTAX  INTEGER {Ethernet(1),Wireless(2),Both(3)}\r
+               ACCESS read-write\r
+               STATUS mandatory\r
+               DESCRIPTION      \r
+               "This attribute indicates the Configuration port.Ethernet or Wireless or Both of them."\r
+               ::= { operBridgingLevel 7 }\r
+\r
+operDHCPtimeout OBJECT-TYPE\r
+               SYNTAX  INTEGER {enable(1),disable(2)}\r
+               ACCESS read-write\r
+               STATUS mandatory\r
+               DESCRIPTION      \r
+               "When setting this attribute to enable(1), the system will\r
+               enable DHCP timeout."\r
+               ::= { operBridgingLevel 8 }\r
+\r
+\r
+\r
+\r
+-----------------------------Filtering-----------------------------\r
+\r
+\r
+\r
+operFiltering OBJECT IDENTIFIER ::= {atmelSys 3}\r
+\r
+operIPFilter OBJECT-TYPE\r
+               SYNTAX  INTEGER {enable(1), disable(2)}\r
+               ACCESS read-write\r
+               STATUS mandatory\r
+               DESCRIPTION      \r
+               "When setting this attribute to enable(1), the system will\r
+               filter out all non IP-traffic."\r
+               ::= { operFiltering 1 }\r
+\r
+operForwarbBcast OBJECT-TYPE\r
+               SYNTAX  INTEGER {enable(1), disable(2)}\r
+               ACCESS read-write\r
+               STATUS mandatory\r
+               DESCRIPTION      \r
+               "When setting this attribute to disable(2), the system will not\r
+               forward broadcast traffic to the Wireless Port."\r
+               ::= { operFiltering 2 }\r
+                                                     \r
+operSendBackBcast OBJECT-TYPE\r
+               SYNTAX  INTEGER {enable(1), disable(2)}\r
+               ACCESS read-write\r
+               STATUS mandatory\r
+               DESCRIPTION      \r
+               "When setting this attribute to disable(2), the system will not\r
+               send back broadcast traffic to the Wireless Port."\r
+               ::= { operFiltering 3 }\r
+                 \r
+operSendBackUnicast OBJECT-TYPE\r
+               SYNTAX  INTEGER {enable(1), disable(2)}\r
+               ACCESS read-write\r
+               STATUS mandatory\r
+               DESCRIPTION      \r
+               "When setting this attribute to disable(2), the system will not\r
+               send back unicast traffic to the Wireless Port."\r
+               ::= { operFiltering 4 }\r
+\r
+\r
+\r
+-----------------------------Bridge Operational Mode -----------------------------\r
+\r
+\r
+operBridgeOperationalMode OBJECT IDENTIFIER ::= {atmelSys 4}\r
+\r
+\r
+bridgeOperationalMode OBJECT-TYPE\r
+               SYNTAX  INTEGER {WBPoint2Multipoint(1), AP(2), APclient(3),  WBPoint2Point(4), WRepeater(5)}\r
+               ACCESS read-write\r
+               STATUS mandatory\r
+               DESCRIPTION      \r
+               "The Operational Mode of Bridge. Access Point, Access Point client, Wireless Bridge Point to Point, Wireless Bridge Point to MultiPoint, Wireless Repeater."\r
+               ::= { operBridgeOperationalMode 1 }\r
+\r
+bridgeRemoteBridgeBSSID OBJECT-TYPE\r
+               SYNTAX  OCTET STRING (SIZE (6))\r
+               ACCESS read-write\r
+               STATUS mandatory\r
+               DESCRIPTION      \r
+               "The Preferred BSSID if the device is at Access Point client mode or at Wireless Repeater mode\r
+               or the remote Mac if the device is at Wireless Bridge Point to Point mode."\r
+               ::= { operBridgeOperationalMode 2 }\r
+\r
+\r
+\r
+-----------------------------Static-----------------------------\r
+\r
+\r
+dot1dStatic OBJECT IDENTIFIER ::= {atmelSys 5}\r
+\r
+\r
+StaticMacFilterNum OBJECT-TYPE\r
+      SYNTAX  INTEGER \r
+      ACCESS  read-write\r
+      STATUS  mandatory\r
+      DESCRIPTION\r
+      "This parameter's value indicates the number of the currently\r
+      static MAC filters."\r
+      ::= { dot1dStatic 1 }\r
+\r
+\r
+          dot1dStaticTable OBJECT-TYPE\r
+              SYNTAX  SEQUENCE OF Dot1dStaticEntry\r
+              ACCESS  not-accessible\r
+              STATUS  mandatory\r
+              DESCRIPTION\r
+                      "A table containing filtering information\r
+                      configured into the bridge by (local or network)\r
+                      management specifying the set of ports to which\r
+                      frames received from specific ports and containing\r
+                      specific destination addresses are allowed to be\r
+                      forwarded.  The value of zero in this table as the\r
+                      port number from which frames with a specific\r
+                      destination address are received, is used to\r
+                      specify all ports for which there is no specific\r
+                      entry in this table for that particular\r
+                      destination address.  Entries are valid for\r
+                      unicast and for group/broadcast addresses."\r
+              REFERENCE\r
+                      "IEEE 802.1D-1990: Section 6.7.2"\r
+              ::= { dot1dStatic 2 }\r
+\r
+          dot1dStaticEntry OBJECT-TYPE\r
+              SYNTAX  Dot1dStaticEntry\r
+              ACCESS  not-accessible\r
+              STATUS  mandatory\r
+              DESCRIPTION\r
+                      "Filtering information configured into the bridge\r
+                      by (local or network) management specifying the\r
+                      set of ports to which frames received from a\r
+                      specific port and containing a specific\r
+                      destination address are allowed to be forwarded."\r
+              REFERENCE\r
+                      "IEEE 802.1D-1990: Section 6.7.2"\r
+              INDEX   { dot1dStaticAddress}--, dot1dStaticReceivePort }\r
+              ::= { dot1dStaticTable 1 }\r
+\r
+          Dot1dStaticEntry ::=\r
+              SEQUENCE {\r
+                  dot1dStaticAddress\r
+                      OCTET STRING (SIZE (6))\r
+--                  dot1dStaticReceivePort\r
+--                     INTEGER,\r
+--                  dot1dStaticAllowedToGoTo\r
+--                      INTEGER,\r
+--                  dot1dStaticStatus\r
+--                      INTEGER\r
+              }\r
+\r
+          dot1dStaticAddress OBJECT-TYPE\r
+              SYNTAX  OCTET STRING (SIZE (6))\r
+              ACCESS  read-write\r
+              STATUS  mandatory\r
+              DESCRIPTION\r
+                      "The destination MAC address in a frame to which\r
+                      this entry's filtering information applies.  This\r
+                      object can take the value of a unicast address, a\r
+                      group address or the broadcast address."\r
+              REFERENCE\r
+                      "IEEE 802.1D-1990: Section 3.9.1, 3.9.2"\r
+              ::= { dot1dStaticEntry 1 }\r
+\r
+--          dot1dStaticReceivePort OBJECT-TYPE\r
+--              SYNTAX  INTEGER\r
+--              ACCESS  read-write\r
+--              STATUS  mandatory\r
+--              DESCRIPTION\r
+--                      "Either the value '0', or the port number of the\r
+--                      port from which a frame must be received in order\r
+--                      for this entry's filtering information to apply.\r
+--                      A value of zero indicates that this entry applies\r
+--                      on all ports of the bridge for which there is no\r
+--                      other applicable entry."\r
+--              ::= { dot1dStaticEntry 2 }\r
+\r
+--          dot1dStaticAllowedToGoTo OBJECT-TYPE\r
+--              SYNTAX  INTEGER\r
+--              ACCESS  read-write\r
+--              STATUS  mandatory\r
+--              DESCRIPTION\r
+--                      "The set of ports to which frames received from a\r
+--                      specific port and destined for a specific MAC\r
+--                      address, are allowed to be forwarded.  Each octet\r
+--                      within the value of this object specifies a set of\r
+--                      eight ports, with the first octet specifying ports\r
+--                      1 through 8, the second octet specifying ports 9\r
+--                      through 16, etc.  Within each octet, the most\r
+--                      significant bit represents the lowest numbered\r
+--                      port, and the least significant bit represents the\r
+--                      highest numbered port.  Thus, each port of the\r
+--                      bridge is represented by a single bit within the\r
+--                      value of this object.  If that bit has a value of\r
+--                      '1' then that port is included in the set of\r
+--                      ports; the port is not included if its bit has a\r
+--                      value of '0'.  (Note that the setting of the bit\r
+--                      corresponding to the port from which a frame is\r
+--                      received is irrelevant.)  The default value of\r
+--                      this object is a string of ones of appropriate\r
+--                      length."\r
+--              ::= { dot1dStaticEntry 3 }\r
+--\r
+--          dot1dStaticStatus OBJECT-TYPE\r
+--              SYNTAX  INTEGER {\r
+--                          other(1),\r
+--                          invalid(2),\r
+--                          permanent(3),\r
+--                          deleteOnReset(4),\r
+--                          deleteOnTimeout(5)\r
+--                      }\r
+--              ACCESS  read-write\r
+--              STATUS  mandatory\r
+--              DESCRIPTION\r
+--                      "This object indicates the status of this entry.\r
+--                      The default value is permanent(3).\r
+--                           other(1) - this entry is currently in use but\r
+--                                the conditions under which it will\r
+--                                remain so are different from each of the\r
+--                                following values.\r
+--                           invalid(2) - writing this value to the object\r
+--                                removes the corresponding entry.\r
+--                           permanent(3) - this entry is currently in use\r
+--                                and will remain so after the next reset\r
+--                                of the bridge.\r
+--                           deleteOnReset(4) - this entry is currently in\r
+--                                use and will remain so until the next\r
+--                                reset of the bridge.\r
+--                           deleteOnTimeout(5) - this entry is currently\r
+--                                in use and will remain so until it is\r
+--                                aged out."\r
+--              ::= { dot1dStaticEntry 4 }\r
+\r
+\r
+\r
+----------------------------------Protocol Filtering-------------------\r
+\r
+\r
+ProtocolFilterGRP OBJECT IDENTIFIER ::= {atmelSys 6}\r
+\r
+ProtocolFilterNum OBJECT-TYPE\r
+      SYNTAX  INTEGER \r
+      ACCESS  read-write\r
+      STATUS  mandatory\r
+      DESCRIPTION\r
+      "This parameter's value indicates the number of the currently\r
+      protocol filters."\r
+      ::= { ProtocolFilterGRP 1 }\r
+\r
+\r
+\r
+\r
+          ProtocolFilterTable OBJECT-TYPE\r
+              SYNTAX  SEQUENCE OF ProtocolFilterEntry\r
+              ACCESS  not-accessible\r
+              STATUS  mandatory\r
+              DESCRIPTION\r
+                      "A table containing filtering information\r
+                      configured into the bridge by (local or network)\r
+                      management specifying the set of protocol filter."\r
+              ::= { ProtocolFilterGRP 2 }\r
+\r
+          protocolFilterEntry OBJECT-TYPE\r
+              SYNTAX  ProtocolFilterEntry\r
+              ACCESS  not-accessible\r
+              STATUS  mandatory\r
+              DESCRIPTION\r
+                      "Filtering information configured into the bridge\r
+                      by (local or network) management specifying the\r
+                      set of protocol filter."\r
+              INDEX   { ProtocolFilterCode }\r
+              ::= { ProtocolFilterTable 1 }\r
+\r
+          ProtocolFilterEntry ::=\r
+              SEQUENCE {\r
+                  ProtocolFilterCode\r
+                      OCTET STRING (SIZE (2)),\r
+                  ProtocolFilterDescription\r
+                      DisplayString (SIZE (0..255)),\r
+                  ProtocolFilterActivity\r
+                      INTEGER\r
+              }\r
+\r
+          ProtocolFilterCode OBJECT-TYPE\r
+              SYNTAX  OCTET STRING (SIZE (2))\r
+              ACCESS  read-write\r
+              STATUS  mandatory\r
+              DESCRIPTION\r
+                      "The protocol code configured into the bridge\r
+                      by (local or network) management specifying the\r
+                      set of protocol filter."\r
+              ::= { protocolFilterEntry 1 }\r
+\r
+          ProtocolFilterDescription OBJECT-TYPE\r
+              SYNTAX  DisplayString (SIZE (0..255))\r
+              ACCESS  read-write\r
+              STATUS  mandatory\r
+              DESCRIPTION\r
+                      "A textual description of the protocol."\r
+              ::= { protocolFilterEntry 2 }\r
+\r
+          ProtocolFilterActivity OBJECT-TYPE\r
+              SYNTAX  INTEGER {enable(1),disable(2)}\r
+              ACCESS  read-write\r
+              STATUS  mandatory\r
+              DESCRIPTION\r
+                      "This object indicates the status of this filter."\r
+              ::= { protocolFilterEntry 3 }\r
+\r
+\r
+\r
+-----------------------------Ethernet STATISTICS-----------------------------\r
+\r
+\r
+EthStatisticsGRP OBJECT IDENTIFIER ::= {atmelSys 7}\r
+\r
+EthRxStatistics OBJECT-TYPE\r
+               SYNTAX OCTET STRING (SIZE (64))\r
+               ACCESS read-only\r
+               STATUS mandatory\r
+               DESCRIPTION      \r
+               "Ethernet Rx Statistics\r
+               EthernetRxStatistics{\r
+                       unsigned long   TotalBytesRx;\r
+                       unsigned long   TotalPacketsRx;\r
+                       unsigned long   PacketCRCErrorRx;\r
+                       unsigned long   MulticastPacketRx;\r
+                       unsigned long   BroadcastPacketRx;\r
+                       unsigned long   ControlFramesRx;\r
+                       unsigned long   PauseFramesRx;\r
+                       unsigned long   UnknownOPCodeRx;\r
+                       unsigned long   AlignmentRxError;\r
+                       unsigned long   LengthOutOfRangeRx;\r
+                       unsigned long   CodeErrorRx;\r
+                       unsigned long   FalseCarrierRx;\r
+                       unsigned long   UndersizePacketsRx;\r
+                       unsigned long   OversizePacketsRx;\r
+                       unsigned long   TotalFragmentsRx;\r
+                       unsigned long   TotalJabberRx;\r
+               }"\r
+               ::= {EthStatisticsGRP 1 }\r
+\r
+EthTxStatistics OBJECT-TYPE\r
+               SYNTAX OCTET STRING (SIZE (56))\r
+               ACCESS read-only\r
+               STATUS mandatory\r
+               DESCRIPTION      \r
+               "Ethernet Tx Statistics\r
+               EthernetTxStatistics{\r
+                       unsigned long   TotalBytesTx;\r
+                       unsigned long   TotalPacketsTx;\r
+                       unsigned long   PacketCRCErrorTx;\r
+                       unsigned long   MulticastPacketTx;\r
+                       unsigned long   BroadcastPacketTx;\r
+                       unsigned long   UnicastPacketTx;\r
+                       unsigned long   PauseFramesTx;\r
+                       unsigned long   SingleDeferPacketTx;\r
+                       unsigned long   MultiDeferPacketsTx;\r
+                       unsigned long   SingleCollisionsTx;\r
+                       unsigned long   MultiCollisionsTx;\r
+                       unsigned long   LateCollisionsTx;\r
+                       unsigned long   ExcessiveCollisionTx;\r
+                       unsigned long   TotalCollisionsTx;\r
+               }"\r
+\r
+               ::= {EthStatisticsGRP 2 }\r
+\r
+\r
+\r
+\r
+\r
+-----------------------------Test Mode Settings-----------------------------\r
+\r
+\r
+TestModeSettingsGRP OBJECT IDENTIFIER ::= {atmelSys 8}\r
+\r
+TestModeOnOff  OBJECT-TYPE\r
+                               SYNTAX INTEGER {enable(1),disable(2)}\r
+                               ACCESS read-write\r
+                               STATUS mandatory\r
+                               DESCRIPTION      \r
+                               "When setting this attribute to enable(1), the device be\r
+                               at test mode."\r
+                               ::= { TestModeSettingsGRP 1 }\r
+\r
+\r
+TestModeCommandStruct  OBJECT-TYPE\r
+                               SYNTAX OCTET STRING (SIZE (8))\r
+                               ACCESS read-write\r
+                               STATUS mandatory\r
+                               DESCRIPTION      \r
+                               "\r
+                               TestModeCommandStruct{\r
+                                       unsigned char Channel;\r
+                                       unsigned char Antenna;\r
+                                       unsigned char RegCR31;\r
+                                       unsigned char Rate;\r
+                                       unsigned char TxFiler;  //US - JPN\r
+                                       unsigned char Command;  //CMD_CONTINUOUS_TX 0x01, CMD_CONTINUOUS_RX 0x02, CMD_CARRIER_ACCURACY 0x03, CMD_IDLE 0x04\r
+                                       unsigned char Res1;\r
+                                       unsigned char Res2;\r
+                               } "\r
+\r
+                               ::= {TestModeSettingsGRP 2 }\r
+\r
+TestModeRadioConfiguration     OBJECT-TYPE\r
+                                       SYNTAX OCTET STRING (SIZE (14))\r
+                                       ACCESS read-write\r
+                                       STATUS mandatory\r
+                                       DESCRIPTION      \r
+                                       "Configuration of radio derive from tests. CR31 Reg 1-14"\r
+                                       ::= {TestModeSettingsGRP 8 }\r
+\r
+TestModeStatistics             OBJECT-TYPE\r
+                                       SYNTAX OCTET STRING (SIZE (8))\r
+                                       ACCESS read-only\r
+                                       STATUS mandatory\r
+                                       DESCRIPTION      \r
+                                       "Statistics derive from tests\r
+                                       TestModeStatistics{\r
+                                               unsigned long SuccessFrames;\r
+                                               unsigned long FailedFrames;\r
+                                       } "\r
+\r
+                                       ::= {TestModeSettingsGRP 9 }\r
+\r
+SleepModeOnOff                         OBJECT-TYPE\r
+                                       SYNTAX INTEGER {enable(1),disable(2)}\r
+                                       ACCESS read-write\r
+                                       STATUS mandatory\r
+                                       DESCRIPTION      \r
+                                       "When this attribute is set to enable(1), the device is at sleep mode."\r
+                                       ::= {TestModeSettingsGRP 10 }\r
+\r
+\r
+-----------------------------Authorized Settings-----------------------------\r
+\r
+\r
+AuthorizedSettingsGRP OBJECT IDENTIFIER ::= {atmelSys 9}\r
+\r
+AuthorizedUserPass     OBJECT-TYPE\r
+                               SYNTAX OCTET STRING (SIZE (16))\r
+                               ACCESS read-write\r
+                               STATUS mandatory\r
+                               DESCRIPTION      \r
+                               "The community name of User."\r
+                               ::= {AuthorizedSettingsGRP 1 }\r
+\r
+\r
+AuthorizedAdminPass    OBJECT-TYPE\r
+                               SYNTAX OCTET STRING (SIZE (16))\r
+                               ACCESS read-write\r
+                               STATUS mandatory\r
+                               DESCRIPTION      \r
+                               "The community name of Administrator."\r
+                               ::= {AuthorizedSettingsGRP 2 }\r
+\r
+\r
+AuthorizedManufactPass         OBJECT-TYPE\r
+                               SYNTAX OCTET STRING (SIZE (16))\r
+                               ACCESS read-write\r
+                               STATUS mandatory\r
+                               DESCRIPTION      \r
+                               "The community name of Manufacturer."\r
+                               ::= {AuthorizedSettingsGRP 3 }\r
+\r
+\r
+--*************************** wireless ***************************\r
+--****************************************************************\r
+\r
+-----------------------------Operational Settings-----------------------------\r
+\r
+\r
+OperationalSettingsGRP OBJECT IDENTIFIER ::= {wireless 1}\r
+\r
+\r
+\r
+\r
+operChannelID  OBJECT-TYPE\r
+       SYNTAX  INTEGER  {\r
+                       channel1(1),\r
+                       channel2(2),\r
+                       channel3(3),\r
+                       channel4(4),\r
+                       channel5(5),\r
+                       channel6(6),\r
+                       channel7(7),\r
+                       channel8(8),\r
+                       channel9(9),\r
+                       channel10(10),\r
+                       channel11(11),\r
+                       channel12(12),\r
+                       channel13(13),\r
+                       channel14(14)\r
+               }\r
+       ACCESS  read-write\r
+       STATUS  mandatory\r
+       DESCRIPTION\r
+               "The operating frequency channel. Valid numbers\r
+               are     as defind in ISO/IEC 8802-11:1999, 15.4.6.2."\r
+       ::= { OperationalSettingsGRP 1 }\r
+\r
+\r
+operESSIDLength OBJECT-TYPE\r
+     SYNTAX  INTEGER\r
+     ACCESS  read-write    \r
+     STATUS  mandatory\r
+     DESCRIPTION\r
+     "The ESSID Length"\r
+     ::= {OperationalSettingsGRP 2 }     \r
+\r
+operESSID OBJECT-TYPE\r
+     SYNTAX  OCTET STRING (SIZE (32))\r
+     ACCESS  read-write    \r
+     STATUS  mandatory\r
+     DESCRIPTION\r
+     "The network name. The size of the network name\r
+     should not be more than 32 characters long."\r
+     ::= {OperationalSettingsGRP 3 }     \r
+\r
+\r
+operRTSThreshold OBJECT-TYPE\r
+               SYNTAX  INTEGER  \r
+               ACCESS read-write\r
+               STATUS mandatory\r
+               DESCRIPTION      \r
+               "This attribute indicates the number of bytes in an \r
+               MPDU (frame), above which an RTS/CTS handshake will be\r
+               performed. Setting this attribute to be larger than the\r
+               maximum frame size, will prevent the RTS/CTS handshake \r
+               for frames trassmitted by this station."\r
+       ::= {OperationalSettingsGRP 4 }\r
+\r
+\r
+operFragmentationThreshold OBJECT-TYPE\r
+               SYNTAX  INTEGER  \r
+               ACCESS read-write\r
+               STATUS mandatory\r
+               DESCRIPTION      \r
+               "This attribute indicates the number of bytes in an \r
+               MPDU (frame), above which MPDU fragmentation will be\r
+               performed."\r
+       ::= {OperationalSettingsGRP 5 }\r
+       \r
+\r
+operPreambleType OBJECT-TYPE\r
+      SYNTAX  INTEGER {\r
+                       ShortPreamble(1),\r
+                       LongPreamble(2)\r
+               }\r
+      ACCESS  read-write\r
+      STATUS  mandatory\r
+      DESCRIPTION\r
+      "This parameter's value indicates the Preamble Type of device. Short or Long."\r
+             ::= {OperationalSettingsGRP 6 }\r
+\r
+\r
+operAuthenticationType OBJECT-TYPE\r
+               SYNTAX  INTEGER {\r
+       openSystem(1),\r
+       sharedKey(2),\r
+       BothType(3)\r
+       }\r
+               ACCESS read-write\r
+               STATUS mandatory\r
+               DESCRIPTION      \r
+               "This attribute indicates the authentication algorithm\r
+               used during the authentication sequence.\r
+               The value of this attribute is one of the following:\r
+               1 - Open System,\r
+               2 - Shared Key\r
+               3 - Both Type "\r
+               ::= {OperationalSettingsGRP 7 }\r
+\r
+\r
+operBasicRates OBJECT-TYPE\r
+               SYNTAX OCTET STRING (SIZE (4))\r
+               ACCESS read-write\r
+               STATUS mandatory\r
+               DESCRIPTION      \r
+               "This attribute indicates the basic and supported rates of Access Point.Valid format\r
+               is as defind in ISO/IEC 8802-11:1999"\r
+               ::= { OperationalSettingsGRP 8 }\r
+\r
+\r
+operAutoRateFallBack OBJECT-TYPE\r
+               SYNTAX INTEGER {enable(1),disable(2)}\r
+               ACCESS read-write\r
+               STATUS mandatory\r
+               DESCRIPTION      \r
+               "This attribute indicates if Auto Rate Fall Back is enable or disable."\r
+               ::= {OperationalSettingsGRP 9 }\r
+\r
+operAccessPointName OBJECT-TYPE\r
+     SYNTAX  OCTET STRING (SIZE (32))\r
+     ACCESS  read-write    \r
+     STATUS  mandatory\r
+     DESCRIPTION\r
+     "The AP name."\r
+     ::= {OperationalSettingsGRP 10 }     \r
+\r
+operSSIDBroadcasting OBJECT-TYPE\r
+               SYNTAX INTEGER {enable(1),disable(2)}\r
+               ACCESS read-write\r
+               STATUS mandatory\r
+               DESCRIPTION      \r
+               "This attribute indicates if SSID is broadcasting or not."\r
+               ::= {OperationalSettingsGRP 11 }\r
+\r
+operAntennaSettings OBJECT-TYPE\r
+               SYNTAX INTEGER\r
+               ACCESS read-write\r
+               STATUS mandatory\r
+               DESCRIPTION      \r
+               "."\r
+               ::= {OperationalSettingsGRP 12 }\r
+\r
+\r
+\r
+-----------------------------Privacy-----------------------------\r
+\r
+\r
+privacyGRP OBJECT IDENTIFIER ::= { wireless 2 }\r
+\r
+\r
+\r
+defaultWEPKey1 OBJECT-TYPE\r
+    SYNTAX OCTET STRING (SIZE (13))\r
+    ACCESS  write-only\r
+    STATUS  mandatory\r
+    DESCRIPTION    \r
+    "A WEP default secret key value."\r
+    ::= { privacyGRP 1 }    \r
+\r
+defaultWEPKey2 OBJECT-TYPE\r
+    SYNTAX OCTET STRING (SIZE (13))\r
+    ACCESS  write-only\r
+    STATUS  mandatory\r
+    DESCRIPTION    \r
+    "A WEP default secret key value."\r
+    ::= { privacyGRP 2 }    \r
+\r
+defaultWEPKey3 OBJECT-TYPE\r
+    SYNTAX OCTET STRING (SIZE (13))\r
+    ACCESS  write-only\r
+    STATUS  mandatory\r
+    DESCRIPTION    \r
+    "A WEP default secret key value."\r
+    ::= { privacyGRP 3 }    \r
+\r
+defaultWEPKey4 OBJECT-TYPE\r
+    SYNTAX OCTET STRING (SIZE (13))\r
+    ACCESS  write-only\r
+    STATUS  mandatory\r
+    DESCRIPTION    \r
+    "A WEP default secret key value."\r
+    ::= { privacyGRP 4 }    \r
+\r
+\r
+\r
+privacyWEPEnable OBJECT-TYPE\r
+               SYNTAX INTEGER {enable64(1),disable(2),enable128(3) }\r
+               ACCESS read-write\r
+               STATUS mandatory\r
+               DESCRIPTION      \r
+               "This attribute, when enable64(1) or enable128(3), indicates that the 802.11\r
+               standard encryption mechanism (WEP) is implemented. WEP64, WEP128 or disable"\r
+               ::= {privacyGRP 5}\r
+\r
+\r
+privacyDefaultWEPKeyID OBJECT-TYPE\r
+               SYNTAX INTEGER   (1..4)\r
+               ACCESS read-write\r
+               STATUS mandatory\r
+               DESCRIPTION\r
+               "This attribute shall indicate the use of the first, second,\r
+               third or fourth DefaultWEPKey when set to values of one, two,\r
+               three or four."\r
+               ::= {privacyGRP 6}\r
+\r
+\r
+-----------------------------STATISTICS-----------------------------\r
+\r
+\r
+WLstatisticsGRP OBJECT IDENTIFIER ::= {wireless 3}\r
+\r
+wirelessStatistics OBJECT-TYPE\r
+               SYNTAX OCTET STRING (SIZE (88))\r
+               ACCESS read-only\r
+               STATUS mandatory\r
+               DESCRIPTION      \r
+               "Wireless Statistics. 22 elements(ULONG)\r
+               WirelessStatistics{\r
+                       unsigned long   UnicastTransmittedPackets;\r
+                       unsigned long   BroadcastTransmittedPacets;\r
+                       unsigned long   MulticastTransmittedPackets;\r
+                       unsigned long   TransmittedBeacon;\r
+                       unsigned long   TransmittedACK;\r
+                       unsigned long   TransmittedRTS;\r
+                       unsigned long   TransmittedCTS;\r
+                       unsigned long   UnicastReceivedPackets;\r
+                       unsigned long   BroadcastReceivedPackets;\r
+                       unsigned long   MulticastReceivedPackets;\r
+                       unsigned long   ReceivedBeacon;\r
+                       unsigned long   ReceivedACK;\r
+                       unsigned long   ReceivedRTS;\r
+                       unsigned long   ReceivedCTS;\r
+                       unsigned long   ACKFailure;\r
+                       unsigned long   CTSFailure;\r
+                       unsigned long   RetryPackets;\r
+                       unsigned long   ReceivedDuplicate;\r
+                       unsigned long   FailedPackets;\r
+                       unsigned long   AgedPackets;\r
+                       unsigned long   FCSError;\r
+                       unsigned long   InvalidPLCP;\r
+               } "\r
+               ::= {WLstatisticsGRP 1 }\r
+\r
+\r
+-------------------------------Site Survey----------------------\r
+\r
+WLSiteSurveyGRP OBJECT IDENTIFIER ::= {wireless 4}\r
+\r
+ChannelStatus OBJECT-TYPE\r
+               SYNTAX OCTET STRING (SIZE (14))\r
+               ACCESS read-only\r
+               STATUS mandatory\r
+               DESCRIPTION      \r
+               "."\r
+               ::= {WLSiteSurveyGRP 1}\r
+\r
+\r
+-------------------------------Associated Stations---------------------\r
+-----------------------------------------------------------------------\r
+\r
+AssociatedStationsGRP OBJECT IDENTIFIER ::= {wireless 5}\r
+\r
+AssociatedSTAsNum OBJECT-TYPE\r
+      SYNTAX  INTEGER (0..2007)\r
+      ACCESS  read-only\r
+      STATUS  mandatory\r
+      DESCRIPTION\r
+      "This parameter's value indicates the number of the currently\r
+      associated STAtions. Associated STAtions should not be more\r
+      than 2007."\r
+      ::= { AssociatedStationsGRP 1 }\r
+\r
+               \r
+AssociatedSTAsInfo     OBJECT-TYPE\r
+           SYNTAX      OCTET STRING (SIZE (24))\r
+           ACCESS  read-only\r
+           STATUS  mandatory\r
+           DESCRIPTION\r
+           "The associated STAtion's Information.\r
+               AssociatedSTAsInfo{\r
+                       unsigned short Index;\r
+                       unsigned char  MacAddress[6];\r
+                       unsigned char  Status;\r
+                       unsigned char  Port;\r
+                       unsigned char  ParentMacAddress[6];\r
+                       unsigned char  RSSI;\r
+                       unsigned char  LinkQuality;\r
+                       unsigned char  IP[4];\r
+                       unsigned char  Reserved1[2];\r
+               } "\r
+           ::= { AssociatedStationsGRP 2 }\r
+               \r
+\r
+-------------------------------Authorized Mac Addresses----------------------\r
+\r
+AuthorizedMacAddressesGRP OBJECT IDENTIFIER ::= {wireless 6}\r
+\r
+AuthorizationMacEnable OBJECT-TYPE\r
+               SYNTAX INTEGER (1..3)\r
+               ACCESS read-write\r
+               STATUS mandatory\r
+               DESCRIPTION      \r
+               "When setting this attribute to 1, Internal MAC Authorization will be applied.\r
+                When setting this attribute to 2, no MAC Authorization will be applied.\r
+                When setting this attribute to 3, External MAC Authorization will be applied."\r
+               ::= {AuthorizedMacAddressesGRP 1}\r
+\r
+\r
+AuthorizedMac  OBJECT-TYPE\r
+           SYNTAX      OCTET STRING (SIZE (12))\r
+           ACCESS  read-write\r
+           STATUS  mandatory\r
+           DESCRIPTION\r
+           "The Authorized Wireless Mac Addresses\r
+               AuthorizedMacTableString{\r
+                       unsigned sort Action; //Set 0x01 or Get 0x02\r
+                       unsigned sort NumOfAllTableAddresses;\r
+                       unsigned sort NumOfCurrentAddress;\r
+                       unsigned char MacAddress[6];\r
+               } "\r
+\r
+           ::= { AuthorizedMacAddressesGRP 2 }\r
+\r
+AuthRadiusIP OBJECT-TYPE\r
+               SYNTAX IpAddress\r
+               ACCESS read-write\r
+               STATUS mandatory\r
+               DESCRIPTION      \r
+               "The Radius Server IP Address."\r
+               ::= {AuthorizedMacAddressesGRP 3}\r
+\r
+AuthRadiusSecret OBJECT-TYPE\r
+               SYNTAX OCTET STRING (SIZE (32))\r
+               ACCESS read-write\r
+               STATUS mandatory\r
+               DESCRIPTION      \r
+               "The Radius Server Secret Key."\r
+               ::= {AuthorizedMacAddressesGRP 4}\r
+\r
+AuthRadiusSecretLength OBJECT-TYPE\r
+            SYNTAX  INTEGER\r
+            ACCESS  read-write    \r
+            STATUS  mandatory\r
+            DESCRIPTION\r
+            "The Radius Server Secret Key Length."\r
+            ::= {AuthorizedMacAddressesGRP 5}     \r
+\r
+AuthRadiusPort OBJECT-TYPE\r
+               SYNTAX INTEGER  \r
+               ACCESS read-write\r
+               STATUS mandatory\r
+               DESCRIPTION      \r
+               "The source port for Radius Protocol packets."\r
+               ::= {AuthorizedMacAddressesGRP 6}\r
+\r
+AuthRadiusReauthorizationTime OBJECT-TYPE\r
+               SYNTAX INTEGER  \r
+               ACCESS read-write\r
+               STATUS mandatory\r
+               DESCRIPTION      \r
+               "The time for Radius Server Reauthorization."\r
+               ::= {AuthorizedMacAddressesGRP 7}\r
+\r
+AuthRadiusDestinPort OBJECT-TYPE\r
+               SYNTAX INTEGER  \r
+               ACCESS read-write\r
+               STATUS mandatory\r
+               DESCRIPTION      \r
+               "The destination port for Radius Protocol packets."\r
+               ::= {AuthorizedMacAddressesGRP 8}\r
+\r
+\r
+-----------------------------KNOWN ACCESS POINTS----------------------\r
+\r
+\r
+WLKnownAPGRP OBJECT IDENTIFIER ::= {wireless 7}\r
+\r
+wirelessKnownAPs OBJECT-TYPE\r
+               SYNTAX OCTET STRING (SIZE (160))\r
+               ACCESS read-only\r
+               STATUS mandatory\r
+               DESCRIPTION      \r
+               "."\r
+               ::= {WLKnownAPGRP 1 }\r
+\r
+\r
+-----------------------------Network Settings----------------------\r
+\r
+\r
+NetworkSettingsGRP OBJECT IDENTIFIER ::= {wireless 8}\r
+\r
+NetworkSettings OBJECT-TYPE\r
+               SYNTAX OCTET STRING (SIZE (53))\r
+               ACCESS read-only\r
+               STATUS mandatory\r
+               DESCRIPTION      \r
+               "Network Settings.\r
+               struct NETWORK_SETTINGS {\r
+                       unsigned short reserved1;\r
+                       unsigned char BSSID[6];\r
+                       unsigned short InfoCapability;\r
+                       unsigned char Rssi;\r
+                       unsigned char Channel;\r
+                       unsigned char reserved2[2];\r
+                       unsigned char LinkQuality;\r
+                       unsigned char reserved3[5];\r
+                       unsigned char ESSID[32];\r
+                       unsigned char ESSLEN;\r
+               }"\r
+               ::= {NetworkSettingsGRP 1}\r
+\r
+\r
+\r
+--*************************** Traps ***************************\r
+--*************************************************************\r
+\r
+trapSTAMacAddress OBJECT-TYPE\r
+       SYNTAX OCTET STRING (SIZE (6))\r
+       ACCESS read-only\r
+       STATUS mandatory\r
+       DESCRIPTION      \r
+       "The MAC address of a station device"\r
+\r
+       ::= {traps 1}\r
+\r
+\r
+trapReassociation TRAP-TYPE\r
+       ENTERPRISE atmel\r
+       VARIABLES {\r
+       trapSTAMacAddress\r
+       }\r
+       DESCRIPTION\r
+       "This trap message is sent when a STAtion's reassosiation\r
+       request is received."\r
+       ::= 1\r
+\r
+trapRoamOut TRAP-TYPE\r
+       ENTERPRISE atmel\r
+       VARIABLES {\r
+       trapSTAMacAddress\r
+       }\r
+       DESCRIPTION\r
+       "This trap message is used to indicate that a STAtion has\r
+       roamed out of the Wireless bridge's coverage area."\r
+       ::= 2\r
+\r
+trapAssociation TRAP-TYPE\r
+       ENTERPRISE atmel\r
+       VARIABLES {\r
+       trapSTAMacAddress\r
+       }\r
+       DESCRIPTION\r
+       "Indicates the reception of an association request packet\r
+       and     the sender STAtion's successful association with the\r
+       Access Point."\r
+       ::= 3\r
+       \r
+trapDisassociation TRAP-TYPE\r
+       ENTERPRISE atmel\r
+       VARIABLES {\r
+       trapSTAMacAddress\r
+       }\r
+       DESCRIPTION\r
+       "This trap message is sent when a disassociation notification\r
+       packet is received from a STAtion."\r
+       ::= 4\r
+\r
+trapAssociationExpire TRAP-TYPE\r
+       ENTERPRISE atmel\r
+       VARIABLES {\r
+       trapSTAMacAddress\r
+       }\r
+       DESCRIPTION\r
+       "This trap message is sent when the association's maximum time interval expires for\r
+       an associated STAtion."\r
+       ::= 5\r
+\r
+trapReset TRAP-TYPE\r
+       ENTERPRISE atmel\r
+       VARIABLES {\r
+       sysReset\r
+       }\r
+       DESCRIPTION\r
+       "This trap message is sent when Access Point Resets."\r
+       ::= 6\r
+\r
+trapSettingPingIPAddress TRAP-TYPE\r
+       ENTERPRISE atmel\r
+       VARIABLES {\r
+       operIPAddress\r
+       }\r
+       DESCRIPTION\r
+       "This trap message is sent when the Access Point IP address\r
+       is set with the transmition of a ping message."\r
+       ::= 7\r
+\r
+trapStartUp TRAP-TYPE\r
+       ENTERPRISE atmel\r
+       VARIABLES {\r
+       }\r
+       DESCRIPTION\r
+       "This trap message is sent when Access Point Starts Up."\r
+       ::= 8\r
+\r
+trapFailedToEraseFlash TRAP-TYPE\r
+       ENTERPRISE atmel\r
+       VARIABLES {\r
+       }\r
+       DESCRIPTION\r
+       "This trap message is sent when Access Point Failed To Erase Flash."\r
+       ::= 9\r
+\r
+trapAPClientScanning TRAP-TYPE\r
+       ENTERPRISE atmel\r
+       VARIABLES {\r
+       }\r
+       DESCRIPTION\r
+       "Access Point Client is scanning..."\r
+       ::= 10\r
+\r
+trapAPClientAuthenticating TRAP-TYPE\r
+       ENTERPRISE atmel\r
+       VARIABLES {\r
+       bridgeRemoteBridgeBSSID\r
+       }\r
+       DESCRIPTION\r
+       "Access Point Client is authenticating with the AP."\r
+       ::= 11\r
+\r
+trapAPClientAssociating TRAP-TYPE\r
+       ENTERPRISE atmel\r
+       VARIABLES {\r
+       bridgeRemoteBridgeBSSID\r
+       }\r
+       DESCRIPTION\r
+       "Access Point Client is associating with the AP."\r
+       ::= 12\r
+\r
+trapAPClientReAssociating TRAP-TYPE\r
+       ENTERPRISE atmel\r
+       VARIABLES {\r
+       bridgeRemoteBridgeBSSID\r
+       }\r
+       DESCRIPTION\r
+       "Access Point Client is reassociating with the AP."\r
+       ::= 13\r
+\r
+trapAPClientAuthenticationFailed TRAP-TYPE\r
+       ENTERPRISE atmel\r
+       VARIABLES {\r
+       bridgeRemoteBridgeBSSID\r
+       }\r
+       DESCRIPTION\r
+       "Access Point Client has failed authenticating with the AP."\r
+       ::= 14\r
+\r
+trapAPClientAssociationFailed TRAP-TYPE\r
+       ENTERPRISE atmel\r
+       VARIABLES {\r
+       bridgeRemoteBridgeBSSID\r
+       }\r
+       DESCRIPTION\r
+       "Access Point Client has failed associating with the AP."\r
+       ::= 15\r
+\r
+trapAPClientConnected TRAP-TYPE\r
+       ENTERPRISE atmel\r
+       VARIABLES {\r
+       bridgeRemoteBridgeBSSID\r
+       }\r
+       DESCRIPTION\r
+       "Access Point Client has been connected with the AP."\r
+       ::= 16\r
+\r
+trapAPClientDisconnected TRAP-TYPE\r
+       ENTERPRISE atmel\r
+       VARIABLES {\r
+       bridgeRemoteBridgeBSSID\r
+       }\r
+       DESCRIPTION\r
+       "Access Point Client has been disconnected from the AP."\r
+       ::= 17                         \r
+       \r
+trapAPClientScanFailed TRAP-TYPE\r
+       ENTERPRISE atmel\r
+       VARIABLES {\r
+       }\r
+       DESCRIPTION\r
+       "Access Point Client has failed scanning!"\r
+       ::= 18                         \r
+                        \r
+trapAPClientJoinFailed TRAP-TYPE\r
+       ENTERPRISE atmel\r
+       VARIABLES {\r
+       }\r
+       DESCRIPTION\r
+       "Access Point Client has failed joining!"\r
+       ::= 19       \r
+\r
+trapAPClientJoining    TRAP-TYPE\r
+       ENTERPRISE atmel\r
+       VARIABLES {\r
+       }\r
+       DESCRIPTION\r
+       "Access Point Client is in join state."\r
+       ::= 20  \r
+\r
+END
\ No newline at end of file
index d004b856a47531035883b17bc900e6967c1e5939..c534604f2e94f68483978591fa63704b527813e4 100644 (file)
@@ -19,7 +19,7 @@
 
 ## Process this file with automake to produce Makefile.in
 
-SUBDIRS = intl lib src po Documentation ap-gl
+SUBDIRS = lib src ap-gl Documentation intl po
 
 AUTOMAKE_OPTIONS = gnu 
 
index 809e3fc8ee948c6ea04072eb90f59f146c5a7ac9..6438964f4ba38d8e70f40cbd289282a0acfecda1 100644 (file)
@@ -71,6 +71,7 @@ CCDEPMODE = @CCDEPMODE@
 CFLAGS = @CFLAGS@
 CPP = @CPP@
 CPPFLAGS = @CPPFLAGS@
+CURSESLIBS = @CURSESLIBS@
 CYGPATH_W = @CYGPATH_W@
 DATADIRNAME = @DATADIRNAME@
 DEFS = @DEFS@
@@ -157,7 +158,7 @@ sharedstatedir = @sharedstatedir@
 sysconfdir = @sysconfdir@
 target_alias = @target_alias@
 
-SUBDIRS = intl lib src po Documentation ap-gl
+SUBDIRS = lib src ap-gl Documentation intl po
 
 AUTOMAKE_OPTIONS = gnu 
 
diff --git a/README b/README
index 7ed7118d4e05e06a4e65405c7d9a2523bdd45852..4c9743b7c98ac8b1b6d4cd7b8f26baa43cea2930 100644 (file)
--- a/README
+++ b/README
@@ -73,96 +73,161 @@ and usually comes with your SNMP management utility for Windows.
 +------------------------------------------------------------------------------+
 |                              Supported Access Points                        |
 +------------------------------------------------------------------------------+
-| Manufacturer                 | Models                | Type                 |
+| Manufacturer (OEM)           | Model                 | AP MIB type          |
 +-------------------------------+-----------------------+----------------------+
-| Global Sun                   | ProWave GL2411AP      | ATMEL410             |
-| Linksys                      | WAP11 pre2 version    | ATMEL410             |
-| SMC                          | MC2655W               | ATMEL410             |
-| Netgear                      | ME102                 | ATMEL12350, ATMEL410 |
-| Eumitcom                     | WA3001A               | ATMEL410             |
-| Edimax                       | EW-7205               | ATMEL410             |
-| Target                       | WLAP 24212            | ATMEL410             |
-| Micronet                     | SP918                 | ATMEL410             |
-| Smartbridges                 | airPoint, airBridge   | ATMEL410             |
-| Belkin Components            | F5D6130               | ATMEL410             |
-| GemTek                       | TEW-210APB            | ATMEL410             |
-| GemTek                       | WX-1500               | NWN                  |
-| Intellinet                   | AP, Wireless Bridge   | ATMEL410             |
-| D-Link                       | DWL 900AP             | ATMEL410             |
-| D-Link                       | DWL 1000AP            | NWN                  |
-| WLink Syst. (D-Link subs.)   | Wen-2021              | ATMEL410             |
-| Advantek Networks             | AWN-AP128            | ATMEL410             |
-| Compex                       | WavePort WP11         | NWN                  |
-| Zoom                         | ZoomAir11AP           | NWN                  |
-| Telecom                      | T-Sinus 130X          | ATMEL410             |
-| Ovislink                     | Airlive WL-1100AP     | ATMEL410             |
-| CC&C Technologies            | Access Point          | ATMEL410             |
+| Acer                         | Warplink EJA-A        | NWN                  |
+| Advantek Networks             | AWN-AP128            | ATMEL410             |
+| Ark                          | SOHO-WLAP             | ATMEL410             |
+| Asus                         | WL-300                | ATMEL410             |
+| Belkin Components            | F5D6130               | ATMEL410             |
+| BOSSLAN                      | BOSSWAP               | ATMEL12350,ATMEL410  |
+| CC&C Technologies            | Access Point          | ATMEL410             |
+| CNet                         | CNAP-711              | ATMEL410             |
+| Cameo Communications          | WLB-2000/2001                | ATMEL410             |
 | Compaq                       | WL-400                | NWN (mostly works)   |
-| Asus                         | WL-300                | ATMEL410             |
-| Topcom                       | SkyLanR@cer 500       | ATMEL410             |
-| Fiberline                    | WL-1200AP             | ATMEL12350           |
-| CNet                         | CNAP-711              | ATMEL410             |
-| Yakumo                       | Access Point          | ATMEL410             |
-| Dynalink (Askey)             | RTW020                | ATMEL410             |
-| Acer                         | Warplink EJA-A        | NWN                  |
+| Compex                       | WavePort WP11         | NWN                  |
+| D-Link                       | DWL 900AP (rev. 1)    | ATMEL410             |
+| D-Link                       | DWL 1000AP            | NWN                  |
+| D-com                                | WX-1590 web           | ATMEL12350           |
+| Dynalink (Askey)             | RTW020                | ATMEL410             |
+| Edimax                       | EW-7205APB            | ATMEL410             |
+| Eumitcom                     | WA3001A               | ATMEL410             |
+| Fiberline                    | WL-1200AP             | ATMEL12350           |
+| GemTek                       | TEW-210APB            | ATMEL410             |
+| GemTek                       | WX-1500               | NWN                  |
+| GigaFast                     | WF711-AP              | ATMEL12350           |
+| Global Sun                   | 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           |
+| Infosmart                    | INAP88                | ATMEL410             |
+| Intellinet                   | AP, Wireless Bridge   | ATMEL410             |
+| InterEpoch                    | IWE1000A              | ATMEL410             |
+| Linksys                      | WAP11 pre2 version    | ATMEL410             |
+| Micronet                     | SP918                 | ATMEL410             |
+| Netgear                      | ME102                 | ATMEL12350, ATMEL410 |
+| OSBRiDGE                      | m2410                 | ATMEL12350           |
+| OSBRiDGE                      | p2410                 | ATMEL12350           |
+| OSLiNK                       | M2410, P2410, P2410i  |                      |
+| Ovislink                     | Airlive WL-1100AP     | ATMEL410             |
+| SMC                          | MC2655W               | ATMEL410             |
+| Smartbridges                 | airPoint PRO          | ATMEL410             |
+| SparkLAN (Gemtek subs.)      | WX-1590               | ATMEL410             |
+| SparkLAN (Gemtek subs.)      | WX-1590L              | ATMEL12350           |
 | Svec                         | FD1811                | ATMEL12350, ATMEL410 |
-| Tellus Group Corp            | A14                   | ATMEL12350           |
-| Wline                         | A14                  | ATMEL12350           |
-| i-Tec                         | i-Tec AP SILVER      | ATMEL410             |
-| i-Tec                         | i-Tec AP GOLD                | ATMEL410             |
-| Infosmart                    | INAP88                | ATMEL410             |
-| Ark                          | SOHO-WLAP             | ATMEL410             |
-| Svec                          | SOHO-WLAP            | ATMEL410             |
-| GigaFast                      | WF711-AP             | ATMEL12350           |
-| Cameo Communications          | WLB-2000/2001         | ATMEL410            |
-| Wline                         | W-2000                | ATMEL410             |
+| Svec                         | SOHO-WLAP             | ATMEL410             |
+| Target                       | WLAP 24212            | ATMEL410             |
+| Telecom                      | T-Sinus 130X          | ATMEL410             |
+| Tellus Group Corp            | A14                   | ATMEL12350           |
+| Topcom                       | SkyLanR@cer 500       | ATMEL410             |
+| Wline                                | A14                   | ATMEL12350           |
+| Wline                                | W-2000                | ATMEL410             |
+| WLink Syst. (D-Link subs.)   | Wen-2021              | ATMEL410             |
+| Yakumo                       | Access Point          | ATMEL410             |
+| Zoom                         | ZoomAir11AP           | NWN                  |
 +-------------------------------+-----------------------+----------------------+
 
 Please note that although many of these devices may use the same MIB enterprise
 identification, the actual MIBs may slightly differ, depending on whether
-the manufacturer has decided upon hardware modifications.
+the manufacturer has decided upon firmware modifications.
 In ap-config, an effort has been made to only include functionality
 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 a different set of operational
-modes.
-One type the private MIB comes with is often referred to as "Access Point"
-firmware, often marked with shortcut "AP". Another one is referred to as
-"Wireless Adapter firmware", marked with shortcut "WA".
-"WA" firmware has questionable advantage that it is claimed to allow APs
-equipped with this firmware to connect with non-ATMEL-based APs of other
-manufacturers using "AP-client (Infrastructure)" mode (in reality, this is,
-unfortunately, often false), at cost of supporting no true "AP" mode
-(only Ad-Hoc and AP-client modes are available).
+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'
+('AP firmware').
+Second MIB type comes with firmware referred to as 'Wireless Adapter firmware'
+('WA firmware').
+WA firmwares have questionable advantage of being able to connect
+to WDS-equipped APs (some non-ATMEL-based APs) using "AP-Client
+(Infrastructure)" mode (in reality, this is, unfortunately, often false),
+at cost of supporting no true "AP" mode (only Ad-Hoc and AP-client modes
+are available).
 
 Whenever you can, use firmware labelled as "AP" and not "WA".
 "AP" version supports most networking modes, compared to "WA" version.
-MIBs AND FIRMWARES WITH "WA" LABEL ARE NOT SUPPORTED WITH AP-UTILS!
+!!!!!!!!! "WA" FIRMWARES 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-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.
 
 WARNING 2: Users of Tellus A14 and its OEM versions (Wline A14, Veriplus
-WL-A14, etc. - ATMEL12350 AP "types"): Beware. Firmwares up to (including)
-version 0.2.2.19 for these APs contain 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.
+WL-A14, etc. - generally all AP types with ATMEL12350 MIB, equipped with
+web interface):
+Beware! Firmwares up to (including) version 0.2.2.19 for these APs contain
+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. At the time of this writing,
-you should be able to download firmware v. 0.2.2.21 including
-the corresponding TFTP utility for example from the following link:
+version above 0.2.2.19. More on firmware upgrade subject see next section.
+
+Firmware available free of charge for ATMEL12350 MIB devices:
+-------------------------------------------------------------
+If you own device that is detected as 'ATMEL12350 MIB' by ap-utils, chances
+are that free-of-charge EZYNET-enhanced firmware upgrade is eligible for you!
+Upgrading firmware in your AP may have following advantages for you:
+
+- supporting more options; apparently the richest set of them available
+  for ATMEL+RFMD devices to day
+
+- preventing 'death by reconfiguration bug' present in older firmwares.
+
+- RSSI diagnostics in both AP and client modes at no cost!
+
+Your device will qualify for free-of-charge firmware upgrade in case
+it would satisfy the following (SATISFYING ALL POINTS IS MANDATORY!):
+
+1. It is detected as 'ATMEL12350' MIB and 'GEMTEK' vendor MIB extension
+   by ap-utils.
+
+2. It has second SRAM chip. The sign of second SRAM chip availability
+   is presence of (poor, locky) web management interface.
+
+3. it runs firmware 0.2.x.x except 0.2.1.1
+
+Should it satisfy all three points above, you may now perform upgrading.
+
+0. READ MANPAGE FOR ap-tftp !!!
+
+1. download the AP firmware (*.rom files) by EZYNET from the following URL:
+   ftp://ftp.unob.cz/pub/firmware/wlan/atmel+rfmd/
+
+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.
+
+   Second, upgrade with 0.2.2.20.rom image. This is the 'primary' firmware
+   with web interface (which you apparently wont use at all).
+
+3. You now have device with ATMEL12350 MIB & EZYNET extensions !!!
+
+Should you observe that the device suddenly switched to 0.2.0.20 firmware
+after some time, it means that the 'primary' firmware has been damaged
+in flash by some odd circumstances, and you should repeat step 2. above
+to fix it.
+[Note: this may only happen under _extremely_ rare circumstances, when,
+for example, lightning stroke appears too close to the AP, or when AP
+power supply voltage suddenly drops below sane level and returns back]
 
-http://www.sparklan.com/download.htm
+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:
 
-or send your AP to its supplier for firmware replacement in case
-he's able to supply you with customarily enhanced firmware version
-above 0.2.2.19.
+http://www.sparklan.com/Downloads/11b/AP/WX-1590_Client-Mode/Firmware/
+Client_Mode_firmware_WX-1590_v0.3.2.6.zip
 
 Frequently Asked Questions
 --------------------------
@@ -178,7 +243,7 @@ Windows-based setup utility.
 Try to install the accompanying Windows SNMP setup utility, and
 browse the directory to which you have got it installed.
 If you find the mentioned file, send this file via e-mail
-to <aputils-wmibs at cedric dot vabo dot cz> or <roma at polesye dot net>.
+to <jr-aputils at cedric dot vabo dot cz> or <roma at polesye dot net>.
 Chances are, that this file matches more or less the MIBs
 of other devices already being supported by ap-utils, and thus the
 utility code can be tailored accordingly to support your AP
@@ -190,6 +255,8 @@ 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.
 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/ .
+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
 visit http://ap-utils.polesye.net/ .
 
@@ -198,8 +265,8 @@ Contributing & reporting problems
 Any help in developing, bugfixing and testing is welcome. Also any
 additional documentation, free hardware to support this project and job offers
 are greatly welcome.
-Please send your comments, if any, to my email -
-roma at polesye.net or to the maillist.
+Please send your comments, if any, to my email - roma at polesye.net
+or to the maillist.
 
 Before sending bugreports please be sure to read docs (firstly, README and FAQ)
 and upgrade to the latest version of ap-utils. If problem still exists, then
diff --git a/THANKS b/THANKS
index 99f577d35abf677c38ef306f2e0dc2b19416a7a7..9e7945cccdaacdce04790846bd96c0d3f88987a7 100644 (file)
--- a/THANKS
+++ b/THANKS
@@ -30,7 +30,8 @@ Michel Robitaille <robitail AT IRO.UMontreal.CA> - french localization
 Andy Igoshin <ai at vsu.ru> - AIX 4.3.3 and AIX native compiler port, a lot of big_endian and code fixes
 Rahul G <rahul at smartbridges.com> - sources to encode object identifiers
 Wojciech Puchar <wojtek at tensor.3miasto.net> - polish localization, hardware for testing
-Jan Rafaj <jr-aputils at cedric.vabo.cz> - spelling fixes, bugfixes, functionality enhancements, Q/A
+Jan Rafaj <jr-aputils at cedric.vabo.cz> - spelling fixes, bugfixes, many functionality enhancements, testing, further development and Q/A
+E-ZY.NET for very kind permission to freely use their functionally enhanced firmware for ATMEL+RFMD boards
 Ashley Gittins <ap-utils at purple dot dropbear dot id dot au> - ap-mrtg changes to support ATMEL12350/ME-102
 Daniel E. Eisenbud <eisenbud at cbio dot mskcc dot org> - MacOS X and Solaris porting
 
diff --git a/TODO b/TODO
index 8bada48341b8a3dfab0248dbeed404d506c31369..834b3c6ea563f725a0fdeab3c71c53af73744cc9 100644 (file)
--- a/TODO
+++ b/TODO
@@ -4,26 +4,20 @@ TODO for ap-utils:
 * porting to other Unix'es and platforms (ALWAYS)
 * support new AP's (ALWAYS)
 
-* (maybe): move S_DEFCHAN message up to screen beginning in set_oeminfo.c
+* try to implement an ap-dfu utility [already scheduled for next release!]
+* 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
-
-* implement displaying of 'NetworkSettings' OID structure in place of
-  'Stations' submenu, if the target AP using VERNET ATMEL12350 MIB
-  is in STA mode. This would finally bring us client-mode diagnostics
-  (client-side RSSI and wireless connection status), that has been
-  been missing so badly for a long time (for other ATMEL12350 MIBs
-  and ATMEL410 non-SB MIBs, it will apparently stay missing forever,
-  unfortunately)
 * switch the 'Status' field in 'Stations' from numeric to verbose representation
-* add 802.1X support for ATMEL12350 APs
 * patch test.c so that it works with ATMEL12350 devices
-* update src/ap-gl.c to reflect changes made in src/stations.c during 1.4.1pre*
-  transition
 * try to not rely on actually configured subnet information on each
   network interface in ap scan
 * implement rssi view toggling for nwn_stations()
 * update manpages
-* increase/disable knownAPs limit
+* 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
index 3d763da1914e5800961bb4d2f9296de1f6ce597d..e5c48e25818832610321f84ac4d6b111261ab1e8 100644 (file)
@@ -23,6 +23,6 @@ LIBS = @INTLLIBS@ @LIBS@
 
 bin_PROGRAMS = ap-gl
  
-ap_gl_SOURCES = ap-gl.c auth_mac.c bridge.c stations.c
+ap_gl_SOURCES = ap-gl.c auth.c bridge.c stations.c
 ap_gl_LDADD = ../lib/libap.a -lmenu
 
index ff3720d4c4e36d41bd1812e4df7e650e2f2ffa1d..2165f9aeee07d18566b94775d2028758414f7144 100644 (file)
@@ -71,6 +71,7 @@ CCDEPMODE = @CCDEPMODE@
 CFLAGS = @CFLAGS@
 CPP = @CPP@
 CPPFLAGS = @CPPFLAGS@
+CURSESLIBS = @CURSESLIBS@
 CYGPATH_W = @CYGPATH_W@
 DATADIRNAME = @DATADIRNAME@
 
@@ -161,7 +162,7 @@ INCLUDES = -I../lib -I../intl -I..
 
 bin_PROGRAMS = ap-gl
 
-ap_gl_SOURCES = ap-gl.c auth_mac.c bridge.c stations.c
+ap_gl_SOURCES = ap-gl.c auth.c bridge.c stations.c
 ap_gl_LDADD = ../lib/libap.a -lmenu
 subdir = ap-gl
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -171,7 +172,7 @@ CONFIG_CLEAN_FILES =
 bin_PROGRAMS = ap-gl$(EXEEXT)
 PROGRAMS = $(bin_PROGRAMS)
 
-am_ap_gl_OBJECTS = ap-gl.$(OBJEXT) auth_mac.$(OBJEXT) bridge.$(OBJEXT) \
+am_ap_gl_OBJECTS = ap-gl.$(OBJEXT) auth.$(OBJEXT) bridge.$(OBJEXT) \
        stations.$(OBJEXT)
 ap_gl_OBJECTS = $(am_ap_gl_OBJECTS)
 ap_gl_DEPENDENCIES = ../lib/libap.a
@@ -180,7 +181,7 @@ ap_gl_LDFLAGS =
 DEFAULT_INCLUDES =  -I. -I$(srcdir) -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/config/depcomp
 am__depfiles_maybe = depfiles
-@AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/ap-gl.Po ./$(DEPDIR)/auth_mac.Po \
+@AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/ap-gl.Po ./$(DEPDIR)/auth.Po \
 @AMDEP_TRUE@   ./$(DEPDIR)/bridge.Po ./$(DEPDIR)/stations.Po
 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
        $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
@@ -234,7 +235,7 @@ distclean-compile:
        -rm -f *.tab.c
 
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ap-gl.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/auth_mac.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/auth.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bridge.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stations.Po@am__quote@
 
index 610d949c43635e6b30e696942c7bd5fccdd736cf..79f70a1b7b3cdd03098fb79c7a559576918c18d2 100644 (file)
@@ -1,5 +1,5 @@
 /*
- *      ap-config.c from Wireless Access Point Utilites for Unix
+ *      ap-gl.c from Wireless Access Point Utilites for Unix
  *
  * Copyright (c) 2002 Roman Festchook <roma at polesye dot net>
  *
@@ -42,7 +42,7 @@ void config_menu()
         0},
        {_("Wireless"), _("Set wireless options"), atmel_wireless, 0},
        {_("Privacy"), MENU_ENCRYPT, wep, 0},
-       {_("MAC auth"), MENU_MAC, atmel_auth_mac, 0},
+       {_("Auth"), MENU_AUTH, atmel_auth, 0},
        {_("Community"), MENU_COMMUNITY, AuthorizedSettings, 0},
        {_("Radio"), _("Set radio signal power and antenna options"),
         power, 0},
@@ -131,10 +131,19 @@ int main( /*int argc, char **argv */ )
     initscr();
     if (has_colors()) {
        start_color();
-       init_pair(1, COLOR_BLACK, COLOR_CYAN);
-       init_pair(2, COLOR_BLACK, COLOR_WHITE);
-       init_pair(3, COLOR_BLACK, COLOR_GREEN);
-       init_pair(4, COLOR_WHITE, COLOR_RED);
+
+       /* Never trust that these are defined by default. */
+       init_pair (COLOR_RED, COLOR_RED, COLOR_BLACK );
+       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_CYAN, COLOR_CYAN, COLOR_BLACK);
+
+       init_pair(11, COLOR_BLACK, COLOR_CYAN);
+       init_pair(12, COLOR_BLACK, COLOR_WHITE);
+       init_pair(13, COLOR_BLACK, COLOR_GREEN);
+       init_pair(14, COLOR_WHITE, COLOR_RED);
     }
 
     noraw();
@@ -147,12 +156,12 @@ int main( /*int argc, char **argv */ )
 
 /* draw help win */
     win_for_help = newwin(1, COLS, LINES - 1, 0);
-    wattrset(win_for_help, COLOR_PAIR(1));
+    wattrset(win_for_help, COLOR_PAIR(11));
     print_help("");
 
 /* draw title win */
     win_for_title = newwin(1, COLS, 0, 0);
-    wattrset(win_for_title, COLOR_PAIR(1));
+    wattrset(win_for_title, COLOR_PAIR(11));
     for (i = 0; i < COLS; i++)
        waddch(win_for_title, ' ');
     sprintf(message, _("Wireless Access Point Configurator ver. %s"),
@@ -165,7 +174,7 @@ int main( /*int argc, char **argv */ )
     sub_for_menu = derwin(win_for_menu, LINES - 5, MCOLS - 2, 2, 1);
     set_menu_win(NULL, win_for_menu);
     set_menu_sub(NULL, sub_for_menu);
-    attrset(COLOR_PAIR(1));
+    attrset(COLOR_PAIR(11));
 
     /* íÁÌÀÀ ÒÁÍËÕ */
     waddch(win_for_menu, ACS_BSSB);
diff --git a/ap-gl/auth.c b/ap-gl/auth.c
new file mode 100644 (file)
index 0000000..1493629
--- /dev/null
@@ -0,0 +1,472 @@
+/*
+ *      auth.c from Access Point SNMP Utils for Linux
+ *
+ * Copyright (c) 2002 Roman Festchook <roma at polesye dot net>
+ *
+ * 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
+ * June 1991 as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ */
+
+#include <stdlib.h>
+#include <unistd.h>
+#include <string.h>
+#include "ap-utils.h"
+
+#define MAX_LINES LINES-6
+#define PACKET_ERROR _("AuthorizedMacTableString packet error")
+
+#define AUTH_TITLE _("APClient authorization credentials")
+
+#define MAC_AUTH _("[A] MAC authorization: ")
+#define MAC_ADD  _("Enter MAC: ")
+#define MAC_DEL  _("Delete Num: ")
+#define MAC_HEADER _("NUM       MAC address")
+#define MAC_HELP _("A - auth; N - new; D - del; arrows - scroll; W - write conf; Q - quit")
+#define MAC_RADIUS_HELP _("A - auth; IPSTF - set; W - write conf; Q - quit")
+#define MAC_NONE_HELP _("A - auth; W - write conf; Q - quit")
+
+#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: ")
+#define RADIUS_PORT _("[F] RADIUS SOURCE PORT: ")
+
+extern WINDOW *main_sub;
+extern int LINES;
+extern short ap_type;
+
+void atmel_auth()
+{
+    struct AuthorizedMacTableString {
+       unsigned int short Action;
+       unsigned int short NumOfAllTableAddresses;
+       unsigned int short NumOfCurrentAddress;
+       unsigned char MacAddress[6];
+    } *AuthMac = NULL, get;
+
+    struct MacListStat *pmac, *first = NULL, *curr = NULL;
+    uint32_t auth_mac_hw;
+
+    char EnableAuthMAC[] =
+       { 0x2B, 0x06, 0x01, 0x04, 0x01, 0x83, 0x1A, 0x01,
+       0x02, 0x06, 0x01, 0x00
+    };
+    char AutorizedMac[] = { 0x2B, 0x06, 0x01, 0x04, 0x01, 0x83, 0x1A, 0x01,
+       0x02, 0x06, 0x02, 0x00
+    };
+
+    char AuthRadiusIP[] = { 0x2B, 0x06, 0x01, 0x04, 0x01, 0x83, 0x1A, 0x01,
+       0x02, 0x06, 0x03, 0x00
+    };
+    char AuthRadiusSecret[] = { 0x2B, 0x06, 0x01, 0x04, 0x01, 0x83, 0x1A, 0x01,
+       0x02, 0x06, 0x04, 0x00
+    };
+    char AuthRadiusSecretLength[] = { 0x2B, 0x06, 0x01, 0x04, 0x01, 0x83, 0x1A, 0x01,
+       0x02, 0x06, 0x05, 0x00
+    };
+    char AuthRadiusPort[] = { 0x2B, 0x06, 0x01, 0x04, 0x01, 0x83, 0x1A, 0x01,
+       0x02, 0x06, 0x06, 0x00
+    };
+    char AuthRadiusReauthorizationTime[] = { 0x2B, 0x06, 0x01, 0x04, 0x01, 0x83, 0x1A, 0x01,
+       0x02, 0x06, 0x07, 0x00
+    };
+    char AuthRadiusDestinPort[] = { 0x2B, 0x06, 0x01, 0x04, 0x01, 0x83, 0x1A, 0x01,
+       0x02, 0x06, 0x08, 0x00
+    };
+
+    char *auth_types[] = { _("Internal"), OFF, "RADIUS" };
+
+    struct in_addr radius_ip;
+    char message[1024], m_authmac = 0, radius_secret[32], m_radius_secret=0, m_radius_ip=0;
+    int radius_port, radius_time, radius_dest_port, m_radius_port=0, m_radius_time=0, m_radius_dest_port=0;
+    int i, total_mac, auth_mac = 0, mac_num = 0, begin=0, end=0, c=0;
+    varbind varbinds[7];
+
+    memcpy(radius_secret, _("<hidden>"), 32); 
+
+    varbinds[0].oid = EnableAuthMAC;
+    varbinds[0].len_oid = sizeof(EnableAuthMAC);
+    varbinds[0].type = NULL_VALUE;
+    varbinds[0].len_val = 0;
+
+    varbinds[1].oid = AuthRadiusIP;
+    varbinds[1].len_oid = sizeof(AuthRadiusIP);
+    varbinds[1].type = NULL_VALUE;
+    varbinds[1].len_val = 0;
+
+    varbinds[3].oid = AuthRadiusPort;
+    varbinds[3].len_oid = sizeof(AuthRadiusPort);
+    varbinds[3].type = NULL_VALUE;
+    varbinds[3].len_val = 0;
+
+    varbinds[4].oid = AuthRadiusReauthorizationTime;
+    varbinds[4].len_oid = sizeof(AuthRadiusReauthorizationTime);
+    varbinds[4].type = NULL_VALUE;
+    varbinds[4].len_val = 0;
+
+    varbinds[2].oid = AuthRadiusDestinPort;
+    varbinds[2].len_oid = sizeof(AuthRadiusDestinPort);
+    varbinds[2].type = NULL_VALUE;
+    varbinds[2].len_val = 0;
+
+    print_help(WAIT_RET);
+    if (snmp(varbinds, 5, GET) < 5) {
+       print_helperr(ERR_RET);
+       goto exit;
+    }
+    print_top(NULL, AUTH_TITLE);
+
+    auth_mac = *(varbinds[0].value);
+    memcpy(&radius_ip.s_addr, varbinds[1].value, 4);
+    memcpy(&radius_dest_port, varbinds[2].value, 2);
+    radius_dest_port = ntohs(radius_dest_port);
+    memcpy(&radius_port, varbinds[3].value, 2);
+    radius_port = ntohs(radius_port);
+    memcpy(&radius_time, varbinds[4].value, 2);
+    radius_time = ntohs(radius_time);
+       
+    sprintf(message, "%s%s", MAC_AUTH, auth_types[auth_mac-1]);
+    mvwaddstr(main_sub, 0, 0, message);
+    wrefresh(main_sub);
+
+    total_mac = 0;
+    mac_num = 0;
+
+    while (mac_num <= total_mac) {
+       get.Action = 0x02; rshort(get.Action);
+       get.NumOfAllTableAddresses = total_mac; rshort(get.NumOfAllTableAddresses);
+       get.NumOfCurrentAddress = mac_num; rshort(get.NumOfCurrentAddress);
+
+       varbinds[0].oid = AutorizedMac;
+       varbinds[0].len_oid = sizeof(AutorizedMac);
+       varbinds[0].value = (char *) &get;
+       varbinds[0].len_val = 12;
+       varbinds[0].type = STRING_VALUE;
+
+       i = snmp(varbinds, 1, SET);
+       if (i <= 0) {
+           print_helperr(ERR_RET);
+           goto exit;
+       }
+
+       if (varbinds[0].len_val == 12) {
+           if (AuthMac)
+               free(AuthMac);
+           AuthMac =
+               (struct AuthorizedMacTableString *) malloc(varbinds[0].
+                                                          len_val);
+           memcpy(AuthMac, varbinds[0].value, varbinds[0].len_val);
+/*         AuthMac =
+               (struct AuthorizedMacTableString *) varbinds[0].value;*/
+       } else {
+           print_helperr(PACKET_ERROR);
+           goto exit;
+       }
+
+       rshort(AuthMac->NumOfAllTableAddresses);
+       total_mac =
+           (AuthMac->NumOfAllTableAddresses ==
+            65535) ? 0 : AuthMac->NumOfAllTableAddresses;
+
+       if (mac_num) {
+           if (first == NULL) {
+               first = (struct MacListStat *)
+                   malloc(sizeof(struct MacListStat));
+               curr = first;
+           } else {
+               curr->next = (struct MacListStat *)
+                   malloc(sizeof(struct MacListStat));
+               curr = curr->next;
+           }
+           memcpy(curr->addr, AuthMac->MacAddress, 6);
+           curr->next = NULL;
+       }
+       mac_num++;
+    }
+
+choose_view:
+    clear_main(2);
+    if (auth_mac == 1) {
+       mvwaddstr(main_sub, 2, 1, MAC_HEADER);
+       begin = 1;
+       end = (MAX_LINES < mac_num) ? MAX_LINES : mac_num;
+       scroll_rows(first, begin, end, 3, 0);
+        print_help(MAC_HELP);
+    } else if(auth_mac == 3) {
+       sprintf(message, "%s%s", RADIUS_IP, inet_ntoa(radius_ip));
+       mvwaddstr(main_sub, 2, 0, message);
+       sprintf(message, "%s%d", RADIUS_DEST_PORT, radius_dest_port);
+       mvwaddstr(main_sub, 3, 0, message);
+       sprintf(message, "%s%s", RADIUS_SECRET, radius_secret);
+       mvwaddstr(main_sub, 4, 0, message);
+       sprintf(message, "%s%d", RADIUS_TIME, radius_time);
+       mvwaddstr(main_sub, 5, 0, message);
+       sprintf(message, "%s%d", RADIUS_PORT, radius_port);
+       mvwaddstr(main_sub, 6, 0, message);
+
+        wrefresh(main_sub);
+        print_help(MAC_RADIUS_HELP);
+    } else {
+        print_help(MAC_NONE_HELP);
+    }
+    noecho();
+
+    while (1) {
+       switch (getch()) {
+       case 'q':
+       case 'Q':
+           goto quit;
+       case 'a':
+       case 'A':
+           auth_mac = menu_choose(0, strlen(MAC_AUTH), auth_types, 3)+1;
+           clear_main_new(0, 1);
+           print_menusel(0, 0, MAC_AUTH, auth_types[auth_mac-1]);
+           m_authmac = 1;
+           goto choose_view;
+       case 'S':
+       case 's':
+            if (auth_mac != 3) {
+                       continue;
+            }
+           get_value(radius_secret, 4, strlen(RADIUS_SECRET), 32, ANY_STRING, 0, 0, NULL);
+           m_radius_secret = 1;
+           continue;
+       case 'P':
+       case 'p':
+            if (auth_mac != 3) {
+               continue;
+            }
+           get_value(message, 3, strlen(RADIUS_DEST_PORT), 6, INT_STRING, 0, 65535, MAC_RADIUS_HELP);
+           radius_dest_port = atoi(message);
+           m_radius_dest_port = 1;
+            continue;
+       case 'T':
+        case 't':
+            if (auth_mac != 3) {
+                   continue;
+           }
+            get_value(message, 5, strlen(RADIUS_TIME), 6, INT_STRING, 0, 65535, MAC_RADIUS_HELP);
+            radius_time = atoi(message);
+            m_radius_time = 1;
+            continue;
+       case 'F':
+       case 'f':
+           if (auth_mac != 3) {
+              continue;
+           }
+           get_value(message, 6, strlen(RADIUS_PORT), 6, INT_STRING, 0, 65535, MAC_RADIUS_HELP);
+           radius_port = atoi(message);
+           m_radius_port = 1;
+           continue;
+       case 'I':
+       case 'i':
+            if (auth_mac != 3) {
+               continue;
+           }
+           get_ip(&radius_ip, 2, strlen(RADIUS_IP), MAC_RADIUS_HELP);
+           m_radius_ip = 1;
+           continue;
+       case 'd':
+       case 'D':
+           if (auth_mac != 1) {
+               continue;
+           }
+           mvwaddstr(main_sub, 1, 0, MAC_DEL);
+           get_value(message, 1, strlen(MAC_DEL), 5, INT_STRING,
+               1, mac_num - 1, NULL);
+           i = atoi(message);
+           if (i == 1) {
+               pmac = first;
+               first = first->next;
+               free(pmac);
+           } else {
+               curr = first;
+               while (--i > 1)
+                   curr = curr->next;
+               pmac = curr->next;
+               curr->next = pmac->next;
+               free(pmac);
+           }
+           mac_num--;
+           begin = 1;
+           end = (MAX_LINES < mac_num) ? MAX_LINES : mac_num;
+           scroll_rows(first, begin, end, 3, 0);
+           clear_main_new(1, 2);
+           continue;
+       case 'n':
+       case 'N':
+           if (auth_mac != 1) {
+               continue;
+           }
+           mvwaddstr(main_sub, 1, 0, MAC_ADD);
+           curr = first;
+           while (curr && curr->next)
+               curr = curr->next;
+           if (first == NULL) {
+               first = (struct MacListStat *)
+                   malloc(sizeof(struct MacListStat));
+               curr = first;
+           } else {
+               curr->next = (struct MacListStat *)
+                   malloc(sizeof(struct MacListStat));
+               curr = curr->next;
+           }
+           curr->next = NULL;
+           mac_num++;
+           get_mac(curr->addr, 1, strlen(MAC_ADD));
+           begin = 1;
+           end = (MAX_LINES < mac_num) ? MAX_LINES : mac_num;
+           scroll_rows(first, begin, end, 3, 0);
+           clear_main_new(1, 2);
+           continue;
+       case 'w':
+       case 'W':
+           i=0;
+           if (m_authmac) {
+               auth_mac_hw = swap4(auth_mac);
+               varbinds[i].oid = EnableAuthMAC;
+               varbinds[i].len_oid = sizeof(EnableAuthMAC);
+               varbinds[i].type = INT_VALUE;
+               varbinds[i].value = (char *) &auth_mac_hw;
+               varbinds[i].len_val = 1;
+               i++;
+           }
+           
+           if (m_radius_ip) {
+                radius_ip.s_addr = htonl(radius_ip.s_addr);
+               radius_ip.s_addr = swap4(radius_ip.s_addr);
+                varbinds[i].oid = AuthRadiusIP;
+                varbinds[i].len_oid = sizeof(AuthRadiusIP);
+               varbinds[i].value = (char *) &radius_ip.s_addr;
+               varbinds[i].len_val = 4;
+               varbinds[i].type = INT_VALUE;
+               i++;
+           }
+          
+            if (m_radius_dest_port) {
+               varbinds[i].oid = AuthRadiusDestinPort;
+               varbinds[i].len_oid = sizeof(AuthRadiusDestinPort);
+               radius_dest_port = htons(radius_dest_port);
+               varbinds[i].value = (char *) &radius_dest_port;
+               varbinds[i].len_val = 2;
+               varbinds[i].type = 0x02;
+               i++;
+           }
+           
+            if (m_radius_time) {
+               varbinds[i].oid = AuthRadiusReauthorizationTime;
+               varbinds[i].len_oid = sizeof(AuthRadiusReauthorizationTime);
+               radius_time = htons(radius_time);
+               varbinds[i].value = (char *) &radius_time;
+                varbinds[i].len_val = 2;
+                varbinds[i].type = 0x02;
+                i++;
+            }
+
+           if (m_radius_port) {
+               varbinds[i].oid = AuthRadiusPort;
+               varbinds[i].len_oid = sizeof(AuthRadiusPort);
+               radius_port = htons(radius_port);
+               varbinds[i].value = (char *) &radius_port;
+                varbinds[i].len_val = 2;
+                varbinds[i].type = 0x02;
+                i++;
+            }
+           if (m_radius_secret) {
+                c = strlen(radius_secret);
+               varbinds[i].oid = AuthRadiusSecretLength;
+               varbinds[i].len_oid = sizeof(AuthRadiusSecretLength);
+               varbinds[i].value = (char *)&c;
+               varbinds[i].len_val = 1;
+               varbinds[i].type = INT_VALUE;
+               i++;
+               varbinds[i].oid = AuthRadiusSecret;
+               varbinds[i].len_oid = sizeof(AuthRadiusSecret);
+               varbinds[i].value = radius_secret;
+               varbinds[i].len_val = c;
+               varbinds[i].type = STRING_VALUE;
+               i++;
+          }
+
+           print_help(WAIT_SET);
+           if (snmp(varbinds, i, SET) <= 0) {
+               print_helperr(ERR_RET);
+               goto exit;
+           }
+           
+           curr = first;
+           i = 1;
+           while (curr != NULL) {
+               get.Action = 0x01; rshort(get.Action);
+               get.NumOfAllTableAddresses = mac_num - 1; rshort(get.NumOfAllTableAddresses);
+               get.NumOfCurrentAddress = i; rshort(get.NumOfCurrentAddress);
+               memcpy(get.MacAddress, curr->addr, 6);
+               varbinds[0].oid = AutorizedMac;
+               varbinds[0].len_oid = sizeof(AutorizedMac);
+               varbinds[0].value = (char *) &get;
+               varbinds[0].len_val = 12;
+               varbinds[0].type = STRING_VALUE;
+               print_help(WAIT_SET);
+               if (snmp(varbinds, 1, SET) <= 0) {
+                   print_helperr(ERR_RET);
+                   goto exit;
+               }
+               if (varbinds[0].len_val != 12) {
+                   print_helperr(PACKET_ERROR);
+                   goto exit;
+               }
+               curr = curr->next;
+               i++;
+           }
+           print_help(DONE_SET);
+           goto exit;
+       case KEY_DOWN:
+       case KEY_RIGHT:
+           if (auth_mac != 1) {
+               continue;
+           }
+           if (end < mac_num) {
+               begin++;
+               end++;
+               scroll_rows(first, begin, end, 3, 0);
+           }
+           continue;
+       case KEY_UP:
+       case KEY_LEFT:
+           if (auth_mac != 1) {
+               continue;
+           }
+           if (begin > 1) {
+               begin--;
+               end--;
+               scroll_rows(first, begin, end, 3, 0);
+           }
+           continue;
+       }
+       continue;
+    }
+
+    print_help(ANY_KEY);
+  exit:
+    getch();
+  quit:
+    while ((curr = first)) {
+       first = curr->next;
+       free(curr);
+    }
+    if (AuthMac)
+       free(AuthMac);
+    print_top(NULL, NULL);
+    clear_main(0);
+}
diff --git a/ap-gl/auth_mac.c b/ap-gl/auth_mac.c
deleted file mode 100644 (file)
index edcd20f..0000000
+++ /dev/null
@@ -1,470 +0,0 @@
-/*
- *      auth.c from Access Point SNMP Utils for Linux
- *
- * Copyright (c) 2002 Roman Festchook <roma at polesye dot net>
- *
- * 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
- * June 1991 as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- */
-
-#include <stdlib.h>
-#include <unistd.h>
-#include <string.h>
-#include "ap-utils.h"
-
-#define MAX_LINES LINES-6
-#define PACKET_ERROR _("AuthorizedMacTableString packet error")
-
-#define MAC_AUTH _("[A] MAC authorization: ")
-#define MAC_ADD  _("Enter MAC: ")
-#define MAC_DEL  _("Delete Num: ")
-#define MAC_TITLE _("Authorized MAC addresses")
-#define MAC_HEADER _("NUM       MAC address")
-#define MAC_HELP _("A - auth; N - new; D - del; arrows - scroll; W - write conf; Q - quit")
-#define MAC_RADIUS_HELP _("A - auth; IPSTF - set; W - write conf; Q - quit")
-#define MAC_NONE_HELP _("A - auth; W - write conf; Q - quit")
-
-#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: ")
-#define RADIUS_PORT _("[F] RADIUS SOURCE PORT: ")
-
-extern WINDOW *main_sub;
-extern int LINES;
-extern short ap_type;
-
-void atmel_auth_mac()
-{
-    struct AuthorizedMacTableString {
-       unsigned int short Action;
-       unsigned int short NumOfAllTableAddresses;
-       unsigned int short NumOfCurrentAddress;
-       unsigned char MacAddress[6];
-    } *AuthMac = NULL, get;
-
-    struct MacListStat *pmac, *first = NULL, *curr = NULL;
-    uint32_t auth_mac_hw;
-
-    char EnableAuthMAC[] =
-       { 0x2B, 0x06, 0x01, 0x04, 0x01, 0x83, 0x1A, 0x01,
-       0x02, 0x06, 0x01, 0x00
-    };
-    char AutorizedMac[] = { 0x2B, 0x06, 0x01, 0x04, 0x01, 0x83, 0x1A, 0x01,
-       0x02, 0x06, 0x02, 0x00
-    };
-
-    char AuthRadiusIP[] = { 0x2B, 0x06, 0x01, 0x04, 0x01, 0x83, 0x1A, 0x01,
-       0x02, 0x06, 0x03, 0x00
-    };
-    char AuthRadiusSecret[] = { 0x2B, 0x06, 0x01, 0x04, 0x01, 0x83, 0x1A, 0x01,
-       0x02, 0x06, 0x04, 0x00
-    };
-    char AuthRadiusSecretLength[] = { 0x2B, 0x06, 0x01, 0x04, 0x01, 0x83, 0x1A, 0x01,
-       0x02, 0x06, 0x05, 0x00
-    };
-    char AuthRadiusPort[] = { 0x2B, 0x06, 0x01, 0x04, 0x01, 0x83, 0x1A, 0x01,
-       0x02, 0x06, 0x06, 0x00
-    };
-    char AuthRadiusReauthorizationTime[] = { 0x2B, 0x06, 0x01, 0x04, 0x01, 0x83, 0x1A, 0x01,
-       0x02, 0x06, 0x07, 0x00
-    };
-    char AuthRadiusDestinPort[] = { 0x2B, 0x06, 0x01, 0x04, 0x01, 0x83, 0x1A, 0x01,
-       0x02, 0x06, 0x08, 0x00
-    };
-
-    char *auth_types[] = { _("Internal"), OFF, "RADIUS" };
-
-    struct in_addr radius_ip;
-    char message[1024], m_authmac = 0, radius_secret[32], m_radius_secret=0, m_radius_ip=0;
-    int radius_port, radius_time, radius_dest_port, m_radius_port=0, m_radius_time=0, m_radius_dest_port=0;
-    int i, total_mac, auth_mac = 0, mac_num = 0, begin=0, end=0, c=0;
-    varbind varbinds[7];
-
-    memcpy(radius_secret, _("<hidden>"), 32); 
-
-    varbinds[0].oid = EnableAuthMAC;
-    varbinds[0].len_oid = sizeof(EnableAuthMAC);
-    varbinds[0].type = NULL_VALUE;
-    varbinds[0].len_val = 0;
-
-    varbinds[1].oid = AuthRadiusIP;
-    varbinds[1].len_oid = sizeof(AuthRadiusIP);
-    varbinds[1].type = NULL_VALUE;
-    varbinds[1].len_val = 0;
-
-    varbinds[3].oid = AuthRadiusPort;
-    varbinds[3].len_oid = sizeof(AuthRadiusPort);
-    varbinds[3].type = NULL_VALUE;
-    varbinds[3].len_val = 0;
-
-    varbinds[4].oid = AuthRadiusReauthorizationTime;
-    varbinds[4].len_oid = sizeof(AuthRadiusReauthorizationTime);
-    varbinds[4].type = NULL_VALUE;
-    varbinds[4].len_val = 0;
-
-    varbinds[2].oid = AuthRadiusDestinPort;
-    varbinds[2].len_oid = sizeof(AuthRadiusDestinPort);
-    varbinds[2].type = NULL_VALUE;
-    varbinds[2].len_val = 0;
-
-    print_help(WAIT_RET);
-    if (snmp(varbinds, 5, GET) <= 0) {
-       print_helperr(ERR_RET);
-       goto exit;
-    }
-    print_top(NULL, MAC_TITLE);
-
-    auth_mac = *(varbinds[0].value);
-    memcpy(&radius_ip.s_addr, varbinds[1].value, 4);
-    memcpy(&radius_dest_port, varbinds[2].value, 2);
-    radius_dest_port = ntohs(radius_dest_port);
-    memcpy(&radius_port, varbinds[3].value, 2);
-    radius_port = ntohs(radius_port);
-    memcpy(&radius_time, varbinds[4].value, 2);
-    radius_time = ntohs(radius_time);
-       
-    sprintf(message, "%s%s", MAC_AUTH, auth_types[auth_mac-1]);
-    mvwaddstr(main_sub, 0, 0, message);
-    wrefresh(main_sub);
-
-    total_mac = 0;
-    mac_num = 0;
-
-    while (mac_num <= total_mac) {
-       get.Action = 0x02; rshort(get.Action);
-       get.NumOfAllTableAddresses = total_mac; rshort(get.NumOfAllTableAddresses);
-       get.NumOfCurrentAddress = mac_num; rshort(get.NumOfCurrentAddress);
-
-       varbinds[0].oid = AutorizedMac;
-       varbinds[0].len_oid = sizeof(AutorizedMac);
-       varbinds[0].value = (char *) &get;
-       varbinds[0].len_val = 12;
-       varbinds[0].type = STRING_VALUE;
-
-       if (snmp(varbinds, 1, SET) <= 0) {
-           print_helperr(ERR_RET);
-           goto exit;
-       }
-
-       if (varbinds[0].len_val == 12) {
-           if (AuthMac)
-               free(AuthMac);
-           AuthMac =
-               (struct AuthorizedMacTableString *) malloc(varbinds[0].
-                                                          len_val);
-           memcpy(AuthMac, varbinds[0].value, varbinds[0].len_val);
-/*         AuthMac =
-               (struct AuthorizedMacTableString *) varbinds[0].value;*/
-       } else {
-           print_helperr(PACKET_ERROR);
-           goto exit;
-       }
-
-       rshort(AuthMac->NumOfAllTableAddresses);
-       total_mac =
-           (AuthMac->NumOfAllTableAddresses ==
-            65535) ? 0 : AuthMac->NumOfAllTableAddresses;
-
-       if (mac_num) {
-           if (first == NULL) {
-               first = (struct MacListStat *)
-                   malloc(sizeof(struct MacListStat));
-               curr = first;
-           } else {
-               curr->next = (struct MacListStat *)
-                   malloc(sizeof(struct MacListStat));
-               curr = curr->next;
-           }
-           memcpy(curr->addr, AuthMac->MacAddress, 6);
-           curr->next = NULL;
-       }
-       mac_num++;
-    }
-
-choose_view:
-    clear_main(2);
-    if (auth_mac == 1) {
-       mvwaddstr(main_sub, 2, 1, MAC_HEADER);
-       begin = 1;
-       end = (MAX_LINES < mac_num) ? MAX_LINES : mac_num;
-       scroll_rows(first, begin, end, 3, 0);
-        print_help(MAC_HELP);
-    } else if(auth_mac == 3) {
-       sprintf(message, "%s%s", RADIUS_IP, inet_ntoa(radius_ip));
-       mvwaddstr(main_sub, 2, 0, message);
-       sprintf(message, "%s%d", RADIUS_DEST_PORT, radius_dest_port);
-       mvwaddstr(main_sub, 3, 0, message);
-       sprintf(message, "%s%s", RADIUS_SECRET, radius_secret);
-       mvwaddstr(main_sub, 4, 0, message);
-       sprintf(message, "%s%d", RADIUS_TIME, radius_time);
-       mvwaddstr(main_sub, 5, 0, message);
-       sprintf(message, "%s%d", RADIUS_PORT, radius_port);
-       mvwaddstr(main_sub, 6, 0, message);
-
-        wrefresh(main_sub);
-        print_help(MAC_RADIUS_HELP);
-    } else {
-        print_help(MAC_NONE_HELP);
-    }
-    noecho();
-
-    while (1) {
-       switch (getch()) {
-       case 'q':
-       case 'Q':
-           goto quit;
-       case 'a':
-       case 'A':
-           auth_mac = menu_choose(0, strlen(MAC_AUTH), auth_types, 3)+1;
-           clear_main_new(0, 1);
-           print_menusel(0, 0, MAC_AUTH, auth_types[auth_mac-1]);
-           m_authmac = 1;
-           goto choose_view;
-       case 'S':
-       case 's':
-            if (auth_mac != 3) {
-                       continue;
-            }
-           get_value(radius_secret, 4, strlen(RADIUS_SECRET), 32, ANY_STRING, 0, 0, NULL);
-           m_radius_secret = 1;
-           continue;
-       case 'P':
-       case 'p':
-            if (auth_mac != 3) {
-               continue;
-            }
-           get_value(message, 3, strlen(RADIUS_DEST_PORT), 6, INT_STRING, 0, 65535, MAC_RADIUS_HELP);
-           radius_dest_port = atoi(message);
-           m_radius_dest_port = 1;
-            continue;
-       case 'T':
-        case 't':
-            if (auth_mac != 3) {
-                   continue;
-           }
-            get_value(message, 5, strlen(RADIUS_TIME), 6, INT_STRING, 0, 65535, MAC_RADIUS_HELP);
-            radius_time = atoi(message);
-            m_radius_time = 1;
-            continue;
-       case 'F':
-       case 'f':
-           if (auth_mac != 3) {
-              continue;
-           }
-           get_value(message, 6, strlen(RADIUS_PORT), 6, INT_STRING, 0, 65535, MAC_RADIUS_HELP);
-           radius_port = atoi(message);
-           m_radius_port = 1;
-           continue;
-       case 'I':
-       case 'i':
-            if (auth_mac != 3) {
-               continue;
-           }
-           get_ip(&radius_ip, 2, strlen(RADIUS_IP), MAC_RADIUS_HELP);
-           m_radius_ip = 1;
-           continue;
-       case 'd':
-       case 'D':
-           if (auth_mac != 1) {
-               continue;
-           }
-           mvwaddstr(main_sub, 1, 0, MAC_DEL);
-           get_value(message, 1, strlen(MAC_DEL), 5, INT_STRING,
-               1, mac_num - 1, NULL);
-           i = atoi(message);
-           if (i == 1) {
-               pmac = first;
-               first = first->next;
-               free(pmac);
-           } else {
-               curr = first;
-               while (--i > 1)
-                   curr = curr->next;
-               pmac = curr->next;
-               curr->next = pmac->next;
-               free(pmac);
-           }
-           mac_num--;
-           begin = 1;
-           end = (MAX_LINES < mac_num) ? MAX_LINES : mac_num;
-           scroll_rows(first, begin, end, 3, 0);
-           clear_main_new(1, 2);
-           continue;
-       case 'n':
-       case 'N':
-           if (auth_mac != 1) {
-               continue;
-           }
-           mvwaddstr(main_sub, 1, 0, MAC_ADD);
-           curr = first;
-           while (curr && curr->next)
-               curr = curr->next;
-           if (first == NULL) {
-               first = (struct MacListStat *)
-                   malloc(sizeof(struct MacListStat));
-               curr = first;
-           } else {
-               curr->next = (struct MacListStat *)
-                   malloc(sizeof(struct MacListStat));
-               curr = curr->next;
-           }
-           curr->next = NULL;
-           mac_num++;
-           get_mac(curr->addr, 1, strlen(MAC_ADD));
-           begin = 1;
-           end = (MAX_LINES < mac_num) ? MAX_LINES : mac_num;
-           scroll_rows(first, begin, end, 3, 0);
-           clear_main_new(1, 2);
-           continue;
-       case 'w':
-       case 'W':
-           i=0;
-           if (m_authmac) {
-               auth_mac_hw = swap4(auth_mac);
-               varbinds[i].oid = EnableAuthMAC;
-               varbinds[i].len_oid = sizeof(EnableAuthMAC);
-               varbinds[i].type = INT_VALUE;
-               varbinds[i].value = (char *) &auth_mac_hw;
-               varbinds[i].len_val = 1;
-               i++;
-           }
-           
-           if (m_radius_ip) {
-                radius_ip.s_addr = htonl(radius_ip.s_addr);
-               radius_ip.s_addr = swap4(radius_ip.s_addr);
-                varbinds[i].oid = AuthRadiusIP;
-                varbinds[i].len_oid = sizeof(AuthRadiusIP);
-               varbinds[i].value = (char *) &radius_ip.s_addr;
-               varbinds[i].len_val = 4;
-               varbinds[i].type = INT_VALUE;
-               i++;
-           }
-          
-            if (m_radius_dest_port) {
-               varbinds[i].oid = AuthRadiusDestinPort;
-               varbinds[i].len_oid = sizeof(AuthRadiusDestinPort);
-               radius_dest_port = htons(radius_dest_port);
-               varbinds[i].value = (char *) &radius_dest_port;
-               varbinds[i].len_val = 2;
-               varbinds[i].type = 0x02;
-               i++;
-           }
-           
-            if (m_radius_time) {
-               varbinds[i].oid = AuthRadiusReauthorizationTime;
-               varbinds[i].len_oid = sizeof(AuthRadiusReauthorizationTime);
-               radius_time = htons(radius_time);
-               varbinds[i].value = (char *) &radius_time;
-                varbinds[i].len_val = 2;
-                varbinds[i].type = 0x02;
-                i++;
-            }
-
-           if (m_radius_port) {
-               varbinds[i].oid = AuthRadiusPort;
-               varbinds[i].len_oid = sizeof(AuthRadiusPort);
-               radius_port = htons(radius_port);
-               varbinds[i].value = (char *) &radius_port;
-                varbinds[i].len_val = 2;
-                varbinds[i].type = 0x02;
-                i++;
-            }
-           if (m_radius_secret) {
-                c = strlen(radius_secret);
-               varbinds[i].oid = AuthRadiusSecretLength;
-               varbinds[i].len_oid = sizeof(AuthRadiusSecretLength);
-               varbinds[i].value = (char *)&c;
-               varbinds[i].len_val = 1;
-               varbinds[i].type = INT_VALUE;
-               i++;
-               varbinds[i].oid = AuthRadiusSecret;
-               varbinds[i].len_oid = sizeof(AuthRadiusSecret);
-               varbinds[i].value = radius_secret;
-               varbinds[i].len_val = c;
-               varbinds[i].type = STRING_VALUE;
-               i++;
-          }
-
-           print_help(WAIT_SET);
-           if (snmp(varbinds, i, SET) <= 0) {
-               print_helperr(ERR_RET);
-               goto exit;
-           }
-           
-           curr = first;
-           i = 1;
-           while (curr != NULL) {
-               get.Action = 0x01; rshort(get.Action);
-               get.NumOfAllTableAddresses = mac_num - 1; rshort(get.NumOfAllTableAddresses);
-               get.NumOfCurrentAddress = i; rshort(get.NumOfCurrentAddress);
-               memcpy(get.MacAddress, curr->addr, 6);
-               varbinds[0].oid = AutorizedMac;
-               varbinds[0].len_oid = sizeof(AutorizedMac);
-               varbinds[0].value = (char *) &get;
-               varbinds[0].len_val = 12;
-               varbinds[0].type = STRING_VALUE;
-               print_help(WAIT_SET);
-               if (snmp(varbinds, 1, SET) <= 0) {
-                   print_helperr(ERR_RET);
-                   goto exit;
-               }
-               if (varbinds[0].len_val != 12) {
-                   print_helperr(PACKET_ERROR);
-                   goto exit;
-               }
-               curr = curr->next;
-               i++;
-           }
-           print_help(DONE_SET);
-           goto exit;
-       case KEY_DOWN:
-       case KEY_RIGHT:
-           if (auth_mac != 1) {
-               continue;
-           }
-           if (end < mac_num) {
-               begin++;
-               end++;
-               scroll_rows(first, begin, end, 3, 0);
-           }
-           continue;
-       case KEY_UP:
-       case KEY_LEFT:
-           if (auth_mac != 1) {
-               continue;
-           }
-           if (begin > 1) {
-               begin--;
-               end--;
-               scroll_rows(first, begin, end, 3, 0);
-           }
-           continue;
-       }
-       continue;
-    }
-
-    print_help(ANY_KEY);
-  exit:
-    getch();
-  quit:
-    while ((curr = first)) {
-       first = curr->next;
-       free(curr);
-    }
-    if (AuthMac)
-       free(AuthMac);
-    print_top(NULL, NULL);
-    clear_main(0);
-}
index 1ef881361031557067ff58d11de813d27a69f9d9..aa2ed34ce3707bf3d27cd737609cbda111186723 100644 (file)
@@ -33,7 +33,7 @@
 #define OPER _("[O] Operational mode: ")
 #define REMOTE_MAC _("[M] Preferred BSSID (remote MAC addr.): ")
 //#define CF_PORT _("[C] Configuration-enabled port(s): ")
-#define TRAP_PORT _("[T] Trap-sending port(s): ")
+#define TRAP_PORT _("[T] Trap-sending port: ")
 #define FW_BCAST _("[R] Forward broadcast traffic: ")
 //#define SB_BCAST _("[B] Isolate wireless clients (broadcast traffic): ")
 #define SB_UCAST _("[U] Isolate wireless clients: ")
@@ -41,6 +41,7 @@
 
 extern short ap_type;
 
+
 void bridging()
 {
 
@@ -77,7 +78,17 @@ void bridging()
        { 0x2B, 0x06, 0x01, 0x04, 0x01, 0xE0, 0x3E, 0x01, 0x01, 0x02, 0x07,
        0x00
     };
-*/    /* This one is ATMEL12350 TELLUS MIB specific. */
+*/
+
+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
@@ -88,8 +99,7 @@ void bridging()
        0x00
     };
 
-    /* These 3 are ATMEL12350 MIB specific. */
-    char ForwardBroadcast[] =
+    char ForwarbBcast[] =
        { 0x2B, 0x06, 0x01, 0x04, 0x01, 0x83, 0x1A, 0x01, 0x01, 0x03, 0x02,
        0x00
     };
@@ -120,14 +130,7 @@ void bridging()
        m_dhcp = 0, m_ip = 0, m_mask = 0, m_gw = 0, m_remote_bssid = 0,
        /*m_config_port = 0, */m_trap_port = 0, m_fw_bcast = 0, /*m_sb_bcast = 0,*/
        m_sb_ucast = 0;
-    char *bridge_modes[6] = {
-       _("Wireless Bridge Point to MultiPoint"),
-       _("Access Point"),
-       _("Access Point client"),
-       _("Wireless Bridge Point to Point"),
-       _("Repeater"),
-       ("unknown")
-    }, *pr_ports[2] = {
+    char *pr_ports[2] = {
        _("Ethernet"),
        _("Wireless")
     } /*, *cf_trap_ports[3] = {
@@ -166,11 +169,11 @@ void bridging()
     varbinds[7].oid = bridgeOperationalMode;
     varbinds[8].oid = sysTrapSwitch;
     varbinds[9].oid = bridgeRemoteBridgeBSSID;
-    varbinds[10].oid = ForwardBroadcast;
+    varbinds[10].oid = ForwarbBcast;
     varbinds[11].oid = SendBackUnicast;
     varbinds[12].oid = SendBackBcast;
 
-    if (snmp(varbinds, 13, GET) <= 0) {
+    if (snmp(varbinds, 13, GET) < 13) {
        print_helperr(ERR_RET);
        goto exit;
     }
@@ -435,8 +438,8 @@ void bridging()
                i++;
            }
 */         if (m_fw_bcast) {
-               varbinds[i].oid = ForwardBroadcast;
-               varbinds[i].len_oid = sizeof(ForwardBroadcast);
+               varbinds[i].oid = ForwarbBcast;
+               varbinds[i].len_oid = sizeof(ForwarbBcast);
                varbinds[i].type = INT_VALUE;
                varbinds[i].value = (char *) &fw_bcast;
                varbinds[i].len_val = 1;
index 9d47e0eab4618efa22f561ec415dac994e69a4af..d8913808bdc1ab061d7314c5d634f3acc4c8f74d 100644 (file)
@@ -60,7 +60,7 @@ void atmel_stations()
     int mac_num, begin, end, total_mac;
     varbind varbinds[1];
 
-    print_top(NULL, TITLE_STAS);
+    print_top(NULL, ST_TITLE);
 
     varbinds[0].oid = bridgeOperationalMode;
     varbinds[0].len_oid = sizeof(bridgeOperationalMode);
@@ -97,9 +97,12 @@ void atmel_stations()
     total_mac = *(varbinds[0].value);
     mac_num = 1;
 
-    sprintf(message, "%s: %d", TITLE_STAS, total_mac);
+    sprintf(message, "%s: %d", ST_TITLE, total_mac);
     print_top(NULL, message);
-    mvwaddstr(main_sub, 0, 1, _("#     MAC       LQ    RSSI   Status Port IP"));
+    wattrset(main_sub, COLOR_PAIR(13));
+    mvwaddstr(main_sub, 0, 0,
+       _("  #     MAC       Parent MAC  RSSI   LQ Sts MACn      IP        "));
+    wattrset(main_sub, A_NORMAL);
     noecho();
 
     while (mac_num <= total_mac) {
@@ -154,7 +157,7 @@ void atmel_stations()
        mac_num++;
     }
     begin = 1;
-    end = (MAX_LINES < mac_num) ? MAX_LINES : mac_num;
+    end = (mac_num > MAX_LINES) ? MAX_LINES : mac_num;
     scroll_rows(first, begin, end, 1, 2);
     while (1) {
        print_help(_("Arrows - scroll; S - save to file; Q - quit to menu."));
index 905e84c062de863d90f86e0438f66d5d8cce1751..bf7e4f09a3765846d8e9471bfce3ca47c0649e6a 100644 (file)
 /* Define if your <locale.h> file defines LC_MESSAGES. */
 #undef HAVE_LC_MESSAGES
 
-/* Define to 1 if you have the `curses' library (-lcurses). */
-#undef HAVE_LIBCURSES
-
-/* Define to 1 if you have the `ncurses' library (-lncurses). */
-#undef HAVE_LIBNCURSES
-
 /* Define to 1 if you have the <limits.h> header file. */
 #undef HAVE_LIMITS_H
 
index b0e85a724fe34b5e531082fce4db3f8f4e60ac03..e1e08a1b89b8718b97de78665fe539ca015f2e56 100755 (executable)
--- a/configure
+++ b/configure
@@ -308,7 +308,7 @@ ac_includes_default="\
 # include <unistd.h>
 #endif"
 
-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO AMTAR install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM AWK SET_MAKE am__leading_dot CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE RANLIB ac_ct_RANLIB CPP EGREP LIBOBJS MKINSTALLDIRS MSGFMT GMSGFMT XGETTEXT MSGMERGE build build_cpu build_vendor build_os host host_cpu host_vendor host_os ALLOCA GLIBC21 LIBICONV LTLIBICONV INTLBISON USE_NLS BUILD_INCLUDED_LIBINTL USE_INCLUDED_LIBINTL CATOBJEXT INTLOBJS DATADIRNAME INSTOBJEXT GENCAT INTL_LIBTOOL_SUFFIX_PREFIX INTLLIBS LIBINTL LTLIBINTL POSUB LTLIBOBJS'
+ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO AMTAR install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM AWK SET_MAKE am__leading_dot CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE RANLIB ac_ct_RANLIB CPP EGREP LIBOBJS MKINSTALLDIRS MSGFMT GMSGFMT XGETTEXT MSGMERGE build build_cpu build_vendor build_os host host_cpu host_vendor host_os ALLOCA GLIBC21 LIBICONV LTLIBICONV INTLBISON USE_NLS BUILD_INCLUDED_LIBINTL USE_INCLUDED_LIBINTL CATOBJEXT INTLOBJS DATADIRNAME INSTOBJEXT GENCAT INTL_LIBTOOL_SUFFIX_PREFIX INTLLIBS LIBINTL LTLIBINTL POSUB CURSESLIBS LTLIBOBJS'
 ac_subst_files=''
 
 # Initialize some variables set by options.
@@ -1551,7 +1551,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE=ap-utils
- VERSION=1.5pre2b
+ VERSION=1.5pre2
 
 
 cat >>confdefs.h <<_ACEOF
@@ -7056,7 +7056,7 @@ _ACEOF
 
 
 
-
+aputils_save_LIBS="$LIBS"
 echo "$as_me:$LINENO: checking for initscr in -lncurses" >&5
 echo $ECHO_N "checking for initscr in -lncurses... $ECHO_C" >&6
 if test "${ac_cv_lib_ncurses_initscr+set}" = set; then
@@ -7112,19 +7112,13 @@ fi
 echo "$as_me:$LINENO: result: $ac_cv_lib_ncurses_initscr" >&5
 echo "${ECHO_T}$ac_cv_lib_ncurses_initscr" >&6
 if test $ac_cv_lib_ncurses_initscr = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBNCURSES 1
-_ACEOF
-
-  LIBS="-lncurses $LIBS"
-
+  CURSESLIBS="-lncurses"
 else
   NOCURSES=yes
 fi
 
 if test "$NOCURSES" = yes; then
-
-echo "$as_me:$LINENO: checking for initscr in -lcurses" >&5
+       echo "$as_me:$LINENO: checking for initscr in -lcurses" >&5
 echo $ECHO_N "checking for initscr in -lcurses... $ECHO_C" >&6
 if test "${ac_cv_lib_curses_initscr+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -7179,12 +7173,7 @@ fi
 echo "$as_me:$LINENO: result: $ac_cv_lib_curses_initscr" >&5
 echo "${ECHO_T}$ac_cv_lib_curses_initscr" >&6
 if test $ac_cv_lib_curses_initscr = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBCURSES 1
-_ACEOF
-
-  LIBS="-lcurses $LIBS"
-
+  CURSESLIBS="-lcurses"
 else
   { { echo "$as_me:$LINENO: error: ap-utils requires installed ncurses or Sys V curses to build" >&5
 echo "$as_me: error: ap-utils requires installed ncurses or Sys V curses to build" >&2;}
@@ -7192,6 +7181,7 @@ echo "$as_me: error: ap-utils requires installed ncurses or Sys V curses to buil
 fi
 
 fi
+LIBS="$aputils_save_LIBS"
 
 # Check for OS and make OS define OS specific variables
 case "$host_os" in
@@ -7465,6 +7455,8 @@ _ACEOF
 
 fi;
 
+
+
                                                                       ac_config_files="$ac_config_files Makefile src/Makefile ap-gl/Makefile lib/Makefile po/Makefile.in intl/Makefile Documentation/Makefile"
 cat >confcache <<\_ACEOF
 # This file is a shell script that caches the results of configure
@@ -8187,6 +8179,7 @@ s,@INTLLIBS@,$INTLLIBS,;t t
 s,@LIBINTL@,$LIBINTL,;t t
 s,@LTLIBINTL@,$LTLIBINTL,;t t
 s,@POSUB@,$POSUB,;t t
+s,@CURSESLIBS@,$CURSESLIBS,;t t
 s,@LTLIBOBJS@,$LTLIBOBJS,;t t
 CEOF
 
index 79ff1ecb00de7a2954a49b6cee1e85c752823393..70e20f005012b0f325c04d53828520dc84e99481 100644 (file)
@@ -18,7 +18,7 @@
 #
 AC_INIT([lib/snmp.c])
 AC_CONFIG_AUX_DIR(config)
-AM_INIT_AUTOMAKE(ap-utils, 1.5pre2b)
+AM_INIT_AUTOMAKE(ap-utils, 1.5pre2)
 AM_CONFIG_HEADER(config.h)
 
 ac_aux_dir=config
@@ -55,10 +55,12 @@ ALL_LINGUAS="uk fr pl ro nl tr"
 
 AM_GNU_GETTEXT
 
-AC_CHECK_LIB(ncurses, initscr, , NOCURSES=yes)
+aputils_save_LIBS="$LIBS"
+AC_CHECK_LIB(ncurses, initscr, CURSESLIBS="-lncurses", NOCURSES=yes)
 if test "$NOCURSES" = yes; then
-       AC_CHECK_LIB(curses, initscr, , AC_MSG_ERROR([ap-utils requires installed ncurses or Sys V curses to build]))
+       AC_CHECK_LIB(curses, initscr, CURSESLIBS="-lcurses", AC_MSG_ERROR([ap-utils requires installed ncurses or Sys V curses to build]))
 fi
+LIBS="$aputils_save_LIBS"
 
 # Check for OS and make OS define OS specific variables
 case "$host_os" in
@@ -106,6 +108,8 @@ no)
  esac     
 ])
 
+AC_SUBST(CURSESLIBS)
+
 AC_OUTPUT([Makefile src/Makefile ap-gl/Makefile lib/Makefile po/Makefile.in intl/Makefile Documentation/Makefile])
 
 echo "
index 51c7132afcc3f09777737d24098541f141e4b178..2a853a3a3d2a461f502707d4ca0284609f200aa2 100644 (file)
@@ -68,6 +68,7 @@ CCDEPMODE = @CCDEPMODE@
 CFLAGS = @CFLAGS@
 CPP = @CPP@
 CPPFLAGS = @CPPFLAGS@
+CURSESLIBS = @CURSESLIBS@
 CYGPATH_W = @CYGPATH_W@
 DATADIRNAME = @DATADIRNAME@
 DEFS = @DEFS@
index 0936d4012cd125caf68c99b4eeb04f2799e54e3f..4436cf86cf3930f93dbe192469f1e6de1ba24ce4 100644 (file)
@@ -107,10 +107,13 @@ typedef unsigned int uint32_t;
 #define WAIT_RET _("Trying to retrieve data from AP. Please wait...")
 #define WAIT_SET _("Writing data to AP. Please wait...")
 #define DONE_SET _("Configuration written to the AP. Press any key to continue.")
-#define SELECT _("select() function error. Press any key.")
+#define ERR_SELECT _("select() function error. Press any key.")
 
-#define CREATE_SOCKET_ERROR _("Create socket error. Press any key.")
-#define BIND_SOCKET_ERROR _("Bind socket 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_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.")
 
 #define MAIN_MENU _("Back to main menu")
 #define MENU_EXIT _("Exit program")
@@ -119,15 +122,17 @@ typedef unsigned int uint32_t;
 #define MENU_SEARCH _("Find connected Access Points")
 #define MENU_CONNECT _("Set connection options: ip and community")
 #define MENU_ENCRYPT _("Set encryption; edit WEP keys")
-#define MENU_MAC _("Set MAC authorization; edit MAC authorization table")
+#define MENU_AUTH _("Set authorization; edit MAC authorization table")
 #define MENU_COMMUNITY _("Set SNMP community/password for access to the AP")
 #define MENU_SYSINFO _("Get info about AP hardware and firmware")
 #define MENU_WIRELESS _("Get wireless port statistics")
 #define MENU_STAS _("Get list of currently associated stations (Access Point clients)")
+#define MENU_APLINK _("Get link status in APclient mode")
 #define MENU_INFO _("Get info and statistics from AP")
 #define MENU_CONFIG _("Set various configuration options")
 
-#define TITLE_STAS _("Associated stations")
+#define ST_TITLE _("Associated stations")
+#define AP_TITLE _("AP Client link state")
 
 #define POLL_ON _("Polling: on")
 #define POLL_OFF _("Polling: off")
@@ -169,8 +174,8 @@ typedef unsigned int uint32_t;
 /* Numbering with respect to order in ap_vendorexts */
 #define NONE 0
 #define SBRIDGES 1
-#define TELLUS 1
-#define VERNET 2
+#define GEMTEK 1
+#define EZYNET 2
 
 typedef struct {
     unsigned char *oid;
@@ -194,7 +199,7 @@ struct umitems {
        int is_menu;
 };
 
-struct EthernetRxStatistics {
+struct EthRxStatistics_s {
        uint32_t TotalBytesRx;
        uint32_t TotalPacketsRx;
        uint32_t PacketCRCErrorRx;
@@ -213,7 +218,7 @@ struct EthernetRxStatistics {
        uint32_t TotalJabberRx;
 };
 
-struct EthernetTxStatistics {
+struct EthTxStatistics_s {
        uint32_t TotalBytesTx;
        uint32_t TotalPacketsTx;
        uint32_t PacketCRCErrorTx;
@@ -230,7 +235,7 @@ struct EthernetTxStatistics {
        uint32_t TotalCollisionsTx;
 };
 
-struct WirelessStatistics {
+struct wirelessStatistics_s {
        uint32_t UnicastTransmittedPackets;
        uint32_t BroadcastTransmittedPackets;
        uint32_t MulticastTransmittedPackets;
@@ -253,15 +258,15 @@ struct WirelessStatistics {
        uint32_t AgedPackets;
        uint32_t FCSError;
        uint32_t InvalidPLCP;
-       /* following 4 are specific for ATMEL 12350 MIB enhanced by VERNET */
+       /* following 4 are specific for ATMEL 12350 MIB enhanced by EZYNET */
        uint32_t TransmittedPackets_11Mbps;
        uint32_t TransmittedPackets_55Mbps;
        uint32_t TransmittedPackets_2Mbps;
        uint32_t TransmittedPackets_1Mbps;
 };
 
-struct sysDeviceInfo_ATMEL410 {
-    /* sysDeviceInfo OID struct for ATMEL 410 */
+struct sysDeviceInfo_128 {
+    /* sysDeviceInfo OID struct - version 128 bytes long */
     uint32_t StructVersion;
     unsigned char MacAddress[6];
     unsigned short Reserved;
@@ -271,10 +276,17 @@ struct sysDeviceInfo_ATMEL410 {
     uint32_t OEMID;
     unsigned char ProductName[32];
     uint32_t HardwareRevision;
+    /*
+     * NOTE: Although MIBs claim 92 bytes length, it is not 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.
+     */
 };
 
-struct sysDeviceInfo_ATMEL12350 {
-    /* sysDeviceInfo OID struct for ATMEL 12350 */
+struct sysDeviceInfo_160 {
+    /* sysDeviceInfo OID struct - version 160 bytes long */
     uint32_t StructVersion;
     unsigned char MacAddress[6];
     unsigned char Channel;
@@ -296,6 +308,34 @@ struct sysDeviceInfo_ATMEL12350 {
     unsigned char Reserved3[10];
 };
 
+/* AP mode: Associated stations diagnostics */
+
+struct AssociatedSTAsInfo_ATMEL410 {
+    unsigned short Index;
+    unsigned char  MacAddress[6];
+    /* The rest is only supported by ATMEL410 SBRIDGES MIB */
+    unsigned char  Status;
+    unsigned char  Port;
+    unsigned char  ParentMacAddress[6];
+    unsigned char  RSSI;
+    unsigned char  LinkQuality;
+    unsigned char  IP[4];
+    unsigned char  Reserved1[2];
+};
+
+struct AssociatedSTAsInfo_ATMEL12350 {
+    unsigned short Index;
+    unsigned char  MacAddress[6];
+    /* The rest is only supported by ATMEL12350 EZYNET MIB */
+    unsigned char  Status;
+    unsigned char  Port;
+    unsigned char  ParentMacAddress[6];
+    unsigned char  RSSI;
+    unsigned char  IP[4];
+    unsigned char  Reserved1[3];
+};
+
+/* This structure unifies all the unique members of the 2 structs above */
 struct MacListStat {
     unsigned char addr[6];
     struct MacListStat *next;
@@ -308,6 +348,36 @@ struct MacListStat {
     struct in_addr IP;
 };
 
+/* APClient mode: AP link diagnostics */
+
+/* size: 53 bytes */
+struct NetworkSettings_ATMEL410_SBRIDGES {
+    unsigned short reserved1;
+    unsigned char BSSID[6];
+    unsigned short InfoCapability;
+    unsigned char Rssi;
+    unsigned char Channel;
+    unsigned char reserved2[2];
+    unsigned char LinkQuality;
+    unsigned char reserved3[5];
+    unsigned char ESSID[32];
+    unsigned char ESSLEN;
+};
+
+/* size: 56 bytes */
+struct NetworkSettings_ATMEL12350_EZYNET {
+    unsigned short reserved1;
+    unsigned char BSSID[6];
+    unsigned short InfoCapability;
+    unsigned char Rssi;
+    unsigned char Channel;
+    unsigned char reserved2[2];
+    unsigned char CurrentRate;
+    unsigned char reserved3[5];
+    unsigned char ESSID[32];
+    unsigned long ESSLEN;
+};
+
 /* function prototypes specific/common for both utilites */
 
 /* service */
@@ -353,6 +423,7 @@ extern void bridging(void);
 extern void wep(void);
 extern void WirelessStat(void);
 extern void atmel_stations(void);
+extern void atmel_aplink(void);
 extern void atmel_sysinfo(void);
 extern void atmel_set_oeminfo(void);
 extern void ap_search(void);
@@ -373,7 +444,7 @@ extern void APs(void);
 extern void power(void);
 extern void test(void);
 extern void atmel_wireless(void);
-extern void atmel_auth_mac(void);
+extern void atmel_auth(void);
 
 /* function prototypes specific for NWN utility */
 extern void latest(void);
index a633d0d2cf339d8e50558b0d68c63f0d49f31a2f..fd89e868fe35e1d4467af10d48b7c18263c46ca5 100644 (file)
@@ -100,13 +100,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(CREATE_SOCKET_ERROR);
+       print_helperr(ERR_CREATING_SOCKET);
        getch();
        return;
     }
 
     if (bind(s2, (struct sockaddr *) from, SIZE) == -1) {
-       print_helperr(BIND_SOCKET_ERROR);
+       print_helperr(ERR_BINDING_SOCKET);
        getch();
        goto close_ret;
     }
@@ -347,7 +347,7 @@ void ap_search()
     wrefresh(main_sub);
 
     if ((s1 = socket(PF_INET, SOCK_DGRAM, 0)) == -1) {
-       print_helperr(CREATE_SOCKET_ERROR);
+       print_helperr(ERR_CREATING_SOCKET);
        goto wait_quit;
     }
 
index 585b2477c675e69d5d8b8fa7fa47371f3983b3c4..c37a1fdc6eabce05d7c90a620ef0453b9abbee83 100644 (file)
--- a/lib/aps.c
+++ b/lib/aps.c
@@ -194,7 +194,7 @@ get_stats:
 show_stats:
     /* display column info in main_sub */
     mvwin(main_sub, 0, 0);
-    wattrset(main_sub, COLOR_PAIR(3));
+    wattrset(main_sub, COLOR_PAIR(13));
     for (i = 0; i < 64; i++)
        waddch(main_sub, ' ');
     switch (ap_viewtype) {
index 1fe89d7fea51ce3f14418a6c7b381cb50ef94199..efcdb2b31a4e9ccb57e7849f8e70d1d410f86edc 100644 (file)
@@ -45,7 +45,8 @@ char *ap_types[] = {
 char *ap_vendorexts[][3] = {
     { "NONE", "SBRIDGES" },            /* ATMEL410 exts */
     { "NONE" },                                /* NWN exts */
-    { "NONE", "TELLUS", "VERNET" }     /* ATMEL12350 exts */
+    { "NONE", "GEMTEK", "EZYNET" },    /* ATMEL12350 exts */
+    { 0 }                              /* do not delete! */
 };
 
 rdprops regdom_types[] = {
@@ -102,21 +103,20 @@ void about()
     sprintf(message, _("Version %s"), VERSION);
     mvwaddstr(main_sub, brow + 3, bcol + 2, message);
     mvwaddstr(main_sub, brow + 5, bcol + 2,
-             _("Written by Roman Festchook roma@polesye.net"));
+       _("Written by Roman Festchook roma@polesye.net"));
     mvwaddstr(main_sub, brow + 6, bcol + 2,
-             _("Portions by Jan Rafaj aputils@cedric.unob.cz"));
+       _("and Jan Rafaj jr-aputils@cedric.unob.cz"));
     mvwaddstr(main_sub, brow + 7, bcol + 2,
-             _("Copyright (c) 2001-2004"));
+       _("Copyright (c) 2001-2005"));
     mvwaddstr(main_sub, brow + 8, bcol + 2,
-             _("Roman Festchook and Jan Rafaj"));
+       _("Roman Festchook and Jan Rafaj"));
     mvwaddstr(main_sub, brow + 9, bcol + 2, "http://ap-utils.polesye.net/");
     mvwaddstr(main_sub, brow + 11, bcol + 2,
-             _("This program is distributed under the terms"));
+       _("This program is distributed under the terms"));
     mvwaddstr(main_sub, brow +12, bcol + 2,
-             _("of the GNU General Public License version 2."));
+       _("of the GNU General Public License version 2."));
     mvwaddstr(main_sub, brow + 13, bcol + 2,
-             _("See the included COPYING file for details."));
-
+       _("See the included COPYING file for details."));
 
     wrefresh(main_sub);
 
@@ -141,7 +141,7 @@ void connect_options(unsigned long int ip, int type)
     };
 
     struct sockaddr_in client;
-    extern int atmel410_filter; /* to check is this function called from ap-gl utility */
+    extern int atmel410_filter; /* boolean; = 1 if we call from ap-gl utility */
     unsigned char message[256];
     unsigned char label[17];
     int fd, i;
@@ -158,13 +158,13 @@ void connect_options(unsigned long int ip, int type)
        close(sockfd);
 
     if ((sockfd = socket(AF_INET, SOCK_DGRAM, 0)) == -1) {
-       print_helperr(CREATE_SOCKET_ERROR);
+       print_helperr(ERR_CREATING_SOCKET);
        getch();
        goto exit;
     }
 
     if (bind(sockfd, (struct sockaddr *) &client, SIZE) == -1) {
-       print_helperr(BIND_SOCKET_ERROR);
+       print_helperr(ERR_BINDING_SOCKET);
        getch();
        goto exit;
     }
@@ -189,17 +189,16 @@ get_all_again:
     i = 0;
     print_help("");
 
-       print_help(_("Entered characters will not be displayed "
-                    "for security reason."));
-       get_pass(message, 2, 1 + strlen(APPASS), 16);
-       if (community)
-           free(community);
-       i = strlen(message) + 1;
-       community = (char *) malloc(i);
-       strncpy(community, message, i);
-
+    print_help(_("Entered characters will not be displayed "
+                "for security reason."));
+    get_pass(message, 2, 1 + strlen(APPASS), 16);
+    if (community)
+       free(community);
+    i = strlen(message) + 1;
+    community = (char *) malloc(i);
+    strncpy(community, message, i);
 
-    if (type && ! atmel410_filter) {
+    if (type && !atmel410_filter) {
        /* entered from ap_search() */
 
        /* community already exists */
@@ -219,47 +218,41 @@ get_all_again:
 
        mvwaddstr(main_sub, 4, 1, APVENDOREXT);
     } else {
-
        if (atmel410_filter) {
-               ap_type = --type;
-               print_menusel(3, 1, APTYPE, ap_types[ap_type]);
-               ap_vendorext = NONE; /* no need to choose here, really */
-               /* marks that we want offer AP name -> AP label later */
-               i = 1;
-               mvwaddstr(main_sub, 4, 1, APVENDOREXT);
+           ap_type = --type;
+           print_menusel(3, 1, APTYPE, ap_types[ap_type]);
+           ap_vendorext = NONE; /* no need to choose here, really */
+           /* marks that we want offer AP name -> AP label later */
+           i = 1;
+           mvwaddstr(main_sub, 4, 1, APVENDOREXT);
        } else {
-               mvwaddstr(main_sub, 3, 1, AUTODETECT);
-               wrefresh(main_sub);
-               i = yes_no(3, 1 + strlen(AUTODETECT));
-               clear_main_new(3, 4);
-               mvwaddstr(main_sub, 3, 1, APTYPE);
-               if (i == 2) { /* NO */
-                   char **p;
-    
-                   wrefresh(main_sub);
-
-                   ap_type = menu_choose(3, 1 + strlen(APTYPE), ap_types, 3);
-                   print_bold(main_sub, ap_types[ap_type]);
-
-                   mvwaddstr(main_sub, 4, 1, APVENDOREXT);
-                   wrefresh(main_sub);
-                   for (i = 0, p = ap_vendorexts[ap_type]; *p++; i++);
-                   if (i == 1)
-                       ap_vendorext = NONE; /* no need to choose here, really */
-                   else
-                       ap_vendorext = menu_choose(4, 1 + strlen(APVENDOREXT),
+           mvwaddstr(main_sub, 3, 1, AUTODETECT);
+           wrefresh(main_sub);
+           i = yes_no(3, 1 + strlen(AUTODETECT));
+           clear_main_new(3, 4);
+           mvwaddstr(main_sub, 3, 1, APTYPE);
+           if (i == 2) { /* NO */
+               wrefresh(main_sub);
+               ap_type = menu_choose(3, 1 + strlen(APTYPE), ap_types, 3);
+               print_bold(main_sub, ap_types[ap_type]);
+               mvwaddstr(main_sub, 4, 1, APVENDOREXT);
+               wrefresh(main_sub);
+               for (i = 0; ap_vendorexts[ap_type][i]; i++);
+               if (i == 1)
+                   ap_vendorext = NONE; /* no need to choose here, really */
+               else
+                   ap_vendorext = menu_choose(4, 1 + strlen(APVENDOREXT),
                    ap_vendorexts[ap_type], i);
-               } else { /* YES */
-                   if (get_mib_details() == -1) {
-                       clear_main_new(1, 4);
-                       goto get_all_again;
-                   }
+           } else { /* YES */
+               if (get_mib_details() == -1) {
+                   clear_main_new(1, 4);
+                   goto get_all_again;
+               }
                print_bold(main_sub, ap_types[ap_type]);
-
-           mvwaddstr(main_sub, 4, 1, APVENDOREXT);
+               mvwaddstr(main_sub, 4, 1, APVENDOREXT);
+           }
        }
     }
-    }
     print_bold(main_sub, ap_vendorexts[ap_type][ap_vendorext]);
 
     print_help(
@@ -314,6 +307,8 @@ get_all_again:
     mvwaddstr(main_sub, 6, 1, SAVESETTINGS);
     wrefresh(main_sub);
     save_settings = on_off(6, 1 + strlen(SAVESETTINGS));
+    clear_main_new(6, 7);
+    print_menusel(6, 1, SAVESETTINGS, (save_settings == 1) ? ON : OFF);
 
     print_bottom(inet_ntoa(ap_ip));
 
@@ -325,7 +320,11 @@ get_all_again:
                    community, label, ap_type, ap_vendorext);
                write(fd, message, strlen(message));
                close(fd);
-           }
+               print_help(DONE_WRITING_APCONF);
+           } else
+               print_helperr(ERR_WRITING_APCONF);
+
+           getch();
        }
     }
   exit:
@@ -336,8 +335,8 @@ get_all_again:
 }
 
 /*
- * Determines AP MIB type (fills ap_type), and AP MIB vendor extensions
- * (changes values of ap_vendorext global). Returns with -1 on error or 0
+ * Determines AP MIB type (fills ap_type global), and AP MIB vendor extensions
+ * (fills ap_vendorext global). Returns with -1 on error or 0
  * if everything is OK.
  */
 int get_mib_details()
@@ -348,15 +347,25 @@ int get_mib_details()
     char sysDescr_ATMEL[] = {
        0x2B, 0x06, 0x01, 0x04, 0x01, 0x83, 0x1A, 0x01, 0x01, 0x01, 0x01, 0x00
     };
-    char operEthernetAddress_ATMEL[] = {
-        0x2B, 0x06, 0x01, 0x04, 0x01, 0x83, 0x1A, 0x01, 0x01, 0x02, 0x03, 0x00
+    /*
+     * ATMEL410: SMARTBRIDGES MIB define this with length 4 (IpAddress); others
+     * (hopefully) do not define this but eventually return (hopefully)
+     * different value than 4.
+     */
+    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 */
+    char sysDeviceInfo_ATMEL[] = {
+       0x2B, 0x06, 0x01, 0x04, 0x01, 0xE0, 0x3E, 0x01, 0x01, 0x01, 0x05, 0x00
     };
-    char Wireless_ATMEL[] = {
-       0x2B, 0x06, 0x01, 0x04, 0x01, 0x83, 0x1A, 0x01, 0x02, 0x03, 0x01, 0x00
+    /* ATMEL12350: EZYNET MIB defines length 104, others 88 */
+    char wirelessStatistics_ATMEL[] = {
+       0x2B, 0x06, 0x01, 0x04, 0x01, 0xE0, 0x3E, 0x01, 0x02, 0x03, 0x01, 0x00
     };
+
     varbind varbinds[2];
-    char oui_sbridges[3] = { 0x00, 0x30, 0x1A };
-    char oui_tellus[3] = { 0x00, 0x04, 0xDB };
+    int i;
 
     print_help(_("Trying to probe AP for MIB properties. Please wait..."));
 
@@ -397,47 +406,59 @@ int get_mib_details()
 
     /*
      * It is best to do the following HERE and FOR ONCE ONLY: find out more
-     * about specific MIB modifications - we'll use them on different places
-     * later.
+     * about specific MIB vendor extensions - we'll check against them
+     * on different places later.
      */
-    varbinds[0].type = NULL_VALUE;
-    varbinds[0].oid = operEthernetAddress_ATMEL;
-    varbinds[0].len_oid = sizeof(operEthernetAddress_ATMEL);
-    varbinds[0].len_val = 0;
-    varbinds[1].type = NULL_VALUE;
-    varbinds[1].oid = Wireless_ATMEL;
-    varbinds[1].len_oid = sizeof(Wireless_ATMEL);
-    varbinds[1].len_val = 0;
-    if (ap_type == ATMEL12350) {
-       operEthernetAddress_ATMEL[5] = 0xE0;
-       operEthernetAddress_ATMEL[6] = 0x3E;
-       Wireless_ATMEL[5] = 0xE0;
-       Wireless_ATMEL[6] = 0x3E;
-    }
-    if (snmp(varbinds, 2, GET) <= 0) {
-        print_helperr(ERR_RET);
-       getch();
-        return -1;
-    }
 
-    /*
-     * Detection of different vendor-modified ATMEL private MIBs.
-     * Note that results here are considered mutually exclusive, although
-     * MIBs *may* share a lot of properties - for example, the condition
-     * for TELLUS is matched also with VERNET firmware, but we want
-     * unambiguous results => exactly one type is to be returned each pass
-     * => the order of these conditions is important.
-     */
     ap_vendorext = NONE;
 
-    if (ap_type == ATMEL410 && (memcmp(oui_sbridges, varbinds[0].value, 3) ==0))
-       ap_vendorext = SBRIDGES;
+    if (ap_type == ATMEL410) {
+       varbinds[0].oid = AuthRadiusIP_ATMEL;
+       varbinds[0].len_oid = sizeof(AuthRadiusIP_ATMEL);
+       varbinds[0].value = NULL;
+       varbinds[0].len_val = 0;
+       varbinds[0].type = NULL_VALUE;
+
+       i = snmp(varbinds, 1, GET);
+       if (i < 0) {
+           print_helperr(ERR_RET);
+           getch();
+           return -1;
+       }
+
+       /*
+        * i == 0 => 'no such variable in the MIB' returned =>
+        * consider 'ap_vendorext = NONE' too.
+        */
 
-    if (ap_type == ATMEL12350 && (memcmp(oui_tellus, varbinds[0].value, 3) ==0))
-       ap_vendorext = TELLUS;
+       if (varbinds[0].len_val == 4)
+           ap_vendorext = SBRIDGES;
+    }
 
-    if (ap_type == ATMEL12350 && varbinds[1].len_val == 104)
-       ap_vendorext = VERNET;
+    if (ap_type == ATMEL12350) {
+       varbinds[0].oid = sysDeviceInfo_ATMEL;
+       varbinds[0].len_oid = sizeof(sysDeviceInfo_ATMEL);
+       varbinds[0].value = NULL;
+       varbinds[0].len_val = 0;
+       varbinds[0].type = NULL_VALUE;
+       varbinds[1].oid = wirelessStatistics_ATMEL;
+       varbinds[1].len_oid = sizeof(wirelessStatistics_ATMEL);
+       varbinds[1].value = NULL;
+       varbinds[1].len_val = 0;
+       varbinds[1].type = NULL_VALUE;
+
+       if (snmp(varbinds, 2, GET) <= 0) {
+           print_helperr(ERR_RET);
+           getch();
+           return -1;
+       }
+
+       if (varbinds[0].len_val == 160)
+           ap_vendorext = GEMTEK;
+
+       if (varbinds[1].len_val == 104)
+           ap_vendorext = EZYNET;
+    }
 
     return 0;
 }
index 22dbf7a0f5deb303406f711e5ea87e280498fbb3..fa2746fc8d0c97bf1e88144c2180bd9a7c55c399 100644 (file)
@@ -356,6 +356,42 @@ wrong_num:
                }
                continue;
 
+           case KEY_NPAGE:
+               if (end < record_num) {
+                   end = (end + (MAX_LINES) - 1 < record_num) ?
+                       end + (MAX_LINES) - 1 : record_num;
+                   begin = (end - (MAX_LINES) + 1 > 0) ?
+                       end - (MAX_LINES) + 1 : 1;
+                   _scroll_rows(first, begin, end);
+               }
+               continue;
+
+           case KEY_PPAGE:
+               if (begin > 1) {
+                   begin = (begin - (MAX_LINES) + 1 > 0) ?
+                       begin - (MAX_LINES) + 1 : 1;
+                   end = (begin + (MAX_LINES) - 1 < record_num) ?
+                       begin + (MAX_LINES) - 1 : record_num;
+                   _scroll_rows(first, begin, end);
+               }
+               continue;
+
+           case KEY_END:
+               if (end < record_num) {
+                   begin = (record_num > MAX_LINES) ? record_num + 1 - (MAX_LINES) : 1;
+                   end = record_num;
+                   _scroll_rows(first, begin, end);
+               }
+               continue;
+
+           case KEY_HOME:
+               if (begin > 1) {
+                   begin = 1;
+                   end = (record_num > MAX_LINES) ? MAX_LINES : record_num;
+                   _scroll_rows(first, begin, end);
+               }
+               continue;
+
            case 'w':
            case 'W':
                sprintf(buf, "%s/.ap-config", home_dir);
@@ -368,14 +404,10 @@ wrong_num:
                        curr = curr->next;
                    }
                    close(fd);
-                   print_help(
-                       _("AP list file ~/.ap-config successfully written. "
-                         "Press any key."));
-               } else {
-                   print_helperr(
-                       _("Unable to write AP list file ~/.ap-config. "
-                         "Press any key."));
-               }
+                   print_help(DONE_WRITING_APCONF);
+               } else
+                   print_helperr(ERR_WRITING_APCONF);
+
                getch();
                continue;
        }
index b77dd835bbaf5e85688c48c10c8fc9c01f1862d9..ff9604d516751d4cfa12196db5134a10fab45352 100644 (file)
@@ -42,8 +42,9 @@ get_mac(char *mac, int row, int col)
     char message[MAC_LEN+1], mess[MAC_LEN/MAC_BYTES+1];
     int i;
 
-    get_value(message, row, col, MAC_LEN+1, HEX_STRING, 0, 0, NULL);
-    if (strlen(message) < 12) i = 255;
+    message[0] = '\0';
+    while (strlen(message) != 12)
+       get_value(message, row, col, MAC_LEN+1, HEX_STRING, 0, 0, NULL);
 
     for (i = 0; i < MAC_BYTES; i++) {
        mess[0] = message[2 * i];
@@ -135,7 +136,7 @@ get_value(char *value, int row, int col, int len,
     }
 
     echo();
-    wattrset(main_sub, COLOR_PAIR(2));
+    wattrset(main_sub, COLOR_PAIR(12));
 get_value_again:
     wmove(main_sub, row, col);
     for (i = 0; i < (unsigned int)len - 1; i++)
@@ -166,8 +167,8 @@ get_value_again:
                value[i--] = 0;
                wmove(main_sub, row, col + i);
                waddch(main_sub, ' ');
-               /* put backspace to move cursor back */
-               wechochar(main_sub, 0x08);
+               wmove(main_sub, row, col + i);
+               wrefresh(main_sub);
            }
            continue;
        } else if (c == 0x0D) {
@@ -220,7 +221,7 @@ get_pass(char *value, int row, int col, int len)
 {
     int i, j = 0;
 
-    wattrset(main_sub, COLOR_PAIR(2));
+    wattrset(main_sub, COLOR_PAIR(12));
     wmove(main_sub, row, col);
     for (i = 0; i < len - 1; i++)
        waddch(main_sub, ' ');
@@ -293,7 +294,7 @@ int menu_choose(int brow, int bcol, char **names, unsigned int num)
     else
        choose_menu = newwin(nrow, ncol, brow - nrow + 3, bcol + MCOLS);
     sub_choose_menu = derwin(choose_menu, nrow - 2, ncol - 2, 1, 1);
-    attrset(COLOR_PAIR(1));
+    attrset(COLOR_PAIR(11));
 
     mvwaddch(choose_menu, 0, 0, ACS_ULCORNER);
     mvwaddch(choose_menu, 0, ncol - 1, ACS_URCORNER);
@@ -392,7 +393,7 @@ int wait_key()
 
        /* error occured */
        if (i == -1) {
-           print_helperr(SELECT);
+           print_helperr(ERR_SELECT);
            getch();
        }
 
index 9aeb6d93c5a47dbbc3167ac8a180f9079f8b99b2..e2cfaef3178235bfd66da2f78e2b46d771892cb6 100644 (file)
@@ -44,44 +44,38 @@ void uni_menu(struct umitems *umenu, int num)
 
     post_menu(menu);
 
-    wrefresh(sub_for_menu);
     print_help(umenu[0].help);
 
     while (1) {
+       wrefresh(sub_for_menu);
        switch (getch()) {
        case KEY_DOWN:
        case 'j':
        case 'J':
            menu_driver(menu, REQ_NEXT_ITEM);
-           wrefresh(sub_for_menu);
            break;
        case KEY_RIGHT:
        case 'l':
        case 'L':
            menu_driver(menu, REQ_LAST_ITEM);
-           wrefresh(sub_for_menu);
            break;
        case KEY_LEFT:
        case 'h':
        case 'H':
            menu_driver(menu, REQ_FIRST_ITEM);
-           wrefresh(sub_for_menu);
            break;
        case KEY_UP:
        case 'k':
        case 'K':    
            menu_driver(menu, REQ_PREV_ITEM);
-           wrefresh(sub_for_menu);
            break;
        case KEY_PPAGE:
        case KEY_HOME:
            menu_driver(menu, REQ_FIRST_ITEM);
-           wrefresh(sub_for_menu);
            break;
        case KEY_NPAGE:
        case KEY_END:
            menu_driver(menu, REQ_LAST_ITEM);
-           wrefresh(sub_for_menu);
            break;
        case 'q':
        case 'Q':
@@ -89,9 +83,14 @@ void uni_menu(struct umitems *umenu, int num)
            goto quitmenu;
        case 's':
        case 'S':
-           if (set_oeminfo_allowed)
+           if (set_oeminfo_allowed) {
+               set_menu_mark(menu, " ");
+               set_menu_fore(menu, A_NORMAL);
+               wrefresh(sub_for_menu);
                atmel_set_oeminfo();
-
+               set_menu_mark(menu, "-");
+               set_menu_fore(menu, A_STANDOUT);
+           }
            break;
        /* Enter */
        case 10:
@@ -111,11 +110,12 @@ quitmenu:
            }
            if (umenu[idx].is_menu)
                unpost_menu(menu);
+
            umenu[idx].func();
-           if (umenu[idx].is_menu) {
+
+           if (umenu[idx].is_menu)
                post_menu(menu);
-               wrefresh(sub_for_menu);
-           }
+
            break;
        default:
            continue;           
index 5295e1451fe53e38073598f0b2766a81e4e84eb2..e72b31096cc37a272faefc0e693b0b4833586116 100644 (file)
--- a/lib/oui.c
+++ b/lib/oui.c
@@ -2742,6 +2742,7 @@ char *oui2manufacturer(char *mac)
        0x00, 0x0D, 0x54, "3Com Europe Ltd"}, {
        0x00, 0x0D, 0x88, "D-Link Corporation"}, {
        0x00, 0x0E, 0xA6, "ASUSTEK COMPUTER INC."}, {
+       0x00, 0x0F, 0x3D, "D-Link Corporation"}, {
        0x00, 0x10, 0x00, "CABLE TELEVISION LABORATIES, INC."}, {
        0x00, 0x10, 0x01, "MCK COMMUNICATIONS"}, {
        0x00, 0x10, 0x02, "ACTIA"}, {
@@ -2998,6 +2999,7 @@ char *oui2manufacturer(char *mac)
        0x00, 0x10, 0xFD, "COCOM A/S"}, {
        0x00, 0x10, 0xFE, "DIGITAL EQUIPMENT CORPORATION"}, {
        0x00, 0x10, 0xFF, "CISCO SYSTEMS, INC."}, {
+       0x00, 0x11, 0x2F, "ASUSTek Computer Inc."}, {
        0x00, 0x1C, 0x7C, "PERQ SYSTEMS CORPORATION"}, {
        0x00, 0x20, 0x00, "LEXMARK INTERNATIONAL, INC."}, {
        0x00, 0x20, 0x01, "DSP SOLUTIONS, INC."}, {
index d96137e46df3d4b1f2a28999f1cefada8c22c2d8..8db3d384d9a7d4c4acdca8a9201b5d98567b31e6 100644 (file)
@@ -108,7 +108,7 @@ void power()
     varbinds[1].type = NULL_VALUE;
 
     print_help(WAIT_RET);
-    if (snmp(varbinds, 2, GET) <= 0) {
+    if (snmp(varbinds, 2, GET) < 2) {
        print_helperr(ERR_RET);
        goto exit;
     }
index b0eeb0ca69164c7d8bc54911de5b0058c661b801..08a8f5b29cc3e259e69e31a9455105b3a09c3281 100644 (file)
--- a/lib/scr.c
+++ b/lib/scr.c
@@ -36,7 +36,7 @@ scroll_rows(struct MacListStat *first, int begin, int end, int row,
     struct MacListStat *curr = first;
     char message[100];
 
-    clear_main(3);
+    clear_main(row);
 
     while (i++ < begin)
        curr = curr->next;
@@ -45,13 +45,7 @@ scroll_rows(struct MacListStat *first, int begin, int end, int row,
        if (stat == 1) {
            /* NWN view */
            sprintf(message,
-               (sts_viewtype == dBm) ?
-               "%4u       %02X%02X%02X%02X%02X%02X        %3u%5u   %3udBm"
-               :
-               (sts_viewtype == percentage) ?
-               "%4u       %02X%02X%02X%02X%02X%02X        %3u%5u     %3u%%"
-               :
-               "%4u       %02X%02X%02X%02X%02X%02X        %3u%5u      %3u",
+               "%4u       %02X%02X%02X%02X%02X%02X        %3u%5u     %3d",
                begin + i, curr->addr[0] & 0xFF, curr->addr[1] & 0xFF,
                curr->addr[2] & 0xFF, curr->addr[3] & 0xFF,
                curr->addr[4] & 0xFF, curr->addr[5] & 0xFF,
@@ -60,56 +54,50 @@ scroll_rows(struct MacListStat *first, int begin, int end, int row,
                conv_rssi(curr->rssi)
            );
        } else if (stat == 2) {
-           /* ATMEL410_SBRIDGES (firmware 1.4k.1) view */
-           sprintf(message,
-               (sts_viewtype == dBm) ?
-               "%2u %02X%02X%02X%02X%02X%02X %3d%% %4ddBm  %3u    %2u   %s"
-               :
-               (sts_viewtype == percentage) ?
-               "%2u %02X%02X%02X%02X%02X%02X %3d%%   %3u%%  %3u    %2u   %s"
-               :
-               "%2u %02X%02X%02X%02X%02X%02X %3d%%    %3u  %3u    %2u   %s",
-               begin + i,
-               curr->addr[0] & 0xFF, curr->addr[1] & 0xFF,
-               curr->addr[2] & 0xFF, curr->addr[3] & 0xFF,
-               curr->addr[4] & 0xFF, curr->addr[5] & 0xFF,
-               curr->quality,
-               conv_rssi(curr->rssi),
-               curr->Status,
-               curr->Port,
-               inet_ntoa(curr->IP)
-           );
-       } else if (stat == 3) {
-           /* ATMEL12350_VERNET view */
-           sprintf(message,
-               (sts_viewtype == dBm) ?
-               "%2u %02X%02X%02X%02X%02X%02X %02X%02X%02X%02X%02X%02X "
-               "%4ddBm  %3u    %2u  %s"
-               :
-               (sts_viewtype == percentage) ?
-               "%2u %02X%02X%02X%02X%02X%02X %02X%02X%02X%02X%02X%02X "
-               "  %3u%%   %3u    %2u  %s"
-               :
-               "%2u %02X%02X%02X%02X%02X%02X %02X%02X%02X%02X%02X%02X "
-               "   %3u   %3u    %2u  %s",
+           /* ATMEL STAtions view */
+           char parentmac[13] = "      -     ";
+           char rssi[5] = "   -";
+           char quality[5] = "   -";
+           char status[4] = "  -";
+           char port[4] = " -";
+           char ip[16] = "      -        ";
+
+           if (curr->ParentMacAddress[0] | curr->ParentMacAddress[1] |
+               curr->ParentMacAddress[2] | curr->ParentMacAddress[3] |
+               curr->ParentMacAddress[4] | curr->ParentMacAddress[5])
+               sprintf(parentmac, "%02X%02X%02X%02X%02X%02X",
+                   curr->ParentMacAddress[0] & 0xFF,
+                   curr->ParentMacAddress[1] & 0xFF,
+                   curr->ParentMacAddress[2] & 0xFF,
+                   curr->ParentMacAddress[3] & 0xFF,
+                   curr->ParentMacAddress[4] & 0xFF,
+                   curr->ParentMacAddress[5] & 0xFF);
+
+           if (curr->rssi)
+               sprintf(rssi, "%4d", conv_rssi(curr->rssi));
+
+           if (curr->quality)
+               sprintf(quality, "%3u%%", curr->quality);
+
+           if (curr->Status)
+               sprintf(status, "%3u", curr->Status);
+
+           if (curr->Port)
+               sprintf(port, "%2u", curr->Port);
+
+           if(curr->IP.s_addr)
+               sprintf(ip, "%s", inet_ntoa(curr->IP));
+
+           sprintf(message, "%3u %02X%02X%02X%02X%02X%02X %s %s %s %s   %s %s",
                begin + i,
                curr->addr[0] & 0xFF, curr->addr[1] & 0xFF,
                curr->addr[2] & 0xFF, curr->addr[3] & 0xFF,
                curr->addr[4] & 0xFF, curr->addr[5] & 0xFF,
-               curr->ParentMacAddress[0] & 0xFF,
-               curr->ParentMacAddress[1] & 0xFF,
-               curr->ParentMacAddress[2] & 0xFF,
-               curr->ParentMacAddress[3] & 0xFF,
-               curr->ParentMacAddress[4] & 0xFF,
-               curr->ParentMacAddress[5] & 0xFF,
-               conv_rssi(curr->rssi),
-               curr->Status,
-               curr->Port,
-               inet_ntoa(curr->IP)
+               parentmac, rssi, quality, status, port, ip
            );
        } else {
-           /* generic ATMEL view */
-           sprintf(message, "%2u       %02X%02X%02X%02X%02X%02X",
+           /* used for 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,
                curr->addr[4] & 0xFF, curr->addr[5] & 0xFF
@@ -139,9 +127,9 @@ void print_help(char *mess)
 
 void print_helperr(char *mess)
 {
-    wattrset(win_for_help, COLOR_PAIR(4) | A_BOLD);
+    wattrset(win_for_help, COLOR_PAIR(14) | A_BOLD);
     print_help(mess);
-    wattrset(win_for_help, COLOR_PAIR(1));
+    wattrset(win_for_help, COLOR_PAIR(11));
 }
 
 void print_bold(WINDOW *wptr, char *mess)
@@ -199,16 +187,16 @@ void print_top_rssi(char *message_r)
 {
     char message_l[200];
 
-    sprintf(message_l, "%s", VIEW);
+    sprintf(message_l, "%s", "RSSI: ");
     switch (sts_viewtype) {
        case dBm:
-          strcat(message_l, "RSSI in dBm");
+          strcat(message_l, "dBm");
           break;
        case percentage:
-          strcat(message_l, "RSSI in percentage");
+          strcat(message_l, "%");
           break;
        case rawval:
-          strcat(message_l, "RSSI in raw values");
+          strcat(message_l, "raw");
     }
     print_top(message_l, message_r);
 }
index 84e7c7380474a405146d719f93debf1a18c5e747..1bd0117653a02a59a5b1db5353478054a998b936 100644 (file)
@@ -71,7 +71,7 @@ void AuthorizedSettings()
     print_top(NULL, COMMUNITY_TOP_HEADER);
 
     mvwaddstr(main_sub, 0, 0, COMMUNITY_HEADER1);
-    mvwaddstr(main_sub, 0, 25, COMMUNITY_HEADER2);
+    mvwaddstr(main_sub, 0, 37, COMMUNITY_HEADER2);
     mvwaddstr(main_sub, 1, 0, COMMUNITY_USER);
     mvwaddstr(main_sub, 2, 0, COMMUNITY_ADMIN);
 
@@ -88,22 +88,22 @@ void AuthorizedSettings()
            continue;
        case 'U':
        case 'u':
-/*         get_value(user, 1, 25, sizeof(user), ANY_STRING, 0, 0, NULL); */
-           get_pass(user, 1, strlen(COMMUNITY_USER), sizeof(user));
+/*         get_value(user, 1, 37, sizeof(user), ANY_STRING, 0, 0, NULL); */
+           get_pass(user, 1, 37, sizeof(user));
            continue;
        case 'A':
        case 'a':
-/*         get_value(admin, 2, 25, sizeof(admin), ANY_STRING, 0, 0, NULL); */
-           get_pass(admin, 2, strlen(COMMUNITY_ADMIN), sizeof(admin));
+/*         get_value(admin, 2, 37, sizeof(admin), ANY_STRING, 0, 0, NULL); */
+           get_pass(admin, 2, 37, sizeof(admin));
            continue;
        case 'M':
        case 'm':
            if (ap_type == ATMEL410 || ap_type == ATMEL12350)
 /*
-               get_value(manufact, 3, 25, sizeof(manufact), ANY_STRING,
+               get_value(manufact, 3, 37, sizeof(manufact), ANY_STRING,
                    0, 0, NULL);
 */
-               get_pass(manufact, 3, strlen(COMMUNITY_MANUF),
+               get_pass(manufact, 3, 37,
                    sizeof(manufact));
            continue;
        case 'Q':
index a150bd4b11aec43bb091d495aef24c5aaf292bae..5b4241c2a953ca62b20b37a6a76d871c1c7e2c0d 100644 (file)
@@ -19,6 +19,7 @@
  */
 
 #include <stdlib.h>
+#include <string.h>
 #include <unistd.h>
 #include <sys/time.h>
 #include <sys/types.h>
 #define S_STRUCTVERSION _("Info structure version: ")
 #define S_MAC _("[M] Device MAC address: ")
 #define V_OUI _("    Manufacturer with this OUI: ")
-#define S_DEFCHAN _("[C] Default channel: ")
 #define S_REGDOM _("[D] Regulatory domain: ")
 #define S_PRODTYPE _("[T] Product type: ")
 #define S_OEMNAME _("[E] OEM name: ")
 #define S_OEMID _("[I] OEM ID: ")
 #define S_PRODNAME _("[N] Product name: ")
 #define S_HWREV _("[H] Hardware revision: ")
-// #define S_PIDVID _("[V] PID & VID: ")
 #define S_COUNTRYC _("[O] Country code: ")
-// #define S_CHANNELS _("[A] Available channels: ")
-#define S_TXPOWER _("[P] Nominal Tx Power (CR31) value for all used channels: ")
+#define S_DEFCHAN _("[C] Default channel: ")
+#define S_CHANNELS _("[A] Calibrated channels: ")
+#define S_TXPOWER _("[P] Nominal Tx Power (CR31) value for calibrated channels: ")
 #define OEMSET_HELP _("Keys in brackets - set corresponding option; W - write conf; Q - quit to menu")
 
 extern WINDOW *main_sub;
@@ -52,43 +52,47 @@ void atmel_set_oeminfo()
     char sysDeviceInfo[] = {
        0x2B, 0x06, 0x01, 0x04, 0x01, 0x83, 0x1A, 0x01, 0x01, 0x01, 0x05, 0x00
     };
-    // Following one is only available in ATMEL12350 MIBs
+    // Following one is only available in newer ATMEL12350 MIBs
     char sysDeviceMoreInfo[] = {
        0x2B, 0x06, 0x01, 0x04, 0x01, 0xE0, 0x3E, 0x01, 0x01, 0x01, 0x08, 0x00
     };
 
     char message[200], c;
     char **regdoms;
-    int i, rd_idx;
+    int i, rd_idx, st_len;
     varbind varbinds[1];
-    struct sysDeviceInfo_ATMEL410 str410;
-    struct sysDeviceInfo_ATMEL12350 str12350;
+    struct sysDeviceInfo_128 str128; /* SHORTst */
+    struct sysDeviceInfo_160 str160; /* LONGst */
 
     /*
-     * These have to represent used sysDeviceInfo_{ATMEL410,ATMEL12350} members
-     * Note that sysOIDSize and sysOID can NOT be written using sysDevice*Info
-     * OID at all.
+     * These have to represent used sysDeviceInfo_{128,160} members
+     * Note that sysOIDSize, sysOID and PID_VID can NOT be written
+     * using sysDevice*Info OIDs at all - the only way to change them
+     * (highly discouraged !) is in OEM configuration file, using AP RFMD
+     * or AP INTERSIL configuration editor, followed by uploading this file
+     * to the AP using ATMEL tftp client - this way, *all* defaults
+     * can be changed.
      */
     uint32_t StructVersion;    // [4]
     char *MacAddress;          // [6]
-                               // [2 reserved for ATMEL410; 0 for ATMEL12350]
-    char Channel = 0; // ATMEL12350 specific; [0 for AT.410; 1 for ATMEL12350]
-    uint32_t RegulatoryDomain; // [4 for ATMEL410; 1 for ATMEL12350]
+                               // [2 reserved for SHORTst; 0 for LONGst] 
+    char Channel = 0; // LONGst specific: [0 for SHORTst; 1 for LONGst]
+    uint32_t RegulatoryDomain; // [4 for SHORTst; 1 for LONGst]
     uint32_t ProductType;      // [4]
     char *OEMName;             // [32]
     uint32_t OEMID;            // [4]
     char *ProductName;         // [32]
     uint32_t HardwareRevision; // [4]
-    /* the rest is ATMEL12350 specific */
-    char *PID_VID = NULL;      // [0 for ATMEL410; 4 for ATMEL12350]
-    uint32_t sysOIDSize = 0;   // [0 for ATMEL410; 4 for ATMEL12350]
-    uint16_t *sysOID = NULL;   // [0 for ATMEL410; 32 for ATMEL12350]
-    char *CountryCode = NULL;  // [0 for ATMEL410; 3 for ATMEL12350]
-                               // [0 for ATMEL410; 1 reserved for ATMEL12350]
-    uint16_t ChannelInformation = 0; // [0 for ATMEL410; 2 for ATMEL12350]
-                               // [0 for ATMEL410; 2 reserved for ATMEL12350]
-    char *TxPower = NULL;      // [0 for ATMEL410; 14 for ATMEL12350]
-                               // [0 for ATMEL410; 10 reserved for ATMEL12350]
+    /* the rest is LONGst specific */
+    char *PID_VID = NULL;      // [0 for SHORTst; 4 for LONGst]
+    uint32_t sysOIDSize = 0;   // [0 for SHORTst; 4 for LONGst]
+    uint16_t *sysOID = NULL;   // [0 for SHORTst; 32 for LONGst]
+    char *CountryCode = NULL;  // [0 for SHORTst; 3 for LONGst]
+                               // [0 for SHORTst; 1 reserved for LONGst]
+    uint16_t ChannelInformation = 0; // [0 for SHORTst; 2 for LONGst]
+                               // [0 for SHORTst; 2 reserved for LONGst]
+    char *TxPower = NULL;      // [0 for SHORTst; 14 for LONGst]
+                               // [0 for SHORTst; 10 reserved for LONGst]
     clear_main(0);
     noecho();
 
@@ -153,35 +157,37 @@ void atmel_set_oeminfo()
        goto exit;
     }
 
-    if (ap_type == ATMEL410) {
-       memcpy(&str410, varbinds[0].value,
-           sizeof(struct sysDeviceInfo_ATMEL410));
-       StructVersion           = str410.StructVersion;
-       MacAddress              = str410.MacAddress;
-       RegulatoryDomain        = str410.RegulatoryDomain;
-       ProductType             = str410.ProductType;
-       OEMName                 = str410.OEMName;
-       OEMID                   = str410.OEMID;
-       ProductName             = str410.ProductName;
-       HardwareRevision        = str410.HardwareRevision;
-    } else { /* ATMEL12350 */
-       memcpy(&str12350, varbinds[0].value,
-           sizeof(struct sysDeviceInfo_ATMEL12350));
-       StructVersion           = str12350.StructVersion;
-       MacAddress              = str12350.MacAddress;
-       Channel                 = str12350.Channel;
-       RegulatoryDomain        = str12350.RegulatoryDomain;
-       ProductType             = str12350.ProductType;
-       OEMName                 = str12350.OEMName;
-       OEMID                   = str12350.OEMID;
-       ProductName             = str12350.ProductName;
-       HardwareRevision        = str12350.HardwareRevision;
-       PID_VID                 = str12350.PID_VID;
-       sysOIDSize              = str12350.sysOIDSize;
-       sysOID                  = str12350.sysOID;
-       CountryCode             = str12350.CountryCode;
-       ChannelInformation      = str12350.ChannelInformation;
-       TxPower                 = str12350.TxPower;
+    st_len = varbinds[0].len_val;
+
+    if (st_len == 128) { /* SHORTst */
+       memcpy(&str128, varbinds[0].value,
+           sizeof(struct sysDeviceInfo_128));
+       StructVersion           = str128.StructVersion;
+       MacAddress              = str128.MacAddress;
+       RegulatoryDomain        = str128.RegulatoryDomain;
+       ProductType             = str128.ProductType;
+       OEMName                 = str128.OEMName;
+       OEMID                   = str128.OEMID;
+       ProductName             = str128.ProductName;
+       HardwareRevision        = str128.HardwareRevision;
+    } else { /* st_len == 160 => LONGst */
+       memcpy(&str160, varbinds[0].value,
+           sizeof(struct sysDeviceInfo_160));
+       StructVersion           = str160.StructVersion;
+       MacAddress              = str160.MacAddress;
+       Channel                 = str160.Channel;
+       RegulatoryDomain        = str160.RegulatoryDomain;
+       ProductType             = str160.ProductType;
+       OEMName                 = str160.OEMName;
+       OEMID                   = str160.OEMID;
+       ProductName             = str160.ProductName;
+       HardwareRevision        = str160.HardwareRevision;
+       PID_VID                 = str160.PID_VID;
+       sysOIDSize              = str160.sysOIDSize;
+       sysOID                  = str160.sysOID;
+       CountryCode             = str160.CountryCode;
+       ChannelInformation      = str160.ChannelInformation;
+       TxPower                 = str160.TxPower;
     }
 
     clear_main(0);
@@ -218,41 +224,52 @@ void atmel_set_oeminfo()
     sprintf(message, "%s%u", S_HWREV, HardwareRevision);
     mvwaddstr(main_sub, 8, 0, message);
 
-    if (ap_type == ATMEL12350) {
-       sprintf(message, "%s%02u (%u MHz)", S_DEFCHAN, Channel,
-           2407 + 5 * Channel);
-       mvwaddstr(main_sub, 9, 0, message);
-
-       wmove(main_sub, 10, 0);
-       for (i = 0; i++ < COLS - MCOLS; waddch(main_sub, ACS_BSBS));
+    wmove(main_sub, 9, 0);
+    for (i = 0; ++i < COLS - MCOLS; waddch(main_sub, ACS_BSBS));
 
+    if (st_len == 160) {
        sprintf(message, "%s%s", S_COUNTRYC, CountryCode);
-       mvwaddstr(main_sub, 11, 0, message);
+       mvwaddstr(main_sub, 10, 0, message);
 
-//     TODO: find out what format this is in [apparently 2x uint16?]
-//     sprintf(message, "%s%u %u %u %u", S_PIDVID,
-//         PID_VID[0] & 0xFF, PID_VID[1] & 0xFF,
-//         PID_VID[2] & 0xFF, PID_VID[3] & 0xFF);
-//     mvwaddstr(main_sub, 12, 0, message);
+       sprintf(message, "%s%02u (%u MHz)", S_DEFCHAN, Channel,
+           2407 + 5 * Channel);
+       mvwaddstr(main_sub, 11, 0, message);
 
-//     TODO: find out what format ChannelInformation is in & enable this
-//     sprintf(message, "%s%u", S_CHANNELS, ChannelInformation);
-//     mvwaddstr(main_sub, 13, 0, message);
+       i = 1;
+       while(ChannelInformation >> i) i++;
+       sprintf(message, "%s%i", S_CHANNELS, i);
+       mvwaddstr(main_sub, 12, 0, message);
 
        sprintf(message, "%s%u", S_TXPOWER,
            TxPower[regdom_types[rd_idx].first_ch] & 0xFF);
-       mvwaddstr(main_sub, 12, 0, message);
+       mvwaddstr(main_sub, 13, 0, message);
 #if 0 /* DEBUG */
-       wmove(main_sub, 17, 0);
+       wmove(main_sub, 18, 0);
        for (i = 0; i < 14; i++) {
            sprintf(message, "%-3u ", TxPower[i] & 0xFF);
            waddstr(main_sub, message);
        }
 #endif /* DEBUG */
 
-       sprintf(message, "[-] First %u OID elements: .%u.%u.%u.%u",
-           sysOIDSize / 2, sysOID[0], sysOID[1], sysOID[2], sysOID[3]);
-       mvwaddstr(main_sub, 13, 0, message);
+       wmove(main_sub, 14, 0);
+       for (i = 0; ++i < COLS - MCOLS; waddch(main_sub, ACS_BSBS));
+
+       sprintf(message, "System control OID part [%u elements]: ", sysOIDSize);
+       mvwaddstr(main_sub, 15, 0, message);
+       i = 0;
+       while (i < (int)sysOIDSize) {
+           sprintf(message, ".%u", sysOID[i++]);
+           waddstr(main_sub, message);
+       }
+
+       sprintf(message, "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) |
+           ((PID_VID[3] & 0xFF) << 8));
+       mvwaddstr(main_sub, 17, 0, message);
+
     }
     wrefresh(main_sub);
 
@@ -294,11 +311,11 @@ void atmel_set_oeminfo()
 
                free(regdoms);
 
-               if (ap_type == ATMEL12350) {
+               if (st_len == 160) {
                    Channel = regdom_types[rd_idx].first_ch;
                    sprintf(message, "%02u (%u MHz)", Channel,
                        2407 + 5 * Channel);
-                   print_menusel(9, 0, S_DEFCHAN, message);
+                   print_menusel(11, 0, S_DEFCHAN, message);
                }
                continue;
            case 'e':
@@ -329,12 +346,21 @@ void atmel_set_oeminfo()
                    INT_STRING, 0, 0xFFFFFFFF, OEMSET_HELP);
                HardwareRevision = atoi(message);
                continue;
+           case 'o':
+           case 'O':
+               if (st_len == 128)
+                   continue;
+
+               get_value(CountryCode, 10, strlen(S_COUNTRYC), 3, ANY_STRING,
+                   0, 0, NULL);
+               continue;
            case 'c':
            case 'C':
-               if (ap_type != ATMEL12350)
+               if (st_len == 128)
                    continue;
 
-               Channel = menu_choose(3, strlen(S_DEFCHAN) - 2,
+               Channel = menu_choose(11 - regdom_types[rd_idx].chans / 2,
+               strlen(S_DEFCHAN) - 2,
 #ifndef NO_REG_DOMAIN
                 channels + regdom_types[rd_idx].first_ch - 1,
                 regdom_types[rd_idx].chans) + regdom_types[rd_idx].first_ch;
@@ -342,29 +368,43 @@ void atmel_set_oeminfo()
                 channels, 14) + 1;
 #endif
                sprintf(message, "%02u (%u MHz)", Channel, 2407 + 5 * Channel);
-               print_menusel(9, 0, S_DEFCHAN, message);
+               print_menusel(11, 0, S_DEFCHAN, message);
                continue;
-           case 'o':
-           case 'O':
-               if (ap_type != ATMEL12350)
+           case 'a':
+           case 'A':
+               if (st_len == 128)
                    continue;
 
-               get_value(CountryCode, 11, strlen(S_COUNTRYC), 3, ANY_STRING,
-                   0, 0, NULL);
+               get_value(message, 12, strlen(S_CHANNELS), 3, INT_STRING, 1, 14,
+                   OEMSET_HELP);
+               memset((void *)TxPower + 1, 0, 13);
+               for(i = 1; i < atoi(message); i++)
+                   TxPower[i] = TxPower[0];
+
+               i = 1 << (atoi(message) - 1);
+               ChannelInformation = i | (i - 1);
                continue;
            case 'p':
            case 'P':
-               if (ap_type != ATMEL12350)
+               if (st_len == 128)
                    continue;
 
-               memset((void *)TxPower, 0, 14);
-               get_value(message, 12, strlen(S_TXPOWER), 4, INT_STRING, 0, 255,
+               get_value(message, 13, strlen(S_TXPOWER), 4, INT_STRING, 0, 255,
                    OEMSET_HELP);
                c = atoi(message) & 0xFF;
+
+               memset((void *)TxPower, 0, 14);
+               i = 0;
+               while(ChannelInformation >> i) {
+                   TxPower[i] = c;
+                   i++;
+               }
+/*
+               memset((void *)TxPower, 0, 14);
                for (i = regdom_types[rd_idx].first_ch; i <
                regdom_types[rd_idx].first_ch + regdom_types[rd_idx].chans; i++)
                   TxPower[i - 1] = c;
-
+*/
                continue;
            case 'q':
            case 'Q':
@@ -375,23 +415,23 @@ void atmel_set_oeminfo()
                varbinds[0].len_oid = sizeof(sysDeviceInfo);
                varbinds[0].type = STRING_VALUE;
 
-               if (ap_type == ATMEL410) {
-                   str410.RegulatoryDomain     = RegulatoryDomain;
-                   str410.ProductType          = ProductType;
-                   str410.OEMID                = OEMID;
-                   str410.HardwareRevision     = HardwareRevision;
-                   varbinds[0].value = (char *) &str410;
+               if (st_len == 128) { /* SHORTst */
+                   str128.RegulatoryDomain     = RegulatoryDomain;
+                   str128.ProductType          = ProductType;
+                   str128.OEMID                = OEMID;
+                   str128.HardwareRevision     = HardwareRevision;
+                   varbinds[0].value = (char *) &str128;
                    varbinds[0].len_val =
-                       sizeof(struct sysDeviceInfo_ATMEL410);
-               } else { /* ATMEL12350 */
-                   str12350.Channel            = Channel;
-                   str12350.RegulatoryDomain   = RegulatoryDomain;
-                   str12350.ProductType        = ProductType;
-                   str12350.OEMID              = OEMID;
-                   str12350.HardwareRevision   = HardwareRevision;
-//                 str12350.ChannelInformation = ChannelInformation;
-                   varbinds[0].value = (char *) &str12350;
-                   // first 92 bytes of struct sysDeviceInfo_ATMEL12350 here
+                       sizeof(struct sysDeviceInfo_128);
+               } else { /* st_len == 160 => LONGst */
+                   str160.Channel              = Channel;
+                   str160.RegulatoryDomain     = RegulatoryDomain;
+                   str160.ProductType  = ProductType;
+                   str160.OEMID                = OEMID;
+                   str160.HardwareRevision     = HardwareRevision;
+                   str160.ChannelInformation   = ChannelInformation;
+                   varbinds[0].value = (char *) &str160;
+                   /* first 92 bytes of struct sysDeviceInfo_160 here */
                    varbinds[0].len_val = 92;
                }
 
@@ -401,12 +441,12 @@ void atmel_set_oeminfo()
                    goto exit;
                }
 
-               if (ap_type == ATMEL12350) {
+               if (st_len == 160) {
                    varbinds[0].oid = sysDeviceMoreInfo;
                    varbinds[0].len_oid = sizeof(sysDeviceMoreInfo);
                    varbinds[0].type = STRING_VALUE;
-                   // last 32 bytes of struct sysDeviceInfo_ATMEL12350 here
-                   varbinds[0].value = (char *) &str12350.CountryCode;
+                   /* last 32 bytes of struct sysDeviceInfo_160 here */
+                   varbinds[0].value = (char *) &str160.CountryCode;
                    varbinds[0].len_val = 32;
                    if (snmp(varbinds, 1, SET) <= 0) {
                        print_helperr(ERR_SET);
index 03bbf81a277a78bc6cef8a5c358b93b19e3654d5..d33fc9dd5905ece9f6f0a98d947fb9f1cb12bd00 100644 (file)
 #include <arpa/inet.h>
 #include "ap-utils.h"
 
-#define RETRIES 5
-
 sigjmp_buf position;
 
 extern char *community;
 extern short ap_type;
 extern int sockfd;
 extern struct in_addr ap_ip;
-int retries;
+
+int snmp_retries = 5, retries;
 char *buf = NULL;
 
 static void alarm_handler()
@@ -159,7 +158,7 @@ int snmp(varbind * varbindlist, int num, int type)
     server.sin_addr.s_addr = ap_ip.s_addr;
 
     signal(SIGALRM, alarm_handler);
-    retries = RETRIES;
+    retries = snmp_retries;
     sigsetjmp(position, 1);
     if (!retries) {
        return 0;
index 7ebe726a926bc266899692df6468de6358ade8e1..b5c0c6ed84a55cf95efb8de9dccb97989af1362b 100644 (file)
@@ -35,25 +35,25 @@ extern int wait_mode;
 
 void EthStat()
 {
-    struct EthernetRxStatistics *EthRxStat = NULL;
-    struct EthernetTxStatistics *EthTxStat = NULL;
+    struct EthRxStatistics_s *EthRxStat = NULL;
+    struct EthTxStatistics_s *EthTxStat = NULL;
 
-    char EthRx[] = { 0x2B, 0x06, 0x01, 0x04, 0x01, 0x83, 0x1A, 0x01, 0x01,
-       0x07, 0x01, 0x00
+    char EthRxStatistics[] = {
+       0x2B, 0x06, 0x01, 0x04, 0x01, 0x83, 0x1A, 0x01, 0x01, 0x07, 0x01, 0x00
     };
-
-    char EthTx[] = { 0x2B, 0x06, 0x01, 0x04, 0x01, 0x83, 0x1A, 0x01, 0x01,
-       0x07, 0x02, 0x00
+    char EthTxStatistics[] = {
+       0x2B, 0x06, 0x01, 0x04, 0x01, 0x83, 0x1A, 0x01, 0x01, 0x07, 0x02, 0x00
     };
+
     char message[1024];
     varbind varbinds[2];
     int i;
 
     if (ap_type == ATMEL12350) {
-       EthRx[5] = 0xE0;
-       EthRx[6] = 0x3E;
-       EthTx[5] = 0xE0;
-       EthTx[6] = 0x3E;
+       EthRxStatistics[5] = 0xE0;
+       EthRxStatistics[6] = 0x3E;
+       EthTxStatistics[5] = 0xE0;
+       EthTxStatistics[6] = 0x3E;
     }
     
     print_top(wait_mode == WAIT_TIMEOUT ? POLL_ON : POLL_OFF, ETH_STAT);
@@ -62,23 +62,23 @@ void EthStat()
     if (wait_mode == WAIT_TIMEOUT)
         print_help(QT_HELP);
 
-    varbinds[0].oid = EthRx;
-    varbinds[0].len_oid = sizeof(EthRx);
-    varbinds[1].oid = EthTx;
-    varbinds[1].len_oid = sizeof(EthTx);
+    varbinds[0].oid = EthRxStatistics;
+    varbinds[0].len_oid = sizeof(EthRxStatistics);
+    varbinds[1].oid = EthTxStatistics;
+    varbinds[1].len_oid = sizeof(EthTxStatistics);
 
     while (1) {
-//     varbinds[0].value = EthTx;
+//     varbinds[0].value = EthRxStatistics;
        varbinds[0].len_val = 0;
        varbinds[0].type = NULL_VALUE;
-//     varbinds[1].value = EthTx;
+//     varbinds[1].value = EthTxStatistics;
        varbinds[1].len_val = 0;
        varbinds[1].type = NULL_VALUE;
 
        if (wait_mode == WAIT_FOREVER)
            print_help(WAIT_RET);
 
-       if (snmp(varbinds, 2, GET) <= 0) {
+       if (snmp(varbinds, 2, GET) < 2) {
            print_helperr(ERR_RET);
            getch();
            goto quit;
@@ -91,7 +91,7 @@ void EthStat()
            if (EthRxStat)
                free(EthRxStat);
            EthRxStat =
-               (struct EthernetRxStatistics *) malloc(varbinds[0].
+               (struct EthRxStatistics_s *) malloc(varbinds[0].
                                                       len_val);
            memcpy(EthRxStat, varbinds[0].value, varbinds[0].len_val);
        } else {
@@ -104,7 +104,7 @@ void EthStat()
            if (EthTxStat)
                free(EthTxStat);
            EthTxStat =
-               (struct EthernetTxStatistics *) malloc(varbinds[1].
+               (struct EthTxStatistics_s *) malloc(varbinds[1].
                                                       len_val);
            memcpy(EthTxStat, varbinds[1].value, varbinds[1].len_val);
        } else {
@@ -214,19 +214,19 @@ void EthStat()
 
 void WirelessStat()
 {
-    struct WirelessStatistics *WirelessStat = NULL;
+    struct wirelessStatistics_s *WirelessStat = NULL;
 
-    char Wireless[] =
-       { 0x2B, 0x06, 0x01, 0x04, 0x01, 0x83, 0x1A, 0x01, 0x02, 0x03, 0x01,
-       0x00
+    char wirelessStatistics[] = {
+       0x2B, 0x06, 0x01, 0x04, 0x01, 0x83, 0x1A, 0x01, 0x02, 0x03, 0x01, 0x00
     };
+
     char message[80];
     int i;
     varbind varbinds[1];
 
     if (ap_type == ATMEL12350) {
-       Wireless[5] = 0xE0;
-       Wireless[6] = 0x3E;
+       wirelessStatistics[5] = 0xE0;
+       wirelessStatistics[6] = 0x3E;
     }
 
     print_top(wait_mode == WAIT_TIMEOUT ? POLL_ON : POLL_OFF, W_STAT);
@@ -235,11 +235,11 @@ void WirelessStat()
     if (wait_mode == WAIT_TIMEOUT)
        print_help(QT_HELP);
 
-    varbinds[0].oid = Wireless;
-    varbinds[0].len_oid = sizeof(Wireless);
+    varbinds[0].oid = wirelessStatistics;
+    varbinds[0].len_oid = sizeof(wirelessStatistics);
 
     while (1) {
-       varbinds[0].value = Wireless;
+       varbinds[0].value = wirelessStatistics;
        varbinds[0].len_val = 0;
        varbinds[0].type = NULL_VALUE;
 
@@ -258,12 +258,12 @@ void WirelessStat()
        if (varbinds[0].len_val == 88 || varbinds[0].len_val == 104) {
            /*
             * 88 ... using traditional ATMEL 12350 MIB
-            * 104 .. using functionally enhanced ATMEL 12350 MIB by VERNET
+            * 104 .. using functionally enhanced ATMEL 12350 MIB by EZYNET
             */
            if (WirelessStat)
                free(WirelessStat);
            WirelessStat =
-               (struct WirelessStatistics *) malloc(varbinds[0].len_val);
+               (struct wirelessStatistics_s *) malloc(varbinds[0].len_val);
            memcpy(WirelessStat, varbinds[0].value, varbinds[0].len_val);
        } else {
            print_helperr
@@ -332,7 +332,7 @@ void WirelessStat()
                swap4(WirelessStat->InvalidPLCP));
        mvwaddstr(main_sub, 15, 1, message);
 
-       /* ATMEL12350 MIB 'VERNET' modification has in addition the following */
+       /* ATMEL12350 MIB EZYNET modification has in addition the following */
        if (varbinds[0].len_val == 104) {
            mvwaddstr(main_sub, 16, 1, "TransmittedPackets:");
            sprintf(message, "* at 11 Mbps       %10u",
@@ -468,7 +468,7 @@ void nwn_wireless_stat()
        if (wait_mode == WAIT_FOREVER)
            print_help(WAIT_RET);
 
-       if (snmp(varbinds, 16, GET) <= 0) {
+       if (snmp(varbinds, 16, GET) < 16) {
            print_helperr(ERR_RET);
            getch();
            goto quit;
index 283309f87779bbe79b2e0d3892f94ead8975ad22..6e1e7f8a387bd779cf12f4c96899779e7e489d24 100644 (file)
@@ -32,6 +32,7 @@
 #define OID_NUM 11
 
 extern WINDOW *main_sub;
+extern char* bridge_modes[6];
 
 void atmel_sysinfo()
 {
@@ -41,22 +42,35 @@ void atmel_sysinfo()
     char sysDeviceInfo[] = {
        0x2B, 0x06, 0x01, 0x04, 0x01, 0x83, 0x1A, 0x01, 0x01, 0x01, 0x05, 0x00
     };
-    /* This one is ATMEL12350 VERNET MIB specific. */
+    char bridgeOperationalMode[] = {
+       0x2B, 0x06, 0x01, 0x04, 0x01, 0x83, 0x1A, 0x01, 0x01, 0x04, 0x01, 0x00
+    };
+    /* This one is ATMEL12350 EZYNET MIB specific. */
     char UpTime[] = {
        0x2B, 0x06, 0x01, 0x04, 0x01, 0xE0, 0x3E, 0x01, 0x02, 0x09, 0x01, 0x00
     };
 
+char *bridge_modes[6] = {
+           _("Wireless Bridge Point to MultiPoint"),
+               _("Access Point"),
+                   _("Access Point client"),
+                       _("Wireless Bridge Point to Point"),
+                           _("Repeater"),
+                               _("unknown")
+};
+
+    
     char message[200];
     int i;
-    varbind varbinds[3];
-    struct sysDeviceInfo_ATMEL410 str410;
-    struct sysDeviceInfo_ATMEL12350 str12350;
+    varbind varbinds[4];
+    struct sysDeviceInfo_128 str128;
+    struct sysDeviceInfo_160 str160;
     extern short ap_type, ap_vendorext;
     extern int LINES, wait_mode;
     extern rdprops regdom_types[];
 
     /*
-     * These have to represent used sysDeviceInfo_{ATMEL410,ATMEL12350} members
+     * These have to represent used sysDeviceInfo_{128,160} members
      */
     uint32_t ap_sversion;
     char *ap_macaddr;
@@ -72,6 +86,8 @@ void atmel_sysinfo()
        sysDescr[6] = 0x3E;
        sysDeviceInfo[5] = 0xE0;
        sysDeviceInfo[6] = 0x3E;
+       bridgeOperationalMode[5] = 0xE0;
+       bridgeOperationalMode[6] = 0x3E;
     }
 
     print_top(wait_mode == WAIT_TIMEOUT ? POLL_ON : POLL_OFF, SYSINFO);
@@ -82,33 +98,40 @@ void atmel_sysinfo()
     while (1) {
        i = 0;
 
-       varbinds[0].oid = sysDescr;
-       varbinds[0].len_oid = sizeof(sysDescr);
-       varbinds[0].value = sysDescr;
-       varbinds[0].type = NULL_VALUE;
-       varbinds[0].len_val = 0;
+       varbinds[i].oid = sysDescr;
+       varbinds[i].len_oid = sizeof(sysDescr);
+       varbinds[i].value = sysDescr;
+       varbinds[i].type = NULL_VALUE;
+       varbinds[i].len_val = 0;
        i++;
 
-       varbinds[1].oid = sysDeviceInfo;
-       varbinds[1].len_oid = sizeof(sysDeviceInfo);
-       varbinds[1].value = sysDeviceInfo;
-       varbinds[1].len_val = 0;
-       varbinds[1].type = NULL_VALUE;
+       varbinds[i].oid = sysDeviceInfo;
+       varbinds[i].len_oid = sizeof(sysDeviceInfo);
+       varbinds[i].value = sysDeviceInfo;
+       varbinds[i].len_val = 0;
+       varbinds[i].type = NULL_VALUE;
        i++;
 
-       if (ap_vendorext == VERNET) {
-           varbinds[2].oid = UpTime;
-           varbinds[2].len_oid = sizeof(UpTime);
-           varbinds[2].value = UpTime;
-           varbinds[2].len_val = 0;
-           varbinds[2].type = NULL_VALUE;
+       varbinds[i].oid = bridgeOperationalMode;
+       varbinds[i].len_oid = sizeof(bridgeOperationalMode);
+       varbinds[i].value = bridgeOperationalMode;
+       varbinds[i].len_val = 0;
+       varbinds[i].type = NULL_VALUE;
+       i++;
+
+       if (ap_type == ATMEL12350 && ap_vendorext == EZYNET) {
+           varbinds[i].oid = UpTime;
+           varbinds[i].len_oid = sizeof(UpTime);
+           varbinds[i].value = UpTime;
+           varbinds[i].len_val = 0;
+           varbinds[i].type = NULL_VALUE;
            i++;
        }
 
        if (wait_mode == WAIT_FOREVER)
            print_help(WAIT_RET);
 
-       if (snmp(varbinds, i, GET) <= 0) {
+       if (snmp(varbinds, i, GET) < i) {
            print_helperr(ERR_RET);
            getch();
            goto quit;
@@ -121,81 +144,85 @@ void atmel_sysinfo()
        for (i = 0; i < varbinds[0].len_val && *(varbinds[0].value + i); i++)
            mvwaddch(main_sub, 1, i + 1, *(varbinds[0].value + i));
 
-       if (ap_type == ATMEL410) {
-           memcpy(&str410, varbinds[1].value,
-               sizeof(struct sysDeviceInfo_ATMEL410));
-           ap_sversion = str410.StructVersion;
-           ap_macaddr = str410.MacAddress;
-           ap_regdomain = swap4(str410.RegulatoryDomain);
-           ap_prodtype = str410.ProductType;
-           ap_oemname = str410.OEMName;
-           ap_oemid = str410.OEMID;
-           ap_prodname = str410.ProductName;
-           ap_hwrev = str410.HardwareRevision;
-       } else { /* ATMEL12350 */
-           memcpy(&str12350, varbinds[1].value,
-               sizeof(struct sysDeviceInfo_ATMEL12350));
-           ap_regdomain = str12350.RegulatoryDomain;
-           ap_sversion = str12350.StructVersion;
-           ap_macaddr = str12350.MacAddress;
-           ap_prodtype = str12350.ProductType;
-           ap_oemname = str12350.OEMName;
-           ap_oemid = str12350.OEMID;
-           ap_prodname = str12350.ProductName;
-           ap_hwrev = str12350.HardwareRevision;
+       if (varbinds[1].len_val == 128) {
+           memcpy(&str128, varbinds[1].value,
+               sizeof(struct sysDeviceInfo_128));
+           ap_sversion = str128.StructVersion;
+           ap_macaddr = str128.MacAddress;
+           ap_regdomain = swap4(str128.RegulatoryDomain);
+           ap_prodtype = str128.ProductType;
+           ap_oemname = str128.OEMName;
+           ap_oemid = str128.OEMID;
+           ap_prodname = str128.ProductName;
+           ap_hwrev = str128.HardwareRevision;
+       } else { /* varbinds[1].len_val == 160 */
+           memcpy(&str160, varbinds[1].value,
+               sizeof(struct sysDeviceInfo_160));
+           ap_regdomain = str160.RegulatoryDomain;
+           ap_sversion = str160.StructVersion;
+           ap_macaddr = str160.MacAddress;
+           ap_prodtype = str160.ProductType;
+           ap_oemname = str160.OEMName;
+           ap_oemid = str160.OEMID;
+           ap_prodname = str160.ProductName;
+           ap_hwrev = str160.HardwareRevision;
        }
 
+       sprintf(message, _("Operational mode: %s"),
+           bridge_modes[*(varbinds[2].value) - 1]);
+       mvwaddstr(main_sub, 2, 0, message);
+
        sprintf(message, "%s%02X%02X%02X%02X%02X%02X", MAC,
            ap_macaddr[0] & 0xFF, ap_macaddr[1] & 0xFF,
            ap_macaddr[2] & 0xFF, ap_macaddr[3] & 0xFF,
            ap_macaddr[4] & 0xFF, ap_macaddr[5] & 0xFF);
-       mvwaddstr(main_sub, 2, 0, message);
+       mvwaddstr(main_sub, 3, 0, message);
 
-       mvwaddstr(main_sub, 3, 0, _("Product name:"));
+       mvwaddstr(main_sub, 4, 0, _("Product name: "));
        for (i = 0; i < 32 && ap_prodname[i]; i++)
-           mvwaddch(main_sub, 3, i + 14, ap_prodname[i]);
+           waddch(main_sub, ap_prodname[i]);
 
        sprintf(message, _("Product type: %u"), swap4(ap_prodtype));
-       mvwaddstr(main_sub, 4, 0, message);
+       mvwaddstr(main_sub, 5, 0, message);
 
-       mvwaddstr(main_sub, 5, 0, _("OEM name:"));
+       mvwaddstr(main_sub, 6, 0, _("OEM name: "));
        for (i = 0; i < 32 && ap_oemname[i]; i++)
-           mvwaddch(main_sub, 5, i + 10, ap_oemname[i]);
+           waddch(main_sub, ap_oemname[i]);
 
        sprintf(message, "OEM ID: %u", swap4(ap_oemid));
-       mvwaddstr(main_sub, 6, 0, message);
+       mvwaddstr(main_sub, 7, 0, message);
 
        sprintf(message, _("Hardware revision: %u"), swap4(ap_hwrev));
-       mvwaddstr(main_sub, 7, 0, message);
+       mvwaddstr(main_sub, 8, 0, message);
 
        i = regdom_idx(ap_regdomain);
        sprintf(message, "Regulatory domain: %s [%d]",
            regdom_types[i].desc, ap_regdomain);
-       mvwaddstr(main_sub, 8, 0, message);
+       mvwaddstr(main_sub, 9, 0, message);
 
        sprintf(message, _("Info structure version: %u"), swap4(ap_sversion));
-       mvwaddstr(main_sub, 9, 0, message);
+       mvwaddstr(main_sub, 10, 0, message);
 
        sprintf(message, _("Manufacturer OUI: %02X %02X %02X (%s)"),
            ap_macaddr[0] & 0xFF, ap_macaddr[1] & 0xFF, ap_macaddr[2] & 0xFF,
            oui2manufacturer(ap_macaddr));
-       mvwaddstr(main_sub, 10, 0, message);
+       mvwaddstr(main_sub, 11, 0, message);
 
-       if (ap_vendorext == VERNET) {
+       if (ap_type == ATMEL12350 && ap_vendorext == EZYNET) {
            unsigned int j = 0;
 
-           if (varbinds[2].len_val > 1) {
-               for (i = 0; i < varbinds[2].len_val; i++)
-                   j |= (varbinds[2].value[i]
-                       << (8 * (varbinds[2].len_val - i - 1)));
+           if (varbinds[3].len_val > 1) {
+               for (i = 0; i < varbinds[3].len_val; i++)
+                   j |= (varbinds[3].value[i]
+                       << (8 * (varbinds[3].len_val - i - 1)));
            } else {
-               j = varbinds[2].value[0] & 0x80 ?
-                   0xff00 | varbinds[2].value[0] : varbinds[2].value[0];
+               j = varbinds[3].value[0] & 0x80 ?
+                   0xff00 | varbinds[3].value[0] : varbinds[3].value[0];
            }
            sprintf(message,
                _("Uptime: %u days, %02u:%02u:%02u hours:mins:secs"),
                j / 60 / 60 / 24, j / 60 / 60 % 24, j / 60 % 60, j % 60);
-           mvwaddstr(main_sub, 11, 0, message);
+           mvwaddstr(main_sub, 12, 0, message);
        }
 
        wrefresh(main_sub);
@@ -330,7 +357,7 @@ void nwn_sysinfo()
        if (wait_mode == WAIT_FOREVER)
            print_help(WAIT_RET);
 
-       if (snmp(varbinds, OID_NUM - 1, GET) <= 0) {
+       if (snmp(varbinds, OID_NUM - 1, GET) < OID_NUM - 1) {
            print_helperr(ERR_RET);
            getch();
            goto quit;
@@ -420,7 +447,7 @@ void nwn_sysinfo()
        varbinds[3].type = NULL_VALUE;
        varbinds[3].len_val = 0;
 
-       if (snmp(varbinds, 4, GET) <= 0) {
+       if (snmp(varbinds, 4, GET) < 4) {
            print_helperr(ERR_RET);
            getch();
            goto quit;
index 037a6e7c9ac13bf023903665b8a4f5fd8e62dbe8..56b953a41ae5ccf4207189226e9b63d242ac585a 100644 (file)
@@ -75,6 +75,11 @@ void test()
     varbind varbinds[5];
 
     if (ap_type == ATMEL12350) {
+#if 1 /* Temporary kludge */
+       mvwaddstr(main_sub, 1, 0, _("Devices with ATMEL12350 MIB not yet supported."));
+       wrefresh(main_sub);
+       goto exit;
+#endif
        TestModeOnOff[5] = 0xE0;
        TestModeOnOff[6] = 0x3E;
        TestModeCommandStruct[5] = 0xE0;
index 4495a36b3d6e430075668fb8fb0d723e18b131eb..1cda0e8c3a0c619622973a8de51358fb02f3d1ab 100644 (file)
--- a/lib/wep.c
+++ b/lib/wep.c
@@ -76,7 +76,7 @@ void wep()
     varbinds[1].type = NULL_VALUE;
     varbinds[1].len_val = 0;
     print_help(WAIT_RET);
-    if (snmp(varbinds, 2, GET) <= 0) {
+    if (snmp(varbinds, 2, GET) < 2) {
        print_helperr(ERR_RET);
        goto exit;
     }
@@ -236,7 +236,7 @@ void nwn_wep()
     varbinds[3].len_val = 0;
                        
     print_help(WAIT_RET);
-    if (snmp(varbinds, 4, GET) <= 0) {
+    if (snmp(varbinds, 4, GET) < 4) {
        print_helperr(ERR_RET);
        goto exit;
     }
index fc8e555ec7a0b0b77fe78e53a265f01948835cd3..284da947421bc9a11651731934cab512413fc263 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 (msec): ")
+#define SIFS_T _("[T] SIFS time (ACK timeout) msec: ")
 #define WLAN_HELP _("[key] - set option; W - write conf; Q - quit to menu")
 
 extern short ap_type, ap_vendorext;
@@ -94,14 +94,14 @@ void atmel_wireless()
     char operInterRoaming[] = {
        0x2B, 0x06, 0x01, 0x04, 0x01, 0xE0, 0x3E, 0x01, 0x02, 0x01, 0x0D, 0x00
     };
-    /* These two are ATMEL12350 TELLUS MIB specific. */
+    /* These two are ATMEL12350 GEMTEK MIB specific. */
     char operBeaconPeriod[] = {
        0x2B, 0x06, 0x01, 0x04, 0x01, 0xE0, 0x3E, 0x01, 0x02, 0x01, 0x0E, 0x00
     };
     char operDTIM[] = {
        0x2B, 0x06, 0x01, 0x04, 0x01, 0xE0, 0x3E, 0x01, 0x02, 0x01, 0x0F, 0x00
     };
-    /* This one is ATMEL12350 VERNET MIB specific. */
+    /* This one is ATMEL12350 EZYNET MIB specific. */
     char operSIFSTIME[] = {
        0x2B, 0x06, 0x01, 0x04, 0x01, 0xE0, 0x3E, 0x01, 0x02, 0x01, 0x10, 0x00
     };
@@ -126,8 +126,8 @@ void atmel_wireless()
     short __rates[4] = { 2, 4, 11, 22 };
     int i, c = 0, rd_idx;
     unsigned short ap_regdomain;
-    struct sysDeviceInfo_ATMEL410 str410;
-    struct sysDeviceInfo_ATMEL12350 str12350;
+    struct sysDeviceInfo_128 str128;
+    struct sysDeviceInfo_160 str160;
 
 
     if (ap_type == ATMEL12350) {
@@ -179,16 +179,16 @@ void atmel_wireless()
     varbinds[i++].oid = sysDeviceInfo;
     if (ap_type == ATMEL12350) {
        varbinds[i++].oid = operInterRoaming;
-       if (ap_vendorext == TELLUS || ap_vendorext == VERNET) {
+       if (ap_vendorext == GEMTEK || ap_vendorext == EZYNET) {
            varbinds[i++].oid = operBeaconPeriod;
            varbinds[i++].oid = operDTIM;
        }
-       if (ap_vendorext == VERNET)
+       if (ap_vendorext == EZYNET)
            varbinds[i++].oid = operSIFSTIME;
     }
 
     print_help(WAIT_RET);
-    if (snmp(varbinds, i, GET) <= 0) {
+    if (snmp(varbinds, i, GET) < i) {
        print_helperr(ERR_RET);
        goto exit;
     }
@@ -208,28 +208,28 @@ void atmel_wireless()
     memcpy(ap_name, varbinds[10].value, 32);
     if (ap_type == ATMEL12350) {
        InterRoaming = *(varbinds[12].value);
-       if (ap_vendorext == TELLUS || ap_vendorext == VERNET) {
+       if (ap_vendorext == GEMTEK || ap_vendorext == EZYNET) {
            BeaconPeriod = varbinds[13].len_val == 2 ?
                (varbinds[13].value[0] << 8) | varbinds[13].value[1] :
                varbinds[13].value[0] < 0x80 ?
                varbinds[13].value[0] : 0xff00 | varbinds[13].value[0];
            dtim = *(varbinds[14].value);
        }
-       if (ap_vendorext == VERNET)
+       if (ap_vendorext == EZYNET)
            sifs = varbinds[15].len_val == 2 ?
                (varbinds[15].value[0] << 8) | varbinds[15].value[1] :
                varbinds[15].value[0] < 0x80 ?
                varbinds[15].value[0] : 0xff00 | varbinds[15].value[0];
     }
 
-    if (ap_type == ATMEL12350) {
-       memcpy(&str12350, varbinds[11].value,
-           sizeof(struct sysDeviceInfo_ATMEL12350));
-       ap_regdomain=str12350.RegulatoryDomain;
-    } else /* ATMEL410 */{
-       memcpy(&str410, varbinds[11].value,
-           sizeof(struct sysDeviceInfo_ATMEL410));
-       ap_regdomain = swap4(str410.RegulatoryDomain);
+    if (varbinds[11].len_val == 160) {
+       memcpy(&str160, varbinds[11].value,
+           sizeof(struct sysDeviceInfo_160));
+       ap_regdomain = str160.RegulatoryDomain;
+    } else { /* varbinds[11].len_val == 128 */
+       memcpy(&str128, varbinds[11].value,
+           sizeof(struct sysDeviceInfo_128));
+       ap_regdomain = swap4(str128.RegulatoryDomain);
     }
 
     rd_idx = regdom_idx(ap_regdomain);
@@ -265,13 +265,13 @@ void atmel_wireless()
     if (ap_type == ATMEL12350) {
        sprintf(message, "%s%s", INT_ROAMING, (InterRoaming == 1) ? ON : OFF);
        mvwaddstr(main_sub, 15, 0, message);
-       if (ap_vendorext == TELLUS || ap_vendorext == VERNET) {
+       if (ap_vendorext == GEMTEK || ap_vendorext == EZYNET) {
            sprintf(message, "%s%u", BEACON_PER, BeaconPeriod);
            mvwaddstr(main_sub, 16, 0, message);
            sprintf(message, "%s%u", DTIM_I, dtim);
            mvwaddstr(main_sub, 17, 0, message);
        }
-       if (ap_vendorext == VERNET) {
+       if (ap_vendorext == EZYNET) {
            sprintf(message, "%s%u", SIFS_T, sifs);
            mvwaddstr(main_sub, 18, 0, message);
        }
@@ -391,7 +391,7 @@ void atmel_wireless()
            continue;
        case 'B':
        case 'b':
-           if (ap_vendorext != TELLUS && ap_vendorext != VERNET)
+           if (ap_vendorext != GEMTEK && ap_vendorext != EZYNET)
                continue;
            get_value(message, 16, strlen(BEACON_PER), 6, INT_STRING, 0, 65535,
                WLAN_HELP);
@@ -400,7 +400,7 @@ void atmel_wireless()
            continue;
        case 'D':
        case 'd':
-           if (ap_vendorext != TELLUS && ap_vendorext != VERNET)
+           if (ap_vendorext != GEMTEK && ap_vendorext != EZYNET)
                continue;
            get_value(message, 17, strlen(DTIM_I), 4, INT_STRING, 0, 255,
                WLAN_HELP);
@@ -409,7 +409,7 @@ void atmel_wireless()
            continue;
        case 'T':
        case 't':
-           if (ap_vendorext != VERNET)
+           if (ap_vendorext != EZYNET)
                continue;
            get_value(message, 18, strlen(SIFS_T), 6, INT_STRING, 0, 65535,
                WLAN_HELP);
@@ -647,7 +647,7 @@ void nwn_wireless()
     varbinds[7].oid = operAccessPointName;
     varbinds[7].len_oid = sizeof(operAccessPointName);
     print_help(WAIT_RET);
-    if (snmp(varbinds, 8, GET) <= 0) {
+    if (snmp(varbinds, 8, GET) < 8) {
        print_helperr(ERR_RET);
        goto exit;
     }
@@ -704,7 +704,7 @@ void nwn_wireless()
     varbinds[8].oid = operAccessPointLocation;
     varbinds[8].len_oid = sizeof(operAccessPointLocation);
 
-    if (snmp(varbinds, 9, GET) <= 0) {
+    if (snmp(varbinds, 9, GET) < 9) {
        print_helperr(ERR_RET);
        goto exit;
     }
index c70873e04bbd3ee1b1dba60355994ee00e062cd2..0003964b9808eb31f45b55f2394ca2917791df7d 100644 (file)
@@ -1,10 +1,7 @@
 # List of source files containing translatable strings.
 # Copyright (C) 1995 Free Software Foundation, Inc.
 
-ap-gl/ap-gl.c
-ap-gl/auth_mac.c
-ap-gl/bridge.c
-ap-gl/stations.c
+lib/ap-curses.h
 lib/aps.c
 lib/ap_search.c
 lib/ap-utils.h
@@ -19,16 +16,21 @@ lib/radio.c
 lib/reset.c
 lib/scr.c
 lib/set_community.c
+lib/set_oeminfo.c
 lib/snmp.c
 lib/stat.c
 lib/sysinfo.c
 lib/test.c
 lib/wep.c
 lib/wlan.c
+src/ap-auth.c
 src/ap-config.c
+src/aplink.c
 src/ap-mrtg.c
+src/ap-rrd.c
+src/ap-tftp.c
 src/ap-trapd.c
-src/auth_mac.c
+src/auth.c
 src/bridge.c
 src/nwn_advanced.c
 src/nwn_latest.c
index 6502b65e5af71289cdeb26c896ac980cfe0c57a8..ffe1bc2e6f8f0e2587a93afb620e18b44b9200d1 100644 (file)
@@ -7,7 +7,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 2004-11-28 00:59+0200\n"
+"POT-Creation-Date: 2005-01-16 02:07+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,293 +15,6 @@ msgstr ""
 "Content-Type: text/plain; charset=CHARSET\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: ap-gl/ap-gl.c:41 ap-gl/bridge.c:178 src/ap-config.c:41 src/bridge.c:182
-msgid "Bridging"
-msgstr ""
-
-#: ap-gl/ap-gl.c:41 src/ap-config.c:41
-msgid "Set bridging and IP-related options"
-msgstr ""
-
-#: ap-gl/ap-gl.c:43 ap-gl/ap-gl.c:81 ap-gl/bridge.c:132 src/ap-config.c:43
-#: src/ap-config.c:112 src/ap-config.c:120 src/bridge.c:117 src/bridge.c:121
-msgid "Wireless"
-msgstr ""
-
-#: ap-gl/ap-gl.c:43 src/ap-config.c:43
-msgid "Set wireless options"
-msgstr ""
-
-#: ap-gl/ap-gl.c:44 src/ap-config.c:44 src/ap-config.c:56
-msgid "Privacy"
-msgstr ""
-
-#: ap-gl/ap-gl.c:45 src/ap-config.c:45 src/ap-config.c:57
-msgid "MAC auth"
-msgstr ""
-
-#: ap-gl/ap-gl.c:46 src/ap-config.c:46 src/ap-config.c:58
-msgid "Community"
-msgstr ""
-
-#: ap-gl/ap-gl.c:47 src/ap-config.c:47
-msgid "Radio"
-msgstr ""
-
-#: ap-gl/ap-gl.c:47 src/ap-config.c:47
-msgid "Set radio signal power and antenna options"
-msgstr ""
-
-#: ap-gl/ap-gl.c:62 src/ap-config.c:80
-msgid "Upload"
-msgstr ""
-
-#: ap-gl/ap-gl.c:62 src/ap-config.c:80
-msgid "Activate current configuration"
-msgstr ""
-
-#: ap-gl/ap-gl.c:63 src/ap-config.c:81
-msgid "Defaults"
-msgstr ""
-
-#: ap-gl/ap-gl.c:63 src/ap-config.c:81
-msgid "Restore factory default settings"
-msgstr ""
-
-#: ap-gl/ap-gl.c:64 src/ap-config.c:82 src/ap-config.c:89
-msgid "Reset"
-msgstr ""
-
-#: ap-gl/ap-gl.c:65 src/ap-config.c:83
-msgid "Reset AP. All not uploaded configuration will be lost"
-msgstr ""
-
-#: ap-gl/ap-gl.c:66 src/ap-config.c:84
-msgid "TestMode"
-msgstr ""
-
-#: ap-gl/ap-gl.c:66 src/ap-config.c:84
-msgid "Put Access Point in test mode"
-msgstr ""
-
-#: ap-gl/ap-gl.c:79 src/ap-config.c:110 src/ap-config.c:119
-msgid "SysInfo"
-msgstr ""
-
-#: ap-gl/ap-gl.c:80 ap-gl/bridge.c:131 src/ap-config.c:111 src/bridge.c:116
-#: src/bridge.c:120
-msgid "Ethernet"
-msgstr ""
-
-#: ap-gl/ap-gl.c:80 src/ap-config.c:111
-msgid "Get ethernet port statistics"
-msgstr ""
-
-#: ap-gl/ap-gl.c:82 src/ap-config.c:113 src/ap-config.c:121
-msgid "Stations"
-msgstr ""
-
-#: ap-gl/ap-gl.c:83 src/ap-config.c:114
-msgid "KnownAPs"
-msgstr ""
-
-#: ap-gl/ap-gl.c:83 src/ap-config.c:114
-msgid "Get info about known Access Points"
-msgstr ""
-
-#: ap-gl/ap-gl.c:100 src/ap-config.c:147
-msgid "Info"
-msgstr ""
-
-#: ap-gl/ap-gl.c:101 src/ap-config.c:148
-msgid "Config"
-msgstr ""
-
-#: ap-gl/ap-gl.c:102 src/ap-config.c:149
-msgid "Commands"
-msgstr ""
-
-#: ap-gl/ap-gl.c:102 src/ap-config.c:149
-msgid "Execute commands on Access Point"
-msgstr ""
-
-#: ap-gl/ap-gl.c:104 src/ap-config.c:151
-msgid "Connect"
-msgstr ""
-
-#: ap-gl/ap-gl.c:105 src/ap-config.c:152
-msgid "Search"
-msgstr ""
-
-#: ap-gl/ap-gl.c:106 lib/common.c:83 src/ap-config.c:153
-msgid "About"
-msgstr ""
-
-#: ap-gl/ap-gl.c:107 src/ap-config.c:154
-msgid "Shell"
-msgstr ""
-
-#: ap-gl/ap-gl.c:108 src/ap-config.c:155
-msgid "Exit"
-msgstr ""
-
-#: ap-gl/ap-gl.c:158 src/ap-config.c:204
-#, c-format
-msgid "Wireless Access Point Configurator ver. %s"
-msgstr ""
-
-#: ap-gl/auth_mac.c:27 src/auth_mac.c:27
-msgid "AuthorizedMacTableString packet error"
-msgstr ""
-
-#: ap-gl/auth_mac.c:29 src/auth_mac.c:29
-msgid "[A] MAC authorization: "
-msgstr ""
-
-#: ap-gl/auth_mac.c:30 src/auth_mac.c:30
-msgid "Enter MAC: "
-msgstr ""
-
-#: ap-gl/auth_mac.c:31 src/auth_mac.c:31
-msgid "Delete Num: "
-msgstr ""
-
-#: ap-gl/auth_mac.c:32 src/auth_mac.c:32
-msgid "Authorized MAC addresses"
-msgstr ""
-
-#: ap-gl/auth_mac.c:33
-msgid "NUM       MAC address"
-msgstr ""
-
-#: ap-gl/auth_mac.c:34 src/auth_mac.c:34
-msgid "A - auth; N - new; D - del; arrows - scroll; W - write conf; Q - quit"
-msgstr ""
-
-#: ap-gl/auth_mac.c:35
-msgid "A - auth; IPSTF - set; W - write conf; Q - quit"
-msgstr ""
-
-#: ap-gl/auth_mac.c:36
-msgid "A - auth; W - write conf; Q - quit"
-msgstr ""
-
-#: ap-gl/auth_mac.c:38
-msgid "[I] RADIUS SERVER IP: "
-msgstr ""
-
-#: ap-gl/auth_mac.c:39
-msgid "[P] RADIUS SERVER PORT: "
-msgstr ""
-
-#: ap-gl/auth_mac.c:40
-msgid "[S] RADIUS SERVER SECRET: "
-msgstr ""
-
-#: ap-gl/auth_mac.c:41
-msgid "[T] REAUTHORIZATION TIME: "
-msgstr ""
-
-#: ap-gl/auth_mac.c:42
-msgid "[F] RADIUS SOURCE PORT: "
-msgstr ""
-
-#: ap-gl/auth_mac.c:87
-msgid "Internal"
-msgstr ""
-
-#: ap-gl/auth_mac.c:95
-msgid "<hidden>"
-msgstr ""
-
-#: ap-gl/bridge.c:26 src/bridge.c:26
-msgid "[I] IP: "
-msgstr ""
-
-#: ap-gl/bridge.c:27 src/bridge.c:27
-msgid "[N] Netmask: "
-msgstr ""
-
-#: ap-gl/bridge.c:28 src/bridge.c:28
-msgid "[G] Gateway: "
-msgstr ""
-
-#: ap-gl/bridge.c:29 src/bridge.c:29
-msgid "[F] Filter non-IP traffic: "
-msgstr ""
-
-#: ap-gl/bridge.c:30 src/bridge.c:30
-msgid "[P] Primary port: "
-msgstr ""
-
-#: ap-gl/bridge.c:31 src/bridge.c:31
-msgid "Attached station MAC: "
-msgstr ""
-
-#: ap-gl/bridge.c:32 src/bridge.c:32
-msgid "[D] DHCP client: "
-msgstr ""
-
-#: ap-gl/bridge.c:33 src/bridge.c:33
-msgid "[O] Operational mode: "
-msgstr ""
-
-#: ap-gl/bridge.c:34 src/bridge.c:34
-msgid "[M] Preferred BSSID (remote MAC addr.): "
-msgstr ""
-
-#: ap-gl/bridge.c:36 src/bridge.c:36
-msgid "[T] Trap-sending port(s): "
-msgstr ""
-
-#: ap-gl/bridge.c:37 src/bridge.c:37
-msgid "[R] Forward broadcast traffic: "
-msgstr ""
-
-#: ap-gl/bridge.c:39
-msgid "[U] Isolate wireless clients: "
-msgstr ""
-
-#: ap-gl/bridge.c:40 src/bridge.c:40
-msgid "INGFPDOMSCTRBU - set; W - write conf; Q - quit to menu"
-msgstr ""
-
-#: ap-gl/bridge.c:124 src/bridge.c:109
-msgid "Wireless Bridge Point to MultiPoint"
-msgstr ""
-
-#: ap-gl/bridge.c:125 src/bridge.c:110
-msgid "Access Point"
-msgstr ""
-
-#: ap-gl/bridge.c:126 src/bridge.c:111
-msgid "Access Point client"
-msgstr ""
-
-#: ap-gl/bridge.c:127 src/bridge.c:112
-msgid "Wireless Bridge Point to Point"
-msgstr ""
-
-#: ap-gl/bridge.c:128 src/bridge.c:113
-msgid "Repeater"
-msgstr ""
-
-#: ap-gl/stations.c:77 src/stations.c:100
-msgid "AP is currently in AP Client Mode => no associated STAtions."
-msgstr ""
-
-#: ap-gl/stations.c:102
-msgid "#     MAC       LQ    RSSI   Status Port IP"
-msgstr ""
-
-#: ap-gl/stations.c:128 src/stations.c:159
-msgid "AssociatedSTAsInfo packet error"
-msgstr ""
-
-#: ap-gl/stations.c:160
-msgid "Arrows - scroll; S - save to file; Q - quit to menu."
-msgstr ""
-
 #: lib/aps.c:29
 msgid "Known Access Points"
 msgstr ""
@@ -338,7 +51,7 @@ msgstr ""
 msgid "via its wireless port."
 msgstr ""
 
-#: lib/aps.c:153 lib/cmd.c:45 lib/cmd.c:75 lib/test.c:91
+#: lib/aps.c:153 lib/cmd.c:45 lib/cmd.c:75 lib/test.c:96
 msgid "Do you want to continue? "
 msgstr ""
 
@@ -612,70 +325,86 @@ msgid "Bind socket error. Press any key."
 msgstr ""
 
 #: lib/ap-utils.h:115
-msgid "Back to main menu"
+msgid "Unable to write AP list file ~/.ap-config. Press any key."
 msgstr ""
 
 #: lib/ap-utils.h:116
+msgid "AP list file ~/.ap-config successfully written. Press any key."
+msgstr ""
+
+#: lib/ap-utils.h:118
+msgid "Back to main menu"
+msgstr ""
+
+#: lib/ap-utils.h:119
 msgid "Exit program"
 msgstr ""
 
-#: lib/ap-utils.h:117
+#: lib/ap-utils.h:120
 msgid "Run subshell. To return type 'exit'."
 msgstr ""
 
-#: lib/ap-utils.h:118
+#: lib/ap-utils.h:121
 msgid "Short info about program"
 msgstr ""
 
-#: lib/ap-utils.h:119
+#: lib/ap-utils.h:122
 msgid "Find connected Access Points"
 msgstr ""
 
-#: lib/ap-utils.h:120
+#: lib/ap-utils.h:123
 msgid "Set connection options: ip and community"
 msgstr ""
 
-#: lib/ap-utils.h:121
+#: lib/ap-utils.h:124
 msgid "Set encryption; edit WEP keys"
 msgstr ""
 
-#: lib/ap-utils.h:122
-msgid "Set MAC authorization; edit MAC authorization table"
+#: lib/ap-utils.h:125
+msgid "Set authorization; edit MAC authorization table"
 msgstr ""
 
-#: lib/ap-utils.h:123
+#: lib/ap-utils.h:126
 msgid "Set SNMP community/password for access to the AP"
 msgstr ""
 
-#: lib/ap-utils.h:124
+#: lib/ap-utils.h:127
 msgid "Get info about AP hardware and firmware"
 msgstr ""
 
-#: lib/ap-utils.h:125
+#: lib/ap-utils.h:128
 msgid "Get wireless port statistics"
 msgstr ""
 
-#: lib/ap-utils.h:126
+#: lib/ap-utils.h:129
 msgid "Get list of currently associated stations (Access Point clients)"
 msgstr ""
 
-#: lib/ap-utils.h:127
+#: lib/ap-utils.h:130
+msgid "Get link status in APclient mode"
+msgstr ""
+
+#: lib/ap-utils.h:131
 msgid "Get info and statistics from AP"
 msgstr ""
 
-#: lib/ap-utils.h:128
+#: lib/ap-utils.h:132
 msgid "Set various configuration options"
 msgstr ""
 
-#: lib/ap-utils.h:130
+#: lib/ap-utils.h:134
 msgid "Associated stations"
 msgstr ""
 
-#: lib/ap-utils.h:132
+#: lib/ap-utils.h:135
+msgid "AP Client link state"
+msgstr ""
+
+#: lib/ap-utils.h:137
 msgid "Polling: on"
 msgstr ""
 
-#: lib/ap-utils.h:133
+#: lib/ap-utils.h:138
 msgid "Polling: off"
 msgstr ""
 
@@ -759,41 +488,45 @@ msgstr ""
 msgid "Save connect-settings: "
 msgstr ""
 
-#: lib/common.c:100
+#: lib/common.c:84 src/ap-config.c:154
+msgid "About"
+msgstr ""
+
+#: lib/common.c:101
 #, c-format
 msgid "From %s"
 msgstr ""
 
-#: lib/common.c:102
+#: lib/common.c:103
 #, c-format
 msgid "Version %s"
 msgstr ""
 
-#: lib/common.c:105
+#: lib/common.c:106
 msgid "Written by Roman Festchook roma@polesye.net"
 msgstr ""
 
-#: lib/common.c:107
-msgid "Portions by Jan Rafaj aputils@cedric.unob.cz"
+#: lib/common.c:108
+msgid "and Jan Rafaj jr-aputils@cedric.unob.cz"
 msgstr ""
 
-#: lib/common.c:109
-msgid "Copyright (c) 2001-2004"
+#: lib/common.c:110
+msgid "Copyright (c) 2001-2005"
 msgstr ""
 
-#: lib/common.c:111
+#: lib/common.c:112
 msgid "Roman Festchook and Jan Rafaj"
 msgstr ""
 
-#: lib/common.c:114
+#: lib/common.c:115
 msgid "This program is distributed under the terms"
 msgstr ""
 
-#: lib/common.c:116
+#: lib/common.c:117
 msgid "of the GNU General Public License version 2."
 msgstr ""
 
-#: lib/common.c:118
+#: lib/common.c:119
 msgid "See the included COPYING file for details."
 msgstr ""
 
@@ -809,15 +542,15 @@ msgstr ""
 msgid "Entered characters will not be displayed for security reason."
 msgstr ""
 
-#: lib/common.c:266
+#: lib/common.c:259
 msgid "This label will be stored on HDD (independently on AP name!)."
 msgstr ""
 
-#: lib/common.c:361
+#: lib/common.c:370
 msgid "Trying to probe AP for MIB properties. Please wait..."
 msgstr ""
 
-#: lib/common.c:390
+#: lib/common.c:399
 msgid ""
 "Unable to determine AP MIB properties (no response from AP). Press any key."
 msgstr ""
@@ -842,19 +575,11 @@ msgstr ""
 msgid "Delete num:"
 msgstr ""
 
-#: lib/file.c:372
-msgid "AP list file ~/.ap-config successfully written. Press any key."
-msgstr ""
-
-#: lib/file.c:376
-msgid "Unable to write AP list file ~/.ap-config. Press any key."
-msgstr ""
-
-#: lib/file.c:426
+#: lib/file.c:458
 msgid "Unable to write stations file. Press any key."
 msgstr ""
 
-#: lib/file.c:428
+#: lib/file.c:460
 msgid "Stations file succesfully written. Press any key."
 msgstr ""
 
@@ -867,11 +592,11 @@ msgstr ""
 msgid "Value must be in range %u - %u. Press any key to continue."
 msgstr ""
 
-#: lib/input.c:412
+#: lib/input.c:413
 msgid "Y - Yes; Any other key - No (it's safer to answer No)"
 msgstr ""
 
-#: lib/oui.c:6056
+#: lib/oui.c:6058
 msgid "Unknown or Private"
 msgstr ""
 
@@ -910,7 +635,7 @@ msgid ""
 "key."
 msgstr ""
 
-#: lib/scr.c:168
+#: lib/scr.c:156
 #, c-format
 msgid "Current AP: %s Type: %s Ext: %s"
 msgstr ""
@@ -944,28 +669,162 @@ msgid ""
 "[key] - set community/password; W - write config to AP; Q - quit to menu"
 msgstr ""
 
-#: lib/stat.c:29
-msgid "Ethernet Statistics"
+#: lib/set_oeminfo.c:28
+msgid "Info structure version: "
 msgstr ""
 
-#: lib/stat.c:30
-msgid "Wireless Statistics"
+#: lib/set_oeminfo.c:29
+msgid "[M] Device MAC address: "
 msgstr ""
 
-#: lib/stat.c:98
-msgid "EthRxStat packet error. Press any key."
+#: lib/set_oeminfo.c:30
+msgid "    Manufacturer with this OUI: "
 msgstr ""
 
-#: lib/stat.c:111
-msgid "EthTxStat packet error. Press any key."
+#: lib/set_oeminfo.c:31
+msgid "[D] Regulatory domain: "
 msgstr ""
 
-#: lib/stat.c:115
-msgid "Received:"
+#: lib/set_oeminfo.c:32
+msgid "[T] Product type: "
 msgstr ""
 
-#: lib/stat.c:116
-msgid "Transmitted:"
+#: lib/set_oeminfo.c:33
+msgid "[E] OEM name: "
+msgstr ""
+
+#: lib/set_oeminfo.c:34
+msgid "[I] OEM ID: "
+msgstr ""
+
+#: lib/set_oeminfo.c:35
+msgid "[N] Product name: "
+msgstr ""
+
+#: lib/set_oeminfo.c:36
+msgid "[H] Hardware revision: "
+msgstr ""
+
+#: lib/set_oeminfo.c:37
+msgid "[O] Country code: "
+msgstr ""
+
+#: lib/set_oeminfo.c:38
+msgid "[C] Default channel: "
+msgstr ""
+
+#: lib/set_oeminfo.c:39
+msgid "[A] Calibrated channels: "
+msgstr ""
+
+#: lib/set_oeminfo.c:40
+msgid "[P] Nominal Tx Power (CR31) value for calibrated channels: "
+msgstr ""
+
+#: lib/set_oeminfo.c:41
+msgid ""
+"Keys in brackets - set corresponding option; W - write conf; Q - quit to menu"
+msgstr ""
+
+#: lib/set_oeminfo.c:101
+msgid "THIS IS A SECRET MENU LEADING TO VERY DANGEROUS OPTIONS."
+msgstr ""
+
+#: lib/set_oeminfo.c:103
+msgid "It is intended only for WISPs and repair shops."
+msgstr ""
+
+#: lib/set_oeminfo.c:107
+msgid "It allows to set OEM information stored in the AP (like its"
+msgstr ""
+
+#: lib/set_oeminfo.c:109
+msgid "MAC address, manuf. name, OEM ID, etc.). BE ABSOLUTELY SURE"
+msgstr ""
+
+#: lib/set_oeminfo.c:111
+msgid "THAT YOU KNOW WHAT YOU ARE DOING, AND THAT YOU HAVE THE"
+msgstr ""
+
+#: lib/set_oeminfo.c:113
+msgid "LEGAL RIGHT TO DO ANY MODIFICATION. Disobserving of these"
+msgstr ""
+
+#: lib/set_oeminfo.c:115
+msgid "rules may lead you into a conflict with your local"
+msgstr ""
+
+#: lib/set_oeminfo.c:117
+msgid "regulations and/or law."
+msgstr ""
+
+#: lib/set_oeminfo.c:119
+msgid "Also be warned that the setting of any from these options"
+msgstr ""
+
+#: lib/set_oeminfo.c:121
+msgid "may DAMAGE YOUR AP (other reason why this menu is hidden)."
+msgstr ""
+
+#: lib/set_oeminfo.c:123
+msgid "Values changed here will NOT be restored upon reset"
+msgstr ""
+
+#: lib/set_oeminfo.c:125
+msgid "of the device to factory defaults! It is advisable to"
+msgstr ""
+
+#: lib/set_oeminfo.c:127
+msgid "write them down somewhere prior their changing."
+msgstr ""
+
+#: lib/set_oeminfo.c:129
+msgid "Finally, note that you need to use MANUFACTURER community, "
+msgstr ""
+
+#: lib/set_oeminfo.c:131
+msgid "in order to be able to do any OEM info modification."
+msgstr ""
+
+#: lib/set_oeminfo.c:133
+msgid "Proceed further only at your full risk and responsibility. "
+msgstr ""
+
+#: lib/set_oeminfo.c:135
+msgid "You got the warnings."
+msgstr ""
+
+#: lib/set_oeminfo.c:141
+msgid "OEM Info settings"
+msgstr ""
+
+#: lib/set_oeminfo.c:221
+#, c-format
+msgid "%s%u"
+msgstr ""
+
+#: lib/stat.c:29
+msgid "Ethernet Statistics"
+msgstr ""
+
+#: lib/stat.c:30
+msgid "Wireless Statistics"
+msgstr ""
+
+#: lib/stat.c:98
+msgid "EthRxStat packet error. Press any key."
+msgstr ""
+
+#: lib/stat.c:111
+msgid "EthTxStat packet error. Press any key."
+msgstr ""
+
+#: lib/stat.c:115
+msgid "Received:"
+msgstr ""
+
+#: lib/stat.c:116
+msgid "Transmitted:"
 msgstr ""
 
 #: lib/stat.c:270
@@ -980,159 +839,184 @@ msgstr ""
 msgid "System Info"
 msgstr ""
 
-#: lib/sysinfo.c:120
+#: lib/sysinfo.c:54 src/bridge.c:86
+msgid "Wireless Bridge Point to MultiPoint"
+msgstr ""
+
+#: lib/sysinfo.c:55 src/bridge.c:87
+msgid "Access Point"
+msgstr ""
+
+#: lib/sysinfo.c:56 src/bridge.c:88
+msgid "Access Point client"
+msgstr ""
+
+#: lib/sysinfo.c:57 src/bridge.c:89
+msgid "Wireless Bridge Point to Point"
+msgstr ""
+
+#: lib/sysinfo.c:58 src/bridge.c:90
+msgid "Repeater"
+msgstr ""
+
+#: lib/sysinfo.c:59 lib/sysinfo.c:314 lib/sysinfo.c:423 src/bridge.c:91
+msgid "unknown"
+msgstr ""
+
+#: lib/sysinfo.c:143
 msgid "Device hardware/software/name info:"
 msgstr ""
 
-#: lib/sysinfo.c:154
-msgid "Product name:"
+#: lib/sysinfo.c:171
+#, c-format
+msgid "Operational mode: %s"
+msgstr ""
+
+#: lib/sysinfo.c:181
+msgid "Product name: "
 msgstr ""
 
-#: lib/sysinfo.c:158
+#: lib/sysinfo.c:185
 #, c-format
 msgid "Product type: %u"
 msgstr ""
 
-#: lib/sysinfo.c:161
-msgid "OEM name:"
+#: lib/sysinfo.c:188
+msgid "OEM name: "
 msgstr ""
 
-#: lib/sysinfo.c:168
+#: lib/sysinfo.c:195
 #, c-format
 msgid "Hardware revision: %u"
 msgstr ""
 
-#: lib/sysinfo.c:176
+#: lib/sysinfo.c:203
 #, c-format
 msgid "Info structure version: %u"
 msgstr ""
 
-#: lib/sysinfo.c:179 lib/sysinfo.c:355
+#: lib/sysinfo.c:206 lib/sysinfo.c:382
 #, c-format
 msgid "Manufacturer OUI: %02X %02X %02X (%s)"
 msgstr ""
 
-#: lib/sysinfo.c:196
+#: lib/sysinfo.c:223
 #, c-format
 msgid "Uptime: %u days, %02u:%02u:%02u hours:mins:secs"
 msgstr ""
 
-#: lib/sysinfo.c:284
+#: lib/sysinfo.c:311
 msgid "FHSS 2.4 GHz"
 msgstr ""
 
-#: lib/sysinfo.c:284
+#: lib/sysinfo.c:311
 msgid "DSSS 2.4 GHz"
 msgstr ""
 
-#: lib/sysinfo.c:284
+#: lib/sysinfo.c:311
 msgid "IR Baseband"
 msgstr ""
 
-#: lib/sysinfo.c:285
+#: lib/sysinfo.c:312
 msgid "Commercial range 0..40 C"
 msgstr ""
 
-#: lib/sysinfo.c:286
+#: lib/sysinfo.c:313
 msgid "Industrial range -30..70 C"
 msgstr ""
 
-#: lib/sysinfo.c:287 lib/sysinfo.c:396
-msgid "unknown"
-msgstr ""
-
-#: lib/sysinfo.c:289
+#: lib/sysinfo.c:316
 msgid "manual"
 msgstr ""
 
-#: lib/sysinfo.c:289
+#: lib/sysinfo.c:316
 msgid "notsupported"
 msgstr ""
 
-#: lib/sysinfo.c:289
+#: lib/sysinfo.c:316
 msgid "dynamic"
 msgstr ""
 
-#: lib/sysinfo.c:345
+#: lib/sysinfo.c:372
 msgid "Manufacturer:"
 msgstr ""
 
-#: lib/sysinfo.c:350
+#: lib/sysinfo.c:377
 msgid "Manufacturer ID:"
 msgstr ""
 
-#: lib/sysinfo.c:361
+#: lib/sysinfo.c:388
 msgid "Product Name:"
 msgstr ""
 
-#: lib/sysinfo.c:367
+#: lib/sysinfo.c:394
 msgid "Product ID:"
 msgstr ""
 
-#: lib/sysinfo.c:373
+#: lib/sysinfo.c:400
 msgid "Product Version:"
 msgstr ""
 
-#: lib/sysinfo.c:379
+#: lib/sysinfo.c:406
 #, c-format
 msgid "PHYType: %s"
 msgstr ""
 
-#: lib/sysinfo.c:382
+#: lib/sysinfo.c:409
 #, c-format
 msgid "Temperature: %s"
 msgstr ""
 
-#: lib/sysinfo.c:390
+#: lib/sysinfo.c:417
 #, c-format
 msgid "Regulatory Domain: %s"
 msgstr ""
 
-#: lib/sysinfo.c:391
+#: lib/sysinfo.c:418
 msgid "FCC (USA)"
 msgstr ""
 
-#: lib/sysinfo.c:392
+#: lib/sysinfo.c:419
 msgid "DOC (Canada)"
 msgstr ""
 
-#: lib/sysinfo.c:393
+#: lib/sysinfo.c:420
 msgid "ETSI (Europe)"
 msgstr ""
 
-#: lib/sysinfo.c:394
+#: lib/sysinfo.c:421
 msgid "Spain"
 msgstr ""
 
-#: lib/sysinfo.c:395
+#: lib/sysinfo.c:422
 msgid "France"
 msgstr ""
 
-#: lib/sysinfo.c:396
+#: lib/sysinfo.c:423
 msgid "MKK (Japan)"
 msgstr ""
 
-#: lib/sysinfo.c:399
+#: lib/sysinfo.c:426
 #, c-format
 msgid "Transmit Power: %u mW"
 msgstr ""
 
-#: lib/sysinfo.c:429
+#: lib/sysinfo.c:456
 #, c-format
 msgid "WEP implemented: %s"
 msgstr ""
 
-#: lib/sysinfo.c:432
+#: lib/sysinfo.c:459
 #, c-format
 msgid "Diversity: %s"
 msgstr ""
 
-#: lib/sysinfo.c:460
+#: lib/sysinfo.c:487
 #, c-format
 msgid "Uptime: %u:%02u:%02u.%02u"
 msgstr ""
 
-#: lib/sysinfo.c:480
+#: lib/sysinfo.c:507
 #, c-format
 msgid "IP  Address: %s"
 msgstr ""
@@ -1173,31 +1057,35 @@ msgstr ""
 msgid "Right"
 msgstr ""
 
-#: lib/test.c:86
+#: lib/test.c:79
+msgid "Devices with ATMEL12350 MIB not yet supported."
+msgstr ""
+
+#: lib/test.c:91
 msgid "Test mode"
 msgstr ""
 
-#: lib/test.c:89
+#: lib/test.c:94
 msgid "Using the \"Test mode\" may cause loss of your current"
 msgstr ""
 
-#: lib/test.c:90
+#: lib/test.c:95
 msgid "configuration."
 msgstr ""
 
-#: lib/test.c:102
+#: lib/test.c:107
 msgid "Options:"
 msgstr ""
 
-#: lib/test.c:128
+#: lib/test.c:133
 msgid "Statistics:"
 msgstr ""
 
-#: lib/test.c:129
+#: lib/test.c:134
 msgid "Success Frames: 0 Failed Frames: 0"
 msgstr ""
 
-#: lib/test.c:190
+#: lib/test.c:195
 #, c-format
 msgid "Success Frames: %lu Failed Frames: %lu"
 msgstr ""
@@ -1311,7 +1199,7 @@ msgid "[D] DTIM sending interval (beacons): "
 msgstr ""
 
 #: lib/wlan.c:48
-msgid "[T] SIFS time (msec): "
+msgid "[T] SIFS time (ACK timeout) msec: "
 msgstr ""
 
 #: lib/wlan.c:49
@@ -1343,6 +1231,135 @@ msgid ""
 "UIOPTY - antenna; SCANLEDFR1234 - options; W - write conf; Q - quit to menu"
 msgstr ""
 
+#: src/ap-auth.c:32 src/auth.c:28
+msgid "AuthorizedMacTableString packet error"
+msgstr ""
+
+#: src/ap-auth.c:33
+msgid "Invalid data in source file"
+msgstr ""
+
+#: src/ap-auth.c:34
+msgid "Can't open file"
+msgstr ""
+
+#: src/ap-auth.c:35
+msgid "Can't write to file"
+msgstr ""
+
+#: src/ap-auth.c:36
+msgid "Error closing file"
+msgstr ""
+
+#: src/ap-auth.c:45 src/ap-mrtg.c:42 src/ap-rrd.c:42
+msgid ""
+"\n"
+"Usage:\n"
+msgstr ""
+
+#: src/ap-auth.c:46
+msgid "\tap-auth -i ip -c community -d filename [-h]\n"
+msgstr ""
+
+#: src/ap-auth.c:47
+msgid ""
+"\tap-auth -i ip -c community -u filename [-h]\n"
+"\n"
+msgstr ""
+
+#: src/ap-auth.c:48
+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
+msgid "-i ip        - AP ip address\n"
+msgstr ""
+
+#: src/ap-auth.c:50 src/ap-mrtg.c:47 src/ap-rrd.c:48
+msgid "-c community - SNMP community string\n"
+msgstr ""
+
+#: src/ap-auth.c:51
+msgid ""
+"-d filename  - download list of authorised MAC addresses from AP to a file\n"
+msgstr ""
+
+#: src/ap-auth.c:53
+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
+msgid ""
+"-h           - print this help screen\n"
+"\n"
+msgstr ""
+
+#: src/ap-auth.c:56
+#, c-format
+msgid ""
+"ap-auth %s Copyright (c) 2004 Teemu Kiviniemi\n"
+"\n"
+msgstr ""
+
+#: src/ap-auth.c:146 src/ap-mrtg.c:139
+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
+msgid "Unable to determine AP MIB type (no response from AP)."
+msgstr ""
+
+#: src/ap-auth.c:228
+msgid "NWN devices are not yet supported."
+msgstr ""
+
+#: src/ap-config.c:41 src/bridge.c:200
+msgid "Bridging"
+msgstr ""
+
+#: src/ap-config.c:41
+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
+msgid "Wireless"
+msgstr ""
+
+#: src/ap-config.c:43
+msgid "Set wireless options"
+msgstr ""
+
+#: src/ap-config.c:44 src/ap-config.c:56
+msgid "Privacy"
+msgstr ""
+
+#: src/ap-config.c:45
+msgid "Auth"
+msgstr ""
+
+#: src/ap-config.c:46 src/ap-config.c:58
+msgid "Community"
+msgstr ""
+
+#: src/ap-config.c:47
+msgid "Radio"
+msgstr ""
+
+#: src/ap-config.c:47
+msgid "Set radio signal power and antenna options"
+msgstr ""
+
 #: src/ap-config.c:54
 msgid "General"
 msgstr ""
@@ -1359,172 +1376,632 @@ msgstr ""
 msgid "Set advanced options"
 msgstr ""
 
+#: src/ap-config.c:57
+msgid "MAC auth"
+msgstr ""
+
+#: src/ap-config.c:80
+msgid "Upload"
+msgstr ""
+
+#: src/ap-config.c:80
+msgid "Activate current configuration"
+msgstr ""
+
+#: src/ap-config.c:81
+msgid "Defaults"
+msgstr ""
+
+#: src/ap-config.c:81
+msgid "Restore factory default settings"
+msgstr ""
+
+#: src/ap-config.c:82 src/ap-config.c:89
+msgid "Reset"
+msgstr ""
+
+#: src/ap-config.c:83
+msgid "Reset AP. All not uploaded configuration will be lost"
+msgstr ""
+
+#: src/ap-config.c:84
+msgid "TestMode"
+msgstr ""
+
+#: src/ap-config.c:84
+msgid "Put Access Point in test mode"
+msgstr ""
+
 #: src/ap-config.c:89
 msgid "Reset AP."
 msgstr ""
 
-#: src/ap-config.c:122
+#: src/ap-config.c:110 src/ap-config.c:120
+msgid "SysInfo"
+msgstr ""
+
+#: src/ap-config.c:111 src/bridge.c:123 src/bridge.c:127
+msgid "Ethernet"
+msgstr ""
+
+#: src/ap-config.c:111
+msgid "Get ethernet port statistics"
+msgstr ""
+
+#: src/ap-config.c:113 src/ap-config.c:122
+msgid "Stations"
+msgstr ""
+
+#: src/ap-config.c:114
+msgid "AP link"
+msgstr ""
+
+#: src/ap-config.c:115
+msgid "KnownAPs"
+msgstr ""
+
+#: src/ap-config.c:115
+msgid "Get info about known Access Points"
+msgstr ""
+
+#: src/ap-config.c:123
 msgid "Latest"
 msgstr ""
 
-#: src/ap-config.c:122
+#: src/ap-config.c:123
 msgid "Get info about latest events"
 msgstr ""
 
-#: src/ap-mrtg.c:42
-msgid ""
-"\n"
-"Usage:\n"
+#: src/ap-config.c:148
+msgid "Info"
+msgstr ""
+
+#: src/ap-config.c:149
+msgid "Config"
+msgstr ""
+
+#: src/ap-config.c:150
+msgid "Commands"
+msgstr ""
+
+#: src/ap-config.c:150
+msgid "Execute commands on Access Point"
 msgstr ""
 
-#: src/ap-mrtg.c:44
+#: src/ap-config.c:152
+msgid "Connect"
+msgstr ""
+
+#: src/ap-config.c:153
+msgid "Search"
+msgstr ""
+
+#: src/ap-config.c:155
+msgid "Shell"
+msgstr ""
+
+#: src/ap-config.c:156
+msgid "Exit"
+msgstr ""
+
+#: src/ap-config.c:214
+#, c-format
+msgid "Wireless Access Point Configurator ver. %s"
+msgstr ""
+
+#: src/aplink.c:28
+msgid "RSSI:     ["
+msgstr ""
+
+#: src/aplink.c:29
+msgid "RSSI avg: ["
+msgstr ""
+
+#: src/aplink.c:30
+msgid "RSSI top: ["
+msgstr ""
+
+#: src/aplink.c:112
+msgid "Not available - device must have firmware with necessary "
+msgstr ""
+
+#: src/aplink.c:114
+msgid "vendor extensions and be in either 'Access Point client'"
+msgstr ""
+
+#: src/aplink.c:116
+msgid "or 'Repeater' mode."
+msgstr ""
+
+#: src/ap-mrtg.c:43
 msgid ""
-"\tap-mrtg -i ip -c community -t type [-b bssid] [-n name] [-a aptype] [-v] [-"
-"h] [-r]\n"
+"\tap-mrtg -i ip -c community -t type [-b bssid] [-n name] [-v] [-h] [-r]\n"
 "\n"
 msgstr ""
 
-#: src/ap-mrtg.c:46
+#: src/ap-mrtg.c:45
 msgid ""
 "Get stats from AP and return it in MRTG parsable format\n"
 "\n"
 msgstr ""
 
-#: src/ap-mrtg.c:47
-msgid "-i ip        - AP ip address\n"
-msgstr ""
-
 #: src/ap-mrtg.c:48
-msgid "-c community - SNMP community string\n"
+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
-msgid ""
-"-t type      - statistics type <w>ireless, <e>thernet, associated <s>tations "
-"or <l>ink quality in client mode\n"
+msgid "work with ATMEL410 MIB devices in AP Client mode)\n"
 msgstr ""
 
-#: src/ap-mrtg.c:52
+#: src/ap-mrtg.c:51
 msgid ""
-"-b bssid     - mac address of the AP to which get link quality, only if "
+"-b bssid     - mac address of the AP from which get link quality, only if "
 "type=l\n"
 msgstr ""
 
 #: src/ap-mrtg.c:53
-msgid "-n name     - AP name - for check only\n"
+msgid "-n name      - AP name - for check only\n"
 msgstr ""
 
 #: src/ap-mrtg.c:54
-msgid ""
-"-a aptype        - AP type - 410 (default) or 510 for ATMEL12350's, like the "
-"ME-102\n"
+msgid "-v           - report MRTG about problems connecting to AP\n"
 msgstr ""
 
-#: src/ap-mrtg.c:56
-msgid "-v           - report MRTG about problems connecting to AP\n"
+#: src/ap-mrtg.c:55 src/ap-rrd.c:56
+msgid "-r           - reset AP when getting LinkQuality stats\n"
 msgstr ""
 
 #: src/ap-mrtg.c:57
-msgid "-r           - reset AP when getting LinkQuality stats\n"
+#, c-format
+msgid ""
+"ap-mrtg %s Copyright (c) 2002-2003 Roman Festchook\n"
+"\n"
 msgstr ""
 
-#: src/ap-mrtg.c:58
+#: src/ap-rrd.c:44
 msgid ""
-"-h           - print this help screen\n"
+"\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
+msgid ""
+"Get stats from AP and put it in to specified RRDtool database\n"
 "\n"
 msgstr ""
 
-#: src/ap-mrtg.c:59
+#: src/ap-rrd.c:50
+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
+msgid "-d db_file   - RRD database file with full path\n"
+msgstr ""
+
+#: src/ap-rrd.c:53
+msgid ""
+"-b bssid     - mac address of the AP to which get link quality, only if "
+"type=l\n"
+msgstr ""
+
+#: src/ap-rrd.c:54
+msgid "-n name     - AP name - for check only\n"
+msgstr ""
+
+#: src/ap-rrd.c:55
+msgid ""
+"-a aptype    - AP type - 410 (default) or 510 for ATMEL12350's, like the ME-"
+"102\n"
+msgstr ""
+
+#: src/ap-rrd.c:58
 #, c-format
 msgid ""
-"ap-mrtg %s Copyright (c) 2002-2003 Roman Festchook\n"
+"ap-rrd %s Copyright (c) 2002-2004 Roman Festchook\n"
 "\n"
 msgstr ""
 
-#: src/ap-mrtg.c:143
+#: src/ap-rrd.c:142
 msgid "Invalid IP-address\n"
 msgstr ""
 
-#: src/ap-mrtg.c:188
+#: src/ap-rrd.c:188
 #, c-format
 msgid "Invalid AP-Type '%s' - valid types are 510 or 410\n"
 msgstr ""
 
-#: src/ap-mrtg.c:207
-msgid "Create socket error"
+#: src/ap-tftp.c:81
+msgid "yes"
 msgstr ""
 
-#: src/ap-mrtg.c:211
-msgid "Bind socket error"
+#: src/ap-tftp.c:82
+msgid "no"
+msgstr ""
+
+#: src/ap-tftp.c:84
+msgid "Error while read()ing firmware file"
+msgstr ""
+
+#: src/ap-tftp.c:88
+msgid "Undefined error"
+msgstr ""
+
+#: src/ap-tftp.c:89
+msgid "File not found"
+msgstr ""
+
+#: src/ap-tftp.c:90
+msgid "Access violation"
+msgstr ""
+
+#: src/ap-tftp.c:91
+msgid "Disk full or allocation error"
+msgstr ""
+
+#: src/ap-tftp.c:92
+msgid "Illegal TFTP operation"
+msgstr ""
+
+#: src/ap-tftp.c:93
+msgid "Unknown transfer ID"
+msgstr ""
+
+#: src/ap-tftp.c:94
+msgid "File already exists"
+msgstr ""
+
+#: src/ap-tftp.c:95
+msgid "No such user"
+msgstr ""
+
+#: src/ap-tftp.c:161
+msgid "Remote-filename too long.\n"
+msgstr ""
+
+#: src/ap-tftp.c:187
+#, c-format
+msgid "%sError in read()"
+msgstr ""
+
+#: src/ap-tftp.c:215
+#, c-format
+msgid "sending %u bytes\n"
+msgstr ""
+
+#: src/ap-tftp.c:224
+#, c-format
+msgid "%sError in sendto()"
+msgstr ""
+
+#: src/ap-tftp.c:247
+#, c-format
+msgid "%sError in recvfrom()"
+msgstr ""
+
+#: src/ap-tftp.c:261
+#, c-format
+msgid "\rProgress: uploaded %.0f %%."
+msgstr ""
+
+#: src/ap-tftp.c:272
+#, c-format
+msgid "%sMalformed packet received. Aborting.\n"
+msgstr ""
+
+#: src/ap-tftp.c:281
+#, c-format
+msgid "%sTimed out waiting for response from server (%i/%i).\n"
+msgstr ""
+
+#: src/ap-tftp.c:288
+#, c-format
+msgid "%sError in select()"
+msgstr ""
+
+#: src/ap-tftp.c:302
+#, c-format
+msgid "Received %d bytes: %04x %04x\n"
+msgstr ""
+
+#: src/ap-tftp.c:313
+#, c-format
+msgid "%sError: server responded with %s. Aborting.\n"
+msgstr ""
+
+#: src/ap-tftp.c:320
+#, c-format
+msgid "%sFlash programming in progress...\n"
 msgstr ""
 
-#: src/ap-trapd.c:148
+#: src/ap-tftp.c:322
+msgid "Finished successfully.\n"
+msgstr ""
+
+#: src/ap-tftp.c:340
+msgid "PLEASE BE _ABSOLUTELY_ SURE TO READ MANPAGE PRIOR USE!!!\n"
+msgstr ""
+
+#: src/ap-tftp.c:341
+#, c-format
+msgid ""
+"\n"
+"Usage: %s <-l firmware_file.rom> <IP>\n"
+msgstr ""
+
+#: src/ap-tftp.c:363
+msgid "TFTP client for upgrading firmware in ATMEL AT76C510 WiSOC-based APs.\n"
+msgstr ""
+
+#: src/ap-tftp.c:365
+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
+msgid "Error: invalid IP address format given.\n"
+msgstr ""
+
+#: src/ap-tftp.c:405
+msgid "Error while open()ing firmware file"
+msgstr ""
+
+#: src/ap-tftp.c:411 src/ap-tftp.c:462
+msgid "Error: invalid firmware file given.\n"
+msgstr ""
+
+#: src/ap-tftp.c:451
+#, c-format
+msgid ""
+"Firmware file contains:\n"
+"- string \"ATMEL\": %s\n"
+"- string \"802.11 AP\": %s\n"
+"- string \"atbrfirm.bin\": %s\n"
+"- string \"atsingle.bin\": %s\n"
+msgstr ""
+
+#: src/ap-tftp.c:474
+#, c-format
+msgid ""
+"Using:\n"
+"- server: %s\n"
+"- firmware file: \"%s\"\n"
+"- name used for upload: \"%s\"\n"
+msgstr ""
+
+#: src/ap-tftp.c:537
+msgid "Error while lseek()ing in firmware file\n"
+msgstr ""
+
+#: src/ap-trapd.c:150
 #, c-format
 msgid "ap-trapd %s started%s%s."
 msgstr ""
 
-#: src/ap-trapd.c:149
+#: src/ap-trapd.c:151
 msgid " on "
 msgstr ""
 
-#: src/ap-trapd.c:155
+#: src/ap-trapd.c:157
 msgid "Unable to fork. Exiting."
 msgstr ""
 
-#: src/ap-trapd.c:159
+#: src/ap-trapd.c:161
 msgid "Can't create socket. Exiting."
 msgstr ""
 
-#: src/ap-trapd.c:165
+#: src/ap-trapd.c:167
 msgid "Can't bind socket. Exiting."
 msgstr ""
 
-#: src/ap-trapd.c:172
+#: src/ap-trapd.c:174
 #, c-format
 msgid "Can't bind to device %s. Exiting."
 msgstr ""
 
-#: src/ap-trapd.c:183
+#: src/ap-trapd.c:185
 #, c-format
 msgid "Unable to process username %s. Error: %m."
 msgstr ""
 
-#: src/ap-trapd.c:188
+#: src/ap-trapd.c:190
 #, c-format
 msgid "Unable to change to uid %d."
 msgstr ""
 
-#: src/ap-trapd.c:235
+#: src/ap-trapd.c:239
 #, c-format
 msgid ""
 "Received unknown SNMP ver %d trap. From %s:%d. Agent: %s. Community: %s."
 msgstr ""
 
-#: src/ap-trapd.c:307
+#: src/ap-trapd.c:311
 #, c-format
-msgid "Agent:v%d %s (%s@%s:%d) %s%s%s. SysUptime %d:%02d:%02d.%02d"
+msgid "Agent:v%d %s (%s@%s:%d) Trap %i: %s%s%s. SysUptime %d:%02d:%02d.%02d"
+msgstr ""
+
+#: src/auth.c:30
+msgid "APClient authorization credentials"
+msgstr ""
+
+#: src/auth.c:32
+msgid "[A] MAC authorization: "
+msgstr ""
+
+#: src/auth.c:33
+msgid "Enter MAC: "
+msgstr ""
+
+#: src/auth.c:34
+msgid "Delete Num: "
+msgstr ""
+
+#: src/auth.c:35
+msgid " NUM     MAC address     "
+msgstr ""
+
+#: src/auth.c:36
+msgid "A: auth; N: new; D: del; arrows: scroll; W: write conf; Q: quit"
+msgstr ""
+
+#: src/auth.c:38
+msgid "[I] Radius server IP: "
 msgstr ""
 
-#: src/auth_mac.c:33
-msgid "NUM     MAC address"
+#: src/auth.c:39
+msgid "[P] Radius server port: "
+msgstr ""
+
+#: src/auth.c:40
+msgid "[S] Radius server secret: "
+msgstr ""
+
+#: src/auth.c:41
+msgid "[T] Reauthorization time (sec): "
+msgstr ""
+
+#: src/auth.c:42
+msgid "[F] Radius source port: "
+msgstr ""
+
+#: src/auth.c:43
+msgid ""
+"A: auth; N: new; D: del; IPSTF: set; arrows: scroll; W: write conf; Q: quit"
+msgstr ""
+
+#: src/auth.c:45
+msgid "[M] 802.1x authorization: "
+msgstr ""
+
+#: src/auth.c:46
+msgid "[T] key broadcasting time period (sec): "
+msgstr ""
+
+#: src/auth.c:47
+msgid "[I] 802.1x auth. server IP: "
+msgstr ""
+
+#: src/auth.c:48
+msgid "[S] 802.1x auth. server secret: "
+msgstr ""
+
+#: src/auth.c:49
+msgid ""
+"A: auth; N: new; D: del; MTIS: set; arrows: scroll; W: write conf; Q: quit"
+msgstr ""
+
+#: src/auth.c:114
+msgid "Internal"
+msgstr ""
+
+#: src/auth.c:116
+msgid "Radius"
+msgstr ""
+
+#: src/auth.c:121
+msgid "Allow listed MACs only"
+msgstr ""
+
+#: src/auth.c:123
+msgid "Deny listed MACs only"
+msgstr ""
+
+#: src/auth.c:129
+msgid "Mixed environment"
+msgstr ""
+
+#: src/auth.c:213
+msgid "(not shown)"
+msgstr ""
+
+#: src/auth.c:270
+msgid "Authorized MAC addresses:"
+msgstr ""
+
+#: src/auth.c:339
+msgid "(insufficient community used)"
+msgstr ""
+
+#: src/auth.c:466
+#, c-format
+msgid "Given MAC already exists in MAC list at position %d. Press any key."
+msgstr ""
+
+#: src/bridge.c:27
+msgid "[I] IP: "
+msgstr ""
+
+#: src/bridge.c:28
+msgid "[N] Netmask: "
+msgstr ""
+
+#: src/bridge.c:29
+msgid "[G] Gateway: "
+msgstr ""
+
+#: src/bridge.c:30
+msgid "[F] Filter non-IP traffic: "
+msgstr ""
+
+#: src/bridge.c:31
+msgid "[P] Primary port: "
+msgstr ""
+
+#: src/bridge.c:32
+msgid "Attached station MAC: "
+msgstr ""
+
+#: src/bridge.c:33
+msgid "[D] DHCP client: "
+msgstr ""
+
+#: src/bridge.c:34
+msgid "[O] Operational mode: "
 msgstr ""
 
 #: src/bridge.c:35
+msgid "[M] Preferred BSSID (remote MAC addr.): "
+msgstr ""
+
+#: src/bridge.c:36
 msgid "[C] Configuration-enabled port(s): "
 msgstr ""
 
+#: src/bridge.c:37
+msgid "[T] Trap-sending port: "
+msgstr ""
+
 #: src/bridge.c:38
-msgid "[B] Isolate wireless clients (broadcast traffic): "
+msgid "[R] Forward broadcast traffic: "
 msgstr ""
 
 #: src/bridge.c:39
+msgid "[B] Isolate wireless clients (broadcast traffic): "
+msgstr ""
+
+#: src/bridge.c:40
 msgid "[U] Isolate wireless clients (unicast traffic): "
 msgstr ""
 
-#: src/bridge.c:119
+#: src/bridge.c:41
+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/nwn_advanced.c:60
 #, c-format
 msgid "[D] DB Station Timeout: %d"
@@ -1572,28 +2049,28 @@ msgstr ""
 msgid "Error:"
 msgstr ""
 
-#: src/stations.c:33
-msgid "AP link state"
+#: src/stations.c:82
+msgid "Not available (device not in AP mode)."
 msgstr ""
 
-#: src/stations.c:37
-msgid " #            MAC                                               "
+#: src/stations.c:93
+msgid "  #     MAC       Parent MAC  RSSI   LQ Sts MACn      IP        "
 msgstr ""
 
-#: src/stations.c:40
-msgid " #     MAC       Parent MAC    RSSI  Status MACn      IP        "
+#: src/stations.c:139
+msgid "AssociatedSTAsInfo packet error"
 msgstr ""
 
-#: src/stations.c:195 src/stations.c:367
+#: src/stations.c:192 src/stations.c:364
 msgid ""
 "Arrows - scroll; S - save to file; Q - return; T - toggle view; Other - "
 "refresh"
 msgstr ""
 
-#: src/stations.c:200
+#: src/stations.c:196
 msgid "Arrows - scroll; S - save to file; Q - return; Other key - refresh"
 msgstr ""
 
-#: src/stations.c:279
+#: src/stations.c:276
 msgid "Id       MAC address     Quality  Age  RSSI"
 msgstr ""
index e014478dc35f0c74cfb825d2efb1a59ed3144d8e..b6e175b208d92c077fa0a79e2019b3246d38d9dd 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: 2004-11-28 00:59+0200\n"
+"POT-Creation-Date: 2005-01-16 02:07+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,300 +14,6 @@ msgstr ""
 "Content-Transfer-Encoding: 8-bit\n"
 "Plural-Forms: nplurals=2; plural=(n > 1);\n"
 
-#: ap-gl/ap-gl.c:41 ap-gl/bridge.c:178 src/ap-config.c:41 src/bridge.c:182
-msgid "Bridging"
-msgstr "Établissement d'un pont"
-
-#: ap-gl/ap-gl.c:41 src/ap-config.c:41
-msgid "Set bridging and IP-related options"
-msgstr "Configuré les options relative au pont et à IP"
-
-#: ap-gl/ap-gl.c:43 ap-gl/ap-gl.c:81 ap-gl/bridge.c:132 src/ap-config.c:43
-#: src/ap-config.c:112 src/ap-config.c:120 src/bridge.c:117 src/bridge.c:121
-msgid "Wireless"
-msgstr "Sans fil"
-
-#: ap-gl/ap-gl.c:43 src/ap-config.c:43
-msgid "Set wireless options"
-msgstr "Configurer les options sans fil"
-
-#: ap-gl/ap-gl.c:44 src/ap-config.c:44 src/ap-config.c:56
-msgid "Privacy"
-msgstr "Privée"
-
-#: ap-gl/ap-gl.c:45 src/ap-config.c:45 src/ap-config.c:57
-msgid "MAC auth"
-msgstr "Authenfication MAC"
-
-#: ap-gl/ap-gl.c:46 src/ap-config.c:46 src/ap-config.c:58
-msgid "Community"
-msgstr "Communauté"
-
-#: ap-gl/ap-gl.c:47 src/ap-config.c:47
-msgid "Radio"
-msgstr "Radio"
-
-#: ap-gl/ap-gl.c:47 src/ap-config.c:47
-msgid "Set radio signal power and antenna options"
-msgstr ""
-"Sélectionner les options pour l'antenne et la puissance du signal radio"
-
-#: ap-gl/ap-gl.c:62 src/ap-config.c:80
-msgid "Upload"
-msgstr "Téléchargement"
-
-#: ap-gl/ap-gl.c:62 src/ap-config.c:80
-msgid "Activate current configuration"
-msgstr "Activer la configuration courante"
-
-#: ap-gl/ap-gl.c:63 src/ap-config.c:81
-msgid "Defaults"
-msgstr "Défauts"
-
-#: ap-gl/ap-gl.c:63 src/ap-config.c:81
-msgid "Restore factory default settings"
-msgstr "Restaurer les paramètres par défaut du manufacturier"
-
-#: ap-gl/ap-gl.c:64 src/ap-config.c:82 src/ap-config.c:89
-msgid "Reset"
-msgstr "Réinitialisation"
-
-#: ap-gl/ap-gl.c:65 src/ap-config.c:83
-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."
-
-#: ap-gl/ap-gl.c:66 src/ap-config.c:84
-msgid "TestMode"
-msgstr "Mode test"
-
-#: ap-gl/ap-gl.c:66 src/ap-config.c:84
-msgid "Put Access Point in test mode"
-msgstr "Placer le point d'accès en mode test."
-
-#: ap-gl/ap-gl.c:79 src/ap-config.c:110 src/ap-config.c:119
-msgid "SysInfo"
-msgstr "SysInfo"
-
-#: ap-gl/ap-gl.c:80 ap-gl/bridge.c:131 src/ap-config.c:111 src/bridge.c:116
-#: src/bridge.c:120
-msgid "Ethernet"
-msgstr "Ethernet"
-
-#: ap-gl/ap-gl.c:80 src/ap-config.c:111
-msgid "Get ethernet port statistics"
-msgstr "Obtenir les statistiques des ports Ethernet"
-
-#: ap-gl/ap-gl.c:82 src/ap-config.c:113 src/ap-config.c:121
-msgid "Stations"
-msgstr "Stations"
-
-#: ap-gl/ap-gl.c:83 src/ap-config.c:114
-msgid "KnownAPs"
-msgstr "Point d'accès connus"
-
-#: ap-gl/ap-gl.c:83 src/ap-config.c:114
-msgid "Get info about known Access Points"
-msgstr "Obtenir les info des points d'accès connus"
-
-#: ap-gl/ap-gl.c:100 src/ap-config.c:147
-msgid "Info"
-msgstr "Info"
-
-#: ap-gl/ap-gl.c:101 src/ap-config.c:148
-msgid "Config"
-msgstr "Config"
-
-#: ap-gl/ap-gl.c:102 src/ap-config.c:149
-msgid "Commands"
-msgstr "Commandes"
-
-#: ap-gl/ap-gl.c:102 src/ap-config.c:149
-msgid "Execute commands on Access Point"
-msgstr "Exécuter les commandes sur le point d'accès"
-
-#: ap-gl/ap-gl.c:104 src/ap-config.c:151
-msgid "Connect"
-msgstr "Connecter"
-
-#: ap-gl/ap-gl.c:105 src/ap-config.c:152
-msgid "Search"
-msgstr "Chercher"
-
-#: ap-gl/ap-gl.c:106 lib/common.c:83 src/ap-config.c:153
-msgid "About"
-msgstr "À propos"
-
-#: ap-gl/ap-gl.c:107 src/ap-config.c:154
-msgid "Shell"
-msgstr "Shell"
-
-#: ap-gl/ap-gl.c:108 src/ap-config.c:155
-msgid "Exit"
-msgstr "Quitter"
-
-#: ap-gl/ap-gl.c:158 src/ap-config.c:204
-#, c-format
-msgid "Wireless Access Point Configurator ver. %s"
-msgstr "Configurateur de point d'accès sans fil version %s"
-
-#: ap-gl/auth_mac.c:27 src/auth_mac.c:27
-msgid "AuthorizedMacTableString packet error"
-msgstr "Erreur de paquet AuthorizedMacTableString"
-
-#: ap-gl/auth_mac.c:29 src/auth_mac.c:29
-msgid "[A] MAC authorization: "
-msgstr "[A] Autorisation Mac: "
-
-#: ap-gl/auth_mac.c:30 src/auth_mac.c:30
-msgid "Enter MAC: "
-msgstr "Entrer MAC: "
-
-#: ap-gl/auth_mac.c:31 src/auth_mac.c:31
-msgid "Delete Num: "
-msgstr "Détruire Num: "
-
-#: ap-gl/auth_mac.c:32 src/auth_mac.c:32
-msgid "Authorized MAC addresses"
-msgstr "MAC adresses autorisées"
-
-#: ap-gl/auth_mac.c:33
-msgid "NUM       MAC address"
-msgstr "NUM       adresse MAC"
-
-#: ap-gl/auth_mac.c:34 src/auth_mac.c:34
-msgid "A - auth; N - new; D - del; arrows - scroll; W - write conf; Q - quit"
-msgstr ""
-"A - autor.; N - nouveau; D - détruire; flèches - défiler; W - sauvegarder la "
-"config.; Q - quitter"
-
-#: ap-gl/auth_mac.c:35
-msgid "A - auth; IPSTF - set; W - write conf; Q - quit"
-msgstr "A - auth; IPSTF - initialiser; W - sauvegarder la config.; Q - quitter"
-
-#: ap-gl/auth_mac.c:36
-msgid "A - auth; W - write conf; Q - quit"
-msgstr "A - auth; W - sauvegarder la configuration; Q - quitter"
-
-#: ap-gl/auth_mac.c:38
-msgid "[I] RADIUS SERVER IP: "
-msgstr "[I] IP DU SERVEUR RADIUS: "
-
-#: ap-gl/auth_mac.c:39
-msgid "[P] RADIUS SERVER PORT: "
-msgstr "[P] PORT DU SERVEUR RADIUS: "
-
-#: ap-gl/auth_mac.c:40
-msgid "[S] RADIUS SERVER SECRET: "
-msgstr "[S] SECRET DU SERVEUR RADIUS: "
-
-#: ap-gl/auth_mac.c:41
-msgid "[T] REAUTHORIZATION TIME: "
-msgstr "[T] TEMPS DE RÉ-AUTORISATION: "
-
-#: ap-gl/auth_mac.c:42
-msgid "[F] RADIUS SOURCE PORT: "
-msgstr "[F] PORT DU RADIUS SOURCE: "
-
-#: ap-gl/auth_mac.c:87
-msgid "Internal"
-msgstr "Interne"
-
-#: ap-gl/auth_mac.c:95
-msgid "<hidden>"
-msgstr "<caché>"
-
-#: ap-gl/bridge.c:26 src/bridge.c:26
-msgid "[I] IP: "
-msgstr "[I] IP: "
-
-#: ap-gl/bridge.c:27 src/bridge.c:27
-msgid "[N] Netmask: "
-msgstr "[N] Netmask: "
-
-#: ap-gl/bridge.c:28 src/bridge.c:28
-msgid "[G] Gateway: "
-msgstr "[G] Passerelle (gateway): "
-
-#: ap-gl/bridge.c:29 src/bridge.c:29
-msgid "[F] Filter non-IP traffic: "
-msgstr "[F] Filtrer le traffic non IP: "
-
-#: ap-gl/bridge.c:30 src/bridge.c:30
-msgid "[P] Primary port: "
-msgstr "[P] Port primaire: "
-
-#: ap-gl/bridge.c:31 src/bridge.c:31
-msgid "Attached station MAC: "
-msgstr "Station rattachée MAC: "
-
-#: ap-gl/bridge.c:32 src/bridge.c:32
-msgid "[D] DHCP client: "
-msgstr "[D] DHCP client: "
-
-#: ap-gl/bridge.c:33 src/bridge.c:33
-msgid "[O] Operational mode: "
-msgstr "[O] Mode opérationnel: "
-
-#: ap-gl/bridge.c:34 src/bridge.c:34
-msgid "[M] Preferred BSSID (remote MAC addr.): "
-msgstr "[M] BSSIS préféré (adresse MAC distante): "
-
-#: ap-gl/bridge.c:36 src/bridge.c:36
-msgid "[T] Trap-sending port(s): "
-msgstr "[T] ports trappe d'expédition: "
-
-#: ap-gl/bridge.c:37 src/bridge.c:37
-msgid "[R] Forward broadcast traffic: "
-msgstr "[R] trafic de diffusion relayé: "
-
-#: ap-gl/bridge.c:39
-msgid "[U] Isolate wireless clients: "
-msgstr "[U] clients sans fil isolé: "
-
-#: ap-gl/bridge.c:40 src/bridge.c:40
-msgid "INGFPDOMSCTRBU - set; W - write conf; Q - quit to menu"
-msgstr "INGFPDOMSCTRBU - initialiser; W - sauvegarder la config.; Q - quitter"
-
-#: ap-gl/bridge.c:124 src/bridge.c:109
-msgid "Wireless Bridge Point to MultiPoint"
-msgstr "Point d'accès pont sans fil vers Multi-point"
-
-#: ap-gl/bridge.c:125 src/bridge.c:110
-msgid "Access Point"
-msgstr "Point d'accès"
-
-#: ap-gl/bridge.c:126 src/bridge.c:111
-msgid "Access Point client"
-msgstr "Point d'accès client"
-
-#: ap-gl/bridge.c:127 src/bridge.c:112
-msgid "Wireless Bridge Point to Point"
-msgstr "Point pont sans fil vers un point"
-
-#: ap-gl/bridge.c:128 src/bridge.c:113
-msgid "Repeater"
-msgstr "Répéteur"
-
-#: ap-gl/stations.c:77 src/stations.c:100
-msgid "AP is currently in AP Client Mode => no associated STAtions."
-msgstr ""
-"Point d'accès est actuellement en mode client => pas de stations associées."
-
-#: ap-gl/stations.c:102
-msgid "#     MAC       LQ    RSSI   Status Port IP"
-msgstr "#     MAC       LQ    RSSI   État   Port IP"
-
-#: ap-gl/stations.c:128 src/stations.c:159
-msgid "AssociatedSTAsInfo packet error"
-msgstr "Erreur de paquet AssociatedSTAsInfo"
-
-#: ap-gl/stations.c:160
-msgid "Arrows - scroll; S - save to file; Q - quit to menu."
-msgstr ""
-"Flècher - défiler; S - sauvegarder dans un fichier; Q - quitter vers le menu."
-
 #: lib/aps.c:29
 msgid "Known Access Points"
 msgstr "Point d'accès connus"
@@ -349,7 +55,7 @@ msgstr "Ne PAS r
 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:91
+#: lib/aps.c:153 lib/cmd.c:45 lib/cmd.c:75 lib/test.c:96
 msgid "Do you want to continue? "
 msgstr "Désirez-vous poursuivre?"
 
@@ -649,76 +355,98 @@ msgid "Bind socket error. Press any key."
 msgstr "Erreur de liaison de socket (bind). Appuyer sur une touche."
 
 #: lib/ap-utils.h:115
+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
+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
 msgid "Back to main menu"
 msgstr "De retour au menu principal"
 
-#: lib/ap-utils.h:116
+#: lib/ap-utils.h:119
 msgid "Exit program"
 msgstr "Quitter le programme"
 
-#: lib/ap-utils.h:117
+#: lib/ap-utils.h:120
 msgid "Run subshell. To return type 'exit'."
 msgstr "Exécuter le sous-shell. Pour retourner taper 'exit'."
 
-#: lib/ap-utils.h:118
+#: lib/ap-utils.h:121
 msgid "Short info about program"
 msgstr "Infos courtes à propos du logiciel"
 
-#: lib/ap-utils.h:119
+#: lib/ap-utils.h:122
 msgid "Find connected Access Points"
 msgstr "Repérer les Points d'accès connectés"
 
-#: lib/ap-utils.h:120
+#: lib/ap-utils.h:123
 msgid "Set connection options: ip and community"
 msgstr "Sélectionnez les options de connexion: IP et Communauté"
 
-#: lib/ap-utils.h:121
+#: lib/ap-utils.h:124
 msgid "Set encryption; edit WEP keys"
 msgstr "Sélectionnez l'encryptage, éditez les clés WEP"
 
-#: lib/ap-utils.h:122
-msgid "Set MAC authorization; edit MAC authorization table"
+#: lib/ap-utils.h:125
+#, 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:123
+#: lib/ap-utils.h:126
 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:124
+#: lib/ap-utils.h:127
 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:125
+#: lib/ap-utils.h:128
 msgid "Get wireless port statistics"
 msgstr "Obtenir les statistiques des ports sans fil"
 
-#: lib/ap-utils.h:126
+#: lib/ap-utils.h:129
 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:127
+#: lib/ap-utils.h:130
+msgid "Get link status in APclient mode"
+msgstr ""
+
+#: lib/ap-utils.h:131
 msgid "Get info and statistics from AP"
 msgstr "Obtenir les infos et les statistiques des Points d'accès"
 
-#: lib/ap-utils.h:128
+#: lib/ap-utils.h:132
 msgid "Set various configuration options"
 msgstr "Initialiser diverses options de configuration"
 
-#: lib/ap-utils.h:130
+#: lib/ap-utils.h:134
 msgid "Associated stations"
 msgstr "Stations associées"
 
-#: lib/ap-utils.h:132
+#: lib/ap-utils.h:135
+#, fuzzy
+msgid "AP Client link state"
+msgstr "État du lien du Point d'accès"
+
+#: lib/ap-utils.h:137
 msgid "Polling: on"
 msgstr "Polling: on"
 
-#: lib/ap-utils.h:133
+#: lib/ap-utils.h:138
 msgid "Polling: off"
 msgstr "Polling: off"
 
@@ -813,41 +541,47 @@ msgstr "
 msgid "Save connect-settings: "
 msgstr "Sauvegarder la configuration de connexion: "
 
-#: lib/common.c:100
+#: lib/common.c:84 src/ap-config.c:154
+msgid "About"
+msgstr "À propos"
+
+#: lib/common.c:101
 #, c-format
 msgid "From %s"
 msgstr "À partir de %s"
 
-#: lib/common.c:102
+#: lib/common.c:103
 #, c-format
 msgid "Version %s"
 msgstr "Version %s"
 
-#: lib/common.c:105
+#: lib/common.c:106
 msgid "Written by Roman Festchook roma@polesye.net"
 msgstr "Écrit par Roman Festchook (roma@polesye.net)"
 
-#: lib/common.c:107
-msgid "Portions by Jan Rafaj aputils@cedric.unob.cz"
+#: lib/common.c:108
+#, fuzzy
+msgid "and Jan Rafaj jr-aputils@cedric.unob.cz"
 msgstr "Portions par Jan Rafaj aputils@cedric.unob.cz"
 
-#: lib/common.c:109
-msgid "Copyright (c) 2001-2004"
+#: lib/common.c:110
+#, fuzzy
+msgid "Copyright (c) 2001-2005"
 msgstr "Copyright © 2001-2004"
 
-#: lib/common.c:111
+#: lib/common.c:112
 msgid "Roman Festchook and Jan Rafaj"
 msgstr "Roman Festchook et Jan Rafaj"
 
-#: lib/common.c:114
+#: lib/common.c:115
 msgid "This program is distributed under the terms"
 msgstr "Ce logiciel est distribué selon les termes"
 
-#: lib/common.c:116
+#: lib/common.c:117
 msgid "of the GNU General Public License version 2."
 msgstr "de la GNU General Public License version 2."
 
-#: lib/common.c:118
+#: lib/common.c:119
 msgid "See the included COPYING file for details."
 msgstr "Consulter le fichier COPYING pour les détails."
 
@@ -864,18 +598,18 @@ 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:266
+#: lib/common.c:259
 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:361
+#: lib/common.c:370
 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:390
+#: lib/common.c:399
 msgid ""
 "Unable to determine AP MIB properties (no response from AP). Press any key."
 msgstr ""
@@ -904,25 +638,13 @@ msgstr "Connexion avec AP num
 msgid "Delete num:"
 msgstr "Détruire num:"
 
-#: lib/file.c:372
-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/file.c:376
-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/file.c:426
+#: lib/file.c:458
 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:428
+#: lib/file.c:460
 msgid "Stations file succesfully written. Press any key."
 msgstr "Succès d'écriture au fichier des stations. Appuyez sur une touche."
 
@@ -937,13 +659,13 @@ msgstr ""
 "La valeur doit être contenue entre les bornes %u - %u. Appuyez sur une "
 "touche pour continuer."
 
-#: lib/input.c:412
+#: lib/input.c:413
 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:6056
+#: lib/oui.c:6058
 msgid "Unknown or Private"
 msgstr "Inconnu ou privé"
 
@@ -986,7 +708,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:168
+#: lib/scr.c:156
 #, c-format
 msgid "Current AP: %s Type: %s Ext: %s"
 msgstr "Point d'accès courant: %s Type: %s Ext: %s"
@@ -1022,16 +744,165 @@ msgstr ""
 "[clé] - initialiser la communauté/mot de passe; W - sauvegarder la config du "
 "Point d'accès; Q - quitter vers le menu"
 
-#: lib/stat.c:29
-msgid "Ethernet Statistics"
-msgstr "Statistiques Ethernet"
+#: lib/set_oeminfo.c:28
+#, fuzzy
+msgid "Info structure version: "
+msgstr "Version des infos de structure: %u"
 
-#: lib/stat.c:30
-msgid "Wireless Statistics"
-msgstr "Statistiques du sans fil"
+#: lib/set_oeminfo.c:29
+#, fuzzy
+msgid "[M] Device MAC address: "
+msgstr "adresse MAC: "
 
-#: lib/stat.c:98
-msgid "EthRxStat packet error. Press any key."
+#: lib/set_oeminfo.c:30
+#, fuzzy
+msgid "    Manufacturer with this OUI: "
+msgstr "Identificateur du manufacturier"
+
+#: lib/set_oeminfo.c:31
+#, fuzzy
+msgid "[D] Regulatory domain: "
+msgstr "Domaine régulateur: %s"
+
+#: lib/set_oeminfo.c:32
+#, fuzzy
+msgid "[T] Product type: "
+msgstr "Type de produit: %u"
+
+#: lib/set_oeminfo.c:33
+#, fuzzy
+msgid "[E] OEM name: "
+msgstr "Nom OEM:"
+
+#: lib/set_oeminfo.c:34
+#, fuzzy
+msgid "[I] OEM ID: "
+msgstr "[I] IP: "
+
+#: lib/set_oeminfo.c:35
+#, fuzzy
+msgid "[N] Product name: "
+msgstr "Nom du produit:"
+
+#: lib/set_oeminfo.c:36
+#, fuzzy
+msgid "[H] Hardware revision: "
+msgstr "Révision matérielle: %u"
+
+#: lib/set_oeminfo.c:37
+#, fuzzy
+msgid "[O] Country code: "
+msgstr "[O] Commande: "
+
+#: lib/set_oeminfo.c:38
+#, fuzzy
+msgid "[C] Default channel: "
+msgstr "[C] canal de fréquence: "
+
+#: lib/set_oeminfo.c:39
+#, fuzzy
+msgid "[A] Calibrated channels: "
+msgstr "[C] canal de fréquence: "
+
+#: lib/set_oeminfo.c:40
+msgid "[P] Nominal Tx Power (CR31) value for calibrated channels: "
+msgstr ""
+
+#: lib/set_oeminfo.c:41
+#, fuzzy
+msgid ""
+"Keys in brackets - set corresponding option; W - write conf; Q - quit to menu"
+msgstr ""
+"[key] - initialiser l'option; W - sauvegarder la config.; Q - quitter vers "
+"le menu"
+
+#: lib/set_oeminfo.c:101
+msgid "THIS IS A SECRET MENU LEADING TO VERY DANGEROUS OPTIONS."
+msgstr ""
+
+#: lib/set_oeminfo.c:103
+msgid "It is intended only for WISPs and repair shops."
+msgstr ""
+
+#: lib/set_oeminfo.c:107
+msgid "It allows to set OEM information stored in the AP (like its"
+msgstr ""
+
+#: lib/set_oeminfo.c:109
+msgid "MAC address, manuf. name, OEM ID, etc.). BE ABSOLUTELY SURE"
+msgstr ""
+
+#: lib/set_oeminfo.c:111
+msgid "THAT YOU KNOW WHAT YOU ARE DOING, AND THAT YOU HAVE THE"
+msgstr ""
+
+#: lib/set_oeminfo.c:113
+msgid "LEGAL RIGHT TO DO ANY MODIFICATION. Disobserving of these"
+msgstr ""
+
+#: lib/set_oeminfo.c:115
+msgid "rules may lead you into a conflict with your local"
+msgstr ""
+
+#: lib/set_oeminfo.c:117
+msgid "regulations and/or law."
+msgstr ""
+
+#: lib/set_oeminfo.c:119
+msgid "Also be warned that the setting of any from these options"
+msgstr ""
+
+#: lib/set_oeminfo.c:121
+msgid "may DAMAGE YOUR AP (other reason why this menu is hidden)."
+msgstr ""
+
+#: lib/set_oeminfo.c:123
+msgid "Values changed here will NOT be restored upon reset"
+msgstr ""
+
+#: lib/set_oeminfo.c:125
+msgid "of the device to factory defaults! It is advisable to"
+msgstr ""
+
+#: lib/set_oeminfo.c:127
+msgid "write them down somewhere prior their changing."
+msgstr ""
+
+#: lib/set_oeminfo.c:129
+msgid "Finally, note that you need to use MANUFACTURER community, "
+msgstr ""
+
+#: lib/set_oeminfo.c:131
+msgid "in order to be able to do any OEM info modification."
+msgstr ""
+
+#: lib/set_oeminfo.c:133
+msgid "Proceed further only at your full risk and responsibility. "
+msgstr ""
+
+#: lib/set_oeminfo.c:135
+msgid "You got the warnings."
+msgstr ""
+
+#: lib/set_oeminfo.c:141
+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"
+
+#: lib/stat.c:30
+msgid "Wireless Statistics"
+msgstr "Statistiques du sans fil"
+
+#: lib/stat.c:98
+msgid "EthRxStat packet error. Press any key."
 msgstr "Erreur de paquet EthRxStat. Appuyez sur une touche."
 
 #: lib/stat.c:111
@@ -1058,159 +929,186 @@ msgstr "Description syst
 msgid "System Info"
 msgstr "Info système"
 
-#: lib/sysinfo.c:120
+#: lib/sysinfo.c:54 src/bridge.c:86
+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
+msgid "Access Point"
+msgstr "Point d'accès"
+
+#: lib/sysinfo.c:56 src/bridge.c:88
+msgid "Access Point client"
+msgstr "Point d'accès client"
+
+#: lib/sysinfo.c:57 src/bridge.c:89
+msgid "Wireless Bridge Point to Point"
+msgstr "Point pont sans fil vers un point"
+
+#: lib/sysinfo.c:58 src/bridge.c:90
+msgid "Repeater"
+msgstr "Répéteur"
+
+#: lib/sysinfo.c:59 lib/sysinfo.c:314 lib/sysinfo.c:423 src/bridge.c:91
+msgid "unknown"
+msgstr "inconnu"
+
+#: lib/sysinfo.c:143
 msgid "Device hardware/software/name info:"
 msgstr "Info du périphérique matériel/logiciel/nom:"
 
-#: lib/sysinfo.c:154
-msgid "Product name:"
+#: lib/sysinfo.c:171
+#, fuzzy, c-format
+msgid "Operational mode: %s"
+msgstr "[O] Mode opérationnel: "
+
+#: lib/sysinfo.c:181
+#, fuzzy
+msgid "Product name: "
 msgstr "Nom du produit:"
 
-#: lib/sysinfo.c:158
+#: lib/sysinfo.c:185
 #, c-format
 msgid "Product type: %u"
 msgstr "Type de produit: %u"
 
-#: lib/sysinfo.c:161
-msgid "OEM name:"
+#: lib/sysinfo.c:188
+#, fuzzy
+msgid "OEM name: "
 msgstr "Nom OEM:"
 
-#: lib/sysinfo.c:168
+#: lib/sysinfo.c:195
 #, c-format
 msgid "Hardware revision: %u"
 msgstr "Révision matérielle: %u"
 
-#: lib/sysinfo.c:176
+#: lib/sysinfo.c:203
 #, c-format
 msgid "Info structure version: %u"
 msgstr "Version des infos de structure: %u"
 
-#: lib/sysinfo.c:179 lib/sysinfo.c:355
+#: lib/sysinfo.c:206 lib/sysinfo.c:382
 #, c-format
 msgid "Manufacturer OUI: %02X %02X %02X (%s)"
 msgstr "OUI du manufacturier: %02X %02X %02X (%s)"
 
-#: lib/sysinfo.c:196
+#: lib/sysinfo.c:223
 #, 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:284
+#: lib/sysinfo.c:311
 msgid "FHSS 2.4 GHz"
 msgstr "FHSS 2.4 GHz"
 
-#: lib/sysinfo.c:284
+#: lib/sysinfo.c:311
 msgid "DSSS 2.4 GHz"
 msgstr "DSSS 2.4 GHz"
 
-#: lib/sysinfo.c:284
+#: lib/sysinfo.c:311
 msgid "IR Baseband"
 msgstr "Fréquence de base IR"
 
-#: lib/sysinfo.c:285
+#: lib/sysinfo.c:312
 msgid "Commercial range 0..40 C"
 msgstr "Étendue commerciale 0..40 C"
 
-#: lib/sysinfo.c:286
+#: lib/sysinfo.c:313
 msgid "Industrial range -30..70 C"
 msgstr "Étendue industrielle -30..70 C"
 
-#: lib/sysinfo.c:287 lib/sysinfo.c:396
-msgid "unknown"
-msgstr "inconnu"
-
-#: lib/sysinfo.c:289
+#: lib/sysinfo.c:316
 msgid "manual"
 msgstr "manuel"
 
-#: lib/sysinfo.c:289
+#: lib/sysinfo.c:316
 msgid "notsupported"
 msgstr "non supporté"
 
-#: lib/sysinfo.c:289
+#: lib/sysinfo.c:316
 msgid "dynamic"
 msgstr "dynamique"
 
-#: lib/sysinfo.c:345
+#: lib/sysinfo.c:372
 msgid "Manufacturer:"
 msgstr "Manufacturier"
 
-#: lib/sysinfo.c:350
+#: lib/sysinfo.c:377
 msgid "Manufacturer ID:"
 msgstr "Identificateur du manufacturier"
 
-#: lib/sysinfo.c:361
+#: lib/sysinfo.c:388
 msgid "Product Name:"
 msgstr "Nom de produit:"
 
-#: lib/sysinfo.c:367
+#: lib/sysinfo.c:394
 msgid "Product ID:"
 msgstr "Identificateur du produit:"
 
-#: lib/sysinfo.c:373
+#: lib/sysinfo.c:400
 msgid "Product Version:"
 msgstr "Version du produit:"
 
-#: lib/sysinfo.c:379
+#: lib/sysinfo.c:406
 #, c-format
 msgid "PHYType: %s"
 msgstr "Type PHY: %s"
 
-#: lib/sysinfo.c:382
+#: lib/sysinfo.c:409
 #, c-format
 msgid "Temperature: %s"
 msgstr "Température: %s"
 
-#: lib/sysinfo.c:390
+#: lib/sysinfo.c:417
 #, c-format
 msgid "Regulatory Domain: %s"
 msgstr "Domaine régulateur: %s"
 
-#: lib/sysinfo.c:391
+#: lib/sysinfo.c:418
 msgid "FCC (USA)"
 msgstr "FCC (EU)"
 
-#: lib/sysinfo.c:392
+#: lib/sysinfo.c:419
 msgid "DOC (Canada)"
 msgstr "DOC (Canada)"
 
-#: lib/sysinfo.c:393
+#: lib/sysinfo.c:420
 msgid "ETSI (Europe)"
 msgstr "ETSI (Europe)"
 
-#: lib/sysinfo.c:394
+#: lib/sysinfo.c:421
 msgid "Spain"
 msgstr "Espagne"
 
-#: lib/sysinfo.c:395
+#: lib/sysinfo.c:422
 msgid "France"
 msgstr "France"
 
-#: lib/sysinfo.c:396
+#: lib/sysinfo.c:423
 msgid "MKK (Japan)"
 msgstr "MKK (Japon)"
 
-#: lib/sysinfo.c:399
+#: lib/sysinfo.c:426
 #, c-format
 msgid "Transmit Power: %u mW"
 msgstr "Puissance de transmission: %u mW"
 
-#: lib/sysinfo.c:429
+#: lib/sysinfo.c:456
 #, c-format
 msgid "WEP implemented: %s"
 msgstr "WEP non implanté: %s"
 
-#: lib/sysinfo.c:432
+#: lib/sysinfo.c:459
 #, c-format
 msgid "Diversity: %s"
 msgstr "Diversité: %s"
 
-#: lib/sysinfo.c:460
+#: lib/sysinfo.c:487
 #, c-format
 msgid "Uptime: %u:%02u:%02u.%02u"
 msgstr "Temps de marche (uptime): %u:%02u:%02u.%02u"
 
-#: lib/sysinfo.c:480
+#: lib/sysinfo.c:507
 #, c-format
 msgid "IP  Address: %s"
 msgstr "Adresse IP: %s"
@@ -1253,32 +1151,36 @@ msgstr "Gauche"
 msgid "Right"
 msgstr "Droite"
 
-#: lib/test.c:86
+#: lib/test.c:79
+msgid "Devices with ATMEL12350 MIB not yet supported."
+msgstr ""
+
+#: lib/test.c:91
 msgid "Test mode"
 msgstr "Mode test"
 
-#: lib/test.c:89
+#: lib/test.c:94
 msgid "Using the \"Test mode\" may cause loss of your current"
 msgstr ""
 "L'utilisation du \"mode test\" peut causer la perte de la configuration"
 
-#: lib/test.c:90
+#: lib/test.c:95
 msgid "configuration."
 msgstr "courante."
 
-#: lib/test.c:102
+#: lib/test.c:107
 msgid "Options:"
 msgstr "Options"
 
-#: lib/test.c:128
+#: lib/test.c:133
 msgid "Statistics:"
 msgstr "Statistiques:"
 
-#: lib/test.c:129
+#: lib/test.c:134
 msgid "Success Frames: 0 Failed Frames: 0"
 msgstr "Trames transmises: 0 Trames non transmises: 0"
 
-#: lib/test.c:190
+#: lib/test.c:195
 #, c-format
 msgid "Success Frames: %lu Failed Frames: %lu"
 msgstr "Trames transmises: %lu Trames non transmises: %lu"
@@ -1397,7 +1299,8 @@ msgid "[D] DTIM sending interval (beacons): "
 msgstr "[D] intervalle de transmission DTIM (balises): "
 
 #: lib/wlan.c:48
-msgid "[T] SIFS time (msec): "
+#, fuzzy
+msgid "[T] SIFS time (ACK timeout) msec: "
 msgstr "[T] temps SIFS (msec): "
 
 #: lib/wlan.c:49
@@ -1433,35 +1336,27 @@ msgstr ""
 "UIOPTY - antenne; SCANLEDFR1234 - options; W - sauvegarder la config.; Q - "
 "quitter vers le menu"
 
-#: src/ap-config.c:54
-msgid "General"
-msgstr "Général"
-
-#: src/ap-config.c:54
-msgid "Set general options"
-msgstr "Initialiser les options générales"
-
-#: src/ap-config.c:55
-msgid "Advanced"
-msgstr "Avancé"
+#: src/ap-auth.c:32 src/auth.c:28
+msgid "AuthorizedMacTableString packet error"
+msgstr "Erreur de paquet AuthorizedMacTableString"
 
-#: src/ap-config.c:55
-msgid "Set advanced options"
-msgstr "Initialiser les options avancées"
+#: src/ap-auth.c:33
+msgid "Invalid data in source file"
+msgstr ""
 
-#: src/ap-config.c:89
-msgid "Reset AP."
-msgstr "Réinitialisation du point d'accès."
+#: src/ap-auth.c:34
+msgid "Can't open file"
+msgstr ""
 
-#: src/ap-config.c:122
-msgid "Latest"
-msgstr "Dernier"
+#: src/ap-auth.c:35
+msgid "Can't write to file"
+msgstr ""
 
-#: src/ap-config.c:122
-msgid "Get info about latest events"
-msgstr "Obtenir les infos à propos des derniers événements"
+#: src/ap-auth.c:36
+msgid "Error closing file"
+msgstr ""
 
-#: src/ap-mrtg.c:42
+#: src/ap-auth.c:45 src/ap-mrtg.c:42 src/ap-rrd.c:42
 msgid ""
 "\n"
 "Usage:\n"
@@ -1469,71 +1364,41 @@ msgstr ""
 "\n"
 "Usage:\n"
 
-#: src/ap-mrtg.c:44
+#: src/ap-auth.c:46
+msgid "\tap-auth -i ip -c community -d filename [-h]\n"
+msgstr ""
+
+#: src/ap-auth.c:47
 msgid ""
-"\tap-mrtg -i ip -c community -t type [-b bssid] [-n name] [-a aptype] [-v] [-"
-"h] [-r]\n"
+"\tap-auth -i ip -c community -u filename [-h]\n"
 "\n"
 msgstr ""
-"\tap-mrtg -i ip -c communauté -t type [-b bssid] [-n nom] [-a type_Pa] [-v] "
-"[-h] [-r]\n"
-"\n"
 
-#: src/ap-mrtg.c:46
+#: src/ap-auth.c:48
 msgid ""
-"Get stats from AP and return it in MRTG parsable format\n"
+"Change accesspoint's list of authorised MAC addresses\n"
 "\n"
 msgstr ""
-"Obtenir les statistiques de l'AP et les retourner dans un format MRTG\n"
-"\n"
 
-#: src/ap-mrtg.c:47
+#: src/ap-auth.c:49 src/ap-mrtg.c:46 src/ap-rrd.c:47
 msgid "-i ip        - AP ip address\n"
 msgstr "-i ip        - adresse ip AP\n"
 
-#: src/ap-mrtg.c:48
+#: src/ap-auth.c:50 src/ap-mrtg.c:47 src/ap-rrd.c:48
 msgid "-c community - SNMP community string\n"
 msgstr "-c communauté   chaîne de la communauté SNMP\n"
 
-#: src/ap-mrtg.c:50
-msgid ""
-"-t type      - statistics type <w>ireless, <e>thernet, associated <s>tations "
-"or <l>ink quality in client mode\n"
-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:52
+#: src/ap-auth.c:51
 msgid ""
-"-b bssid     - mac address of the AP to which get link quality, only if "
-"type=l\n"
+"-d filename  - download list of authorised MAC addresses from AP to a file\n"
 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
-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-auth.c:53
 msgid ""
-"-a aptype        - AP type - 410 (default) or 510 for ATMEL12350's, like the "
-"ME-102\n"
-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-mrtg.c:56
-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:57
-msgid "-r           - reset AP when getting LinkQuality stats\n"
+"-u filename  - upload list of authorised MAC addresses from a file to AP\n"
 msgstr ""
-"-r           réinitialise l'AP lors de l'obtention des statistiques de "
-"LinkQuality\n"
 
-#: src/ap-mrtg.c:58
+#: src/ap-auth.c:55 src/ap-mrtg.c:56 src/ap-rrd.c:57
 msgid ""
 "-h           - print this help screen\n"
 "\n"
@@ -1541,108 +1406,786 @@ msgstr ""
 "-h           afficher l'aide\n"
 "\n"
 
-#: src/ap-mrtg.c:59
-#, c-format
+#: src/ap-auth.c:56
+#, fuzzy, c-format
 msgid ""
-"ap-mrtg %s Copyright (c) 2002-2003 Roman Festchook\n"
+"ap-auth %s Copyright (c) 2004 Teemu Kiviniemi\n"
 "\n"
 msgstr ""
 "ap-mrtg %s Copyright © 2002-2003 Roman Festchook\n"
 "\n"
 
-#: src/ap-mrtg.c:143
-msgid "Invalid IP-address\n"
+#: src/ap-auth.c:146 src/ap-mrtg.c:139
+#, fuzzy
+msgid "Error: invalid IP-address.\n"
 msgstr "Adresse IP invalide\n"
 
-#: src/ap-mrtg.c:188
-#, 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-mrtg.c:207
+#: 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-mrtg.c:211
+#: 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-trapd.c:148
-#, c-format
-msgid "ap-trapd %s started%s%s."
-msgstr "ap-trapd %s démarré%s%s"
+#: src/ap-auth.c:220 src/ap-mrtg.c:220
+#, 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-trapd.c:149
-msgid " on "
-msgstr " on "
+#: src/ap-auth.c:228
+msgid "NWN devices are not yet supported."
+msgstr ""
 
-#: src/ap-trapd.c:155
-msgid "Unable to fork. Exiting."
-msgstr "Incapable de fork(). Fin d'exécution."
+#: src/ap-config.c:41 src/bridge.c:200
+msgid "Bridging"
+msgstr "Établissement d'un pont"
 
-#: src/ap-trapd.c:159
-msgid "Can't create socket. Exiting."
-msgstr "Ne créer le socket. Fin d'exécution."
+#: src/ap-config.c:41
+msgid "Set bridging and IP-related options"
+msgstr "Configuré les options relative au pont et à IP"
 
-#: src/ap-trapd.c:165
-msgid "Can't bind socket. Exiting."
-msgstr "Ne peut établir la liaison sur le socket. Fin d'exécution."
+#: src/ap-config.c:43 src/ap-config.c:112 src/ap-config.c:121 src/bridge.c:124
+msgid "Wireless"
+msgstr "Sans fil"
 
-#: src/ap-trapd.c:172
-#, c-format
-msgid "Can't bind to device %s. Exiting."
-msgstr "Ne peut établir la liaison (bind) %s. Fin d'exécution."
+#: src/ap-config.c:43
+msgid "Set wireless options"
+msgstr "Configurer les options sans fil"
 
-#: src/ap-trapd.c:183
-#, c-format
-msgid "Unable to process username %s. Error: %m."
-msgstr "Incapable de traiter avec le nom d'usager %s. Erreur: %m."
+#: src/ap-config.c:44 src/ap-config.c:56
+msgid "Privacy"
+msgstr "Privée"
 
-#: src/ap-trapd.c:188
-#, c-format
-msgid "Unable to change to uid %d."
-msgstr "Incapable de changer de UID %d"
+#: src/ap-config.c:45
+#, fuzzy
+msgid "Auth"
+msgstr "À propos"
 
-#: src/ap-trapd.c:235
-#, c-format
-msgid ""
-"Received unknown SNMP ver %d trap. From %s:%d. Agent: %s. Community: %s."
-msgstr ""
-"Réception d'une trappe SNMP inconnu ver. %d. À partir de %s:%d. Agent: %s. "
-"Communauté: %s."
+#: src/ap-config.c:46 src/ap-config.c:58
+msgid "Community"
+msgstr "Communauté"
 
-#: src/ap-trapd.c:307
-#, c-format
-msgid "Agent:v%d %s (%s@%s:%d) %s%s%s. SysUptime %d:%02d:%02d.%02d"
-msgstr "Agent:v%d %s (%s@%s:%d) %s%s%s. SysUptime %d:%02d:%02d.%02d"
+#: src/ap-config.c:47
+msgid "Radio"
+msgstr "Radio"
 
-#: src/auth_mac.c:33
-msgid "NUM     MAC address"
-msgstr "NUM     MAC address"
+#: src/ap-config.c:47
+msgid "Set radio signal power and antenna options"
+msgstr ""
+"Sélectionner les options pour l'antenne et la puissance du signal radio"
 
-#: src/bridge.c:35
-msgid "[C] Configuration-enabled port(s): "
-msgstr "[C] ports autorisés de configuration): "
+#: src/ap-config.c:54
+msgid "General"
+msgstr "Général"
 
-#: src/bridge.c:38
-msgid "[B] Isolate wireless clients (broadcast traffic): "
-msgstr "[B] isoler les clients sans fil (trafic de diffusion - broadcast): "
+#: src/ap-config.c:54
+msgid "Set general options"
+msgstr "Initialiser les options générales"
 
-#: src/bridge.c:39
-msgid "[U] Isolate wireless clients (unicast traffic): "
-msgstr "[U] isoler les clients sans fil (trafic unicast): "
+#: src/ap-config.c:55
+msgid "Advanced"
+msgstr "Avancé"
 
-#: src/bridge.c:119
-msgid "Both"
-msgstr "Ensemble"
+#: src/ap-config.c:55
+msgid "Set advanced options"
+msgstr "Initialiser les options avancées"
 
-#: src/nwn_advanced.c:60
-#, c-format
-msgid "[D] DB Station Timeout: %d"
-msgstr "[D] DB délai d'oisiveté de la station: %d"
+#: src/ap-config.c:57
+msgid "MAC auth"
+msgstr "Authenfication MAC"
 
-#: src/nwn_advanced.c:62
+#: src/ap-config.c:80
+msgid "Upload"
+msgstr "Téléchargement"
+
+#: src/ap-config.c:80
+msgid "Activate current configuration"
+msgstr "Activer la configuration courante"
+
+#: src/ap-config.c:81
+msgid "Defaults"
+msgstr "Défauts"
+
+#: src/ap-config.c:81
+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
+msgid "Reset"
+msgstr "Réinitialisation"
+
+#: src/ap-config.c:83
+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
+msgid "TestMode"
+msgstr "Mode test"
+
+#: src/ap-config.c:84
+msgid "Put Access Point in test mode"
+msgstr "Placer le point d'accès en mode test."
+
+#: src/ap-config.c:89
+msgid "Reset AP."
+msgstr "Réinitialisation du point d'accès."
+
+#: src/ap-config.c:110 src/ap-config.c:120
+msgid "SysInfo"
+msgstr "SysInfo"
+
+#: src/ap-config.c:111 src/bridge.c:123 src/bridge.c:127
+msgid "Ethernet"
+msgstr "Ethernet"
+
+#: src/ap-config.c:111
+msgid "Get ethernet port statistics"
+msgstr "Obtenir les statistiques des ports Ethernet"
+
+#: src/ap-config.c:113 src/ap-config.c:122
+msgid "Stations"
+msgstr "Stations"
+
+#: src/ap-config.c:114
+#, fuzzy
+msgid "AP link"
+msgstr "État du lien du Point d'accès"
+
+#: src/ap-config.c:115
+msgid "KnownAPs"
+msgstr "Point d'accès connus"
+
+#: src/ap-config.c:115
+msgid "Get info about known Access Points"
+msgstr "Obtenir les info des points d'accès connus"
+
+#: src/ap-config.c:123
+msgid "Latest"
+msgstr "Dernier"
+
+#: src/ap-config.c:123
+msgid "Get info about latest events"
+msgstr "Obtenir les infos à propos des derniers événements"
+
+#: src/ap-config.c:148
+msgid "Info"
+msgstr "Info"
+
+#: src/ap-config.c:149
+msgid "Config"
+msgstr "Config"
+
+#: src/ap-config.c:150
+msgid "Commands"
+msgstr "Commandes"
+
+#: src/ap-config.c:150
+msgid "Execute commands on Access Point"
+msgstr "Exécuter les commandes sur le point d'accès"
+
+#: src/ap-config.c:152
+msgid "Connect"
+msgstr "Connecter"
+
+#: src/ap-config.c:153
+msgid "Search"
+msgstr "Chercher"
+
+#: src/ap-config.c:155
+msgid "Shell"
+msgstr "Shell"
+
+#: src/ap-config.c:156
+msgid "Exit"
+msgstr "Quitter"
+
+#: src/ap-config.c:214
+#, c-format
+msgid "Wireless Access Point Configurator ver. %s"
+msgstr "Configurateur de point d'accès sans fil version %s"
+
+#: src/aplink.c:28
+msgid "RSSI:     ["
+msgstr ""
+
+#: src/aplink.c:29
+msgid "RSSI avg: ["
+msgstr ""
+
+#: src/aplink.c:30
+msgid "RSSI top: ["
+msgstr ""
+
+#: src/aplink.c:112
+msgid "Not available - device must have firmware with necessary "
+msgstr ""
+
+#: src/aplink.c:114
+msgid "vendor extensions and be in either 'Access Point client'"
+msgstr ""
+
+#: src/aplink.c:116
+msgid "or 'Repeater' mode."
+msgstr ""
+
+#: src/ap-mrtg.c:43
+#, fuzzy
+msgid ""
+"\tap-mrtg -i ip -c community -t type [-b bssid] [-n name] [-v] [-h] [-r]\n"
+"\n"
+msgstr ""
+"\tap-mrtg -i ip -c communauté -t type [-b bssid] [-n nom] [-a type_Pa] [-v] "
+"[-h] [-r]\n"
+"\n"
+
+#: src/ap-mrtg.c:45
+msgid ""
+"Get stats from AP and return it in MRTG parsable format\n"
+"\n"
+msgstr ""
+"Obtenir les statistiques de l'AP et les retourner dans un format MRTG\n"
+"\n"
+
+#: src/ap-mrtg.c:48
+#, fuzzy
+msgid ""
+"-t type      - statistics type <w>ireless, <e>thernet, associated <s>tations "
+"or <l>ink quality (last one will only "
+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
+msgid "work with ATMEL410 MIB devices in AP Client mode)\n"
+msgstr ""
+
+#: src/ap-mrtg.c:51
+#, fuzzy
+msgid ""
+"-b bssid     - mac address of the AP from which get link quality, only if "
+"type=l\n"
+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
+#, 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
+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
+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
+#, c-format
+msgid ""
+"ap-mrtg %s Copyright (c) 2002-2003 Roman Festchook\n"
+"\n"
+msgstr ""
+"ap-mrtg %s Copyright © 2002-2003 Roman Festchook\n"
+"\n"
+
+#: src/ap-rrd.c:44
+#, fuzzy
+msgid ""
+"\tap-rrd -i ip -c community -t type -d db_file [-b bssid] [-n name] [-a "
+"aptype] [-h] [-r] \n"
+"\n"
+msgstr ""
+"\tap-mrtg -i ip -c communauté -t type [-b bssid] [-n nom] [-a type_Pa] [-v] "
+"[-h] [-r]\n"
+"\n"
+
+#: src/ap-rrd.c:46
+#, fuzzy
+msgid ""
+"Get stats from AP and put it in to specified RRDtool database\n"
+"\n"
+msgstr ""
+"Obtenir les statistiques de l'AP et les retourner dans un format MRTG\n"
+"\n"
+
+#: src/ap-rrd.c:50
+msgid ""
+"-t type      - statistics type <w>ireless, <e>thernet, associated <s>tations "
+"or <l>ink quality in client mode\n"
+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
+msgid "-d db_file   - RRD database file with full path\n"
+msgstr ""
+
+#: src/ap-rrd.c:53
+msgid ""
+"-b bssid     - mac address of the AP to which get link quality, only if "
+"type=l\n"
+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
+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
+#, fuzzy
+msgid ""
+"-a aptype    - AP type - 410 (default) or 510 for ATMEL12350's, like the ME-"
+"102\n"
+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
+#, fuzzy, c-format
+msgid ""
+"ap-rrd %s Copyright (c) 2002-2004 Roman Festchook\n"
+"\n"
+msgstr ""
+"ap-mrtg %s Copyright © 2002-2003 Roman Festchook\n"
+"\n"
+
+#: src/ap-rrd.c:142
+msgid "Invalid IP-address\n"
+msgstr "Adresse IP invalide\n"
+
+#: src/ap-rrd.c:188
+#, 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
+#, fuzzy
+msgid "yes"
+msgstr "Yes (Oui)"
+
+#: src/ap-tftp.c:82
+#, fuzzy
+msgid "no"
+msgstr "Info"
+
+#: src/ap-tftp.c:84
+msgid "Error while read()ing firmware file"
+msgstr ""
+
+#: src/ap-tftp.c:88
+msgid "Undefined error"
+msgstr ""
+
+#: src/ap-tftp.c:89
+msgid "File not found"
+msgstr ""
+
+#: src/ap-tftp.c:90
+#, fuzzy
+msgid "Access violation"
+msgstr "Point d'accès"
+
+#: src/ap-tftp.c:91
+msgid "Disk full or allocation error"
+msgstr ""
+
+#: src/ap-tftp.c:92
+msgid "Illegal TFTP operation"
+msgstr ""
+
+#: src/ap-tftp.c:93
+msgid "Unknown transfer ID"
+msgstr ""
+
+#: src/ap-tftp.c:94
+msgid "File already exists"
+msgstr ""
+
+#: src/ap-tftp.c:95
+msgid "No such user"
+msgstr ""
+
+#: src/ap-tftp.c:161
+msgid "Remote-filename too long.\n"
+msgstr ""
+
+#: src/ap-tftp.c:187
+#, c-format
+msgid "%sError in read()"
+msgstr ""
+
+#: src/ap-tftp.c:215
+#, c-format
+msgid "sending %u bytes\n"
+msgstr ""
+
+#: src/ap-tftp.c:224
+#, c-format
+msgid "%sError in sendto()"
+msgstr ""
+
+#: src/ap-tftp.c:247
+#, c-format
+msgid "%sError in recvfrom()"
+msgstr ""
+
+#: src/ap-tftp.c:261
+#, c-format
+msgid "\rProgress: uploaded %.0f %%."
+msgstr ""
+
+#: src/ap-tftp.c:272
+#, c-format
+msgid "%sMalformed packet received. Aborting.\n"
+msgstr ""
+
+#: src/ap-tftp.c:281
+#, c-format
+msgid "%sTimed out waiting for response from server (%i/%i).\n"
+msgstr ""
+
+#: src/ap-tftp.c:288
+#, c-format
+msgid "%sError in select()"
+msgstr ""
+
+#: src/ap-tftp.c:302
+#, c-format
+msgid "Received %d bytes: %04x %04x\n"
+msgstr ""
+
+#: src/ap-tftp.c:313
+#, c-format
+msgid "%sError: server responded with %s. Aborting.\n"
+msgstr ""
+
+#: src/ap-tftp.c:320
+#, c-format
+msgid "%sFlash programming in progress...\n"
+msgstr ""
+
+#: src/ap-tftp.c:322
+msgid "Finished successfully.\n"
+msgstr ""
+
+#: src/ap-tftp.c:340
+msgid "PLEASE BE _ABSOLUTELY_ SURE TO READ MANPAGE PRIOR USE!!!\n"
+msgstr ""
+
+#: src/ap-tftp.c:341
+#, c-format
+msgid ""
+"\n"
+"Usage: %s <-l firmware_file.rom> <IP>\n"
+msgstr ""
+
+#: src/ap-tftp.c:363
+msgid "TFTP client for upgrading firmware in ATMEL AT76C510 WiSOC-based APs.\n"
+msgstr ""
+
+#: src/ap-tftp.c:365
+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
+msgid "Error: invalid IP address format given.\n"
+msgstr ""
+
+#: src/ap-tftp.c:405
+msgid "Error while open()ing firmware file"
+msgstr ""
+
+#: src/ap-tftp.c:411 src/ap-tftp.c:462
+msgid "Error: invalid firmware file given.\n"
+msgstr ""
+
+#: src/ap-tftp.c:451
+#, c-format
+msgid ""
+"Firmware file contains:\n"
+"- string \"ATMEL\": %s\n"
+"- string \"802.11 AP\": %s\n"
+"- string \"atbrfirm.bin\": %s\n"
+"- string \"atsingle.bin\": %s\n"
+msgstr ""
+
+#: src/ap-tftp.c:474
+#, c-format
+msgid ""
+"Using:\n"
+"- server: %s\n"
+"- firmware file: \"%s\"\n"
+"- name used for upload: \"%s\"\n"
+msgstr ""
+
+#: src/ap-tftp.c:537
+msgid "Error while lseek()ing in firmware file\n"
+msgstr ""
+
+#: src/ap-trapd.c:150
+#, c-format
+msgid "ap-trapd %s started%s%s."
+msgstr "ap-trapd %s démarré%s%s"
+
+#: src/ap-trapd.c:151
+msgid " on "
+msgstr " on "
+
+#: src/ap-trapd.c:157
+msgid "Unable to fork. Exiting."
+msgstr "Incapable de fork(). Fin d'exécution."
+
+#: src/ap-trapd.c:161
+msgid "Can't create socket. Exiting."
+msgstr "Ne créer le socket. Fin d'exécution."
+
+#: src/ap-trapd.c:167
+msgid "Can't bind socket. Exiting."
+msgstr "Ne peut établir la liaison sur le socket. Fin d'exécution."
+
+#: src/ap-trapd.c:174
+#, c-format
+msgid "Can't bind to device %s. Exiting."
+msgstr "Ne peut établir la liaison (bind) %s. Fin d'exécution."
+
+#: src/ap-trapd.c:185
+#, c-format
+msgid "Unable to process username %s. Error: %m."
+msgstr "Incapable de traiter avec le nom d'usager %s. Erreur: %m."
+
+#: src/ap-trapd.c:190
+#, c-format
+msgid "Unable to change to uid %d."
+msgstr "Incapable de changer de UID %d"
+
+#: src/ap-trapd.c:239
+#, c-format
+msgid ""
+"Received unknown SNMP ver %d trap. From %s:%d. Agent: %s. Community: %s."
+msgstr ""
+"Réception d'une trappe SNMP inconnu ver. %d. À partir de %s:%d. Agent: %s. "
+"Communauté: %s."
+
+#: src/ap-trapd.c:311
+#, fuzzy, c-format
+msgid "Agent:v%d %s (%s@%s:%d) Trap %i: %s%s%s. SysUptime %d:%02d:%02d.%02d"
+msgstr "Agent:v%d %s (%s@%s:%d) %s%s%s. SysUptime %d:%02d:%02d.%02d"
+
+#: src/auth.c:30
+msgid "APClient authorization credentials"
+msgstr ""
+
+#: src/auth.c:32
+msgid "[A] MAC authorization: "
+msgstr "[A] Autorisation Mac: "
+
+#: src/auth.c:33
+msgid "Enter MAC: "
+msgstr "Entrer MAC: "
+
+#: src/auth.c:34
+msgid "Delete Num: "
+msgstr "Détruire Num: "
+
+#: src/auth.c:35
+#, fuzzy
+msgid " NUM     MAC address     "
+msgstr "NUM     MAC address"
+
+#: src/auth.c:36
+#, fuzzy
+msgid "A: auth; N: new; D: del; arrows: scroll; W: write conf; Q: quit"
+msgstr ""
+"A - autor.; N - nouveau; D - détruire; flèches - défiler; W - sauvegarder la "
+"config.; Q - quitter"
+
+#: src/auth.c:38
+msgid "[I] Radius server IP: "
+msgstr ""
+
+#: src/auth.c:39
+#, fuzzy
+msgid "[P] Radius server port: "
+msgstr "[P] Port primaire: "
+
+#: src/auth.c:40
+msgid "[S] Radius server secret: "
+msgstr ""
+
+#: src/auth.c:41
+#, fuzzy
+msgid "[T] Reauthorization time (sec): "
+msgstr "[A] Autorisation Mac: "
+
+#: src/auth.c:42
+msgid "[F] Radius source port: "
+msgstr ""
+
+#: src/auth.c:43
+#, fuzzy
+msgid ""
+"A: auth; N: new; D: del; IPSTF: set; arrows: scroll; W: write conf; Q: quit"
+msgstr ""
+"A - autor.; N - nouveau; D - détruire; flèches - défiler; W - sauvegarder la "
+"config.; Q - quitter"
+
+#: src/auth.c:45
+#, fuzzy
+msgid "[M] 802.1x authorization: "
+msgstr "[A] Autorisation Mac: "
+
+#: src/auth.c:46
+#, fuzzy
+msgid "[T] key broadcasting time period (sec): "
+msgstr "[B] période de la balise (msec): "
+
+#: src/auth.c:47
+msgid "[I] 802.1x auth. server IP: "
+msgstr ""
+
+#: src/auth.c:48
+msgid "[S] 802.1x auth. server secret: "
+msgstr ""
+
+#: src/auth.c:49
+#, fuzzy
+msgid ""
+"A: auth; N: new; D: del; MTIS: set; arrows: scroll; W: write conf; Q: quit"
+msgstr ""
+"A - autor.; N - nouveau; D - détruire; flèches - défiler; W - sauvegarder la "
+"config.; Q - quitter"
+
+#: src/auth.c:114
+msgid "Internal"
+msgstr "Interne"
+
+#: src/auth.c:116
+#, fuzzy
+msgid "Radius"
+msgstr "Radio"
+
+#: src/auth.c:121
+msgid "Allow listed MACs only"
+msgstr ""
+
+#: src/auth.c:123
+msgid "Deny listed MACs only"
+msgstr ""
+
+#: src/auth.c:129
+msgid "Mixed environment"
+msgstr ""
+
+#: src/auth.c:213
+msgid "(not shown)"
+msgstr ""
+
+#: src/auth.c:270
+#, fuzzy
+msgid "Authorized MAC addresses:"
+msgstr "MAC adresses autorisées"
+
+#: src/auth.c:339
+msgid "(insufficient community used)"
+msgstr ""
+
+#: src/auth.c:466
+#, c-format
+msgid "Given MAC already exists in MAC list at position %d. Press any key."
+msgstr ""
+
+#: src/bridge.c:27
+msgid "[I] IP: "
+msgstr "[I] IP: "
+
+#: src/bridge.c:28
+msgid "[N] Netmask: "
+msgstr "[N] Netmask: "
+
+#: src/bridge.c:29
+msgid "[G] Gateway: "
+msgstr "[G] Passerelle (gateway): "
+
+#: src/bridge.c:30
+msgid "[F] Filter non-IP traffic: "
+msgstr "[F] Filtrer le traffic non IP: "
+
+#: src/bridge.c:31
+msgid "[P] Primary port: "
+msgstr "[P] Port primaire: "
+
+#: src/bridge.c:32
+msgid "Attached station MAC: "
+msgstr "Station rattachée MAC: "
+
+#: src/bridge.c:33
+msgid "[D] DHCP client: "
+msgstr "[D] DHCP client: "
+
+#: src/bridge.c:34
+msgid "[O] Operational mode: "
+msgstr "[O] Mode opérationnel: "
+
+#: src/bridge.c:35
+msgid "[M] Preferred BSSID (remote MAC addr.): "
+msgstr "[M] BSSIS préféré (adresse MAC distante): "
+
+#: src/bridge.c:36
+msgid "[C] Configuration-enabled port(s): "
+msgstr "[C] ports autorisés de configuration): "
+
+#: src/bridge.c:37
+#, fuzzy
+msgid "[T] Trap-sending port: "
+msgstr "[T] ports trappe d'expédition: "
+
+#: src/bridge.c:38
+msgid "[R] Forward broadcast traffic: "
+msgstr "[R] trafic de diffusion relayé: "
+
+#: src/bridge.c:39
+msgid "[B] Isolate wireless clients (broadcast traffic): "
+msgstr "[B] isoler les clients sans fil (trafic de diffusion - broadcast): "
+
+#: src/bridge.c:40
+msgid "[U] Isolate wireless clients (unicast traffic): "
+msgstr "[U] isoler les clients sans fil (trafic unicast): "
+
+#: src/bridge.c:41
+#, fuzzy
+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/nwn_advanced.c:60
+#, c-format
+msgid "[D] DB Station Timeout: %d"
+msgstr "[D] DB délai d'oisiveté de la station: %d"
+
+#: src/nwn_advanced.c:62
 #, c-format
 msgid "[A] ACK Window: %d"
 msgstr "[A] fenêtre ACK: %d"
@@ -1685,19 +2228,20 @@ msgstr "Derni
 msgid "Error:"
 msgstr "Erreur:"
 
-#: src/stations.c:33
-msgid "AP link state"
-msgstr "État du lien du Point d'accès"
-
-#: src/stations.c:37
-msgid " #            MAC                                               "
-msgstr " #            MAC                                               "
+#: src/stations.c:82
+msgid "Not available (device not in AP mode)."
+msgstr ""
 
-#: src/stations.c:40
-msgid " #     MAC       Parent MAC    RSSI  Status MACn      IP        "
+#: src/stations.c:93
+#, fuzzy
+msgid "  #     MAC       Parent MAC  RSSI   LQ Sts MACn      IP        "
 msgstr " #     MAC       Parent MAC    RSSI  État   MACn      IP        "
 
-#: src/stations.c:195 src/stations.c:367
+#: src/stations.c:139
+msgid "AssociatedSTAsInfo packet error"
+msgstr "Erreur de paquet AssociatedSTAsInfo"
+
+#: src/stations.c:192 src/stations.c:364
 msgid ""
 "Arrows - scroll; S - save to file; Q - return; T - toggle view; Other - "
 "refresh"
@@ -1705,16 +2249,63 @@ 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:200
+#: src/stations.c:196
 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:279
+#: src/stations.c:276
 msgid "Id       MAC address     Quality  Age  RSSI"
 msgstr "Id       Adresse MAC     Qualité  Âge  RSSI"
 
+#~ msgid "NUM       MAC address"
+#~ msgstr "NUM       adresse MAC"
+
+#~ msgid "A - auth; IPSTF - set; W - write conf; Q - quit"
+#~ msgstr ""
+#~ "A - auth; IPSTF - initialiser; W - sauvegarder la config.; Q - quitter"
+
+#~ msgid "A - auth; W - write conf; Q - quit"
+#~ msgstr "A - auth; W - sauvegarder la configuration; Q - quitter"
+
+#~ msgid "[I] RADIUS SERVER IP: "
+#~ msgstr "[I] IP DU SERVEUR RADIUS: "
+
+#~ msgid "[P] RADIUS SERVER PORT: "
+#~ msgstr "[P] PORT DU SERVEUR RADIUS: "
+
+#~ msgid "[S] RADIUS SERVER SECRET: "
+#~ msgstr "[S] SECRET DU SERVEUR RADIUS: "
+
+#~ msgid "[T] REAUTHORIZATION TIME: "
+#~ msgstr "[T] TEMPS DE RÉ-AUTORISATION: "
+
+#~ msgid "[F] RADIUS SOURCE PORT: "
+#~ msgstr "[F] PORT DU RADIUS SOURCE: "
+
+#~ msgid "<hidden>"
+#~ msgstr "<caché>"
+
+#~ msgid "[U] Isolate wireless clients: "
+#~ msgstr "[U] clients sans fil isolé: "
+
+#~ msgid "AP is currently in AP Client Mode => no associated STAtions."
+#~ msgstr ""
+#~ "Point d'accès est actuellement en mode client => pas de stations "
+#~ "associées."
+
+#~ msgid "#     MAC       LQ    RSSI   Status Port IP"
+#~ msgstr "#     MAC       LQ    RSSI   État   Port IP"
+
+#~ msgid "Arrows - scroll; S - save to file; Q - quit to menu."
+#~ msgstr ""
+#~ "Flècher - défiler; S - sauvegarder dans un fichier; Q - quitter vers le "
+#~ "menu."
+
+#~ msgid " #            MAC                                               "
+#~ msgstr " #            MAC                                               "
+
 #~ msgid "on"
 #~ msgstr "on"
 
index 2617ed365c42751a6f0790b5cfeee94815abbec0..03e7b5d6d0dbf1eac4c3de7e91e83cd7b2feb321 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: 2004-11-28 00:59+0200\n"
+"POT-Creation-Date: 2005-01-16 02:07+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,317 +15,6 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Report-Msgid-Bugs-To: \n"
 
-#: ap-gl/ap-gl.c:41 ap-gl/bridge.c:178 src/ap-config.c:41 src/bridge.c:182
-msgid "Bridging"
-msgstr ""
-
-#: ap-gl/ap-gl.c:41 src/ap-config.c:41
-#, fuzzy
-msgid "Set bridging and IP-related options"
-msgstr "Bridging en IP-gerelateerde opties instellen"
-
-#: ap-gl/ap-gl.c:43 ap-gl/ap-gl.c:81 ap-gl/bridge.c:132 src/ap-config.c:43
-#: src/ap-config.c:112 src/ap-config.c:120 src/bridge.c:117 src/bridge.c:121
-msgid "Wireless"
-msgstr "Draadloos"
-
-#: ap-gl/ap-gl.c:43 src/ap-config.c:43
-msgid "Set wireless options"
-msgstr "Draadloze opties instellen"
-
-#: ap-gl/ap-gl.c:44 src/ap-config.c:44 src/ap-config.c:56
-msgid "Privacy"
-msgstr "Privacy"
-
-#: ap-gl/ap-gl.c:45 src/ap-config.c:45 src/ap-config.c:57
-#, fuzzy
-msgid "MAC auth"
-msgstr "Mac toelating"
-
-#: ap-gl/ap-gl.c:46 src/ap-config.c:46 src/ap-config.c:58
-msgid "Community"
-msgstr "Gemeenschap"
-
-#: ap-gl/ap-gl.c:47 src/ap-config.c:47
-msgid "Radio"
-msgstr "Radio"
-
-#: ap-gl/ap-gl.c:47 src/ap-config.c:47
-msgid "Set radio signal power and antenna options"
-msgstr "Vermogen radio en antenne opties instellen"
-
-#: ap-gl/ap-gl.c:62 src/ap-config.c:80
-msgid "Upload"
-msgstr "Uploaden"
-
-#: ap-gl/ap-gl.c:62 src/ap-config.c:80
-#, fuzzy
-msgid "Activate current configuration"
-msgstr "Huidige configuratie actief maken"
-
-#: ap-gl/ap-gl.c:63 src/ap-config.c:81
-msgid "Defaults"
-msgstr "Standaardwaarden"
-
-#: ap-gl/ap-gl.c:63 src/ap-config.c:81
-msgid "Restore factory default settings"
-msgstr "Fabrieksinstellingen terugzetten"
-
-#: ap-gl/ap-gl.c:64 src/ap-config.c:82 src/ap-config.c:89
-msgid "Reset"
-msgstr "Opnieuw instellen"
-
-#: ap-gl/ap-gl.c:65 src/ap-config.c:83
-msgid "Reset AP. All not uploaded configuration will be lost"
-msgstr ""
-"AP opnieuw instellen. Alle niet verzonden instellingen zullen verloren gaan."
-
-#: ap-gl/ap-gl.c:66 src/ap-config.c:84
-msgid "TestMode"
-msgstr "Testmodus"
-
-#: ap-gl/ap-gl.c:66 src/ap-config.c:84
-msgid "Put Access Point in test mode"
-msgstr "Access Point in testmodus zetten"
-
-#: ap-gl/ap-gl.c:79 src/ap-config.c:110 src/ap-config.c:119
-msgid "SysInfo"
-msgstr "SysInfo"
-
-#: ap-gl/ap-gl.c:80 ap-gl/bridge.c:131 src/ap-config.c:111 src/bridge.c:116
-#: src/bridge.c:120
-msgid "Ethernet"
-msgstr "Ethernet"
-
-#: ap-gl/ap-gl.c:80 src/ap-config.c:111
-msgid "Get ethernet port statistics"
-msgstr "Ethernet poortstatistieken opvragen"
-
-#: ap-gl/ap-gl.c:82 src/ap-config.c:113 src/ap-config.c:121
-msgid "Stations"
-msgstr "Stations"
-
-#: ap-gl/ap-gl.c:83 src/ap-config.c:114
-msgid "KnownAPs"
-msgstr "BekendeAPs"
-
-#: ap-gl/ap-gl.c:83 src/ap-config.c:114
-msgid "Get info about known Access Points"
-msgstr "Info opvragen over bekende Access Points"
-
-#: ap-gl/ap-gl.c:100 src/ap-config.c:147
-msgid "Info"
-msgstr "Info"
-
-#: ap-gl/ap-gl.c:101 src/ap-config.c:148
-msgid "Config"
-msgstr "Config"
-
-#: ap-gl/ap-gl.c:102 src/ap-config.c:149
-msgid "Commands"
-msgstr "Opdrachten"
-
-#: ap-gl/ap-gl.c:102 src/ap-config.c:149
-msgid "Execute commands on Access Point"
-msgstr "Opdrachten uitvoeren op Access Point"
-
-#: ap-gl/ap-gl.c:104 src/ap-config.c:151
-msgid "Connect"
-msgstr "Verbinden"
-
-#: ap-gl/ap-gl.c:105 src/ap-config.c:152
-msgid "Search"
-msgstr "Zoeken"
-
-#: ap-gl/ap-gl.c:106 lib/common.c:83 src/ap-config.c:153
-msgid "About"
-msgstr "Info"
-
-#: ap-gl/ap-gl.c:107 src/ap-config.c:154
-msgid "Shell"
-msgstr "Shell"
-
-#: ap-gl/ap-gl.c:108 src/ap-config.c:155
-msgid "Exit"
-msgstr "Afsluiten"
-
-#: ap-gl/ap-gl.c:158 src/ap-config.c:204
-#, c-format
-msgid "Wireless Access Point Configurator ver. %s"
-msgstr "Draadloos Access Point configurator versie %s"
-
-#: ap-gl/auth_mac.c:27 src/auth_mac.c:27
-msgid "AuthorizedMacTableString packet error"
-msgstr "AuthorizedMacTableString pakketfout"
-
-#: ap-gl/auth_mac.c:29 src/auth_mac.c:29
-#, fuzzy
-msgid "[A] MAC authorization: "
-msgstr "[A] Mac toelating: %s"
-
-#: ap-gl/auth_mac.c:30 src/auth_mac.c:30
-#, fuzzy
-msgid "Enter MAC: "
-msgstr "Geef Mac:"
-
-#: ap-gl/auth_mac.c:31 src/auth_mac.c:31
-#, fuzzy
-msgid "Delete Num: "
-msgstr "Nummer verwijderen:"
-
-#: ap-gl/auth_mac.c:32 src/auth_mac.c:32
-#, fuzzy
-msgid "Authorized MAC addresses"
-msgstr "Toegelaten Mac adressen"
-
-#: ap-gl/auth_mac.c:33
-#, fuzzy
-msgid "NUM       MAC address"
-msgstr "NUM     MAC adres"
-
-#: ap-gl/auth_mac.c:34 src/auth_mac.c:34
-msgid "A - auth; N - new; D - del; arrows - scroll; W - write conf; Q - quit"
-msgstr ""
-"A - toelaten; N - nieuw; D - verwijderen; pijltjes - schuiven; W - conf "
-"schrijven; Q - afsluiten"
-
-#: ap-gl/auth_mac.c:35
-#, fuzzy
-msgid "A - auth; IPSTF - set; W - write conf; Q - quit"
-msgstr "DA - opties; W - conf schrijven; Q - afsluiten naar menu"
-
-#: ap-gl/auth_mac.c:36
-#, fuzzy
-msgid "A - auth; W - write conf; Q - quit"
-msgstr "DA - opties; W - conf schrijven; Q - afsluiten naar menu"
-
-#: ap-gl/auth_mac.c:38
-msgid "[I] RADIUS SERVER IP: "
-msgstr ""
-
-#: ap-gl/auth_mac.c:39
-msgid "[P] RADIUS SERVER PORT: "
-msgstr ""
-
-#: ap-gl/auth_mac.c:40
-msgid "[S] RADIUS SERVER SECRET: "
-msgstr ""
-
-#: ap-gl/auth_mac.c:41
-msgid "[T] REAUTHORIZATION TIME: "
-msgstr ""
-
-#: ap-gl/auth_mac.c:42
-msgid "[F] RADIUS SOURCE PORT: "
-msgstr ""
-
-#: ap-gl/auth_mac.c:87
-#, fuzzy
-msgid "Internal"
-msgstr "Algemeen"
-
-#: ap-gl/auth_mac.c:95
-msgid "<hidden>"
-msgstr ""
-
-#: ap-gl/bridge.c:26 src/bridge.c:26
-msgid "[I] IP: "
-msgstr ""
-
-#: ap-gl/bridge.c:27 src/bridge.c:27
-#, fuzzy
-msgid "[N] Netmask: "
-msgstr "[N] Netmask: %s"
-
-#: ap-gl/bridge.c:28 src/bridge.c:28
-#, fuzzy
-msgid "[G] Gateway: "
-msgstr "[G] Gateway %s"
-
-#: ap-gl/bridge.c:29 src/bridge.c:29
-#, fuzzy
-msgid "[F] Filter non-IP traffic: "
-msgstr "[F] Niet-IP verkeer filteren: %s"
-
-#: ap-gl/bridge.c:30 src/bridge.c:30
-#, fuzzy
-msgid "[P] Primary port: "
-msgstr "[P] Hoofdpoort: %s"
-
-#: ap-gl/bridge.c:31 src/bridge.c:31
-#, fuzzy
-msgid "Attached station MAC: "
-msgstr "Verbonden station MAC: %02X%02X%02X%02X%02X%02X"
-
-#: ap-gl/bridge.c:32 src/bridge.c:32
-#, fuzzy
-msgid "[D] DHCP client: "
-msgstr "[D] DHCP-protocol: %s"
-
-#: ap-gl/bridge.c:33 src/bridge.c:33
-#, fuzzy
-msgid "[O] Operational mode: "
-msgstr "[O] Operationele modus: %s"
-
-#: ap-gl/bridge.c:34 src/bridge.c:34
-#, fuzzy
-msgid "[M] Preferred BSSID (remote MAC addr.): "
-msgstr "[R] Mac adres op afstand: %02X%02X%02X%02X%02X%02X"
-
-#: ap-gl/bridge.c:36 src/bridge.c:36
-msgid "[T] Trap-sending port(s): "
-msgstr ""
-
-#: ap-gl/bridge.c:37 src/bridge.c:37
-msgid "[R] Forward broadcast traffic: "
-msgstr ""
-
-#: ap-gl/bridge.c:39
-msgid "[U] Isolate wireless clients: "
-msgstr ""
-
-#: ap-gl/bridge.c:40 src/bridge.c:40
-#, fuzzy
-msgid "INGFPDOMSCTRBU - set; W - write conf; Q - quit to menu"
-msgstr "BPGINFDRT - instellen; W - conf schrijven; Q - afsluiten naar menu"
-
-#: ap-gl/bridge.c:124 src/bridge.c:109
-msgid "Wireless Bridge Point to MultiPoint"
-msgstr ""
-
-#: ap-gl/bridge.c:125 src/bridge.c:110
-msgid "Access Point"
-msgstr "Access Point"
-
-#: ap-gl/bridge.c:126 src/bridge.c:111
-msgid "Access Point client"
-msgstr "Access Point client"
-
-#: ap-gl/bridge.c:127 src/bridge.c:112
-msgid "Wireless Bridge Point to Point"
-msgstr ""
-
-#: ap-gl/bridge.c:128 src/bridge.c:113
-msgid "Repeater"
-msgstr "Repeater"
-
-#: ap-gl/stations.c:77 src/stations.c:100
-msgid "AP is currently in AP Client Mode => no associated STAtions."
-msgstr ""
-
-#: ap-gl/stations.c:102
-msgid "#     MAC       LQ    RSSI   Status Port IP"
-msgstr ""
-
-#: ap-gl/stations.c:128 src/stations.c:159
-msgid "AssociatedSTAsInfo packet error"
-msgstr "AssociatedSTAsInfo pakketfout"
-
-#: ap-gl/stations.c:160
-msgid "Arrows - scroll; S - save to file; Q - quit to menu."
-msgstr ""
-"Pijltjes - schuiven; S - opslaan naar bestand; Q - afsluiten naar menu."
-
 #: lib/aps.c:29
 msgid "Known Access Points"
 msgstr "Bekende Access Points"
@@ -364,7 +53,7 @@ msgstr ""
 msgid "via its wireless port."
 msgstr "Draadloze opties instellen"
 
-#: lib/aps.c:153 lib/cmd.c:45 lib/cmd.c:75 lib/test.c:91
+#: lib/aps.c:153 lib/cmd.c:45 lib/cmd.c:75 lib/test.c:96
 msgid "Do you want to continue? "
 msgstr "Wilt u doorgaan?"
 
@@ -671,79 +360,96 @@ msgid "Bind socket error. Press any key."
 msgstr "Fout bij verbinden socket. Druk op een toets."
 
 #: lib/ap-utils.h:115
+#, 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
+msgid "AP list file ~/.ap-config successfully written. Press any key."
+msgstr ""
+
+#: lib/ap-utils.h:118
 msgid "Back to main menu"
 msgstr "Terug naar hoofdmenu"
 
-#: lib/ap-utils.h:116
+#: lib/ap-utils.h:119
 msgid "Exit program"
 msgstr "Programma afsluiten"
 
-#: lib/ap-utils.h:117
+#: lib/ap-utils.h:120
 #, fuzzy
 msgid "Run subshell. To return type 'exit'."
 msgstr "Deelshell uitvoeren. Typ 'exit' om terug te keren"
 
-#: lib/ap-utils.h:118
+#: lib/ap-utils.h:121
 msgid "Short info about program"
 msgstr "Korte informatie over programma"
 
-#: lib/ap-utils.h:119
+#: lib/ap-utils.h:122
 msgid "Find connected Access Points"
 msgstr "Verbonden Access Points zoeken"
 
-#: lib/ap-utils.h:120
+#: lib/ap-utils.h:123
 msgid "Set connection options: ip and community"
 msgstr "Verbindingsopties instellen: IP en gemeenschap"
 
-#: lib/ap-utils.h:121
+#: lib/ap-utils.h:124
 #, fuzzy
 msgid "Set encryption; edit WEP keys"
 msgstr "Codering instellen, WEP-sleutels bewerken"
 
-#: lib/ap-utils.h:122
+#: lib/ap-utils.h:125
 #, fuzzy
-msgid "Set MAC authorization; edit MAC authorization table"
+msgid "Set authorization; edit MAC authorization table"
 msgstr "Mac toelating instellen, mac toelatingstabel bewerken"
 
-#: lib/ap-utils.h:123
+#: lib/ap-utils.h:126
 #, fuzzy
 msgid "Set SNMP community/password for access to the AP"
 msgstr "SNMP gemeenschap/wachtwoord voor toegang AP instellen"
 
-#: lib/ap-utils.h:124
+#: lib/ap-utils.h:127
 #, fuzzy
 msgid "Get info about AP hardware and firmware"
 msgstr "Info opvragen over AP hardware en software"
 
-#: lib/ap-utils.h:125
+#: lib/ap-utils.h:128
 #, fuzzy
 msgid "Get wireless port statistics"
 msgstr "Statistieken opvragen over draadloze poorten"
 
-#: lib/ap-utils.h:126
+#: lib/ap-utils.h:129
 #, fuzzy
 msgid "Get list of currently associated stations (Access Point clients)"
 msgstr "Lijst opvragen met nu geassocieerde stations"
 
-#: lib/ap-utils.h:127
+#: lib/ap-utils.h:130
+msgid "Get link status in APclient mode"
+msgstr ""
+
+#: lib/ap-utils.h:131
 #, fuzzy
 msgid "Get info and statistics from AP"
 msgstr "Info en statistieken opvragen van AP"
 
-#: lib/ap-utils.h:128
+#: lib/ap-utils.h:132
 #, fuzzy
 msgid "Set various configuration options"
 msgstr "Verschillende configuratie-opties instellen"
 
-#: lib/ap-utils.h:130
+#: lib/ap-utils.h:134
 msgid "Associated stations"
 msgstr "Geassocieerde stations"
 
-#: lib/ap-utils.h:132
+#: lib/ap-utils.h:135
+msgid "AP Client link state"
+msgstr ""
+
+#: lib/ap-utils.h:137
 msgid "Polling: on"
 msgstr ""
 
-#: lib/ap-utils.h:133
+#: lib/ap-utils.h:138
 msgid "Polling: off"
 msgstr ""
 
@@ -846,42 +552,46 @@ msgstr "Access Point"
 msgid "Save connect-settings: "
 msgstr "Verbindingsinstellingen opslaan:"
 
-#: lib/common.c:100
+#: lib/common.c:84 src/ap-config.c:154
+msgid "About"
+msgstr "Info"
+
+#: lib/common.c:101
 #, c-format
 msgid "From %s"
 msgstr "Van %s"
 
-#: lib/common.c:102
+#: lib/common.c:103
 #, c-format
 msgid "Version %s"
 msgstr "Versie %s"
 
-#: lib/common.c:105
+#: lib/common.c:106
 msgid "Written by Roman Festchook roma@polesye.net"
 msgstr "Geschreven door Roman Festchook roma@polesye.net"
 
-#: lib/common.c:107
-msgid "Portions by Jan Rafaj aputils@cedric.unob.cz"
+#: lib/common.c:108
+msgid "and Jan Rafaj jr-aputils@cedric.unob.cz"
 msgstr ""
 
-#: lib/common.c:109
+#: lib/common.c:110
 #, fuzzy
-msgid "Copyright (c) 2001-2004"
+msgid "Copyright (c) 2001-2005"
 msgstr "Copyright (c) Roman Festchook 2001-2002"
 
-#: lib/common.c:111
+#: lib/common.c:112
 msgid "Roman Festchook and Jan Rafaj"
 msgstr ""
 
-#: lib/common.c:114
+#: lib/common.c:115
 msgid "This program is distributed under the terms"
 msgstr "This program is distributed under the terms"
 
-#: lib/common.c:116
+#: lib/common.c:117
 msgid "of the GNU General Public License version 2."
 msgstr "of the GNU General Public License version 2."
 
-#: lib/common.c:118
+#: lib/common.c:119
 msgid "See the included COPYING file for details."
 msgstr "See the included COPYING file for details."
 
@@ -897,16 +607,16 @@ msgstr "Geef het IP-adres van uw Access Point."
 msgid "Entered characters will not be displayed for security reason."
 msgstr "Ingevoerde tekens worden vanwege veiligheidsredenen niet weergegeven."
 
-#: lib/common.c:266
+#: lib/common.c:259
 msgid "This label will be stored on HDD (independently on AP name!)."
 msgstr ""
 
-#: lib/common.c:361
+#: lib/common.c:370
 #, 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:390
+#: lib/common.c:399
 #, fuzzy
 msgid ""
 "Unable to determine AP MIB properties (no response from AP). Press any key."
@@ -935,22 +645,13 @@ msgstr "Verbinden met AP nummer:"
 msgid "Delete num:"
 msgstr "Nummer verwijderen:"
 
-#: lib/file.c:372
-msgid "AP list file ~/.ap-config successfully written. Press any key."
-msgstr ""
-
-#: lib/file.c:376
-#, 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/file.c:426
+#: lib/file.c:458
 #, 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:428
+#: lib/file.c:460
 msgid "Stations file succesfully written. Press any key."
 msgstr ""
 
@@ -965,12 +666,12 @@ 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:412
+#: lib/input.c:413
 #, 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:6056
+#: lib/oui.c:6058
 msgid "Unknown or Private"
 msgstr "Onbekend of privé"
 
@@ -1018,7 +719,7 @@ msgstr ""
 "U kunt niet beide antennes uitzetten; kan antenne instellingen niet opslaan. "
 "Druk op een toets."
 
-#: lib/scr.c:168
+#: lib/scr.c:156
 #, fuzzy, c-format
 msgid "Current AP: %s Type: %s Ext: %s"
 msgstr "Huidige AP: %s Soort: %s"
@@ -1059,6 +760,152 @@ msgstr ""
 "KEY - gemeenschap/wachtwoord instellen; W - conf schrijven naar AP; Q - "
 "afsluiten"
 
+#: lib/set_oeminfo.c:28
+#, fuzzy
+msgid "Info structure version: "
+msgstr "StructVersie: %lu"
+
+#: lib/set_oeminfo.c:29
+#, fuzzy
+msgid "[M] Device MAC address: "
+msgstr "IP-adres: %s"
+
+#: lib/set_oeminfo.c:30
+#, fuzzy
+msgid "    Manufacturer with this OUI: "
+msgstr "Maker ID:"
+
+#: lib/set_oeminfo.c:31
+#, fuzzy
+msgid "[D] Regulatory domain: "
+msgstr "Reguleringsdomein: %s"
+
+#: lib/set_oeminfo.c:32
+#, fuzzy
+msgid "[T] Product type: "
+msgstr "Produktsoort: %lu"
+
+#: lib/set_oeminfo.c:33
+#, fuzzy
+msgid "[E] OEM name: "
+msgstr "OEM naam:"
+
+#: lib/set_oeminfo.c:34
+msgid "[I] OEM ID: "
+msgstr ""
+
+#: lib/set_oeminfo.c:35
+#, fuzzy
+msgid "[N] Product name: "
+msgstr "Produktnaam:"
+
+#: lib/set_oeminfo.c:36
+#, fuzzy
+msgid "[H] Hardware revision: "
+msgstr "Hardware revisie: %lu"
+
+#: lib/set_oeminfo.c:37
+#, fuzzy
+msgid "[O] Country code: "
+msgstr "[O] Opdracht: %s"
+
+#: lib/set_oeminfo.c:38
+#, fuzzy
+msgid "[C] Default channel: "
+msgstr "[C] Frequentiekanaal: %02u (%u MHz)"
+
+#: lib/set_oeminfo.c:39
+#, fuzzy
+msgid "[A] Calibrated channels: "
+msgstr "[C] Frequentiekanaal: %02u (%u MHz)"
+
+#: lib/set_oeminfo.c:40
+msgid "[P] Nominal Tx Power (CR31) value for calibrated channels: "
+msgstr ""
+
+#: lib/set_oeminfo.c:41
+#, fuzzy
+msgid ""
+"Keys in brackets - set corresponding option; W - write conf; Q - quit to menu"
+msgstr "[toets] - optie instellen; W - conf schrijven; Q - afsluiten naar menu"
+
+#: lib/set_oeminfo.c:101
+msgid "THIS IS A SECRET MENU LEADING TO VERY DANGEROUS OPTIONS."
+msgstr ""
+
+#: lib/set_oeminfo.c:103
+msgid "It is intended only for WISPs and repair shops."
+msgstr ""
+
+#: lib/set_oeminfo.c:107
+msgid "It allows to set OEM information stored in the AP (like its"
+msgstr ""
+
+#: lib/set_oeminfo.c:109
+msgid "MAC address, manuf. name, OEM ID, etc.). BE ABSOLUTELY SURE"
+msgstr ""
+
+#: lib/set_oeminfo.c:111
+msgid "THAT YOU KNOW WHAT YOU ARE DOING, AND THAT YOU HAVE THE"
+msgstr ""
+
+#: lib/set_oeminfo.c:113
+msgid "LEGAL RIGHT TO DO ANY MODIFICATION. Disobserving of these"
+msgstr ""
+
+#: lib/set_oeminfo.c:115
+msgid "rules may lead you into a conflict with your local"
+msgstr ""
+
+#: lib/set_oeminfo.c:117
+msgid "regulations and/or law."
+msgstr ""
+
+#: lib/set_oeminfo.c:119
+msgid "Also be warned that the setting of any from these options"
+msgstr ""
+
+#: lib/set_oeminfo.c:121
+msgid "may DAMAGE YOUR AP (other reason why this menu is hidden)."
+msgstr ""
+
+#: lib/set_oeminfo.c:123
+msgid "Values changed here will NOT be restored upon reset"
+msgstr ""
+
+#: lib/set_oeminfo.c:125
+msgid "of the device to factory defaults! It is advisable to"
+msgstr ""
+
+#: lib/set_oeminfo.c:127
+msgid "write them down somewhere prior their changing."
+msgstr ""
+
+#: lib/set_oeminfo.c:129
+msgid "Finally, note that you need to use MANUFACTURER community, "
+msgstr ""
+
+#: lib/set_oeminfo.c:131
+msgid "in order to be able to do any OEM info modification."
+msgstr ""
+
+#: lib/set_oeminfo.c:133
+msgid "Proceed further only at your full risk and responsibility. "
+msgstr ""
+
+#: lib/set_oeminfo.c:135
+msgid "You got the warnings."
+msgstr ""
+
+#: lib/set_oeminfo.c:141
+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"
@@ -1099,161 +946,186 @@ msgstr "Systeemomschrijving:"
 msgid "System Info"
 msgstr "Systeeminfo"
 
-#: lib/sysinfo.c:120
+#: lib/sysinfo.c:54 src/bridge.c:86
+msgid "Wireless Bridge Point to MultiPoint"
+msgstr ""
+
+#: lib/sysinfo.c:55 src/bridge.c:87
+msgid "Access Point"
+msgstr "Access Point"
+
+#: lib/sysinfo.c:56 src/bridge.c:88
+msgid "Access Point client"
+msgstr "Access Point client"
+
+#: lib/sysinfo.c:57 src/bridge.c:89
+msgid "Wireless Bridge Point to Point"
+msgstr ""
+
+#: lib/sysinfo.c:58 src/bridge.c:90
+msgid "Repeater"
+msgstr "Repeater"
+
+#: lib/sysinfo.c:59 lib/sysinfo.c:314 lib/sysinfo.c:423 src/bridge.c:91
+msgid "unknown"
+msgstr "onbekend"
+
+#: lib/sysinfo.c:143
 msgid "Device hardware/software/name info:"
 msgstr ""
 
-#: lib/sysinfo.c:154
+#: lib/sysinfo.c:171
+#, fuzzy, c-format
+msgid "Operational mode: %s"
+msgstr "[O] Operationele modus: %s"
+
+#: lib/sysinfo.c:181
 #, fuzzy
-msgid "Product name:"
+msgid "Product name: "
 msgstr "Produktnaam:"
 
-#: lib/sysinfo.c:158
+#: lib/sysinfo.c:185
 #, fuzzy, c-format
 msgid "Product type: %u"
 msgstr "Produktsoort: %lu"
 
-#: lib/sysinfo.c:161
+#: lib/sysinfo.c:188
 #, fuzzy
-msgid "OEM name:"
+msgid "OEM name: "
 msgstr "OEM naam:"
 
-#: lib/sysinfo.c:168
+#: lib/sysinfo.c:195
 #, fuzzy, c-format
 msgid "Hardware revision: %u"
 msgstr "Hardware revisie: %lu"
 
-#: lib/sysinfo.c:176
+#: lib/sysinfo.c:203
 #, fuzzy, c-format
 msgid "Info structure version: %u"
 msgstr "StructVersie: %lu"
 
-#: lib/sysinfo.c:179 lib/sysinfo.c:355
+#: lib/sysinfo.c:206 lib/sysinfo.c:382
 #, c-format
 msgid "Manufacturer OUI: %02X %02X %02X (%s)"
 msgstr "Maker OUI: %02X %02X %02X (%s)"
 
-#: lib/sysinfo.c:196
+#: lib/sysinfo.c:223
 #, fuzzy, c-format
 msgid "Uptime: %u days, %02u:%02u:%02u hours:mins:secs"
 msgstr "Uptime: %u:%02u:%02u.%02u"
 
-#: lib/sysinfo.c:284
+#: lib/sysinfo.c:311
 msgid "FHSS 2.4 GHz"
 msgstr "FHSS 2.4 GHz"
 
-#: lib/sysinfo.c:284
+#: lib/sysinfo.c:311
 msgid "DSSS 2.4 GHz"
 msgstr "DSSS 2.4 GHz"
 
-#: lib/sysinfo.c:284
+#: lib/sysinfo.c:311
 msgid "IR Baseband"
 msgstr "IR Baseband"
 
-#: lib/sysinfo.c:285
+#: lib/sysinfo.c:312
 msgid "Commercial range 0..40 C"
 msgstr "Commercieel bereik 0..40 C"
 
-#: lib/sysinfo.c:286
+#: lib/sysinfo.c:313
 msgid "Industrial range -30..70 C"
 msgstr "Industrieel bereik -30..70 C"
 
-#: lib/sysinfo.c:287 lib/sysinfo.c:396
-msgid "unknown"
-msgstr "onbekend"
-
-#: lib/sysinfo.c:289
+#: lib/sysinfo.c:316
 msgid "manual"
 msgstr "handmatig"
 
-#: lib/sysinfo.c:289
+#: lib/sysinfo.c:316
 msgid "notsupported"
 msgstr "niet ondersteund"
 
-#: lib/sysinfo.c:289
+#: lib/sysinfo.c:316
 msgid "dynamic"
 msgstr "dynamisch"
 
-#: lib/sysinfo.c:345
+#: lib/sysinfo.c:372
 msgid "Manufacturer:"
 msgstr "Maker:"
 
-#: lib/sysinfo.c:350
+#: lib/sysinfo.c:377
 msgid "Manufacturer ID:"
 msgstr "Maker ID:"
 
-#: lib/sysinfo.c:361
+#: lib/sysinfo.c:388
 msgid "Product Name:"
 msgstr "Produktnaam:"
 
-#: lib/sysinfo.c:367
+#: lib/sysinfo.c:394
 msgid "Product ID:"
 msgstr "Produkt ID:"
 
-#: lib/sysinfo.c:373
+#: lib/sysinfo.c:400
 msgid "Product Version:"
 msgstr "Produktversie:"
 
-#: lib/sysinfo.c:379
+#: lib/sysinfo.c:406
 #, c-format
 msgid "PHYType: %s"
 msgstr "PHY soort: %s"
 
-#: lib/sysinfo.c:382
+#: lib/sysinfo.c:409
 #, c-format
 msgid "Temperature: %s"
 msgstr "Temperatuur: %s"
 
-#: lib/sysinfo.c:390
+#: lib/sysinfo.c:417
 #, fuzzy, c-format
 msgid "Regulatory Domain: %s"
 msgstr "Reguleringsdomein: %s"
 
-#: lib/sysinfo.c:391
+#: lib/sysinfo.c:418
 msgid "FCC (USA)"
 msgstr "FCC (USA)"
 
-#: lib/sysinfo.c:392
+#: lib/sysinfo.c:419
 msgid "DOC (Canada)"
 msgstr "DOC (Canada)"
 
-#: lib/sysinfo.c:393
+#: lib/sysinfo.c:420
 msgid "ETSI (Europe)"
 msgstr "ETSI (Europa)"
 
-#: lib/sysinfo.c:394
+#: lib/sysinfo.c:421
 msgid "Spain"
 msgstr "Spanje"
 
-#: lib/sysinfo.c:395
+#: lib/sysinfo.c:422
 msgid "France"
 msgstr "Frankrijk"
 
-#: lib/sysinfo.c:396
+#: lib/sysinfo.c:423
 msgid "MKK (Japan)"
 msgstr "MKK (Japan)"
 
-#: lib/sysinfo.c:399
+#: lib/sysinfo.c:426
 #, c-format
 msgid "Transmit Power: %u mW"
 msgstr "Zendvermogen: %u mW"
 
-#: lib/sysinfo.c:429
+#: lib/sysinfo.c:456
 #, fuzzy, c-format
 msgid "WEP implemented: %s"
 msgstr "WEP geïmplementeerd: %s"
 
-#: lib/sysinfo.c:432
+#: lib/sysinfo.c:459
 #, c-format
 msgid "Diversity: %s"
 msgstr "Diversiteit: %s"
 
-#: lib/sysinfo.c:460
+#: lib/sysinfo.c:487
 #, c-format
 msgid "Uptime: %u:%02u:%02u.%02u"
 msgstr "Uptime: %u:%02u:%02u.%02u"
 
-#: lib/sysinfo.c:480
+#: lib/sysinfo.c:507
 #, c-format
 msgid "IP  Address: %s"
 msgstr "IP-adres: %s"
@@ -1302,36 +1174,40 @@ msgstr "Links"
 msgid "Right"
 msgstr "Rechts"
 
-#: lib/test.c:86
+#: lib/test.c:79
+msgid "Devices with ATMEL12350 MIB not yet supported."
+msgstr ""
+
+#: lib/test.c:91
 #, fuzzy
 msgid "Test mode"
 msgstr "Testmodus"
 
-#: lib/test.c:89
+#: lib/test.c:94
 #, fuzzy
 msgid "Using the \"Test mode\" may cause loss of your current"
 msgstr ""
 "Gebruik van de testmodus kan ervoor zorgen dat de huidige configuratie "
 "verloren gaat."
 
-#: lib/test.c:90
+#: lib/test.c:95
 #, fuzzy
 msgid "configuration."
 msgstr "Configuratie uploaden"
 
-#: lib/test.c:102
+#: lib/test.c:107
 msgid "Options:"
 msgstr "Opties:"
 
-#: lib/test.c:128
+#: lib/test.c:133
 msgid "Statistics:"
 msgstr "Statistieken:"
 
-#: lib/test.c:129
+#: lib/test.c:134
 msgid "Success Frames: 0 Failed Frames: 0"
 msgstr "Succesvolle frames: 0 Mislukte frames: 0"
 
-#: lib/test.c:190
+#: lib/test.c:195
 #, c-format
 msgid "Success Frames: %lu Failed Frames: %lu"
 msgstr "Succesvolle frames: %lu Mislukte frames: %lu"
@@ -1465,7 +1341,7 @@ msgid "[D] DTIM sending interval (beacons): "
 msgstr ""
 
 #: lib/wlan.c:48
-msgid "[T] SIFS time (msec): "
+msgid "[T] SIFS time (ACK timeout) msec: "
 msgstr ""
 
 #: lib/wlan.c:49
@@ -1499,35 +1375,27 @@ msgstr ""
 "UIOPTY - antenne; SCANLEDFR1234 - opties; W - conf schrijven; Q - afsluiten "
 "naar menu"
 
-#: src/ap-config.c:54
-msgid "General"
-msgstr "Algemeen"
-
-#: src/ap-config.c:54
-msgid "Set general options"
-msgstr "Algemene opties instellen"
-
-#: src/ap-config.c:55
-msgid "Advanced"
-msgstr "Geavanceerd"
+#: src/ap-auth.c:32 src/auth.c:28
+msgid "AuthorizedMacTableString packet error"
+msgstr "AuthorizedMacTableString pakketfout"
 
-#: src/ap-config.c:55
-msgid "Set advanced options"
-msgstr "Geavanceerde opties instellen"
+#: src/ap-auth.c:33
+msgid "Invalid data in source file"
+msgstr ""
 
-#: src/ap-config.c:89
-msgid "Reset AP."
-msgstr "AP opnieuw instellen."
+#: src/ap-auth.c:34
+msgid "Can't open file"
+msgstr ""
 
-#: src/ap-config.c:122
-msgid "Latest"
-msgstr "Laatste"
+#: src/ap-auth.c:35
+msgid "Can't write to file"
+msgstr ""
 
-#: src/ap-config.c:122
-msgid "Get info about latest events"
-msgstr "Info opvragen over laatste gebeurtenissen"
+#: src/ap-auth.c:36
+msgid "Error closing file"
+msgstr ""
 
-#: src/ap-mrtg.c:42
+#: src/ap-auth.c:45 src/ap-mrtg.c:42 src/ap-rrd.c:42
 msgid ""
 "\n"
 "Usage:\n"
@@ -1535,69 +1403,41 @@ msgstr ""
 "\n"
 "Gebruik:\n"
 
-#: src/ap-mrtg.c:44
-#, fuzzy
+#: src/ap-auth.c:46
+msgid "\tap-auth -i ip -c community -d filename [-h]\n"
+msgstr ""
+
+#: src/ap-auth.c:47
 msgid ""
-"\tap-mrtg -i ip -c community -t type [-b bssid] [-n name] [-a aptype] [-v] [-"
-"h] [-r]\n"
+"\tap-auth -i ip -c community -u filename [-h]\n"
 "\n"
 msgstr ""
-"\tap-mrtg -i ip -c gemeenschap -t soort [-b bssid] [-v] [-h] [-r]\n"
-"\n"
 
-#: src/ap-mrtg.c:46
+#: src/ap-auth.c:48
 msgid ""
-"Get stats from AP and return it in MRTG parsable format\n"
+"Change accesspoint's list of authorised MAC addresses\n"
 "\n"
 msgstr ""
-"Statistieken van AP opvragen en aanbieden in MRTG-verwerkbaar formaat\n"
-"\n"
 
-#: src/ap-mrtg.c:47
+#: src/ap-auth.c:49 src/ap-mrtg.c:46 src/ap-rrd.c:47
 msgid "-i ip        - AP ip address\n"
 msgstr "-i ip        - AP ip-adres\n"
 
-#: src/ap-mrtg.c:48
+#: src/ap-auth.c:50 src/ap-mrtg.c:47 src/ap-rrd.c:48
 msgid "-c community - SNMP community string\n"
 msgstr "-c gemeenschap - SNMP gemeenschap naam\n"
 
-#: src/ap-mrtg.c:50
-msgid ""
-"-t type      - statistics type <w>ireless, <e>thernet, associated <s>tations "
-"or <l>ink quality in client mode\n"
-msgstr ""
-"-t type      - soort statistieken <w> draadloos, <e>thernet, geassocieerde "
-"<s>tations of <l> kwaliteit verbinding in client modus\n"
-
-#: src/ap-mrtg.c:52
+#: src/ap-auth.c:51
 msgid ""
-"-b bssid     - mac address of the AP to which get link quality, only if "
-"type=l\n"
-msgstr ""
-"-b bssid     - mac adres van AP waarvan verbindingskwaliteit bepaald moet "
-"worden; alleen als soort=l\n"
-
-#: src/ap-mrtg.c:53
-msgid "-n name     - AP name - for check only\n"
+"-d filename  - download list of authorised MAC addresses from AP to a file\n"
 msgstr ""
 
-#: src/ap-mrtg.c:54
+#: src/ap-auth.c:53
 msgid ""
-"-a aptype        - AP type - 410 (default) or 510 for ATMEL12350's, like the "
-"ME-102\n"
-msgstr ""
-
-#: src/ap-mrtg.c:56
-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:57
-msgid "-r           - reset AP when getting LinkQuality stats\n"
+"-u filename  - upload list of authorised MAC addresses from a file to AP\n"
 msgstr ""
-"-r           - AP opnieuw instellen bij opvragen statistieken "
-"verbindingskwaliteit\n"
 
-#: src/ap-mrtg.c:58
+#: src/ap-auth.c:55 src/ap-mrtg.c:56 src/ap-rrd.c:57
 msgid ""
 "-h           - print this help screen\n"
 "\n"
@@ -1605,102 +1445,780 @@ msgstr ""
 "-h           - deze hulp weergeven\n"
 "\n"
 
-#: src/ap-mrtg.c:59
+#: src/ap-auth.c:56
 #, fuzzy, c-format
 msgid ""
-"ap-mrtg %s Copyright (c) 2002-2003 Roman Festchook\n"
+"ap-auth %s Copyright (c) 2004 Teemu Kiviniemi\n"
 "\n"
 msgstr ""
 "ap-mrtg %s Copyright (c) 2002 Roman Festchook\n"
 "\n"
 
-#: src/ap-mrtg.c:143
-msgid "Invalid IP-address\n"
+#: src/ap-auth.c:146 src/ap-mrtg.c:139
+#, fuzzy
+msgid "Error: invalid IP-address.\n"
 msgstr "Onjuist IP-adres\n"
 
-#: src/ap-mrtg.c:188
-#, c-format
-msgid "Invalid AP-Type '%s' - valid types are 510 or 410\n"
-msgstr ""
-
-#: src/ap-mrtg.c:207
+#: 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-mrtg.c:211
+#: 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-trapd.c:148
-#, c-format
-msgid "ap-trapd %s started%s%s."
-msgstr "ap-trapd %s gestart%s%s."
+#: src/ap-auth.c:220 src/ap-mrtg.c:220
+#, 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-trapd.c:149
-msgid " on "
-msgstr " aan "
+#: src/ap-auth.c:228
+msgid "NWN devices are not yet supported."
+msgstr ""
 
-#: src/ap-trapd.c:155
-msgid "Unable to fork. Exiting."
-msgstr "fork() mislukt. Afsluiten."
+#: src/ap-config.c:41 src/bridge.c:200
+msgid "Bridging"
+msgstr ""
 
-#: src/ap-trapd.c:159
-msgid "Can't create socket. Exiting."
-msgstr "Kan socket niet maken. Afsluiten."
+#: src/ap-config.c:41
+#, fuzzy
+msgid "Set bridging and IP-related options"
+msgstr "Bridging en IP-gerelateerde opties instellen"
 
-#: src/ap-trapd.c:165
-msgid "Can't bind socket. Exiting."
-msgstr "Kan socket niet verbinden. Afsluiten."
+#: src/ap-config.c:43 src/ap-config.c:112 src/ap-config.c:121 src/bridge.c:124
+msgid "Wireless"
+msgstr "Draadloos"
 
-#: src/ap-trapd.c:172
-#, c-format
-msgid "Can't bind to device %s. Exiting."
-msgstr "Kan niet aan apparaat %s binden. Afsluiten."
+#: src/ap-config.c:43
+msgid "Set wireless options"
+msgstr "Draadloze opties instellen"
 
-#: src/ap-trapd.c:183
-#, c-format
-msgid "Unable to process username %s. Error: %m."
-msgstr "Kan gebruikersnaam %s niet verwerken. Fout: %m."
+#: src/ap-config.c:44 src/ap-config.c:56
+msgid "Privacy"
+msgstr "Privacy"
 
-#: src/ap-trapd.c:188
-#, c-format
-msgid "Unable to change to uid %d."
-msgstr "Kan niet overgaan op uid %d."
+#: src/ap-config.c:45
+#, fuzzy
+msgid "Auth"
+msgstr "Info"
 
-#: src/ap-trapd.c:235
-#, c-format
-msgid ""
-"Received unknown SNMP ver %d trap. From %s:%d. Agent: %s. Community: %s."
-msgstr ""
-"Onbekende SNMP ver %d val ontvangen. Van %s:%d. Agent: %s. Gemeenschap: %s."
+#: src/ap-config.c:46 src/ap-config.c:58
+msgid "Community"
+msgstr "Gemeenschap"
 
-#: src/ap-trapd.c:307
-#, c-format
-msgid "Agent:v%d %s (%s@%s:%d) %s%s%s. SysUptime %d:%02d:%02d.%02d"
-msgstr "Agent:v%d %s (%s@%s:%d) %s%s%s. SysUptime %d:%02d:%02d.%02d"
+#: src/ap-config.c:47
+msgid "Radio"
+msgstr "Radio"
 
-#: src/auth_mac.c:33
-#, fuzzy
-msgid "NUM     MAC address"
-msgstr "NUM     MAC adres"
+#: src/ap-config.c:47
+msgid "Set radio signal power and antenna options"
+msgstr "Vermogen radio en antenne opties instellen"
 
-#: src/bridge.c:35
-msgid "[C] Configuration-enabled port(s): "
-msgstr ""
+#: src/ap-config.c:54
+msgid "General"
+msgstr "Algemeen"
 
-#: src/bridge.c:38
-msgid "[B] Isolate wireless clients (broadcast traffic): "
-msgstr ""
+#: src/ap-config.c:54
+msgid "Set general options"
+msgstr "Algemene opties instellen"
 
-#: src/bridge.c:39
-msgid "[U] Isolate wireless clients (unicast traffic): "
+#: src/ap-config.c:55
+msgid "Advanced"
+msgstr "Geavanceerd"
+
+#: src/ap-config.c:55
+msgid "Set advanced options"
+msgstr "Geavanceerde opties instellen"
+
+#: src/ap-config.c:57
+#, fuzzy
+msgid "MAC auth"
+msgstr "Mac toelating"
+
+#: src/ap-config.c:80
+msgid "Upload"
+msgstr "Uploaden"
+
+#: src/ap-config.c:80
+#, fuzzy
+msgid "Activate current configuration"
+msgstr "Huidige configuratie actief maken"
+
+#: src/ap-config.c:81
+msgid "Defaults"
+msgstr "Standaardwaarden"
+
+#: src/ap-config.c:81
+msgid "Restore factory default settings"
+msgstr "Fabrieksinstellingen terugzetten"
+
+#: src/ap-config.c:82 src/ap-config.c:89
+msgid "Reset"
+msgstr "Opnieuw instellen"
+
+#: src/ap-config.c:83
+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
+msgid "TestMode"
+msgstr "Testmodus"
+
+#: src/ap-config.c:84
+msgid "Put Access Point in test mode"
+msgstr "Access Point in testmodus zetten"
+
+#: src/ap-config.c:89
+msgid "Reset AP."
+msgstr "AP opnieuw instellen."
+
+#: src/ap-config.c:110 src/ap-config.c:120
+msgid "SysInfo"
+msgstr "SysInfo"
+
+#: src/ap-config.c:111 src/bridge.c:123 src/bridge.c:127
+msgid "Ethernet"
+msgstr "Ethernet"
+
+#: src/ap-config.c:111
+msgid "Get ethernet port statistics"
+msgstr "Ethernet poortstatistieken opvragen"
+
+#: src/ap-config.c:113 src/ap-config.c:122
+msgid "Stations"
+msgstr "Stations"
+
+#: src/ap-config.c:114
+msgid "AP link"
+msgstr ""
+
+#: src/ap-config.c:115
+msgid "KnownAPs"
+msgstr "BekendeAPs"
+
+#: src/ap-config.c:115
+msgid "Get info about known Access Points"
+msgstr "Info opvragen over bekende Access Points"
+
+#: src/ap-config.c:123
+msgid "Latest"
+msgstr "Laatste"
+
+#: src/ap-config.c:123
+msgid "Get info about latest events"
+msgstr "Info opvragen over laatste gebeurtenissen"
+
+#: src/ap-config.c:148
+msgid "Info"
+msgstr "Info"
+
+#: src/ap-config.c:149
+msgid "Config"
+msgstr "Config"
+
+#: src/ap-config.c:150
+msgid "Commands"
+msgstr "Opdrachten"
+
+#: src/ap-config.c:150
+msgid "Execute commands on Access Point"
+msgstr "Opdrachten uitvoeren op Access Point"
+
+#: src/ap-config.c:152
+msgid "Connect"
+msgstr "Verbinden"
+
+#: src/ap-config.c:153
+msgid "Search"
+msgstr "Zoeken"
+
+#: src/ap-config.c:155
+msgid "Shell"
+msgstr "Shell"
+
+#: src/ap-config.c:156
+msgid "Exit"
+msgstr "Afsluiten"
+
+#: src/ap-config.c:214
+#, c-format
+msgid "Wireless Access Point Configurator ver. %s"
+msgstr "Draadloos Access Point configurator versie %s"
+
+#: src/aplink.c:28
+msgid "RSSI:     ["
+msgstr ""
+
+#: src/aplink.c:29
+msgid "RSSI avg: ["
+msgstr ""
+
+#: src/aplink.c:30
+msgid "RSSI top: ["
+msgstr ""
+
+#: src/aplink.c:112
+msgid "Not available - device must have firmware with necessary "
+msgstr ""
+
+#: src/aplink.c:114
+msgid "vendor extensions and be in either 'Access Point client'"
+msgstr ""
+
+#: src/aplink.c:116
+msgid "or 'Repeater' mode."
+msgstr ""
+
+#: src/ap-mrtg.c:43
+#, fuzzy
+msgid ""
+"\tap-mrtg -i ip -c community -t type [-b bssid] [-n name] [-v] [-h] [-r]\n"
+"\n"
+msgstr ""
+"\tap-mrtg -i ip -c gemeenschap -t soort [-b bssid] [-v] [-h] [-r]\n"
+"\n"
+
+#: src/ap-mrtg.c:45
+msgid ""
+"Get stats from AP and return it in MRTG parsable format\n"
+"\n"
+msgstr ""
+"Statistieken van AP opvragen en aanbieden in MRTG-verwerkbaar formaat\n"
+"\n"
+
+#: src/ap-mrtg.c:48
+#, fuzzy
+msgid ""
+"-t type      - statistics type <w>ireless, <e>thernet, associated <s>tations "
+"or <l>ink quality (last one will only "
+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
+msgid "work with ATMEL410 MIB devices in AP Client mode)\n"
 msgstr ""
 
-#: src/bridge.c:119
+#: src/ap-mrtg.c:51
+#, fuzzy
+msgid ""
+"-b bssid     - mac address of the AP from which get link quality, only if "
+"type=l\n"
+msgstr ""
+"-b bssid     - mac adres van AP waarvan verbindingskwaliteit bepaald moet "
+"worden; alleen als soort=l\n"
+
+#: src/ap-mrtg.c:53
+msgid "-n name      - AP name - for check only\n"
+msgstr ""
+
+#: src/ap-mrtg.c:54
+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
+msgid "-r           - reset AP when getting LinkQuality stats\n"
+msgstr ""
+"-r           - AP opnieuw instellen bij opvragen statistieken "
+"verbindingskwaliteit\n"
+
+#: src/ap-mrtg.c:57
+#, fuzzy, c-format
+msgid ""
+"ap-mrtg %s Copyright (c) 2002-2003 Roman Festchook\n"
+"\n"
+msgstr ""
+"ap-mrtg %s Copyright (c) 2002 Roman Festchook\n"
+"\n"
+
+#: src/ap-rrd.c:44
+#, fuzzy
+msgid ""
+"\tap-rrd -i ip -c community -t type -d db_file [-b bssid] [-n name] [-a "
+"aptype] [-h] [-r] \n"
+"\n"
+msgstr ""
+"\tap-mrtg -i ip -c gemeenschap -t soort [-b bssid] [-v] [-h] [-r]\n"
+"\n"
+
+#: src/ap-rrd.c:46
+#, fuzzy
+msgid ""
+"Get stats from AP and put it in to specified RRDtool database\n"
+"\n"
+msgstr ""
+"Statistieken van AP opvragen en aanbieden in MRTG-verwerkbaar formaat\n"
+"\n"
+
+#: src/ap-rrd.c:50
+msgid ""
+"-t type      - statistics type <w>ireless, <e>thernet, associated <s>tations "
+"or <l>ink quality in client mode\n"
+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
+msgid "-d db_file   - RRD database file with full path\n"
+msgstr ""
+
+#: src/ap-rrd.c:53
+msgid ""
+"-b bssid     - mac address of the AP to which get link quality, only if "
+"type=l\n"
+msgstr ""
+"-b bssid     - mac adres van AP waarvan verbindingskwaliteit bepaald moet "
+"worden; alleen als soort=l\n"
+
+#: src/ap-rrd.c:54
+msgid "-n name     - AP name - for check only\n"
+msgstr ""
+
+#: src/ap-rrd.c:55
+msgid ""
+"-a aptype    - AP type - 410 (default) or 510 for ATMEL12350's, like the ME-"
+"102\n"
+msgstr ""
+
+#: src/ap-rrd.c:58
+#, fuzzy, c-format
+msgid ""
+"ap-rrd %s Copyright (c) 2002-2004 Roman Festchook\n"
+"\n"
+msgstr ""
+"ap-mrtg %s Copyright (c) 2002 Roman Festchook\n"
+"\n"
+
+#: src/ap-rrd.c:142
+msgid "Invalid IP-address\n"
+msgstr "Onjuist IP-adres\n"
+
+#: src/ap-rrd.c:188
+#, c-format
+msgid "Invalid AP-Type '%s' - valid types are 510 or 410\n"
+msgstr ""
+
+#: src/ap-tftp.c:81
+msgid "yes"
+msgstr ""
+
+#: src/ap-tftp.c:82
+#, fuzzy
+msgid "no"
+msgstr "Info"
+
+#: src/ap-tftp.c:84
+msgid "Error while read()ing firmware file"
+msgstr ""
+
+#: src/ap-tftp.c:88
+msgid "Undefined error"
+msgstr ""
+
+#: src/ap-tftp.c:89
+msgid "File not found"
+msgstr ""
+
+#: src/ap-tftp.c:90
+#, fuzzy
+msgid "Access violation"
+msgstr "Access Point"
+
+#: src/ap-tftp.c:91
+msgid "Disk full or allocation error"
+msgstr ""
+
+#: src/ap-tftp.c:92
+msgid "Illegal TFTP operation"
+msgstr ""
+
+#: src/ap-tftp.c:93
+msgid "Unknown transfer ID"
+msgstr ""
+
+#: src/ap-tftp.c:94
+msgid "File already exists"
+msgstr ""
+
+#: src/ap-tftp.c:95
+msgid "No such user"
+msgstr ""
+
+#: src/ap-tftp.c:161
+msgid "Remote-filename too long.\n"
+msgstr ""
+
+#: src/ap-tftp.c:187
+#, c-format
+msgid "%sError in read()"
+msgstr ""
+
+#: src/ap-tftp.c:215
+#, c-format
+msgid "sending %u bytes\n"
+msgstr ""
+
+#: src/ap-tftp.c:224
+#, c-format
+msgid "%sError in sendto()"
+msgstr ""
+
+#: src/ap-tftp.c:247
+#, c-format
+msgid "%sError in recvfrom()"
+msgstr ""
+
+#: src/ap-tftp.c:261
+#, c-format
+msgid "\rProgress: uploaded %.0f %%."
+msgstr ""
+
+#: src/ap-tftp.c:272
+#, c-format
+msgid "%sMalformed packet received. Aborting.\n"
+msgstr ""
+
+#: src/ap-tftp.c:281
+#, c-format
+msgid "%sTimed out waiting for response from server (%i/%i).\n"
+msgstr ""
+
+#: src/ap-tftp.c:288
+#, c-format
+msgid "%sError in select()"
+msgstr ""
+
+#: src/ap-tftp.c:302
+#, c-format
+msgid "Received %d bytes: %04x %04x\n"
+msgstr ""
+
+#: src/ap-tftp.c:313
+#, c-format
+msgid "%sError: server responded with %s. Aborting.\n"
+msgstr ""
+
+#: src/ap-tftp.c:320
+#, c-format
+msgid "%sFlash programming in progress...\n"
+msgstr ""
+
+#: src/ap-tftp.c:322
+msgid "Finished successfully.\n"
+msgstr ""
+
+#: src/ap-tftp.c:340
+msgid "PLEASE BE _ABSOLUTELY_ SURE TO READ MANPAGE PRIOR USE!!!\n"
+msgstr ""
+
+#: src/ap-tftp.c:341
+#, c-format
+msgid ""
+"\n"
+"Usage: %s <-l firmware_file.rom> <IP>\n"
+msgstr ""
+
+#: src/ap-tftp.c:363
+msgid "TFTP client for upgrading firmware in ATMEL AT76C510 WiSOC-based APs.\n"
+msgstr ""
+
+#: src/ap-tftp.c:365
+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
+msgid "Error: invalid IP address format given.\n"
+msgstr ""
+
+#: src/ap-tftp.c:405
+msgid "Error while open()ing firmware file"
+msgstr ""
+
+#: src/ap-tftp.c:411 src/ap-tftp.c:462
+msgid "Error: invalid firmware file given.\n"
+msgstr ""
+
+#: src/ap-tftp.c:451
+#, c-format
+msgid ""
+"Firmware file contains:\n"
+"- string \"ATMEL\": %s\n"
+"- string \"802.11 AP\": %s\n"
+"- string \"atbrfirm.bin\": %s\n"
+"- string \"atsingle.bin\": %s\n"
+msgstr ""
+
+#: src/ap-tftp.c:474
+#, c-format
+msgid ""
+"Using:\n"
+"- server: %s\n"
+"- firmware file: \"%s\"\n"
+"- name used for upload: \"%s\"\n"
+msgstr ""
+
+#: src/ap-tftp.c:537
+msgid "Error while lseek()ing in firmware file\n"
+msgstr ""
+
+#: src/ap-trapd.c:150
+#, c-format
+msgid "ap-trapd %s started%s%s."
+msgstr "ap-trapd %s gestart%s%s."
+
+#: src/ap-trapd.c:151
+msgid " on "
+msgstr " aan "
+
+#: src/ap-trapd.c:157
+msgid "Unable to fork. Exiting."
+msgstr "fork() mislukt. Afsluiten."
+
+#: src/ap-trapd.c:161
+msgid "Can't create socket. Exiting."
+msgstr "Kan socket niet maken. Afsluiten."
+
+#: src/ap-trapd.c:167
+msgid "Can't bind socket. Exiting."
+msgstr "Kan socket niet verbinden. Afsluiten."
+
+#: src/ap-trapd.c:174
+#, c-format
+msgid "Can't bind to device %s. Exiting."
+msgstr "Kan niet aan apparaat %s binden. Afsluiten."
+
+#: src/ap-trapd.c:185
+#, c-format
+msgid "Unable to process username %s. Error: %m."
+msgstr "Kan gebruikersnaam %s niet verwerken. Fout: %m."
+
+#: src/ap-trapd.c:190
+#, c-format
+msgid "Unable to change to uid %d."
+msgstr "Kan niet overgaan op uid %d."
+
+#: src/ap-trapd.c:239
+#, c-format
+msgid ""
+"Received unknown SNMP ver %d trap. From %s:%d. Agent: %s. Community: %s."
+msgstr ""
+"Onbekende SNMP ver %d val ontvangen. Van %s:%d. Agent: %s. Gemeenschap: %s."
+
+#: src/ap-trapd.c:311
+#, fuzzy, c-format
+msgid "Agent:v%d %s (%s@%s:%d) Trap %i: %s%s%s. SysUptime %d:%02d:%02d.%02d"
+msgstr "Agent:v%d %s (%s@%s:%d) %s%s%s. SysUptime %d:%02d:%02d.%02d"
+
+#: src/auth.c:30
+msgid "APClient authorization credentials"
+msgstr ""
+
+#: src/auth.c:32
+#, fuzzy
+msgid "[A] MAC authorization: "
+msgstr "[A] Mac toelating: %s"
+
+#: src/auth.c:33
+#, fuzzy
+msgid "Enter MAC: "
+msgstr "Geef Mac:"
+
+#: src/auth.c:34
+#, fuzzy
+msgid "Delete Num: "
+msgstr "Nummer verwijderen:"
+
+#: src/auth.c:35
+#, fuzzy
+msgid " NUM     MAC address     "
+msgstr "NUM     MAC adres"
+
+#: src/auth.c:36
+#, fuzzy
+msgid "A: auth; N: new; D: del; arrows: scroll; W: write conf; Q: quit"
+msgstr ""
+"A - toelaten; N - nieuw; D - verwijderen; pijltjes - schuiven; W - conf "
+"schrijven; Q - afsluiten"
+
+#: src/auth.c:38
+msgid "[I] Radius server IP: "
+msgstr ""
+
+#: src/auth.c:39
+#, fuzzy
+msgid "[P] Radius server port: "
+msgstr "[P] Hoofdpoort: %s"
+
+#: src/auth.c:40
+msgid "[S] Radius server secret: "
+msgstr ""
+
+#: src/auth.c:41
+#, fuzzy
+msgid "[T] Reauthorization time (sec): "
+msgstr "[A] Mac toelating: %s"
+
+#: src/auth.c:42
+msgid "[F] Radius source port: "
+msgstr ""
+
+#: src/auth.c:43
+#, fuzzy
+msgid ""
+"A: auth; N: new; D: del; IPSTF: set; arrows: scroll; W: write conf; Q: quit"
+msgstr ""
+"A - toelaten; N - nieuw; D - verwijderen; pijltjes - schuiven; W - conf "
+"schrijven; Q - afsluiten"
+
+#: src/auth.c:45
+#, fuzzy
+msgid "[M] 802.1x authorization: "
+msgstr "[A] Mac toelating: %s"
+
+#: src/auth.c:46
+msgid "[T] key broadcasting time period (sec): "
+msgstr ""
+
+#: src/auth.c:47
+msgid "[I] 802.1x auth. server IP: "
+msgstr ""
+
+#: src/auth.c:48
+msgid "[S] 802.1x auth. server secret: "
+msgstr ""
+
+#: src/auth.c:49
+#, fuzzy
+msgid ""
+"A: auth; N: new; D: del; MTIS: set; arrows: scroll; W: write conf; Q: quit"
+msgstr ""
+"A - toelaten; N - nieuw; D - verwijderen; pijltjes - schuiven; W - conf "
+"schrijven; Q - afsluiten"
+
+#: src/auth.c:114
+#, fuzzy
+msgid "Internal"
+msgstr "Algemeen"
+
+#: src/auth.c:116
+#, fuzzy
+msgid "Radius"
+msgstr "Radio"
+
+#: src/auth.c:121
+msgid "Allow listed MACs only"
+msgstr ""
+
+#: src/auth.c:123
+msgid "Deny listed MACs only"
+msgstr ""
+
+#: src/auth.c:129
+msgid "Mixed environment"
+msgstr ""
+
+#: src/auth.c:213
+msgid "(not shown)"
+msgstr ""
+
+#: src/auth.c:270
+#, fuzzy
+msgid "Authorized MAC addresses:"
+msgstr "Toegelaten Mac adressen"
+
+#: src/auth.c:339
+msgid "(insufficient community used)"
+msgstr ""
+
+#: src/auth.c:466
+#, c-format
+msgid "Given MAC already exists in MAC list at position %d. Press any key."
+msgstr ""
+
+#: src/bridge.c:27
+msgid "[I] IP: "
+msgstr ""
+
+#: src/bridge.c:28
+#, fuzzy
+msgid "[N] Netmask: "
+msgstr "[N] Netmask: %s"
+
+#: src/bridge.c:29
+#, fuzzy
+msgid "[G] Gateway: "
+msgstr "[G] Gateway %s"
+
+#: src/bridge.c:30
+#, fuzzy
+msgid "[F] Filter non-IP traffic: "
+msgstr "[F] Niet-IP verkeer filteren: %s"
+
+#: src/bridge.c:31
+#, fuzzy
+msgid "[P] Primary port: "
+msgstr "[P] Hoofdpoort: %s"
+
+#: src/bridge.c:32
+#, fuzzy
+msgid "Attached station MAC: "
+msgstr "Verbonden station MAC: %02X%02X%02X%02X%02X%02X"
+
+#: src/bridge.c:33
+#, fuzzy
+msgid "[D] DHCP client: "
+msgstr "[D] DHCP-protocol: %s"
+
+#: src/bridge.c:34
+#, fuzzy
+msgid "[O] Operational mode: "
+msgstr "[O] Operationele modus: %s"
+
+#: src/bridge.c:35
+#, fuzzy
+msgid "[M] Preferred BSSID (remote MAC addr.): "
+msgstr "[R] Mac adres op afstand: %02X%02X%02X%02X%02X%02X"
+
+#: src/bridge.c:36
+msgid "[C] Configuration-enabled port(s): "
+msgstr ""
+
+#: src/bridge.c:37
+msgid "[T] Trap-sending port: "
+msgstr ""
+
+#: src/bridge.c:38
+msgid "[R] Forward broadcast traffic: "
+msgstr ""
+
+#: src/bridge.c:39
+msgid "[B] Isolate wireless clients (broadcast traffic): "
+msgstr ""
+
+#: src/bridge.c:40
+msgid "[U] Isolate wireless clients (unicast traffic): "
+msgstr ""
+
+#: src/bridge.c:41
+#, fuzzy
+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/nwn_advanced.c:60
 #, c-format
 msgid "[D] DB Station Timeout: %d"
@@ -1749,19 +2267,19 @@ msgstr "Laatste fout:"
 msgid "Error:"
 msgstr "Fout:"
 
-#: src/stations.c:33
-msgid "AP link state"
+#: src/stations.c:82
+msgid "Not available (device not in AP mode)."
 msgstr ""
 
-#: src/stations.c:37
-msgid " #            MAC                                               "
+#: src/stations.c:93
+msgid "  #     MAC       Parent MAC  RSSI   LQ Sts MACn      IP        "
 msgstr ""
 
-#: src/stations.c:40
-msgid " #     MAC       Parent MAC    RSSI  Status MACn      IP        "
-msgstr ""
+#: src/stations.c:139
+msgid "AssociatedSTAsInfo packet error"
+msgstr "AssociatedSTAsInfo pakketfout"
 
-#: src/stations.c:195 src/stations.c:367
+#: src/stations.c:192 src/stations.c:364
 #, fuzzy
 msgid ""
 "Arrows - scroll; S - save to file; Q - return; T - toggle view; Other - "
@@ -1769,17 +2287,33 @@ msgid ""
 msgstr ""
 "Pijltjes - schuiven; S - opslaan naar bestand; Q - afsluiten naar menu."
 
-#: src/stations.c:200
+#: src/stations.c:196
 #, 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:279
+#: src/stations.c:276
 #, fuzzy
 msgid "Id       MAC address     Quality  Age  RSSI"
 msgstr "Id      MAC adres       Kwaliteit Ouderdom RSSI"
 
+#, fuzzy
+#~ msgid "NUM       MAC address"
+#~ msgstr "NUM     MAC adres"
+
+#, fuzzy
+#~ msgid "A - auth; IPSTF - set; W - write conf; Q - quit"
+#~ msgstr "DA - opties; W - conf schrijven; Q - afsluiten naar menu"
+
+#, fuzzy
+#~ msgid "A - auth; W - write conf; Q - quit"
+#~ msgstr "DA - opties; W - conf schrijven; Q - afsluiten naar menu"
+
+#~ msgid "Arrows - scroll; S - save to file; Q - quit to menu."
+#~ msgstr ""
+#~ "Pijltjes - schuiven; S - opslaan naar bestand; Q - afsluiten naar menu."
+
 #~ msgid "Associated Stations"
 #~ msgstr "Geassocieerde stations"
 
index fd4df19bf569d4664744608a514df3d5d7f62a6e..f3940cae8a777facc203bc343c002c6a93dde95d 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: 2004-11-28 00:59+0200\n"
+"POT-Creation-Date: 2005-01-16 02:07+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"
@@ -14,355 +14,6 @@ msgstr ""
 "Content-Transfer-Encoding: 8-bit\n"
 "Report-Msgid-Bugs-To: \n"
 
-# src/ap-config.c:42 src/bridge.c:166
-#: ap-gl/ap-gl.c:41 ap-gl/bridge.c:178 src/ap-config.c:41 src/bridge.c:182
-msgid "Bridging"
-msgstr "Podstawowe"
-
-# src/ap-config.c:42
-#: ap-gl/ap-gl.c:41 src/ap-config.c:41
-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
-#: ap-gl/ap-gl.c:43 ap-gl/ap-gl.c:81 ap-gl/bridge.c:132 src/ap-config.c:43
-#: src/ap-config.c:112 src/ap-config.c:120 src/bridge.c:117 src/bridge.c:121
-msgid "Wireless"
-msgstr "Radiowe"
-
-# src/ap-config.c:44
-#: ap-gl/ap-gl.c:43 src/ap-config.c:43
-msgid "Set wireless options"
-msgstr "Opcje radiowe"
-
-# src/ap-config.c:45 src/ap-config.c:57
-#: ap-gl/ap-gl.c:44 src/ap-config.c:44 src/ap-config.c:56
-msgid "Privacy"
-msgstr "Klucze"
-
-# src/ap-config.c:46 src/ap-config.c:58
-#: ap-gl/ap-gl.c:45 src/ap-config.c:45 src/ap-config.c:57
-msgid "MAC auth"
-msgstr "Blokuj MAC"
-
-# src/ap-config.c:47 src/ap-config.c:59
-#: ap-gl/ap-gl.c:46 src/ap-config.c:46 src/ap-config.c:58
-msgid "Community"
-msgstr "Dostêp"
-
-# src/ap-config.c:48
-#: ap-gl/ap-gl.c:47 src/ap-config.c:47
-msgid "Radio"
-msgstr "Radio"
-
-# src/ap-config.c:48
-#: ap-gl/ap-gl.c:47 src/ap-config.c:47
-msgid "Set radio signal power and antenna options"
-msgstr "Ustawianie mocy sygna³u i opcji antenowych"
-
-# src/ap-config.c:78
-#: ap-gl/ap-gl.c:62 src/ap-config.c:80
-msgid "Upload"
-msgstr "Wy¶lij"
-
-# src/ap-config.c:78
-#: ap-gl/ap-gl.c:62 src/ap-config.c:80
-#, fuzzy
-msgid "Activate current configuration"
-msgstr "Uczyñ konfiguracjê aktywn±"
-
-# src/ap-config.c:79
-#: ap-gl/ap-gl.c:63 src/ap-config.c:81
-msgid "Defaults"
-msgstr "Domy¶lne"
-
-# src/ap-config.c:79
-#: ap-gl/ap-gl.c:63 src/ap-config.c:81
-msgid "Restore factory default settings"
-msgstr "Przywróæ ustawienia producenta"
-
-# src/ap-config.c:81 src/ap-config.c:89
-#: ap-gl/ap-gl.c:64 src/ap-config.c:82 src/ap-config.c:89
-msgid "Reset"
-msgstr "Reset"
-
-# src/ap-config.c:82
-#: ap-gl/ap-gl.c:65 src/ap-config.c:83
-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
-#: ap-gl/ap-gl.c:66 src/ap-config.c:84
-msgid "TestMode"
-msgstr "TrybTest"
-
-# src/ap-config.c:84
-#: ap-gl/ap-gl.c:66 src/ap-config.c:84
-msgid "Put Access Point in test mode"
-msgstr "W³±cza tryb testowy AP"
-
-# src/ap-config.c:110 src/ap-config.c:120
-#: ap-gl/ap-gl.c:79 src/ap-config.c:110 src/ap-config.c:119
-msgid "SysInfo"
-msgstr "Ogólne"
-
-# src/ap-config.c:111 src/bridge.c:90
-#: ap-gl/ap-gl.c:80 ap-gl/bridge.c:131 src/ap-config.c:111 src/bridge.c:116
-#: src/bridge.c:120
-msgid "Ethernet"
-msgstr "Ethernet"
-
-# src/ap-config.c:111
-#: ap-gl/ap-gl.c:80 src/ap-config.c:111
-msgid "Get ethernet port statistics"
-msgstr "Pobierz statystyki ethernetu"
-
-# src/ap-config.c:113 src/ap-config.c:122
-#: ap-gl/ap-gl.c:82 src/ap-config.c:113 src/ap-config.c:121
-msgid "Stations"
-msgstr "Stacje"
-
-# src/ap-config.c:115
-#: ap-gl/ap-gl.c:83 src/ap-config.c:114
-msgid "KnownAPs"
-msgstr "Znane AP"
-
-# src/ap-config.c:115
-#: ap-gl/ap-gl.c:83 src/ap-config.c:114
-msgid "Get info about known Access Points"
-msgstr "Podaj informacje o Access Pointach"
-
-# src/ap-config.c:141
-#: ap-gl/ap-gl.c:100 src/ap-config.c:147
-msgid "Info"
-msgstr "Info"
-
-# src/ap-config.c:142
-#: ap-gl/ap-gl.c:101 src/ap-config.c:148
-msgid "Config"
-msgstr "Konfig"
-
-# src/ap-config.c:143
-#: ap-gl/ap-gl.c:102 src/ap-config.c:149
-msgid "Commands"
-msgstr "Komendy"
-
-# src/ap-config.c:143
-#: ap-gl/ap-gl.c:102 src/ap-config.c:149
-msgid "Execute commands on Access Point"
-msgstr "Wykonaj operacje w AP"
-
-# src/ap-config.c:145
-#: ap-gl/ap-gl.c:104 src/ap-config.c:151
-msgid "Connect"
-msgstr "Po³±cz"
-
-# src/ap-config.c:146
-#: ap-gl/ap-gl.c:105 src/ap-config.c:152
-msgid "Search"
-msgstr "Znajd¼"
-
-# lib/common.c:50 src/ap-config.c:147
-#: ap-gl/ap-gl.c:106 lib/common.c:83 src/ap-config.c:153
-msgid "About"
-msgstr "O..."
-
-# src/ap-config.c:148
-#: ap-gl/ap-gl.c:107 src/ap-config.c:154
-msgid "Shell"
-msgstr "Shell"
-
-# src/ap-config.c:149
-#: ap-gl/ap-gl.c:108 src/ap-config.c:155
-msgid "Exit"
-msgstr "Wyjd¼"
-
-# src/ap-config.c:194
-#: ap-gl/ap-gl.c:158 src/ap-config.c:204
-#, c-format
-msgid "Wireless Access Point Configurator ver. %s"
-msgstr "Konfigurator bezprzewodowych access-pointów wersja %s"
-
-# src/auth_mac.c:35
-#: ap-gl/auth_mac.c:27 src/auth_mac.c:27
-msgid "AuthorizedMacTableString packet error"
-msgstr "B³êdny pakiet AuthorizedMacTableString"
-
-# lib/ap-utils.h:117
-#: ap-gl/auth_mac.c:29 src/auth_mac.c:29
-msgid "[A] MAC authorization: "
-msgstr "[A] Ograniczenie dostêpu dla wybranych adresów MAC: "
-
-# lib/ap-utils.h:122
-#: ap-gl/auth_mac.c:30 src/auth_mac.c:30
-msgid "Enter MAC: "
-msgstr "Adres fizyczny: "
-
-# lib/ap-utils.h:121
-#: ap-gl/auth_mac.c:31 src/auth_mac.c:31
-msgid "Delete Num: "
-msgstr "Skasuj pozycjê: "
-
-# lib/ap-utils.h:118
-#: ap-gl/auth_mac.c:32 src/auth_mac.c:32
-msgid "Authorized MAC addresses"
-msgstr "Dostêp w/g MAC"
-
-# lib/ap-utils.h:119
-#: ap-gl/auth_mac.c:33
-msgid "NUM       MAC address"
-msgstr "Numer adres fizyczny (MAC)"
-
-# lib/ap-utils.h:120
-#: ap-gl/auth_mac.c:34 src/auth_mac.c:34
-msgid "A - auth; N - new; D - del; arrows - scroll; W - write conf; Q - quit"
-msgstr ""
-"A W³/Wy³; N - nowe; D - kasuj; strza³ki - przewijanie; W - zapis; Q - Wyjd¼"
-
-# src/nwn_advanced.c:70
-#: ap-gl/auth_mac.c:35
-msgid "A - auth; IPSTF - set; W - write conf; Q - quit"
-msgstr "DA - opcje; W - zapis; Q - powrót"
-
-# src/nwn_advanced.c:70
-#: ap-gl/auth_mac.c:36
-msgid "A - auth; W - write conf; Q - quit"
-msgstr "DA - opcje; W - zapis; Q - powrót"
-
-#: ap-gl/auth_mac.c:38
-msgid "[I] RADIUS SERVER IP: "
-msgstr ""
-
-#: ap-gl/auth_mac.c:39
-msgid "[P] RADIUS SERVER PORT: "
-msgstr ""
-
-#: ap-gl/auth_mac.c:40
-msgid "[S] RADIUS SERVER SECRET: "
-msgstr ""
-
-#: ap-gl/auth_mac.c:41
-msgid "[T] REAUTHORIZATION TIME: "
-msgstr ""
-
-#: ap-gl/auth_mac.c:42
-msgid "[F] RADIUS SOURCE PORT: "
-msgstr ""
-
-# src/ap-config.c:55
-#: ap-gl/auth_mac.c:87
-msgid "Internal"
-msgstr "Ogólnie"
-
-#: ap-gl/auth_mac.c:95
-msgid "<hidden>"
-msgstr "<ukryto>"
-
-#: ap-gl/bridge.c:26 src/bridge.c:26
-msgid "[I] IP: "
-msgstr ""
-
-# src/bridge.c:169
-#: ap-gl/bridge.c:27 src/bridge.c:27
-msgid "[N] Netmask: "
-msgstr "[N] Maska:  "
-
-# src/bridge.c:171
-#: ap-gl/bridge.c:28 src/bridge.c:28
-msgid "[G] Gateway: "
-msgstr "[G] Brama: "
-
-# src/bridge.c:32
-#: ap-gl/bridge.c:29 src/bridge.c:29
-msgid "[F] Filter non-IP traffic: "
-msgstr "[F] Wycinaj ruch nie-IP: "
-
-# src/bridge.c:33
-#: ap-gl/bridge.c:30 src/bridge.c:30
-msgid "[P] Primary port: "
-msgstr "[P] Port podstawowy: "
-
-# src/bridge.c:144
-#: ap-gl/bridge.c:31 src/bridge.c:31
-msgid "Attached station MAC: "
-msgstr "MAC do³±czonej stacji:"
-
-# src/bridge.c:34
-#: ap-gl/bridge.c:32 src/bridge.c:32
-msgid "[D] DHCP client: "
-msgstr "[D] Klient DHCP: "
-
-# src/bridge.c:35
-#: ap-gl/bridge.c:33 src/bridge.c:33
-msgid "[O] Operational mode: "
-msgstr "[O] Tryb pracy: "
-
-# src/bridge.c:36
-#: ap-gl/bridge.c:34 src/bridge.c:34
-msgid "[M] Preferred BSSID (remote MAC addr.): "
-msgstr "[M] Zdalny adres fizyczny: "
-
-#: ap-gl/bridge.c:36 src/bridge.c:36
-msgid "[T] Trap-sending port(s): "
-msgstr "[T] SNMP-Trap na porty: "
-
-#: ap-gl/bridge.c:37 src/bridge.c:37
-msgid "[R] Forward broadcast traffic: "
-msgstr "[R] Przesy³aj ruch rozg³oszeniowy: "
-
-#: ap-gl/bridge.c:39
-msgid "[U] Isolate wireless clients: "
-msgstr "[U] Izoluj klientów radiowych: "
-
-# src/bridge.c:30
-#: ap-gl/bridge.c:40 src/bridge.c:40
-msgid "INGFPDOMSCTRBU - set; W - write conf; Q - quit to menu"
-msgstr "BPGINFDRT - ustaw; W - Zapisz; Q - powrót"
-
-# src/bridge.c:85
-#: ap-gl/bridge.c:124 src/bridge.c:109
-msgid "Wireless Bridge Point to MultiPoint"
-msgstr "Bridge punkt-wielopunkt"
-
-# src/bridge.c:86
-#: ap-gl/bridge.c:125 src/bridge.c:110
-msgid "Access Point"
-msgstr "Access Point"
-
-# src/bridge.c:87
-#: ap-gl/bridge.c:126 src/bridge.c:111
-msgid "Access Point client"
-msgstr "Klient Access pointa"
-
-# src/bridge.c:88
-#: ap-gl/bridge.c:127 src/bridge.c:112
-msgid "Wireless Bridge Point to Point"
-msgstr "Bridge punkt-punkt"
-
-# src/bridge.c:88
-#: ap-gl/bridge.c:128 src/bridge.c:113
-msgid "Repeater"
-msgstr "Repeater"
-
-#: ap-gl/stations.c:77 src/stations.c:100
-#, fuzzy
-msgid "AP is currently in AP Client Mode => no associated STAtions."
-msgstr "AP jest teraz w trybie klienta i nie ma stacji pod³±czonych"
-
-#: ap-gl/stations.c:102
-msgid "#     MAC       LQ    RSSI   Status Port IP"
-msgstr ""
-
-# src/stations.c:110
-#: ap-gl/stations.c:128 src/stations.c:159
-msgid "AssociatedSTAsInfo packet error"
-msgstr "B³êdny pakiet AssociatedSTAsInfo"
-
-# src/stations.c:132 src/stations.c:284
-#: ap-gl/stations.c:160
-msgid "Arrows - scroll; S - save to file; Q - quit to menu."
-msgstr "Strza³ki - przewijanie; S - zapis do zbioru; Q - powrót."
-
 # src/aps.c:138
 #: lib/aps.c:29
 msgid "Known Access Points"
@@ -403,7 +54,7 @@ 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:91
+#: lib/aps.c:153 lib/cmd.c:45 lib/cmd.c:75 lib/test.c:96
 msgid "Do you want to continue? "
 msgstr "Czesz kontynuowaæ?"
 
@@ -722,86 +373,105 @@ msgstr "Nie moge utworzy
 msgid "Bind socket error. Press any key."
 msgstr "Bl±d gniazdka. Wci¶nij dowolny klawisz."
 
-# lib/ap-utils.h:102
+# lib/ap-utils.h:87
 #: lib/ap-utils.h:115
+#, 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
+msgid "AP list file ~/.ap-config successfully written. Press any key."
+msgstr ""
+
+# lib/ap-utils.h:102
+#: lib/ap-utils.h:118
 msgid "Back to main menu"
 msgstr "Powrót do menu g³ównego"
 
 # lib/ap-utils.h:103
-#: lib/ap-utils.h:116
+#: lib/ap-utils.h:119
 msgid "Exit program"
 msgstr "Wyj¶cie z programu"
 
 # lib/ap-utils.h:104
-#: lib/ap-utils.h:117
+#: lib/ap-utils.h:120
 msgid "Run subshell. To return type 'exit'."
 msgstr "Uruchomienie podpow³oki. By wróciæ wpisz 'exit'."
 
 # lib/ap-utils.h:105
-#: lib/ap-utils.h:118
+#: lib/ap-utils.h:121
 msgid "Short info about program"
 msgstr "O programie"
 
 # lib/ap-utils.h:106
-#: lib/ap-utils.h:119
+#: lib/ap-utils.h:122
 msgid "Find connected Access Points"
 msgstr "Znajd¼ pod³±czone Access-pointy"
 
 # lib/ap-utils.h:107
-#: lib/ap-utils.h:120
+#: lib/ap-utils.h:123
 msgid "Set connection options: ip and community"
 msgstr "Ustawianie opcji po³±czeñ: ip i grupa"
 
 # lib/ap-utils.h:108
-#: lib/ap-utils.h:121
+#: lib/ap-utils.h:124
 msgid "Set encryption; edit WEP keys"
 msgstr "Ustawianie szyfracji, zmiana kluczy"
 
 # lib/ap-utils.h:109
-#: lib/ap-utils.h:122
-msgid "Set MAC authorization; edit MAC authorization table"
+#: lib/ap-utils.h:125
+#, 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:123
+#: lib/ap-utils.h:126
 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:124
+#: lib/ap-utils.h:127
 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:125
+#: lib/ap-utils.h:128
 msgid "Get wireless port statistics"
 msgstr "Statystyki portu radiowego"
 
 # lib/ap-utils.h:113
-#: lib/ap-utils.h:126
+#: lib/ap-utils.h:129
 msgid "Get list of currently associated stations (Access Point clients)"
 msgstr "Lista aktualnie przy³±czonych stacji"
 
+#: lib/ap-utils.h:130
+msgid "Get link status in APclient mode"
+msgstr ""
+
 # lib/ap-utils.h:114
-#: lib/ap-utils.h:127
+#: lib/ap-utils.h:131
 msgid "Get info and statistics from AP"
 msgstr "Pobieram informacje i statystyki z AP"
 
 # lib/ap-utils.h:115
-#: lib/ap-utils.h:128
+#: lib/ap-utils.h:132
 msgid "Set various configuration options"
 msgstr "Ustawianie ró¿nych opcji"
 
 # src/stations.c:194 src/stations.c:278
-#: lib/ap-utils.h:130
+#: lib/ap-utils.h:134
 msgid "Associated stations"
 msgstr "Pod³±czone stacje"
 
-#: lib/ap-utils.h:132
+#: lib/ap-utils.h:135
+msgid "AP Client link state"
+msgstr ""
+
+#: lib/ap-utils.h:137
 msgid "Polling: on"
 msgstr ""
 
-#: lib/ap-utils.h:133
+#: lib/ap-utils.h:138
 msgid "Polling: off"
 msgstr ""
 
@@ -909,49 +579,54 @@ msgstr "Access Point"
 msgid "Save connect-settings: "
 msgstr "Zapisz na sta³e: "
 
+# lib/common.c:50 src/ap-config.c:147
+#: lib/common.c:84 src/ap-config.c:154
+msgid "About"
+msgstr "O..."
+
 # lib/common.c:67
-#: lib/common.c:100
+#: lib/common.c:101
 #, c-format
 msgid "From %s"
 msgstr "Od %s"
 
 # lib/common.c:69
-#: lib/common.c:102
+#: lib/common.c:103
 #, c-format
 msgid "Version %s"
 msgstr "Wersja %s"
 
 # lib/common.c:72
-#: lib/common.c:105
+#: lib/common.c:106
 msgid "Written by Roman Festchook roma@polesye.net"
 msgstr "Napisa³ Roman Festchook (roma@polesye.net)"
 
-#: lib/common.c:107
-msgid "Portions by Jan Rafaj aputils@cedric.unob.cz"
+#: lib/common.c:108
+msgid "and Jan Rafaj jr-aputils@cedric.unob.cz"
 msgstr ""
 
 # lib/common.c:74
-#: lib/common.c:109
+#: lib/common.c:110
 #, fuzzy
-msgid "Copyright (c) 2001-2004"
+msgid "Copyright (c) 2001-2005"
 msgstr "Prawa autorskie - Roman Festchook 2001-2004"
 
-#: lib/common.c:111
+#: lib/common.c:112
 msgid "Roman Festchook and Jan Rafaj"
 msgstr ""
 
 # lib/common.c:77
-#: lib/common.c:114
+#: lib/common.c:115
 msgid "This program is distributed under the terms"
 msgstr "Program dostêpnu wed³ug zasad"
 
 # lib/common.c:79
-#: lib/common.c:116
+#: lib/common.c:117
 msgid "of the GNU General Public License version 2."
 msgstr "Publicznej Licencji GNU w wersji 2."
 
 # lib/common.c:81
-#: lib/common.c:118
+#: lib/common.c:119
 msgid "See the included COPYING file for details."
 msgstr "Szczegó³y - przeczytaj plik COPYING."
 
@@ -970,18 +645,18 @@ msgstr "Wpisz adres IP swojego Access Pointa."
 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:266
+#: lib/common.c:259
 msgid "This label will be stored on HDD (independently on AP name!)."
 msgstr ""
 
 # lib/ap-utils.h:89
-#: lib/common.c:361
+#: lib/common.c:370
 #, 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:390
+#: lib/common.c:399
 #, fuzzy
 msgid ""
 "Unable to determine AP MIB properties (no response from AP). Press any key."
@@ -1010,23 +685,13 @@ msgstr "Nr AP do pod
 msgid "Delete num:"
 msgstr "Skasuj pozycje:"
 
-#: lib/file.c:372
-msgid "AP list file ~/.ap-config successfully written. Press any key."
-msgstr ""
-
-# lib/ap-utils.h:87
-#: lib/file.c:376
-#, 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:86
-#: lib/file.c:426
+#: lib/file.c:458
 #, 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:428
+#: lib/file.c:460
 msgid "Stations file succesfully written. Press any key."
 msgstr ""
 
@@ -1042,13 +707,13 @@ 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:412
+#: lib/input.c:413
 #, 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:6056
+#: lib/oui.c:6058
 msgid "Unknown or Private"
 msgstr "Nieznany lub Prywatny"
 
@@ -1095,7 +760,7 @@ msgid ""
 msgstr "Nie wy³±cza siê wszystkich anten!!! Wci¶nij dowolny klawisz"
 
 # lib/scr.c:112
-#: lib/scr.c:168
+#: lib/scr.c:156
 #, fuzzy, c-format
 msgid "Current AP: %s Type: %s Ext: %s"
 msgstr "Aktualny AP: %s Typ: %s"
@@ -1139,6 +804,164 @@ msgid ""
 "[key] - set community/password; W - write config to AP; Q - quit to menu"
 msgstr "Kl. - ustaw has³o; W - zapisz konfiguracje; Q - wyj¶cie"
 
+# src/sysinfo.c:134
+#: lib/set_oeminfo.c:28
+#, fuzzy
+msgid "Info structure version: "
+msgstr "StructVersion: %u"
+
+# src/sysinfo.c:402
+#: lib/set_oeminfo.c:29
+#, fuzzy
+msgid "[M] Device MAC address: "
+msgstr "Adres MAC: "
+
+# src/sysinfo.c:273
+#: lib/set_oeminfo.c:30
+#, fuzzy
+msgid "    Manufacturer with this OUI: "
+msgstr "ID producenta:"
+
+# src/sysinfo.c:316
+#: lib/set_oeminfo.c:31
+#, fuzzy
+msgid "[D] Regulatory domain: "
+msgstr "Regulacje dot. kana³ów: %s"
+
+# src/sysinfo.c:108
+#: lib/set_oeminfo.c:32
+#, fuzzy
+msgid "[T] Product type: "
+msgstr "Typ produktu: %u"
+
+# src/sysinfo.c:116
+#: lib/set_oeminfo.c:33
+#, fuzzy
+msgid "[E] OEM name: "
+msgstr "Nazwa OEM:"
+
+#: lib/set_oeminfo.c:34
+msgid "[I] OEM ID: "
+msgstr ""
+
+# src/sysinfo.c:103 src/sysinfo.c:285
+#: lib/set_oeminfo.c:35
+#, fuzzy
+msgid "[N] Product name: "
+msgstr "Produkt:"
+
+# src/sysinfo.c:111
+#: lib/set_oeminfo.c:36
+#, fuzzy
+msgid "[H] Hardware revision: "
+msgstr "Wersja sprzêtu: %u"
+
+# src/test.c:30
+#: lib/set_oeminfo.c:37
+#, fuzzy
+msgid "[O] Country code: "
+msgstr "[O] Komenda: "
+
+# lib/ap-utils.h:68
+#: lib/set_oeminfo.c:38
+#, fuzzy
+msgid "[C] Default channel: "
+msgstr "[C] Czêstotliwo¶æ fali: "
+
+# lib/ap-utils.h:68
+#: lib/set_oeminfo.c:39
+#, fuzzy
+msgid "[A] Calibrated channels: "
+msgstr "[C] Czêstotliwo¶æ fali: "
+
+#: lib/set_oeminfo.c:40
+msgid "[P] Nominal Tx Power (CR31) value for calibrated channels: "
+msgstr ""
+
+# src/wlan.c:185
+#: lib/set_oeminfo.c:41
+#, fuzzy
+msgid ""
+"Keys in brackets - set corresponding option; W - write conf; Q - quit to menu"
+msgstr "[kl] - ustaw opcje; W - zapis; Q - wyj¶cie do menu"
+
+#: lib/set_oeminfo.c:101
+msgid "THIS IS A SECRET MENU LEADING TO VERY DANGEROUS OPTIONS."
+msgstr ""
+
+#: lib/set_oeminfo.c:103
+msgid "It is intended only for WISPs and repair shops."
+msgstr ""
+
+#: lib/set_oeminfo.c:107
+msgid "It allows to set OEM information stored in the AP (like its"
+msgstr ""
+
+#: lib/set_oeminfo.c:109
+msgid "MAC address, manuf. name, OEM ID, etc.). BE ABSOLUTELY SURE"
+msgstr ""
+
+#: lib/set_oeminfo.c:111
+msgid "THAT YOU KNOW WHAT YOU ARE DOING, AND THAT YOU HAVE THE"
+msgstr ""
+
+#: lib/set_oeminfo.c:113
+msgid "LEGAL RIGHT TO DO ANY MODIFICATION. Disobserving of these"
+msgstr ""
+
+#: lib/set_oeminfo.c:115
+msgid "rules may lead you into a conflict with your local"
+msgstr ""
+
+#: lib/set_oeminfo.c:117
+msgid "regulations and/or law."
+msgstr ""
+
+#: lib/set_oeminfo.c:119
+msgid "Also be warned that the setting of any from these options"
+msgstr ""
+
+#: lib/set_oeminfo.c:121
+msgid "may DAMAGE YOUR AP (other reason why this menu is hidden)."
+msgstr ""
+
+#: lib/set_oeminfo.c:123
+msgid "Values changed here will NOT be restored upon reset"
+msgstr ""
+
+#: lib/set_oeminfo.c:125
+msgid "of the device to factory defaults! It is advisable to"
+msgstr ""
+
+#: lib/set_oeminfo.c:127
+msgid "write them down somewhere prior their changing."
+msgstr ""
+
+#: lib/set_oeminfo.c:129
+msgid "Finally, note that you need to use MANUFACTURER community, "
+msgstr ""
+
+#: lib/set_oeminfo.c:131
+msgid "in order to be able to do any OEM info modification."
+msgstr ""
+
+#: lib/set_oeminfo.c:133
+msgid "Proceed further only at your full risk and responsibility. "
+msgstr ""
+
+#: lib/set_oeminfo.c:135
+msgid "You got the warnings."
+msgstr ""
+
+#: lib/set_oeminfo.c:141
+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"
@@ -1187,194 +1010,227 @@ msgstr "Opis systemu: "
 msgid "System Info"
 msgstr "Informacja o systemie"
 
-#: lib/sysinfo.c:120
+# src/bridge.c:85
+#: lib/sysinfo.c:54 src/bridge.c:86
+msgid "Wireless Bridge Point to MultiPoint"
+msgstr "Bridge punkt-wielopunkt"
+
+# src/bridge.c:86
+#: lib/sysinfo.c:55 src/bridge.c:87
+msgid "Access Point"
+msgstr "Access Point"
+
+# src/bridge.c:87
+#: lib/sysinfo.c:56 src/bridge.c:88
+msgid "Access Point client"
+msgstr "Klient Access pointa"
+
+# src/bridge.c:88
+#: lib/sysinfo.c:57 src/bridge.c:89
+msgid "Wireless Bridge Point to Point"
+msgstr "Bridge punkt-punkt"
+
+# src/bridge.c:88
+#: lib/sysinfo.c:58 src/bridge.c:90
+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
+msgid "unknown"
+msgstr "nieznany"
+
+#: lib/sysinfo.c:143
 msgid "Device hardware/software/name info:"
 msgstr "Wersja urz±dzenia sprzêtowa/programowa/nazwa:"
 
+# src/bridge.c:35
+#: lib/sysinfo.c:171
+#, fuzzy, c-format
+msgid "Operational mode: %s"
+msgstr "[O] Tryb pracy: "
+
 # src/sysinfo.c:103 src/sysinfo.c:285
-#: lib/sysinfo.c:154
-msgid "Product name:"
+#: lib/sysinfo.c:181
+#, fuzzy
+msgid "Product name: "
 msgstr "Produkt:"
 
 # src/sysinfo.c:108
-#: lib/sysinfo.c:158
+#: lib/sysinfo.c:185
 #, c-format
 msgid "Product type: %u"
 msgstr "Typ produktu: %u"
 
 # src/sysinfo.c:116
-#: lib/sysinfo.c:161
-msgid "OEM name:"
+#: lib/sysinfo.c:188
+#, fuzzy
+msgid "OEM name: "
 msgstr "Nazwa OEM:"
 
 # src/sysinfo.c:111
-#: lib/sysinfo.c:168
+#: lib/sysinfo.c:195
 #, c-format
 msgid "Hardware revision: %u"
 msgstr "Wersja sprzêtu: %u"
 
 # src/sysinfo.c:134
-#: lib/sysinfo.c:176
+#: lib/sysinfo.c:203
 #, c-format
 msgid "Info structure version: %u"
 msgstr "StructVersion: %u"
 
 # src/sysinfo.c:138 src/sysinfo.c:279
-#: lib/sysinfo.c:179 lib/sysinfo.c:355
+#: lib/sysinfo.c:206 lib/sysinfo.c:382
 #, c-format
 msgid "Manufacturer OUI: %02X %02X %02X (%s)"
 msgstr "OUI producenta: %02X %02X %02X (%s)"
 
 # src/sysinfo.c:386
-#: lib/sysinfo.c:196
+#: lib/sysinfo.c:223
 #, 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:284
+#: lib/sysinfo.c:311
 msgid "FHSS 2.4 GHz"
 msgstr "FHSS 2.4 GHz"
 
 # src/sysinfo.c:213
-#: lib/sysinfo.c:284
+#: lib/sysinfo.c:311
 msgid "DSSS 2.4 GHz"
 msgstr "DSSS 2.4 GHz"
 
 # src/sysinfo.c:213
-#: lib/sysinfo.c:284
+#: lib/sysinfo.c:311
 msgid "IR Baseband"
 msgstr "IR Baseband"
 
 # src/sysinfo.c:214
-#: lib/sysinfo.c:285
+#: lib/sysinfo.c:312
 msgid "Commercial range 0..40 C"
 msgstr "Temp. standardowe: 0..40 C"
 
 # src/sysinfo.c:215
-#: lib/sysinfo.c:286
+#: lib/sysinfo.c:313
 msgid "Industrial range -30..70 C"
 msgstr "Temp przemys³owe: -30..70 C"
 
-# src/sysinfo.c:131 src/sysinfo.c:216 src/sysinfo.c:322
-#: lib/sysinfo.c:287 lib/sysinfo.c:396
-msgid "unknown"
-msgstr "nieznany"
-
 # src/sysinfo.c:218
-#: lib/sysinfo.c:289
+#: lib/sysinfo.c:316
 msgid "manual"
 msgstr "rêczne"
 
 # src/sysinfo.c:218
-#: lib/sysinfo.c:289
+#: lib/sysinfo.c:316
 msgid "notsupported"
 msgstr "nie obs³ugiwane"
 
 # src/sysinfo.c:218
-#: lib/sysinfo.c:289
+#: lib/sysinfo.c:316
 msgid "dynamic"
 msgstr "dynamiczne"
 
 # src/sysinfo.c:267
-#: lib/sysinfo.c:345
+#: lib/sysinfo.c:372
 msgid "Manufacturer:"
 msgstr "Producent:"
 
 # src/sysinfo.c:273
-#: lib/sysinfo.c:350
+#: lib/sysinfo.c:377
 msgid "Manufacturer ID:"
 msgstr "ID producenta:"
 
 # src/sysinfo.c:103 src/sysinfo.c:285
-#: lib/sysinfo.c:361
+#: lib/sysinfo.c:388
 msgid "Product Name:"
 msgstr "Nazwa produktu:"
 
 # src/sysinfo.c:292
-#: lib/sysinfo.c:367
+#: lib/sysinfo.c:394
 msgid "Product ID:"
 msgstr "ID produktu:"
 
 # src/sysinfo.c:298
-#: lib/sysinfo.c:373
+#: lib/sysinfo.c:400
 msgid "Product Version:"
 msgstr "Wersja produktu:"
 
 # src/sysinfo.c:306
-#: lib/sysinfo.c:379
+#: lib/sysinfo.c:406
 #, c-format
 msgid "PHYType: %s"
 msgstr "Typ PHY: %s"
 
 # src/sysinfo.c:309
-#: lib/sysinfo.c:382
+#: lib/sysinfo.c:409
 #, c-format
 msgid "Temperature: %s"
 msgstr "Temperatura: %s"
 
 # src/sysinfo.c:316
-#: lib/sysinfo.c:390
+#: lib/sysinfo.c:417
 #, fuzzy, c-format
 msgid "Regulatory Domain: %s"
 msgstr "Regulacje dot. kana³ów: %s"
 
 # src/sysinfo.c:126 src/sysinfo.c:317
-#: lib/sysinfo.c:391
+#: lib/sysinfo.c:418
 msgid "FCC (USA)"
 msgstr "FCC (USA)"
 
 # src/sysinfo.c:127 src/sysinfo.c:318
-#: lib/sysinfo.c:392
+#: lib/sysinfo.c:419
 msgid "DOC (Canada)"
 msgstr "DOC (Kanada)"
 
 # src/sysinfo.c:128 src/sysinfo.c:319
-#: lib/sysinfo.c:393
+#: lib/sysinfo.c:420
 msgid "ETSI (Europe)"
 msgstr "ETSI (Europa)"
 
 # src/sysinfo.c:129 src/sysinfo.c:320
-#: lib/sysinfo.c:394
+#: lib/sysinfo.c:421
 msgid "Spain"
 msgstr "Hiszpania"
 
 # src/sysinfo.c:130 src/sysinfo.c:321
-#: lib/sysinfo.c:395
+#: lib/sysinfo.c:422
 msgid "France"
 msgstr "Francja"
 
 # src/sysinfo.c:131 src/sysinfo.c:322
-#: lib/sysinfo.c:396
+#: lib/sysinfo.c:423
 msgid "MKK (Japan)"
 msgstr "MKK (Japonia)"
 
 # src/sysinfo.c:325
-#: lib/sysinfo.c:399
+#: lib/sysinfo.c:426
 #, c-format
 msgid "Transmit Power: %u mW"
 msgstr "Moc wyj¶ciowa: %u mW"
 
 # src/sysinfo.c:355
-#: lib/sysinfo.c:429
+#: lib/sysinfo.c:456
 #, fuzzy, c-format
 msgid "WEP implemented: %s"
 msgstr "Obs³uga WEP: %s"
 
 # src/sysinfo.c:358
-#: lib/sysinfo.c:432
+#: lib/sysinfo.c:459
 #, c-format
 msgid "Diversity: %s"
 msgstr "Naprzemienno¶æ: %s"
 
 # src/sysinfo.c:386
-#: lib/sysinfo.c:460
+#: lib/sysinfo.c:487
 #, c-format
 msgid "Uptime: %u:%02u:%02u.%02u"
 msgstr "Dzia³a ju¿: %u:%02u:%02u.%02u"
 
 # src/sysinfo.c:402
-#: lib/sysinfo.c:480
+#: lib/sysinfo.c:507
 #, c-format
 msgid "IP  Address: %s"
 msgstr "Adres IP: %s"
@@ -1424,38 +1280,42 @@ msgstr "Lewa"
 msgid "Right"
 msgstr "Prawa"
 
+#: lib/test.c:79
+msgid "Devices with ATMEL12350 MIB not yet supported."
+msgstr ""
+
 # src/test.c:78
-#: lib/test.c:86
+#: lib/test.c:91
 msgid "Test mode"
 msgstr "Tryb testowy"
 
 # src/test.c:81
-#: lib/test.c:89
+#: lib/test.c:94
 msgid "Using the \"Test mode\" may cause loss of your current"
 msgstr "U¿ycie trybu testowego mo¿e spowodowaæ utratê obecnej"
 
 # src/cmd.c:134
-#: lib/test.c:90
+#: lib/test.c:95
 msgid "configuration."
 msgstr "konfiguracji."
 
 # src/test.c:106
-#: lib/test.c:102
+#: lib/test.c:107
 msgid "Options:"
 msgstr "Opcje:"
 
 # src/test.c:132
-#: lib/test.c:128
+#: lib/test.c:133
 msgid "Statistics:"
 msgstr "Statystyki:"
 
 # src/test.c:133
-#: lib/test.c:129
+#: lib/test.c:134
 msgid "Success Frames: 0 Failed Frames: 0"
 msgstr "Ramki OK: 0 Ramki z³e: 0"
 
 # src/test.c:197
-#: lib/test.c:190
+#: lib/test.c:195
 #, c-format
 msgid "Success Frames: %lu Failed Frames: %lu"
 msgstr "Ramki OK: %lu Ramki z³e: %lu"
@@ -1592,7 +1452,7 @@ msgid "[D] DTIM sending interval (beacons): "
 msgstr ""
 
 #: lib/wlan.c:48
-msgid "[T] SIFS time (msec): "
+msgid "[T] SIFS time (ACK timeout) msec: "
 msgstr ""
 
 # src/wlan.c:185
@@ -1631,44 +1491,29 @@ msgid ""
 "UIOPTY - antenna; SCANLEDFR1234 - options; W - write conf; Q - quit to menu"
 msgstr "UIOPTY - antena; SCANLEDFR1234 - opcje; W - zapis; Q - powrót"
 
-# src/ap-config.c:55
-#: src/ap-config.c:54
-msgid "General"
-msgstr "Ogólne"
-
-# src/ap-config.c:55
-#: src/ap-config.c:54
-msgid "Set general options"
-msgstr "Opcje ogólne"
-
-# src/ap-config.c:56
-#: src/ap-config.c:55
-msgid "Advanced"
-msgstr "Zaawansowane"
+# src/auth_mac.c:35
+#: src/ap-auth.c:32 src/auth.c:28
+msgid "AuthorizedMacTableString packet error"
+msgstr "B³êdny pakiet AuthorizedMacTableString"
 
-# src/ap-config.c:56
-#: src/ap-config.c:55
-msgid "Set advanced options"
-msgstr "Opcje zaawansowane"
+#: src/ap-auth.c:33
+msgid "Invalid data in source file"
+msgstr ""
 
-# 
-# src/ap-config.c:89
-#: src/ap-config.c:89
-msgid "Reset AP."
-msgstr "Reset AP."
+#: src/ap-auth.c:34
+msgid "Can't open file"
+msgstr ""
 
-# src/ap-config.c:123
-#: src/ap-config.c:122
-msgid "Latest"
-msgstr "Ostatnie"
+#: src/ap-auth.c:35
+msgid "Can't write to file"
+msgstr ""
 
-# src/ap-config.c:123
-#: src/ap-config.c:122
-msgid "Get info about latest events"
-msgstr "Pobiera info o ostatnich zdarzeniach"
+#: src/ap-auth.c:36
+msgid "Error closing file"
+msgstr ""
 
 # src/ap-mrtg.c:45
-#: src/ap-mrtg.c:42
+#: src/ap-auth.c:45 src/ap-mrtg.c:42 src/ap-rrd.c:42
 msgid ""
 "\n"
 "Usage:\n"
@@ -1676,192 +1521,901 @@ msgstr ""
 "\n"
 "U¿ycie:\n"
 
-# src/ap-mrtg.c:47
-#: src/ap-mrtg.c:44
+#: src/ap-auth.c:46
+msgid "\tap-auth -i ip -c community -d filename [-h]\n"
+msgstr ""
+
+#: src/ap-auth.c:47
 msgid ""
-"\tap-mrtg -i ip -c community -t type [-b bssid] [-n name] [-a aptype] [-v] [-"
-"h] [-r]\n"
+"\tap-auth -i ip -c community -u filename [-h]\n"
 "\n"
 msgstr ""
-"\tap-mrtg -i ip -c has³o -t typ [-b bssid] [-v] [-h] [-r]\n"
-"\n"
 
-# src/ap-mrtg.c:49
-#: src/ap-mrtg.c:46
+#: src/ap-auth.c:48
 msgid ""
-"Get stats from AP and return it in MRTG parsable format\n"
+"Change accesspoint's list of authorised MAC addresses\n"
 "\n"
 msgstr ""
-"Pobierz statystyki z AP i wypisz w formacie strawnym dla MRTG\n"
-"\n"
 
 # src/ap-mrtg.c:50
-#: src/ap-mrtg.c:47
+#: src/ap-auth.c:49 src/ap-mrtg.c:46 src/ap-rrd.c:47
 msgid "-i ip        - AP ip address\n"
 msgstr "-i ip        - adres IP\n"
 
 # src/ap-mrtg.c:51
-#: src/ap-mrtg.c:48
+#: src/ap-auth.c:50 src/ap-mrtg.c:47 src/ap-rrd.c:48
 msgid "-c community - SNMP community string\n"
 msgstr "-c communauté   has³o SNMP\n"
 
-# src/ap-mrtg.c:53
-#: src/ap-mrtg.c:50
+#: src/ap-auth.c:51
 msgid ""
-"-t type      - statistics type <w>ireless, <e>thernet, associated <s>tations "
-"or <l>ink quality in client mode\n"
+"-d filename  - download list of authorised MAC addresses from AP to a file\n"
 msgstr ""
-"-t type      typ statystyk <w> radio, <e>thernet, <s>tacje lub <l> jako¶æ "
-"po³±czenia w trybie klienta\n"
 
-# src/ap-mrtg.c:55
-#: src/ap-mrtg.c:52
+#: src/ap-auth.c:53
 msgid ""
-"-b bssid     - mac address of the AP to which get link quality, only if "
-"type=l\n"
+"-u filename  - upload list of authorised MAC addresses from a file to AP\n"
 msgstr ""
-"-b bssid     - adres fizyczny AP z którego braæ dane dot jako¶ci ³±cza "
-"(tylko typ=l)\n"
-
-#: src/ap-mrtg.c:53
-msgid "-n name     - AP name - for check only\n"
-msgstr "-n nazwa    - Nazwa AP - tylko do kontroli\n"
 
-#: src/ap-mrtg.c:54
+# src/ap-mrtg.c:59
+#: src/ap-auth.c:55 src/ap-mrtg.c:56 src/ap-rrd.c:57
 msgid ""
-"-a aptype        - AP type - 410 (default) or 510 for ATMEL12350's, like the "
-"ME-102\n"
+"-h           - print this help screen\n"
+"\n"
 msgstr ""
+"-h           - ten tekst\n"
+"\n"
+
+# src/ap-mrtg.c:60
+#: src/ap-auth.c:56
+#, fuzzy, c-format
+msgid ""
+"ap-auth %s Copyright (c) 2004 Teemu Kiviniemi\n"
+"\n"
+msgstr ""
+"ap-mrtg %s Prawa autorskie © 2002-2003 Roman Festchook\n"
+"\n"
+
+# src/ap-mrtg.c:142
+#: src/ap-auth.c:146 src/ap-mrtg.c:139
+#, 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
+#, 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
+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
+msgid "Bridging"
+msgstr "Podstawowe"
+
+# src/ap-config.c:42
+#: src/ap-config.c:41
+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
+msgid "Wireless"
+msgstr "Radiowe"
+
+# src/ap-config.c:44
+#: src/ap-config.c:43
+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
+msgid "Privacy"
+msgstr "Klucze"
+
+# lib/common.c:50 src/ap-config.c:147
+#: src/ap-config.c:45
+#, 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
+msgid "Community"
+msgstr "Dostêp"
+
+# src/ap-config.c:48
+#: src/ap-config.c:47
+msgid "Radio"
+msgstr "Radio"
+
+# src/ap-config.c:48
+#: src/ap-config.c:47
+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
+msgid "General"
+msgstr "Ogólne"
+
+# src/ap-config.c:55
+#: src/ap-config.c:54
+msgid "Set general options"
+msgstr "Opcje ogólne"
+
+# src/ap-config.c:56
+#: src/ap-config.c:55
+msgid "Advanced"
+msgstr "Zaawansowane"
+
+# src/ap-config.c:56
+#: src/ap-config.c:55
+msgid "Set advanced options"
+msgstr "Opcje zaawansowane"
+
+# src/ap-config.c:46 src/ap-config.c:58
+#: src/ap-config.c:57
+msgid "MAC auth"
+msgstr "Blokuj MAC"
+
+# src/ap-config.c:78
+#: src/ap-config.c:80
+msgid "Upload"
+msgstr "Wy¶lij"
+
+# src/ap-config.c:78
+#: src/ap-config.c:80
+#, fuzzy
+msgid "Activate current configuration"
+msgstr "Uczyñ konfiguracjê aktywn±"
+
+# src/ap-config.c:79
+#: src/ap-config.c:81
+msgid "Defaults"
+msgstr "Domy¶lne"
+
+# src/ap-config.c:79
+#: src/ap-config.c:81
+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
+msgid "Reset"
+msgstr "Reset"
+
+# src/ap-config.c:82
+#: src/ap-config.c:83
+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
+msgid "TestMode"
+msgstr "TrybTest"
+
+# src/ap-config.c:84
+#: src/ap-config.c:84
+msgid "Put Access Point in test mode"
+msgstr "W³±cza tryb testowy AP"
+
+# 
+# src/ap-config.c:89
+#: src/ap-config.c:89
+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
+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
+msgid "Ethernet"
+msgstr "Ethernet"
+
+# src/ap-config.c:111
+#: src/ap-config.c:111
+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
+msgid "Stations"
+msgstr "Stacje"
+
+#: src/ap-config.c:114
+msgid "AP link"
+msgstr ""
+
+# src/ap-config.c:115
+#: src/ap-config.c:115
+msgid "KnownAPs"
+msgstr "Znane AP"
+
+# src/ap-config.c:115
+#: src/ap-config.c:115
+msgid "Get info about known Access Points"
+msgstr "Podaj informacje o Access Pointach"
+
+# src/ap-config.c:123
+#: src/ap-config.c:123
+msgid "Latest"
+msgstr "Ostatnie"
+
+# src/ap-config.c:123
+#: src/ap-config.c:123
+msgid "Get info about latest events"
+msgstr "Pobiera info o ostatnich zdarzeniach"
+
+# src/ap-config.c:141
+#: src/ap-config.c:148
+msgid "Info"
+msgstr "Info"
+
+# src/ap-config.c:142
+#: src/ap-config.c:149
+msgid "Config"
+msgstr "Konfig"
+
+# src/ap-config.c:143
+#: src/ap-config.c:150
+msgid "Commands"
+msgstr "Komendy"
+
+# src/ap-config.c:143
+#: src/ap-config.c:150
+msgid "Execute commands on Access Point"
+msgstr "Wykonaj operacje w AP"
+
+# src/ap-config.c:145
+#: src/ap-config.c:152
+msgid "Connect"
+msgstr "Po³±cz"
+
+# src/ap-config.c:146
+#: src/ap-config.c:153
+msgid "Search"
+msgstr "Znajd¼"
+
+# src/ap-config.c:148
+#: src/ap-config.c:155
+msgid "Shell"
+msgstr "Shell"
+
+# src/ap-config.c:149
+#: src/ap-config.c:156
+msgid "Exit"
+msgstr "Wyjd¼"
+
+# src/ap-config.c:194
+#: src/ap-config.c:214
+#, c-format
+msgid "Wireless Access Point Configurator ver. %s"
+msgstr "Konfigurator bezprzewodowych access-pointów wersja %s"
+
+#: src/aplink.c:28
+msgid "RSSI:     ["
+msgstr ""
+
+#: src/aplink.c:29
+msgid "RSSI avg: ["
+msgstr ""
+
+#: src/aplink.c:30
+msgid "RSSI top: ["
+msgstr ""
+
+#: src/aplink.c:112
+msgid "Not available - device must have firmware with necessary "
+msgstr ""
+
+#: src/aplink.c:114
+msgid "vendor extensions and be in either 'Access Point client'"
+msgstr ""
+
+#: src/aplink.c:116
+msgid "or 'Repeater' mode."
+msgstr ""
+
+# src/ap-mrtg.c:47
+#: src/ap-mrtg.c:43
+#, fuzzy
+msgid ""
+"\tap-mrtg -i ip -c community -t type [-b bssid] [-n name] [-v] [-h] [-r]\n"
+"\n"
+msgstr ""
+"\tap-mrtg -i ip -c has³o -t typ [-b bssid] [-v] [-h] [-r]\n"
+"\n"
+
+# src/ap-mrtg.c:49
+#: src/ap-mrtg.c:45
+msgid ""
+"Get stats from AP and return it in MRTG parsable format\n"
+"\n"
+msgstr ""
+"Pobierz statystyki z AP i wypisz w formacie strawnym dla MRTG\n"
+"\n"
+
+# src/ap-mrtg.c:53
+#: src/ap-mrtg.c:48
+#, fuzzy
+msgid ""
+"-t type      - statistics type <w>ireless, <e>thernet, associated <s>tations "
+"or <l>ink quality (last one will only "
+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
+msgid "work with ATMEL410 MIB devices in AP Client mode)\n"
+msgstr ""
+
+# src/ap-mrtg.c:55
+#: src/ap-mrtg.c:51
+#, fuzzy
+msgid ""
+"-b bssid     - mac address of the AP from which get link quality, only if "
+"type=l\n"
+msgstr ""
+"-b bssid     - adres fizyczny AP z którego braæ dane dot jako¶ci ³±cza "
+"(tylko typ=l)\n"
+
+#: src/ap-mrtg.c:53
+#, 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
+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:57
-#: src/ap-mrtg.c:56
-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:57
+#: src/ap-mrtg.c:55 src/ap-rrd.c:56
 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:59
-#: src/ap-mrtg.c:58
+# src/ap-mrtg.c:60
+#: src/ap-mrtg.c:57
+#, c-format
+msgid ""
+"ap-mrtg %s Copyright (c) 2002-2003 Roman Festchook\n"
+"\n"
+msgstr ""
+"ap-mrtg %s Prawa autorskie © 2002-2003 Roman Festchook\n"
+"\n"
+
+# src/ap-mrtg.c:47
+#: src/ap-rrd.c:44
+#, fuzzy
+msgid ""
+"\tap-rrd -i ip -c community -t type -d db_file [-b bssid] [-n name] [-a "
+"aptype] [-h] [-r] \n"
+"\n"
+msgstr ""
+"\tap-mrtg -i ip -c has³o -t typ [-b bssid] [-v] [-h] [-r]\n"
+"\n"
+
+# src/ap-mrtg.c:49
+#: src/ap-rrd.c:46
+#, fuzzy
+msgid ""
+"Get stats from AP and put it in to specified RRDtool database\n"
+"\n"
+msgstr ""
+"Pobierz statystyki z AP i wypisz w formacie strawnym dla MRTG\n"
+"\n"
+
+# src/ap-mrtg.c:53
+#: src/ap-rrd.c:50
+msgid ""
+"-t type      - statistics type <w>ireless, <e>thernet, associated <s>tations "
+"or <l>ink quality in client mode\n"
+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
+msgid "-d db_file   - RRD database file with full path\n"
+msgstr ""
+
+# src/ap-mrtg.c:55
+#: src/ap-rrd.c:53
+msgid ""
+"-b bssid     - mac address of the AP to which get link quality, only if "
+"type=l\n"
+msgstr ""
+"-b bssid     - adres fizyczny AP z którego braæ dane dot jako¶ci ³±cza "
+"(tylko typ=l)\n"
+
+#: src/ap-rrd.c:54
+msgid "-n name     - AP name - for check only\n"
+msgstr "-n nazwa    - Nazwa AP - tylko do kontroli\n"
+
+#: src/ap-rrd.c:55
 msgid ""
-"-h           - print this help screen\n"
-"\n"
+"-a aptype    - AP type - 410 (default) or 510 for ATMEL12350's, like the ME-"
+"102\n"
 msgstr ""
-"-h           - ten tekst\n"
-"\n"
 
 # src/ap-mrtg.c:60
-#: src/ap-mrtg.c:59
-#, c-format
+#: src/ap-rrd.c:58
+#, fuzzy, c-format
 msgid ""
-"ap-mrtg %s Copyright (c) 2002-2003 Roman Festchook\n"
+"ap-rrd %s Copyright (c) 2002-2004 Roman Festchook\n"
 "\n"
 msgstr ""
 "ap-mrtg %s Prawa autorskie © 2002-2003 Roman Festchook\n"
 "\n"
 
 # src/ap-mrtg.c:142
-#: src/ap-mrtg.c:143
+#: src/ap-rrd.c:142
 msgid "Invalid IP-address\n"
 msgstr "B³êdny adres IP\n"
 
-#: src/ap-mrtg.c:188
+#: src/ap-rrd.c:188
 #, 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-mrtg.c:178
-#: src/ap-mrtg.c:207
-msgid "Create socket error"
-msgstr "B³±d tworzenia gniazda"
+#: src/ap-tftp.c:81
+#, fuzzy
+msgid "yes"
+msgstr "Tak"
 
-# src/ap-mrtg.c:182
-#: src/ap-mrtg.c:211
-msgid "Bind socket error"
-msgstr "B³±d bind()"
+# src/ap-config.c:141
+#: src/ap-tftp.c:82
+#, fuzzy
+msgid "no"
+msgstr "Info"
+
+#: src/ap-tftp.c:84
+msgid "Error while read()ing firmware file"
+msgstr ""
+
+#: src/ap-tftp.c:88
+msgid "Undefined error"
+msgstr ""
+
+#: src/ap-tftp.c:89
+msgid "File not found"
+msgstr ""
+
+# src/bridge.c:86
+#: src/ap-tftp.c:90
+#, fuzzy
+msgid "Access violation"
+msgstr "Access Point"
+
+#: src/ap-tftp.c:91
+msgid "Disk full or allocation error"
+msgstr ""
+
+#: src/ap-tftp.c:92
+msgid "Illegal TFTP operation"
+msgstr ""
+
+#: src/ap-tftp.c:93
+msgid "Unknown transfer ID"
+msgstr ""
+
+#: src/ap-tftp.c:94
+msgid "File already exists"
+msgstr ""
+
+#: src/ap-tftp.c:95
+msgid "No such user"
+msgstr ""
+
+#: src/ap-tftp.c:161
+msgid "Remote-filename too long.\n"
+msgstr ""
+
+#: src/ap-tftp.c:187
+#, c-format
+msgid "%sError in read()"
+msgstr ""
+
+#: src/ap-tftp.c:215
+#, c-format
+msgid "sending %u bytes\n"
+msgstr ""
+
+#: src/ap-tftp.c:224
+#, c-format
+msgid "%sError in sendto()"
+msgstr ""
+
+#: src/ap-tftp.c:247
+#, c-format
+msgid "%sError in recvfrom()"
+msgstr ""
+
+#: src/ap-tftp.c:261
+#, c-format
+msgid "\rProgress: uploaded %.0f %%."
+msgstr ""
+
+#: src/ap-tftp.c:272
+#, c-format
+msgid "%sMalformed packet received. Aborting.\n"
+msgstr ""
+
+#: src/ap-tftp.c:281
+#, c-format
+msgid "%sTimed out waiting for response from server (%i/%i).\n"
+msgstr ""
+
+#: src/ap-tftp.c:288
+#, c-format
+msgid "%sError in select()"
+msgstr ""
+
+#: src/ap-tftp.c:302
+#, c-format
+msgid "Received %d bytes: %04x %04x\n"
+msgstr ""
+
+#: src/ap-tftp.c:313
+#, c-format
+msgid "%sError: server responded with %s. Aborting.\n"
+msgstr ""
+
+#: src/ap-tftp.c:320
+#, c-format
+msgid "%sFlash programming in progress...\n"
+msgstr ""
+
+#: src/ap-tftp.c:322
+msgid "Finished successfully.\n"
+msgstr ""
+
+#: src/ap-tftp.c:340
+msgid "PLEASE BE _ABSOLUTELY_ SURE TO READ MANPAGE PRIOR USE!!!\n"
+msgstr ""
+
+#: src/ap-tftp.c:341
+#, c-format
+msgid ""
+"\n"
+"Usage: %s <-l firmware_file.rom> <IP>\n"
+msgstr ""
+
+#: src/ap-tftp.c:363
+msgid "TFTP client for upgrading firmware in ATMEL AT76C510 WiSOC-based APs.\n"
+msgstr ""
+
+#: src/ap-tftp.c:365
+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
+msgid "Error: invalid IP address format given.\n"
+msgstr ""
+
+#: src/ap-tftp.c:405
+msgid "Error while open()ing firmware file"
+msgstr ""
+
+#: src/ap-tftp.c:411 src/ap-tftp.c:462
+msgid "Error: invalid firmware file given.\n"
+msgstr ""
+
+#: src/ap-tftp.c:451
+#, c-format
+msgid ""
+"Firmware file contains:\n"
+"- string \"ATMEL\": %s\n"
+"- string \"802.11 AP\": %s\n"
+"- string \"atbrfirm.bin\": %s\n"
+"- string \"atsingle.bin\": %s\n"
+msgstr ""
+
+#: src/ap-tftp.c:474
+#, c-format
+msgid ""
+"Using:\n"
+"- server: %s\n"
+"- firmware file: \"%s\"\n"
+"- name used for upload: \"%s\"\n"
+msgstr ""
+
+#: src/ap-tftp.c:537
+msgid "Error while lseek()ing in firmware file\n"
+msgstr ""
 
 # src/ap-trapd.c:150
-#: src/ap-trapd.c:148
+#: src/ap-trapd.c:150
 #, c-format
 msgid "ap-trapd %s started%s%s."
 msgstr "ap-trapd %s uruchomiony%s%s."
 
 # src/ap-trapd.c:151
-#: src/ap-trapd.c:149
+#: src/ap-trapd.c:151
 msgid " on "
 msgstr " w³ "
 
 # src/ap-trapd.c:157
-#: src/ap-trapd.c:155
+#: src/ap-trapd.c:157
 msgid "Unable to fork. Exiting."
 msgstr "Nie moge utworzyæ procesu. Wychodzê."
 
 # src/ap-trapd.c:161
-#: src/ap-trapd.c:159
+#: src/ap-trapd.c:161
 msgid "Can't create socket. Exiting."
 msgstr "Nie moge utworzyæ gniazda. Wychodzê."
 
 # src/ap-trapd.c:167
-#: src/ap-trapd.c:165
+#: src/ap-trapd.c:167
 msgid "Can't bind socket. Exiting."
 msgstr "Nie zaj±æ gniazda. Wychodzê."
 
 # src/ap-trapd.c:174
-#: src/ap-trapd.c:172
+#: src/ap-trapd.c:174
 #, c-format
 msgid "Can't bind to device %s. Exiting."
 msgstr "Nie moge pod³±czyæ siê do urz±dzenia %s. Wychodzê."
 
 # src/ap-trapd.c:185
-#: src/ap-trapd.c:183
+#: src/ap-trapd.c:185
 #, c-format
 msgid "Unable to process username %s. Error: %m."
 msgstr "Nie moge skumaæ u¿ytkownika %s. B³±d: %m."
 
 # src/ap-trapd.c:190
-#: src/ap-trapd.c:188
+#: src/ap-trapd.c:190
 #, c-format
 msgid "Unable to change to uid %d."
 msgstr "Nie moge przej¶æ na UID %d"
 
 # src/ap-trapd.c:237
-#: src/ap-trapd.c:235
+#: src/ap-trapd.c:239
 #, c-format
 msgid ""
 "Received unknown SNMP ver %d trap. From %s:%d. Agent: %s. Community: %s."
 msgstr "Odebra³em nieznany pakiet SNMP %d z %s:%d agent: %s grupa: %s."
 
 # src/ap-trapd.c:309
-#: src/ap-trapd.c:307
-#, c-format
-msgid "Agent:v%d %s (%s@%s:%d) %s%s%s. SysUptime %d:%02d:%02d.%02d"
+#: src/ap-trapd.c:311
+#, fuzzy, c-format
+msgid "Agent:v%d %s (%s@%s:%d) Trap %i: %s%s%s. SysUptime %d:%02d:%02d.%02d"
 msgstr "Agent:v%d %s (%s@%s:%d) %s%s%s. Dzia³a ju¿ %d:%02d:%02d.%02d"
 
+#: src/auth.c:30
+msgid "APClient authorization credentials"
+msgstr ""
+
+# lib/ap-utils.h:117
+#: src/auth.c:32
+msgid "[A] MAC authorization: "
+msgstr "[A] Ograniczenie dostêpu dla wybranych adresów MAC: "
+
+# lib/ap-utils.h:122
+#: src/auth.c:33
+msgid "Enter MAC: "
+msgstr "Adres fizyczny: "
+
+# lib/ap-utils.h:121
+#: src/auth.c:34
+msgid "Delete Num: "
+msgstr "Skasuj pozycjê: "
+
 # lib/ap-utils.h:119
-#: src/auth_mac.c:33
+#: src/auth.c:35
 #, fuzzy
-msgid "NUM     MAC address"
+msgid " NUM     MAC address     "
 msgstr "Numer adres fizyczny (MAC)"
 
+# lib/ap-utils.h:120
+#: src/auth.c:36
+#, fuzzy
+msgid "A: auth; N: new; D: del; arrows: scroll; W: write conf; Q: quit"
+msgstr ""
+"A W³/Wy³; N - nowe; D - kasuj; strza³ki - przewijanie; W - zapis; Q - Wyjd¼"
+
+#: src/auth.c:38
+msgid "[I] Radius server IP: "
+msgstr ""
+
+# src/bridge.c:33
+#: src/auth.c:39
+#, fuzzy
+msgid "[P] Radius server port: "
+msgstr "[P] Port podstawowy: "
+
+#: src/auth.c:40
+msgid "[S] Radius server secret: "
+msgstr ""
+
+# lib/ap-utils.h:117
+#: src/auth.c:41
+#, fuzzy
+msgid "[T] Reauthorization time (sec): "
+msgstr "[A] Ograniczenie dostêpu dla wybranych adresów MAC: "
+
+#: src/auth.c:42
+msgid "[F] Radius source port: "
+msgstr ""
+
+# lib/ap-utils.h:120
+#: src/auth.c:43
+#, fuzzy
+msgid ""
+"A: auth; N: new; D: del; IPSTF: set; arrows: scroll; W: write conf; Q: quit"
+msgstr ""
+"A W³/Wy³; N - nowe; D - kasuj; strza³ki - przewijanie; W - zapis; Q - Wyjd¼"
+
+# lib/ap-utils.h:117
+#: src/auth.c:45
+#, fuzzy
+msgid "[M] 802.1x authorization: "
+msgstr "[A] Ograniczenie dostêpu dla wybranych adresów MAC: "
+
+#: src/auth.c:46
+msgid "[T] key broadcasting time period (sec): "
+msgstr ""
+
+#: src/auth.c:47
+msgid "[I] 802.1x auth. server IP: "
+msgstr ""
+
+#: src/auth.c:48
+msgid "[S] 802.1x auth. server secret: "
+msgstr ""
+
+# lib/ap-utils.h:120
+#: src/auth.c:49
+#, fuzzy
+msgid ""
+"A: auth; N: new; D: del; MTIS: set; arrows: scroll; W: write conf; Q: quit"
+msgstr ""
+"A W³/Wy³; N - nowe; D - kasuj; strza³ki - przewijanie; W - zapis; Q - Wyjd¼"
+
+# src/ap-config.c:55
+#: src/auth.c:114
+msgid "Internal"
+msgstr "Ogólnie"
+
+# src/ap-config.c:48
+#: src/auth.c:116
+#, fuzzy
+msgid "Radius"
+msgstr "Radio"
+
+#: src/auth.c:121
+msgid "Allow listed MACs only"
+msgstr ""
+
+#: src/auth.c:123
+msgid "Deny listed MACs only"
+msgstr ""
+
+#: src/auth.c:129
+msgid "Mixed environment"
+msgstr ""
+
+#: src/auth.c:213
+msgid "(not shown)"
+msgstr ""
+
+# lib/ap-utils.h:118
+#: src/auth.c:270
+#, fuzzy
+msgid "Authorized MAC addresses:"
+msgstr "Dostêp w/g MAC"
+
+#: src/auth.c:339
+msgid "(insufficient community used)"
+msgstr ""
+
+#: src/auth.c:466
+#, c-format
+msgid "Given MAC already exists in MAC list at position %d. Press any key."
+msgstr ""
+
+#: src/bridge.c:27
+msgid "[I] IP: "
+msgstr ""
+
+# src/bridge.c:169
+#: src/bridge.c:28
+msgid "[N] Netmask: "
+msgstr "[N] Maska:  "
+
+# src/bridge.c:171
+#: src/bridge.c:29
+msgid "[G] Gateway: "
+msgstr "[G] Brama: "
+
+# src/bridge.c:32
+#: src/bridge.c:30
+msgid "[F] Filter non-IP traffic: "
+msgstr "[F] Wycinaj ruch nie-IP: "
+
+# src/bridge.c:33
+#: src/bridge.c:31
+msgid "[P] Primary port: "
+msgstr "[P] Port podstawowy: "
+
+# src/bridge.c:144
+#: src/bridge.c:32
+msgid "Attached station MAC: "
+msgstr "MAC do³±czonej stacji:"
+
+# src/bridge.c:34
+#: src/bridge.c:33
+msgid "[D] DHCP client: "
+msgstr "[D] Klient DHCP: "
+
+# src/bridge.c:35
+#: src/bridge.c:34
+msgid "[O] Operational mode: "
+msgstr "[O] Tryb pracy: "
+
+# src/bridge.c:36
 #: src/bridge.c:35
+msgid "[M] Preferred BSSID (remote MAC addr.): "
+msgstr "[M] Zdalny adres fizyczny: "
+
+#: src/bridge.c:36
 msgid "[C] Configuration-enabled port(s): "
 msgstr "[C] Dostêp do konfiguracji porzez port: "
 
+#: src/bridge.c:37
+#, fuzzy
+msgid "[T] Trap-sending port: "
+msgstr "[T] SNMP-Trap na porty: "
+
 #: src/bridge.c:38
+msgid "[R] Forward broadcast traffic: "
+msgstr "[R] Przesy³aj ruch rozg³oszeniowy: "
+
+#: src/bridge.c:39
 msgid "[B] Isolate wireless clients (broadcast traffic): "
 msgstr "[B] Izolacja klientów radiowych (ruch broadcast): "
 
-#: src/bridge.c:39
+#: src/bridge.c:40
 msgid "[U] Isolate wireless clients (unicast traffic): "
 msgstr "[U] Izolacja klientów radiowych (ruch unicast): "
 
+# src/bridge.c:30
+#: src/bridge.c:41
+#, fuzzy
+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:119
+#: 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"
+
 # src/nwn_advanced.c:64
 #: src/nwn_advanced.c:60
 #, c-format
@@ -1920,20 +2474,21 @@ msgstr "Ostatni b
 msgid "Error:"
 msgstr "B³±d:"
 
-#: src/stations.c:33
-msgid "AP link state"
+#: src/stations.c:82
+msgid "Not available (device not in AP mode)."
 msgstr ""
 
-#: src/stations.c:37
-msgid " #            MAC                                               "
+#: src/stations.c:93
+msgid "  #     MAC       Parent MAC  RSSI   LQ Sts MACn      IP        "
 msgstr ""
 
-#: src/stations.c:40
-msgid " #     MAC       Parent MAC    RSSI  Status MACn      IP        "
-msgstr ""
+# src/stations.c:110
+#: src/stations.c:139
+msgid "AssociatedSTAsInfo packet error"
+msgstr "B³êdny pakiet AssociatedSTAsInfo"
 
 # src/stations.c:132 src/stations.c:284
-#: src/stations.c:195 src/stations.c:367
+#: src/stations.c:192 src/stations.c:364
 #, fuzzy
 msgid ""
 "Arrows - scroll; S - save to file; Q - return; T - toggle view; Other - "
@@ -1941,16 +2496,42 @@ msgid ""
 msgstr "Strza³ki - przewijanie; S - zapis do zbioru; Q - powrót."
 
 # src/stations.c:132 src/stations.c:284
-#: src/stations.c:200
+#: src/stations.c:196
 #, 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:279
+#: src/stations.c:276
 msgid "Id       MAC address     Quality  Age  RSSI"
 msgstr "Id       Adres fizyczny  Jako¶æ   Wiek RSSI"
 
+# lib/ap-utils.h:119
+#~ msgid "NUM       MAC address"
+#~ msgstr "Numer adres fizyczny (MAC)"
+
+# src/nwn_advanced.c:70
+#~ msgid "A - auth; IPSTF - set; W - write conf; Q - quit"
+#~ msgstr "DA - opcje; W - zapis; Q - powrót"
+
+# src/nwn_advanced.c:70
+#~ msgid "A - auth; W - write conf; Q - quit"
+#~ msgstr "DA - opcje; W - zapis; Q - powrót"
+
+#~ msgid "<hidden>"
+#~ msgstr "<ukryto>"
+
+#~ msgid "[U] Isolate wireless clients: "
+#~ msgstr "[U] Izoluj klientów radiowych: "
+
+#, fuzzy
+#~ msgid "AP is currently in AP Client Mode => no associated STAtions."
+#~ msgstr "AP jest teraz w trybie klienta i nie ma stacji pod³±czonych"
+
+# src/stations.c:132 src/stations.c:284
+#~ msgid "Arrows - scroll; S - save to file; Q - quit to menu."
+#~ msgstr "Strza³ki - przewijanie; S - zapis do zbioru; Q - powrót."
+
 # src/stations.c:29
 #~ msgid "Associated Stations"
 #~ msgstr "Pod³±czonych stacji"
index c445f211fde9ebe337eddb8238b83e4167818b3a..0ccc77f22a443610f46b08d65e9ea7be898893bf 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: 2004-11-28 00:59+0200\n"
+"POT-Creation-Date: 2005-01-16 02:07+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,314 +15,6 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Report-Msgid-Bugs-To: \n"
 
-#: ap-gl/ap-gl.c:41 ap-gl/bridge.c:178 src/ap-config.c:41 src/bridge.c:182
-msgid "Bridging"
-msgstr "Conexiune(Bridging)"
-
-#: ap-gl/ap-gl.c:41 src/ap-config.c:41
-msgid "Set bridging and IP-related options"
-msgstr "Setare opþiuni legate de bridging ºi IP"
-
-#: ap-gl/ap-gl.c:43 ap-gl/ap-gl.c:81 ap-gl/bridge.c:132 src/ap-config.c:43
-#: src/ap-config.c:112 src/ap-config.c:120 src/bridge.c:117 src/bridge.c:121
-msgid "Wireless"
-msgstr "Wireless"
-
-#: ap-gl/ap-gl.c:43 src/ap-config.c:43
-msgid "Set wireless options"
-msgstr "Setare opþiuni wireless"
-
-#: ap-gl/ap-gl.c:44 src/ap-config.c:44 src/ap-config.c:56
-msgid "Privacy"
-msgstr "Secret(Privacy)"
-
-#: ap-gl/ap-gl.c:45 src/ap-config.c:45 src/ap-config.c:57
-#, fuzzy
-msgid "MAC auth"
-msgstr "Autorizare Mac"
-
-#: ap-gl/ap-gl.c:46 src/ap-config.c:46 src/ap-config.c:58
-msgid "Community"
-msgstr "Comunitate"
-
-#: ap-gl/ap-gl.c:47 src/ap-config.c:47
-msgid "Radio"
-msgstr "Radio"
-
-#: ap-gl/ap-gl.c:47 src/ap-config.c:47
-msgid "Set radio signal power and antenna options"
-msgstr "Setãri putere semnal radio ºi opþiuni antenã"
-
-#: ap-gl/ap-gl.c:62 src/ap-config.c:80
-msgid "Upload"
-msgstr "Upload"
-
-#: ap-gl/ap-gl.c:62 src/ap-config.c:80
-#, fuzzy
-msgid "Activate current configuration"
-msgstr "Seteazã configuraþia curentã ca activã"
-
-#: ap-gl/ap-gl.c:63 src/ap-config.c:81
-msgid "Defaults"
-msgstr "Implicite"
-
-#: ap-gl/ap-gl.c:63 src/ap-config.c:81
-msgid "Restore factory default settings"
-msgstr "Restaureazã setãrile implicite din fabricã"
-
-#: ap-gl/ap-gl.c:64 src/ap-config.c:82 src/ap-config.c:89
-msgid "Reset"
-msgstr "Reset"
-
-#: ap-gl/ap-gl.c:65 src/ap-config.c:83
-msgid "Reset AP. All not uploaded configuration will be lost"
-msgstr "Resetare AP. Toate configuraþiile ne-uploadate vor fi pierdute"
-
-#: ap-gl/ap-gl.c:66 src/ap-config.c:84
-msgid "TestMode"
-msgstr "ModTestare"
-
-#: ap-gl/ap-gl.c:66 src/ap-config.c:84
-msgid "Put Access Point in test mode"
-msgstr "Aducere Access Point în mod testare"
-
-#: ap-gl/ap-gl.c:79 src/ap-config.c:110 src/ap-config.c:119
-msgid "SysInfo"
-msgstr "SysInfo"
-
-#: ap-gl/ap-gl.c:80 ap-gl/bridge.c:131 src/ap-config.c:111 src/bridge.c:116
-#: src/bridge.c:120
-msgid "Ethernet"
-msgstr "Ethernet"
-
-#: ap-gl/ap-gl.c:80 src/ap-config.c:111
-msgid "Get ethernet port statistics"
-msgstr "Procurare statistici port ethernet"
-
-#: ap-gl/ap-gl.c:82 src/ap-config.c:113 src/ap-config.c:121
-msgid "Stations"
-msgstr "Staþii"
-
-#: ap-gl/ap-gl.c:83 src/ap-config.c:114
-msgid "KnownAPs"
-msgstr "AP-uri cunoscute"
-
-#: ap-gl/ap-gl.c:83 src/ap-config.c:114
-msgid "Get info about known Access Points"
-msgstr "Procurare informaþii despre Access Point-urile cunoscute"
-
-#: ap-gl/ap-gl.c:100 src/ap-config.c:147
-msgid "Info"
-msgstr "Informaþii"
-
-#: ap-gl/ap-gl.c:101 src/ap-config.c:148
-msgid "Config"
-msgstr "Configuraþie"
-
-#: ap-gl/ap-gl.c:102 src/ap-config.c:149
-msgid "Commands"
-msgstr "Comenzi"
-
-#: ap-gl/ap-gl.c:102 src/ap-config.c:149
-msgid "Execute commands on Access Point"
-msgstr "Executare comenzi pe Access Point"
-
-#: ap-gl/ap-gl.c:104 src/ap-config.c:151
-msgid "Connect"
-msgstr "Conectare "
-
-#: ap-gl/ap-gl.c:105 src/ap-config.c:152
-msgid "Search"
-msgstr "Cãutare"
-
-#: ap-gl/ap-gl.c:106 lib/common.c:83 src/ap-config.c:153
-msgid "About"
-msgstr "Despre"
-
-#: ap-gl/ap-gl.c:107 src/ap-config.c:154
-msgid "Shell"
-msgstr "Shell"
-
-#: ap-gl/ap-gl.c:108 src/ap-config.c:155
-msgid "Exit"
-msgstr "Ieºire"
-
-#: ap-gl/ap-gl.c:158 src/ap-config.c:204
-#, c-format
-msgid "Wireless Access Point Configurator ver. %s"
-msgstr "Wireless Access Point Configurator ver. %s"
-
-#: ap-gl/auth_mac.c:27 src/auth_mac.c:27
-msgid "AuthorizedMacTableString packet error"
-msgstr "Eroare pachet AuthorizedMacTableString"
-
-#: ap-gl/auth_mac.c:29 src/auth_mac.c:29
-#, fuzzy
-msgid "[A] MAC authorization: "
-msgstr "[A] Autorizare prin MAC: %s"
-
-#: ap-gl/auth_mac.c:30 src/auth_mac.c:30
-#, fuzzy
-msgid "Enter MAC: "
-msgstr "Introducere Mac:"
-
-#: ap-gl/auth_mac.c:31 src/auth_mac.c:31
-#, fuzzy
-msgid "Delete Num: "
-msgstr "ªterge Num:"
-
-#: ap-gl/auth_mac.c:32 src/auth_mac.c:32
-#, fuzzy
-msgid "Authorized MAC addresses"
-msgstr "Adrese MAC Autorizate"
-
-#: ap-gl/auth_mac.c:33
-#, fuzzy
-msgid "NUM       MAC address"
-msgstr "NUM     adresã MAC"
-
-#: ap-gl/auth_mac.c:34 src/auth_mac.c:34
-msgid "A - auth; N - new; D - del; arrows - scroll; W - write conf; Q - quit"
-msgstr ""
-"A - autentificare; N - nou; D - ºtergere; sãgeþi -scroll; W- scriere conf; Q "
-"- ieºire"
-
-#: ap-gl/auth_mac.c:35
-#, fuzzy
-msgid "A - auth; IPSTF - set; W - write conf; Q - quit"
-msgstr "DA - opþiuni; W - scriere configuraþie; Q - ieºire în meniu"
-
-#: ap-gl/auth_mac.c:36
-#, fuzzy
-msgid "A - auth; W - write conf; Q - quit"
-msgstr "DA - opþiuni; W - scriere configuraþie; Q - ieºire în meniu"
-
-#: ap-gl/auth_mac.c:38
-msgid "[I] RADIUS SERVER IP: "
-msgstr ""
-
-#: ap-gl/auth_mac.c:39
-msgid "[P] RADIUS SERVER PORT: "
-msgstr ""
-
-#: ap-gl/auth_mac.c:40
-msgid "[S] RADIUS SERVER SECRET: "
-msgstr ""
-
-#: ap-gl/auth_mac.c:41
-msgid "[T] REAUTHORIZATION TIME: "
-msgstr ""
-
-#: ap-gl/auth_mac.c:42
-msgid "[F] RADIUS SOURCE PORT: "
-msgstr ""
-
-#: ap-gl/auth_mac.c:87
-#, fuzzy
-msgid "Internal"
-msgstr "General"
-
-#: ap-gl/auth_mac.c:95
-msgid "<hidden>"
-msgstr ""
-
-#: ap-gl/bridge.c:26 src/bridge.c:26
-msgid "[I] IP: "
-msgstr ""
-
-#: ap-gl/bridge.c:27 src/bridge.c:27
-#, fuzzy
-msgid "[N] Netmask: "
-msgstr "[N] Netmask: %s"
-
-#: ap-gl/bridge.c:28 src/bridge.c:28
-#, fuzzy
-msgid "[G] Gateway: "
-msgstr "[G] Gateway %s"
-
-#: ap-gl/bridge.c:29 src/bridge.c:29
-#, fuzzy
-msgid "[F] Filter non-IP traffic: "
-msgstr "[F] Filtrare traficul non IP: %s"
-
-#: ap-gl/bridge.c:30 src/bridge.c:30
-#, fuzzy
-msgid "[P] Primary port: "
-msgstr "[P] Port primar: %s"
-
-#: ap-gl/bridge.c:31 src/bridge.c:31
-#, fuzzy
-msgid "Attached station MAC: "
-msgstr "MAC ataºat staþiei: %02X%02X%02X%02X%02X%02X"
-
-#: ap-gl/bridge.c:32 src/bridge.c:32
-#, fuzzy
-msgid "[D] DHCP client: "
-msgstr "[D] Protocol DHCP: %s"
-
-#: ap-gl/bridge.c:33 src/bridge.c:33
-#, fuzzy
-msgid "[O] Operational mode: "
-msgstr "[O] Mod Operaþional: %s"
-
-#: ap-gl/bridge.c:34 src/bridge.c:34
-#, fuzzy
-msgid "[M] Preferred BSSID (remote MAC addr.): "
-msgstr "[R] Adresã Mac remote: %02X:%02X:%02X:%02X:%02X:%02X"
-
-#: ap-gl/bridge.c:36 src/bridge.c:36
-msgid "[T] Trap-sending port(s): "
-msgstr ""
-
-#: ap-gl/bridge.c:37 src/bridge.c:37
-msgid "[R] Forward broadcast traffic: "
-msgstr ""
-
-#: ap-gl/bridge.c:39
-msgid "[U] Isolate wireless clients: "
-msgstr ""
-
-#: ap-gl/bridge.c:40 src/bridge.c:40
-#, fuzzy
-msgid "INGFPDOMSCTRBU - set; W - write conf; Q - quit to menu"
-msgstr "BPGINFDRT - setãri; W - scriere configuraþie; Q - ieºire în meniu"
-
-#: ap-gl/bridge.c:124 src/bridge.c:109
-msgid "Wireless Bridge Point to MultiPoint"
-msgstr "Conexiune(bridge) Wireless Point to MultiPoint"
-
-#: ap-gl/bridge.c:125 src/bridge.c:110
-msgid "Access Point"
-msgstr "Access Point"
-
-#: ap-gl/bridge.c:126 src/bridge.c:111
-msgid "Access Point client"
-msgstr "Client Access Point"
-
-#: ap-gl/bridge.c:127 src/bridge.c:112
-msgid "Wireless Bridge Point to Point"
-msgstr "Conexiune(bridge) Wireless Point to Point"
-
-#: ap-gl/bridge.c:128 src/bridge.c:113
-msgid "Repeater"
-msgstr "Repetor"
-
-#: ap-gl/stations.c:77 src/stations.c:100
-msgid "AP is currently in AP Client Mode => no associated STAtions."
-msgstr ""
-
-#: ap-gl/stations.c:102
-msgid "#     MAC       LQ    RSSI   Status Port IP"
-msgstr ""
-
-#: ap-gl/stations.c:128 src/stations.c:159
-msgid "AssociatedSTAsInfo packet error"
-msgstr "Eroare pachet AssociatedSTAsInfo"
-
-#: ap-gl/stations.c:160
-msgid "Arrows - scroll; S - save to file; Q - quit to menu."
-msgstr "Sãgeþi - scroll; S - salvare în fiºier; Q - ieºire în meniu."
-
 #: lib/aps.c:29
 msgid "Known Access Points"
 msgstr "Access Point-uri Cunoscute"
@@ -361,7 +53,7 @@ msgstr ""
 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:91
+#: lib/aps.c:153 lib/cmd.c:45 lib/cmd.c:75 lib/test.c:96
 msgid "Do you want to continue? "
 msgstr "Doriþi sã continuaþi? "
 
@@ -669,79 +361,96 @@ msgid "Bind socket error. Press any key."
 msgstr "Eroare de legãturã. Apãsaþi o tastã."
 
 #: lib/ap-utils.h:115
+#, 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
+msgid "AP list file ~/.ap-config successfully written. Press any key."
+msgstr ""
+
+#: lib/ap-utils.h:118
 msgid "Back to main menu"
 msgstr "Înapoi în meniul principal"
 
-#: lib/ap-utils.h:116
+#: lib/ap-utils.h:119
 msgid "Exit program"
 msgstr "Ieºire din program"
 
-#: lib/ap-utils.h:117
+#: lib/ap-utils.h:120
 #, fuzzy
 msgid "Run subshell. To return type 'exit'."
 msgstr "Rulare subshell. Pentru întoarcere scrieþi 'exit'"
 
-#: lib/ap-utils.h:118
+#: lib/ap-utils.h:121
 msgid "Short info about program"
 msgstr "Scurte informaþii despre program"
 
-#: lib/ap-utils.h:119
+#: lib/ap-utils.h:122
 msgid "Find connected Access Points"
 msgstr "Cautã Access Pointurile conectate"
 
-#: lib/ap-utils.h:120
+#: lib/ap-utils.h:123
 msgid "Set connection options: ip and community"
 msgstr "Setare opþiuni conexiune: ip ºi comunitate"
 
-#: lib/ap-utils.h:121
+#: lib/ap-utils.h:124
 #, fuzzy
 msgid "Set encryption; edit WEP keys"
 msgstr "Setare encripþie, editare chei WEP"
 
-#: lib/ap-utils.h:122
+#: lib/ap-utils.h:125
 #, fuzzy
-msgid "Set MAC authorization; edit MAC authorization table"
+msgid "Set authorization; edit MAC authorization table"
 msgstr "Setare autorizare prin mac, editare tabel autorizare prin mac"
 
-#: lib/ap-utils.h:123
+#: lib/ap-utils.h:126
 #, fuzzy
 msgid "Set SNMP community/password for access to the AP"
 msgstr "Setare comunitate/parolã SNMP pentru accesare AP"
 
-#: lib/ap-utils.h:124
+#: lib/ap-utils.h:127
 #, fuzzy
 msgid "Get info about AP hardware and firmware"
 msgstr "Procurare informaþii despre hardware ºi software AP"
 
-#: lib/ap-utils.h:125
+#: lib/ap-utils.h:128
 #, fuzzy
 msgid "Get wireless port statistics"
 msgstr "Procurare statistici porturi wireless"
 
-#: lib/ap-utils.h:126
+#: lib/ap-utils.h:129
 #, fuzzy
 msgid "Get list of currently associated stations (Access Point clients)"
 msgstr "Procurare listã staþii asociate în acest moment"
 
-#: lib/ap-utils.h:127
+#: lib/ap-utils.h:130
+msgid "Get link status in APclient mode"
+msgstr ""
+
+#: lib/ap-utils.h:131
 #, fuzzy
 msgid "Get info and statistics from AP"
 msgstr "Procurare informaþii ºi statistici din AP"
 
-#: lib/ap-utils.h:128
+#: lib/ap-utils.h:132
 #, fuzzy
 msgid "Set various configuration options"
 msgstr "Setare diverse opþiuni de configurare"
 
-#: lib/ap-utils.h:130
+#: lib/ap-utils.h:134
 msgid "Associated stations"
 msgstr "Staþii asociate"
 
-#: lib/ap-utils.h:132
-msgid "Polling: on"
+#: lib/ap-utils.h:135
+msgid "AP Client link state"
 msgstr ""
 
-#: lib/ap-utils.h:133
+#: lib/ap-utils.h:137
+msgid "Polling: on"
+msgstr ""
+
+#: lib/ap-utils.h:138
 msgid "Polling: off"
 msgstr ""
 
@@ -840,42 +549,46 @@ msgstr "Access Point"
 msgid "Save connect-settings: "
 msgstr "Salvare setãri conectare:"
 
-#: lib/common.c:100
+#: lib/common.c:84 src/ap-config.c:154
+msgid "About"
+msgstr "Despre"
+
+#: lib/common.c:101
 #, c-format
 msgid "From %s"
 msgstr "De la %s"
 
-#: lib/common.c:102
+#: lib/common.c:103
 #, c-format
 msgid "Version %s"
 msgstr "Versiunea %s"
 
-#: lib/common.c:105
+#: lib/common.c:106
 msgid "Written by Roman Festchook roma@polesye.net"
 msgstr "Scris de Roman Festchook roma@polesye.net"
 
-#: lib/common.c:107
-msgid "Portions by Jan Rafaj aputils@cedric.unob.cz"
+#: lib/common.c:108
+msgid "and Jan Rafaj jr-aputils@cedric.unob.cz"
 msgstr ""
 
-#: lib/common.c:109
+#: lib/common.c:110
 #, fuzzy
-msgid "Copyright (c) 2001-2004"
+msgid "Copyright (c) 2001-2005"
 msgstr "Copyright (c) Roman Festchook 2001-2002"
 
-#: lib/common.c:111
+#: lib/common.c:112
 msgid "Roman Festchook and Jan Rafaj"
 msgstr ""
 
-#: lib/common.c:114
+#: lib/common.c:115
 msgid "This program is distributed under the terms"
 msgstr "Acest program este distribuit sub termenii "
 
-#: lib/common.c:116
+#: lib/common.c:117
 msgid "of the GNU General Public License version 2."
 msgstr "Licenþei Publice Generale GNU versiunea 2"
 
-#: lib/common.c:118
+#: lib/common.c:119
 msgid "See the included COPYING file for details."
 msgstr "Citiþi fiºierul COPYING inclus pentru detalii."
 
@@ -891,16 +604,16 @@ msgstr "Scrie
 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:266
+#: lib/common.c:259
 msgid "This label will be stored on HDD (independently on AP name!)."
 msgstr ""
 
-#: lib/common.c:361
+#: lib/common.c:370
 #, 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:390
+#: lib/common.c:399
 #, fuzzy
 msgid ""
 "Unable to determine AP MIB properties (no response from AP). Press any key."
@@ -928,21 +641,12 @@ msgstr "Conectare la AP num:"
 msgid "Delete num:"
 msgstr "ªterge Num:"
 
-#: lib/file.c:372
-msgid "AP list file ~/.ap-config successfully written. Press any key."
-msgstr ""
-
-#: lib/file.c:376
-#, 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/file.c:426
+#: lib/file.c:458
 #, 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:428
+#: lib/file.c:460
 msgid "Stations file succesfully written. Press any key."
 msgstr ""
 
@@ -956,12 +660,12 @@ msgstr "Adres
 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:412
+#: lib/input.c:413
 #, 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:6056
+#: lib/oui.c:6058
 msgid "Unknown or Private"
 msgstr "Necunoscut sau Privat"
 
@@ -1009,7 +713,7 @@ msgstr ""
 "Nu puteþi dezactiva ambele antene, nu se poate salva configuraþia antenei. "
 "Apãsaþi o tastã."
 
-#: lib/scr.c:168
+#: lib/scr.c:156
 #, fuzzy, c-format
 msgid "Current AP: %s Type: %s Ext: %s"
 msgstr "AP Current: %s Tip: %s"
@@ -1049,6 +753,153 @@ msgid ""
 msgstr ""
 "CHEIE - setare comunitate/parolã; W - scriere configurare în AP;Q - ieºire"
 
+#: lib/set_oeminfo.c:28
+#, fuzzy
+msgid "Info structure version: "
+msgstr "VersiuneStruct: %u"
+
+#: lib/set_oeminfo.c:29
+#, fuzzy
+msgid "[M] Device MAC address: "
+msgstr "Adresã IP: %s"
+
+#: lib/set_oeminfo.c:30
+#, fuzzy
+msgid "    Manufacturer with this OUI: "
+msgstr "ID Producãtor:"
+
+#: lib/set_oeminfo.c:31
+#, fuzzy
+msgid "[D] Regulatory domain: "
+msgstr "Domeniu Regularizare: %s"
+
+#: lib/set_oeminfo.c:32
+#, fuzzy
+msgid "[T] Product type: "
+msgstr "TipProdus: %u"
+
+#: lib/set_oeminfo.c:33
+#, fuzzy
+msgid "[E] OEM name: "
+msgstr "NumeOEM:"
+
+#: lib/set_oeminfo.c:34
+msgid "[I] OEM ID: "
+msgstr ""
+
+#: lib/set_oeminfo.c:35
+#, fuzzy
+msgid "[N] Product name: "
+msgstr "Nume Produs:"
+
+#: lib/set_oeminfo.c:36
+#, fuzzy
+msgid "[H] Hardware revision: "
+msgstr "RevizieHardware: %u"
+
+#: lib/set_oeminfo.c:37
+#, fuzzy
+msgid "[O] Country code: "
+msgstr "[O] Comandã: %s"
+
+#: lib/set_oeminfo.c:38
+#, fuzzy
+msgid "[C] Default channel: "
+msgstr "[C] Frecvenþã Canal: %02u (%u MHz)"
+
+#: lib/set_oeminfo.c:39
+#, fuzzy
+msgid "[A] Calibrated channels: "
+msgstr "[C] Frecvenþã Canal: %02u (%u MHz)"
+
+#: lib/set_oeminfo.c:40
+msgid "[P] Nominal Tx Power (CR31) value for calibrated channels: "
+msgstr ""
+
+#: lib/set_oeminfo.c:41
+#, fuzzy
+msgid ""
+"Keys in brackets - set corresponding option; W - write conf; Q - quit to menu"
+msgstr ""
+"[tastã] - setãri opþiuni; W - scriere configuraþie; Q - ieºire în meniu"
+
+#: lib/set_oeminfo.c:101
+msgid "THIS IS A SECRET MENU LEADING TO VERY DANGEROUS OPTIONS."
+msgstr ""
+
+#: lib/set_oeminfo.c:103
+msgid "It is intended only for WISPs and repair shops."
+msgstr ""
+
+#: lib/set_oeminfo.c:107
+msgid "It allows to set OEM information stored in the AP (like its"
+msgstr ""
+
+#: lib/set_oeminfo.c:109
+msgid "MAC address, manuf. name, OEM ID, etc.). BE ABSOLUTELY SURE"
+msgstr ""
+
+#: lib/set_oeminfo.c:111
+msgid "THAT YOU KNOW WHAT YOU ARE DOING, AND THAT YOU HAVE THE"
+msgstr ""
+
+#: lib/set_oeminfo.c:113
+msgid "LEGAL RIGHT TO DO ANY MODIFICATION. Disobserving of these"
+msgstr ""
+
+#: lib/set_oeminfo.c:115
+msgid "rules may lead you into a conflict with your local"
+msgstr ""
+
+#: lib/set_oeminfo.c:117
+msgid "regulations and/or law."
+msgstr ""
+
+#: lib/set_oeminfo.c:119
+msgid "Also be warned that the setting of any from these options"
+msgstr ""
+
+#: lib/set_oeminfo.c:121
+msgid "may DAMAGE YOUR AP (other reason why this menu is hidden)."
+msgstr ""
+
+#: lib/set_oeminfo.c:123
+msgid "Values changed here will NOT be restored upon reset"
+msgstr ""
+
+#: lib/set_oeminfo.c:125
+msgid "of the device to factory defaults! It is advisable to"
+msgstr ""
+
+#: lib/set_oeminfo.c:127
+msgid "write them down somewhere prior their changing."
+msgstr ""
+
+#: lib/set_oeminfo.c:129
+msgid "Finally, note that you need to use MANUFACTURER community, "
+msgstr ""
+
+#: lib/set_oeminfo.c:131
+msgid "in order to be able to do any OEM info modification."
+msgstr ""
+
+#: lib/set_oeminfo.c:133
+msgid "Proceed further only at your full risk and responsibility. "
+msgstr ""
+
+#: lib/set_oeminfo.c:135
+msgid "You got the warnings."
+msgstr ""
+
+#: lib/set_oeminfo.c:141
+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"
@@ -1089,161 +940,186 @@ msgstr "Descriere sistem: "
 msgid "System Info"
 msgstr "Informaþii Sistem"
 
-#: lib/sysinfo.c:120
+#: lib/sysinfo.c:54 src/bridge.c:86
+msgid "Wireless Bridge Point to MultiPoint"
+msgstr "Conexiune(bridge) Wireless Point to MultiPoint"
+
+#: lib/sysinfo.c:55 src/bridge.c:87
+msgid "Access Point"
+msgstr "Access Point"
+
+#: lib/sysinfo.c:56 src/bridge.c:88
+msgid "Access Point client"
+msgstr "Client Access Point"
+
+#: lib/sysinfo.c:57 src/bridge.c:89
+msgid "Wireless Bridge Point to Point"
+msgstr "Conexiune(bridge) Wireless Point to Point"
+
+#: lib/sysinfo.c:58 src/bridge.c:90
+msgid "Repeater"
+msgstr "Repetor"
+
+#: lib/sysinfo.c:59 lib/sysinfo.c:314 lib/sysinfo.c:423 src/bridge.c:91
+msgid "unknown"
+msgstr "necunoscut"
+
+#: lib/sysinfo.c:143
 msgid "Device hardware/software/name info:"
 msgstr ""
 
-#: lib/sysinfo.c:154
+#: lib/sysinfo.c:171
+#, fuzzy, c-format
+msgid "Operational mode: %s"
+msgstr "[O] Mod Operaþional: %s"
+
+#: lib/sysinfo.c:181
 #, fuzzy
-msgid "Product name:"
+msgid "Product name: "
 msgstr "Nume Produs:"
 
-#: lib/sysinfo.c:158
+#: lib/sysinfo.c:185
 #, fuzzy, c-format
 msgid "Product type: %u"
 msgstr "TipProdus: %u"
 
-#: lib/sysinfo.c:161
+#: lib/sysinfo.c:188
 #, fuzzy
-msgid "OEM name:"
+msgid "OEM name: "
 msgstr "NumeOEM:"
 
-#: lib/sysinfo.c:168
+#: lib/sysinfo.c:195
 #, fuzzy, c-format
 msgid "Hardware revision: %u"
 msgstr "RevizieHardware: %u"
 
-#: lib/sysinfo.c:176
+#: lib/sysinfo.c:203
 #, fuzzy, c-format
 msgid "Info structure version: %u"
 msgstr "VersiuneStruct: %u"
 
-#: lib/sysinfo.c:179 lib/sysinfo.c:355
+#: lib/sysinfo.c:206 lib/sysinfo.c:382
 #, c-format
 msgid "Manufacturer OUI: %02X %02X %02X (%s)"
 msgstr "OUI Producãtor: %02X %02X %02X (%s)"
 
-#: lib/sysinfo.c:196
+#: lib/sysinfo.c:223
 #, fuzzy, c-format
 msgid "Uptime: %u days, %02u:%02u:%02u hours:mins:secs"
 msgstr "Uptime: %u:%02u:%02u.%02u"
 
-#: lib/sysinfo.c:284
+#: lib/sysinfo.c:311
 msgid "FHSS 2.4 GHz"
 msgstr "FHSS 2.4 GHz"
 
-#: lib/sysinfo.c:284
+#: lib/sysinfo.c:311
 msgid "DSSS 2.4 GHz"
 msgstr "DSSS 2.4 GHz"
 
-#: lib/sysinfo.c:284
+#: lib/sysinfo.c:311
 msgid "IR Baseband"
 msgstr "Bandã de bazã IR"
 
-#: lib/sysinfo.c:285
+#: lib/sysinfo.c:312
 msgid "Commercial range 0..40 C"
 msgstr "Interval comercial 0..40 C"
 
-#: lib/sysinfo.c:286
+#: lib/sysinfo.c:313
 msgid "Industrial range -30..70 C"
 msgstr "Interval industrial -30..70 C"
 
-#: lib/sysinfo.c:287 lib/sysinfo.c:396
-msgid "unknown"
-msgstr "necunoscut"
-
-#: lib/sysinfo.c:289
+#: lib/sysinfo.c:316
 msgid "manual"
 msgstr "manual"
 
-#: lib/sysinfo.c:289
+#: lib/sysinfo.c:316
 msgid "notsupported"
 msgstr "nesuportat"
 
-#: lib/sysinfo.c:289
+#: lib/sysinfo.c:316
 msgid "dynamic"
 msgstr "dinamic"
 
-#: lib/sysinfo.c:345
+#: lib/sysinfo.c:372
 msgid "Manufacturer:"
 msgstr "Producãtor:"
 
-#: lib/sysinfo.c:350
+#: lib/sysinfo.c:377
 msgid "Manufacturer ID:"
 msgstr "ID Producãtor:"
 
-#: lib/sysinfo.c:361
+#: lib/sysinfo.c:388
 msgid "Product Name:"
 msgstr "Nume Produs:"
 
-#: lib/sysinfo.c:367
+#: lib/sysinfo.c:394
 msgid "Product ID:"
 msgstr "ID Produs:"
 
-#: lib/sysinfo.c:373
+#: lib/sysinfo.c:400
 msgid "Product Version:"
 msgstr "Versiune Produs:"
 
-#: lib/sysinfo.c:379
+#: lib/sysinfo.c:406
 #, c-format
 msgid "PHYType: %s"
 msgstr "TipPHY: %s"
 
-#: lib/sysinfo.c:382
+#: lib/sysinfo.c:409
 #, c-format
 msgid "Temperature: %s"
 msgstr "Temperaturã: %s"
 
-#: lib/sysinfo.c:390
+#: lib/sysinfo.c:417
 #, fuzzy, c-format
 msgid "Regulatory Domain: %s"
 msgstr "Domeniu Regularizare: %s"
 
-#: lib/sysinfo.c:391
+#: lib/sysinfo.c:418
 msgid "FCC (USA)"
 msgstr "FCC (USA)"
 
-#: lib/sysinfo.c:392
+#: lib/sysinfo.c:419
 msgid "DOC (Canada)"
 msgstr "DOC (Canada)"
 
-#: lib/sysinfo.c:393
+#: lib/sysinfo.c:420
 msgid "ETSI (Europe)"
 msgstr "ETSI (Europa)"
 
-#: lib/sysinfo.c:394
+#: lib/sysinfo.c:421
 msgid "Spain"
 msgstr "Spania"
 
-#: lib/sysinfo.c:395
+#: lib/sysinfo.c:422
 msgid "France"
 msgstr "Franþa"
 
-#: lib/sysinfo.c:396
+#: lib/sysinfo.c:423
 msgid "MKK (Japan)"
 msgstr "MKK (Japonia)"
 
-#: lib/sysinfo.c:399
+#: lib/sysinfo.c:426
 #, c-format
 msgid "Transmit Power: %u mW"
 msgstr "Putere Transmisie: %u mW"
 
-#: lib/sysinfo.c:429
+#: lib/sysinfo.c:456
 #, fuzzy, c-format
 msgid "WEP implemented: %s"
 msgstr "WEP inplementat: %s"
 
-#: lib/sysinfo.c:432
+#: lib/sysinfo.c:459
 #, c-format
 msgid "Diversity: %s"
 msgstr "Variaþie: %s"
 
-#: lib/sysinfo.c:460
+#: lib/sysinfo.c:487
 #, c-format
 msgid "Uptime: %u:%02u:%02u.%02u"
 msgstr "Uptime: %u:%02u:%02u.%02u"
 
-#: lib/sysinfo.c:480
+#: lib/sysinfo.c:507
 #, c-format
 msgid "IP  Address: %s"
 msgstr "Adresã IP: %s"
@@ -1292,35 +1168,39 @@ msgstr "St
 msgid "Right"
 msgstr "Dreapta"
 
-#: lib/test.c:86
+#: lib/test.c:79
+msgid "Devices with ATMEL12350 MIB not yet supported."
+msgstr ""
+
+#: lib/test.c:91
 #, fuzzy
 msgid "Test mode"
 msgstr "Mod Testare"
 
-#: lib/test.c:89
+#: lib/test.c:94
 #, fuzzy
 msgid "Using the \"Test mode\" may cause loss of your current"
 msgstr ""
 "Folosirea modului de testare poate cauza pierderea configuraþiei curente."
 
-#: lib/test.c:90
+#: lib/test.c:95
 #, fuzzy
 msgid "configuration."
 msgstr "Upload de configuraþie"
 
-#: lib/test.c:102
+#: lib/test.c:107
 msgid "Options:"
 msgstr "Opþiuni:"
 
-#: lib/test.c:128
+#: lib/test.c:133
 msgid "Statistics:"
 msgstr "Statistici:"
 
-#: lib/test.c:129
+#: lib/test.c:134
 msgid "Success Frames: 0 Failed Frames: 0"
 msgstr "Frame-uri cu succes: 0 Frame-uri eºuate: 0"
 
-#: lib/test.c:190
+#: lib/test.c:195
 #, c-format
 msgid "Success Frames: %lu Failed Frames: %lu"
 msgstr "Frame-uri cu succes: %lu Frame-uri eºuate: %lu"
@@ -1455,7 +1335,7 @@ msgid "[D] DTIM sending interval (beacons): "
 msgstr ""
 
 #: lib/wlan.c:48
-msgid "[T] SIFS time (msec): "
+msgid "[T] SIFS time (ACK timeout) msec: "
 msgstr ""
 
 #: lib/wlan.c:49
@@ -1490,35 +1370,27 @@ msgstr ""
 "UIOPTY - antenã; SCANLEDFR1234 - opþiuni; W - scriere configuraþie; Q - "
 "ieºire în meniu"
 
-#: src/ap-config.c:54
-msgid "General"
-msgstr "General"
-
-#: src/ap-config.c:54
-msgid "Set general options"
-msgstr "Setare opþiuni generale"
-
-#: src/ap-config.c:55
-msgid "Advanced"
-msgstr "Avansat"
+#: src/ap-auth.c:32 src/auth.c:28
+msgid "AuthorizedMacTableString packet error"
+msgstr "Eroare pachet AuthorizedMacTableString"
 
-#: src/ap-config.c:55
-msgid "Set advanced options"
-msgstr "Setare opþiuni avansate"
+#: src/ap-auth.c:33
+msgid "Invalid data in source file"
+msgstr ""
 
-#: src/ap-config.c:89
-msgid "Reset AP."
-msgstr "Resetare AP."
+#: src/ap-auth.c:34
+msgid "Can't open file"
+msgstr ""
 
-#: src/ap-config.c:122
-msgid "Latest"
-msgstr "Ultimul"
+#: src/ap-auth.c:35
+msgid "Can't write to file"
+msgstr ""
 
-#: src/ap-config.c:122
-msgid "Get info about latest events"
-msgstr "Procurare informaþii despre ultimele evenimente"
+#: src/ap-auth.c:36
+msgid "Error closing file"
+msgstr ""
 
-#: src/ap-mrtg.c:42
+#: src/ap-auth.c:45 src/ap-mrtg.c:42 src/ap-rrd.c:42
 msgid ""
 "\n"
 "Usage:\n"
@@ -1526,69 +1398,41 @@ msgstr ""
 "\n"
 "Folosire:\n"
 
-#: src/ap-mrtg.c:44
-#, fuzzy
+#: src/ap-auth.c:46
+msgid "\tap-auth -i ip -c community -d filename [-h]\n"
+msgstr ""
+
+#: src/ap-auth.c:47
 msgid ""
-"\tap-mrtg -i ip -c community -t type [-b bssid] [-n name] [-a aptype] [-v] [-"
-"h] [-r]\n"
+"\tap-auth -i ip -c community -u filename [-h]\n"
 "\n"
 msgstr ""
-"\tap-mrtg -i ip -c comunitate -t tip [-b bssid] [-v] [-h] [-r]\n"
-"\n"
 
-#: src/ap-mrtg.c:46
+#: src/ap-auth.c:48
 msgid ""
-"Get stats from AP and return it in MRTG parsable format\n"
+"Change accesspoint's list of authorised MAC addresses\n"
 "\n"
 msgstr ""
-"Procurã statistici din AP ºi le returneazã în format MRTG\n"
-"\n"
 
-#: src/ap-mrtg.c:47
+#: src/ap-auth.c:49 src/ap-mrtg.c:46 src/ap-rrd.c:47
 msgid "-i ip        - AP ip address\n"
 msgstr "-i ip        - Adresã de ip AP \n"
 
-#: src/ap-mrtg.c:48
+#: src/ap-auth.c:50 src/ap-mrtg.c:47 src/ap-rrd.c:48
 msgid "-c community - SNMP community string\n"
 msgstr "-c comunitate - SNMP ºir de caractere comunitate\n"
 
-#: src/ap-mrtg.c:50
-msgid ""
-"-t type      - statistics type <w>ireless, <e>thernet, associated <s>tations "
-"or <l>ink quality in client mode\n"
-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:52
+#: src/ap-auth.c:51
 msgid ""
-"-b bssid     - mac address of the AP to which get link quality, only if "
-"type=l\n"
-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
-msgid "-n name     - AP name - for check only\n"
+"-d filename  - download list of authorised MAC addresses from AP to a file\n"
 msgstr ""
 
-#: src/ap-mrtg.c:54
+#: src/ap-auth.c:53
 msgid ""
-"-a aptype        - AP type - 410 (default) or 510 for ATMEL12350's, like the "
-"ME-102\n"
-msgstr ""
-
-#: src/ap-mrtg.c:56
-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:57
-msgid "-r           - reset AP when getting LinkQuality stats\n"
+"-u filename  - upload list of authorised MAC addresses from a file to AP\n"
 msgstr ""
-"-r           - reseteazã AP-ul când se procurã statisticile LinkQuality\n"
 
-#: src/ap-mrtg.c:58
+#: src/ap-auth.c:55 src/ap-mrtg.c:56 src/ap-rrd.c:57
 msgid ""
 "-h           - print this help screen\n"
 "\n"
@@ -1596,103 +1440,779 @@ msgstr ""
 "-h           - afiºeazã acest ecran de ajutor\n"
 "\n"
 
-#: src/ap-mrtg.c:59
+#: src/ap-auth.c:56
 #, fuzzy, c-format
 msgid ""
-"ap-mrtg %s Copyright (c) 2002-2003 Roman Festchook\n"
+"ap-auth %s Copyright (c) 2004 Teemu Kiviniemi\n"
 "\n"
 msgstr ""
 "ap-mrtg %s Copyright (c) 2002 Roman Festchook\n"
 "\n"
 
-#: src/ap-mrtg.c:143
-msgid "Invalid IP-address\n"
+#: src/ap-auth.c:146 src/ap-mrtg.c:139
+#, fuzzy
+msgid "Error: invalid IP-address.\n"
 msgstr "Adresã de IP invalidã\n"
 
-#: src/ap-mrtg.c:188
-#, c-format
-msgid "Invalid AP-Type '%s' - valid types are 510 or 410\n"
-msgstr ""
-
-#: src/ap-mrtg.c:207
+#: 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-mrtg.c:211
+#: 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-trapd.c:148
-#, c-format
-msgid "ap-trapd %s started%s%s."
-msgstr "ap-trapd %s startat%s%s."
+#: src/ap-auth.c:220 src/ap-mrtg.c:220
+#, 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-trapd.c:149
-msgid " on "
-msgstr " activat "
+#: src/ap-auth.c:228
+msgid "NWN devices are not yet supported."
+msgstr ""
 
-#: src/ap-trapd.c:155
-msgid "Unable to fork. Exiting."
-msgstr "Nu se poate face fork. Ieºire."
+#: src/ap-config.c:41 src/bridge.c:200
+msgid "Bridging"
+msgstr "Conexiune(Bridging)"
 
-#: src/ap-trapd.c:159
-msgid "Can't create socket. Exiting."
-msgstr "Nu se poate crea socketul. Ieºire."
+#: src/ap-config.c:41
+msgid "Set bridging and IP-related options"
+msgstr "Setare opþiuni legate de bridging ºi IP"
 
-#: src/ap-trapd.c:165
-msgid "Can't bind socket. Exiting."
-msgstr "Nu se poate face legãtura(bind) la socket. Ieºire."
+#: src/ap-config.c:43 src/ap-config.c:112 src/ap-config.c:121 src/bridge.c:124
+msgid "Wireless"
+msgstr "Wireless"
 
-#: src/ap-trapd.c:172
-#, c-format
-msgid "Can't bind to device %s. Exiting."
-msgstr "Nu se poate face legãtura(bind) la device-ul %s. Ieºire."
+#: src/ap-config.c:43
+msgid "Set wireless options"
+msgstr "Setare opþiuni wireless"
 
-#: src/ap-trapd.c:183
-#, c-format
-msgid "Unable to process username %s. Error: %m."
-msgstr "Nu pot procesa username-ul %s. Eroare: %m."
+#: src/ap-config.c:44 src/ap-config.c:56
+msgid "Privacy"
+msgstr "Secret(Privacy)"
 
-#: src/ap-trapd.c:188
-#, c-format
-msgid "Unable to change to uid %d."
-msgstr "Nu pot schimba în uid %d."
+#: src/ap-config.c:45
+#, fuzzy
+msgid "Auth"
+msgstr "Despre"
 
-#: src/ap-trapd.c:235
-#, c-format
-msgid ""
-"Received unknown SNMP ver %d trap. From %s:%d. Agent: %s. Community: %s."
-msgstr ""
-"S-a primit trap necunoscut SNMP ver %d. De la %s:%d. Agent: %s. Comunitate: %"
-"s."
+#: src/ap-config.c:46 src/ap-config.c:58
+msgid "Community"
+msgstr "Comunitate"
 
-#: src/ap-trapd.c:307
-#, c-format
-msgid "Agent:v%d %s (%s@%s:%d) %s%s%s. SysUptime %d:%02d:%02d.%02d"
-msgstr "Agent:v%d %s (%s@%s:%d) %s%s%s. SysUptime %d:%02d:%02d.%02d"
+#: src/ap-config.c:47
+msgid "Radio"
+msgstr "Radio"
 
-#: src/auth_mac.c:33
-#, fuzzy
-msgid "NUM     MAC address"
-msgstr "NUM     adresã MAC"
+#: src/ap-config.c:47
+msgid "Set radio signal power and antenna options"
+msgstr "Setãri putere semnal radio ºi opþiuni antenã"
 
-#: src/bridge.c:35
-msgid "[C] Configuration-enabled port(s): "
-msgstr ""
+#: src/ap-config.c:54
+msgid "General"
+msgstr "General"
 
-#: src/bridge.c:38
-msgid "[B] Isolate wireless clients (broadcast traffic): "
-msgstr ""
+#: src/ap-config.c:54
+msgid "Set general options"
+msgstr "Setare opþiuni generale"
 
-#: src/bridge.c:39
-msgid "[U] Isolate wireless clients (unicast traffic): "
+#: src/ap-config.c:55
+msgid "Advanced"
+msgstr "Avansat"
+
+#: src/ap-config.c:55
+msgid "Set advanced options"
+msgstr "Setare opþiuni avansate"
+
+#: src/ap-config.c:57
+#, fuzzy
+msgid "MAC auth"
+msgstr "Autorizare Mac"
+
+#: src/ap-config.c:80
+msgid "Upload"
+msgstr "Upload"
+
+#: src/ap-config.c:80
+#, fuzzy
+msgid "Activate current configuration"
+msgstr "Seteazã configuraþia curentã ca activã"
+
+#: src/ap-config.c:81
+msgid "Defaults"
+msgstr "Implicite"
+
+#: src/ap-config.c:81
+msgid "Restore factory default settings"
+msgstr "Restaureazã setãrile implicite din fabricã"
+
+#: src/ap-config.c:82 src/ap-config.c:89
+msgid "Reset"
+msgstr "Reset"
+
+#: src/ap-config.c:83
+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
+msgid "TestMode"
+msgstr "ModTestare"
+
+#: src/ap-config.c:84
+msgid "Put Access Point in test mode"
+msgstr "Aducere Access Point în mod testare"
+
+#: src/ap-config.c:89
+msgid "Reset AP."
+msgstr "Resetare AP."
+
+#: src/ap-config.c:110 src/ap-config.c:120
+msgid "SysInfo"
+msgstr "SysInfo"
+
+#: src/ap-config.c:111 src/bridge.c:123 src/bridge.c:127
+msgid "Ethernet"
+msgstr "Ethernet"
+
+#: src/ap-config.c:111
+msgid "Get ethernet port statistics"
+msgstr "Procurare statistici port ethernet"
+
+#: src/ap-config.c:113 src/ap-config.c:122
+msgid "Stations"
+msgstr "Staþii"
+
+#: src/ap-config.c:114
+msgid "AP link"
+msgstr ""
+
+#: src/ap-config.c:115
+msgid "KnownAPs"
+msgstr "AP-uri cunoscute"
+
+#: src/ap-config.c:115
+msgid "Get info about known Access Points"
+msgstr "Procurare informaþii despre Access Point-urile cunoscute"
+
+#: src/ap-config.c:123
+msgid "Latest"
+msgstr "Ultimul"
+
+#: src/ap-config.c:123
+msgid "Get info about latest events"
+msgstr "Procurare informaþii despre ultimele evenimente"
+
+#: src/ap-config.c:148
+msgid "Info"
+msgstr "Informaþii"
+
+#: src/ap-config.c:149
+msgid "Config"
+msgstr "Configuraþie"
+
+#: src/ap-config.c:150
+msgid "Commands"
+msgstr "Comenzi"
+
+#: src/ap-config.c:150
+msgid "Execute commands on Access Point"
+msgstr "Executare comenzi pe Access Point"
+
+#: src/ap-config.c:152
+msgid "Connect"
+msgstr "Conectare "
+
+#: src/ap-config.c:153
+msgid "Search"
+msgstr "Cãutare"
+
+#: src/ap-config.c:155
+msgid "Shell"
+msgstr "Shell"
+
+#: src/ap-config.c:156
+msgid "Exit"
+msgstr "Ieºire"
+
+#: src/ap-config.c:214
+#, c-format
+msgid "Wireless Access Point Configurator ver. %s"
+msgstr "Wireless Access Point Configurator ver. %s"
+
+#: src/aplink.c:28
+msgid "RSSI:     ["
+msgstr ""
+
+#: src/aplink.c:29
+msgid "RSSI avg: ["
+msgstr ""
+
+#: src/aplink.c:30
+msgid "RSSI top: ["
+msgstr ""
+
+#: src/aplink.c:112
+msgid "Not available - device must have firmware with necessary "
+msgstr ""
+
+#: src/aplink.c:114
+msgid "vendor extensions and be in either 'Access Point client'"
+msgstr ""
+
+#: src/aplink.c:116
+msgid "or 'Repeater' mode."
+msgstr ""
+
+#: src/ap-mrtg.c:43
+#, fuzzy
+msgid ""
+"\tap-mrtg -i ip -c community -t type [-b bssid] [-n name] [-v] [-h] [-r]\n"
+"\n"
+msgstr ""
+"\tap-mrtg -i ip -c comunitate -t tip [-b bssid] [-v] [-h] [-r]\n"
+"\n"
+
+#: src/ap-mrtg.c:45
+msgid ""
+"Get stats from AP and return it in MRTG parsable format\n"
+"\n"
+msgstr ""
+"Procurã statistici din AP ºi le returneazã în format MRTG\n"
+"\n"
+
+#: src/ap-mrtg.c:48
+#, fuzzy
+msgid ""
+"-t type      - statistics type <w>ireless, <e>thernet, associated <s>tations "
+"or <l>ink quality (last one will only "
+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
+msgid "work with ATMEL410 MIB devices in AP Client mode)\n"
+msgstr ""
+
+#: src/ap-mrtg.c:51
+#, fuzzy
+msgid ""
+"-b bssid     - mac address of the AP from which get link quality, only if "
+"type=l\n"
+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
+msgid "-n name      - AP name - for check only\n"
+msgstr ""
+
+#: src/ap-mrtg.c:54
+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
+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
+#, fuzzy, c-format
+msgid ""
+"ap-mrtg %s Copyright (c) 2002-2003 Roman Festchook\n"
+"\n"
+msgstr ""
+"ap-mrtg %s Copyright (c) 2002 Roman Festchook\n"
+"\n"
+
+#: src/ap-rrd.c:44
+#, fuzzy
+msgid ""
+"\tap-rrd -i ip -c community -t type -d db_file [-b bssid] [-n name] [-a "
+"aptype] [-h] [-r] \n"
+"\n"
+msgstr ""
+"\tap-mrtg -i ip -c comunitate -t tip [-b bssid] [-v] [-h] [-r]\n"
+"\n"
+
+#: src/ap-rrd.c:46
+#, fuzzy
+msgid ""
+"Get stats from AP and put it in to specified RRDtool database\n"
+"\n"
+msgstr ""
+"Procurã statistici din AP ºi le returneazã în format MRTG\n"
+"\n"
+
+#: src/ap-rrd.c:50
+msgid ""
+"-t type      - statistics type <w>ireless, <e>thernet, associated <s>tations "
+"or <l>ink quality in client mode\n"
+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
+msgid "-d db_file   - RRD database file with full path\n"
+msgstr ""
+
+#: src/ap-rrd.c:53
+msgid ""
+"-b bssid     - mac address of the AP to which get link quality, only if "
+"type=l\n"
+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
+msgid "-n name     - AP name - for check only\n"
+msgstr ""
+
+#: src/ap-rrd.c:55
+msgid ""
+"-a aptype    - AP type - 410 (default) or 510 for ATMEL12350's, like the ME-"
+"102\n"
+msgstr ""
+
+#: src/ap-rrd.c:58
+#, fuzzy, c-format
+msgid ""
+"ap-rrd %s Copyright (c) 2002-2004 Roman Festchook\n"
+"\n"
+msgstr ""
+"ap-mrtg %s Copyright (c) 2002 Roman Festchook\n"
+"\n"
+
+#: src/ap-rrd.c:142
+msgid "Invalid IP-address\n"
+msgstr "Adresã de IP invalidã\n"
+
+#: src/ap-rrd.c:188
+#, c-format
+msgid "Invalid AP-Type '%s' - valid types are 510 or 410\n"
+msgstr ""
+
+#: src/ap-tftp.c:81
+msgid "yes"
+msgstr ""
+
+#: src/ap-tftp.c:82
+#, fuzzy
+msgid "no"
+msgstr "Informaþii"
+
+#: src/ap-tftp.c:84
+msgid "Error while read()ing firmware file"
+msgstr ""
+
+#: src/ap-tftp.c:88
+msgid "Undefined error"
+msgstr ""
+
+#: src/ap-tftp.c:89
+msgid "File not found"
+msgstr ""
+
+#: src/ap-tftp.c:90
+#, fuzzy
+msgid "Access violation"
+msgstr "Access Point"
+
+#: src/ap-tftp.c:91
+msgid "Disk full or allocation error"
+msgstr ""
+
+#: src/ap-tftp.c:92
+msgid "Illegal TFTP operation"
+msgstr ""
+
+#: src/ap-tftp.c:93
+msgid "Unknown transfer ID"
+msgstr ""
+
+#: src/ap-tftp.c:94
+msgid "File already exists"
+msgstr ""
+
+#: src/ap-tftp.c:95
+msgid "No such user"
+msgstr ""
+
+#: src/ap-tftp.c:161
+msgid "Remote-filename too long.\n"
+msgstr ""
+
+#: src/ap-tftp.c:187
+#, c-format
+msgid "%sError in read()"
+msgstr ""
+
+#: src/ap-tftp.c:215
+#, c-format
+msgid "sending %u bytes\n"
+msgstr ""
+
+#: src/ap-tftp.c:224
+#, c-format
+msgid "%sError in sendto()"
+msgstr ""
+
+#: src/ap-tftp.c:247
+#, c-format
+msgid "%sError in recvfrom()"
+msgstr ""
+
+#: src/ap-tftp.c:261
+#, c-format
+msgid "\rProgress: uploaded %.0f %%."
 msgstr ""
 
-#: src/bridge.c:119
+#: src/ap-tftp.c:272
+#, c-format
+msgid "%sMalformed packet received. Aborting.\n"
+msgstr ""
+
+#: src/ap-tftp.c:281
+#, c-format
+msgid "%sTimed out waiting for response from server (%i/%i).\n"
+msgstr ""
+
+#: src/ap-tftp.c:288
+#, c-format
+msgid "%sError in select()"
+msgstr ""
+
+#: src/ap-tftp.c:302
+#, c-format
+msgid "Received %d bytes: %04x %04x\n"
+msgstr ""
+
+#: src/ap-tftp.c:313
+#, c-format
+msgid "%sError: server responded with %s. Aborting.\n"
+msgstr ""
+
+#: src/ap-tftp.c:320
+#, c-format
+msgid "%sFlash programming in progress...\n"
+msgstr ""
+
+#: src/ap-tftp.c:322
+msgid "Finished successfully.\n"
+msgstr ""
+
+#: src/ap-tftp.c:340
+msgid "PLEASE BE _ABSOLUTELY_ SURE TO READ MANPAGE PRIOR USE!!!\n"
+msgstr ""
+
+#: src/ap-tftp.c:341
+#, c-format
+msgid ""
+"\n"
+"Usage: %s <-l firmware_file.rom> <IP>\n"
+msgstr ""
+
+#: src/ap-tftp.c:363
+msgid "TFTP client for upgrading firmware in ATMEL AT76C510 WiSOC-based APs.\n"
+msgstr ""
+
+#: src/ap-tftp.c:365
+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
+msgid "Error: invalid IP address format given.\n"
+msgstr ""
+
+#: src/ap-tftp.c:405
+msgid "Error while open()ing firmware file"
+msgstr ""
+
+#: src/ap-tftp.c:411 src/ap-tftp.c:462
+msgid "Error: invalid firmware file given.\n"
+msgstr ""
+
+#: src/ap-tftp.c:451
+#, c-format
+msgid ""
+"Firmware file contains:\n"
+"- string \"ATMEL\": %s\n"
+"- string \"802.11 AP\": %s\n"
+"- string \"atbrfirm.bin\": %s\n"
+"- string \"atsingle.bin\": %s\n"
+msgstr ""
+
+#: src/ap-tftp.c:474
+#, c-format
+msgid ""
+"Using:\n"
+"- server: %s\n"
+"- firmware file: \"%s\"\n"
+"- name used for upload: \"%s\"\n"
+msgstr ""
+
+#: src/ap-tftp.c:537
+msgid "Error while lseek()ing in firmware file\n"
+msgstr ""
+
+#: src/ap-trapd.c:150
+#, c-format
+msgid "ap-trapd %s started%s%s."
+msgstr "ap-trapd %s startat%s%s."
+
+#: src/ap-trapd.c:151
+msgid " on "
+msgstr " activat "
+
+#: src/ap-trapd.c:157
+msgid "Unable to fork. Exiting."
+msgstr "Nu se poate face fork. Ieºire."
+
+#: src/ap-trapd.c:161
+msgid "Can't create socket. Exiting."
+msgstr "Nu se poate crea socketul. Ieºire."
+
+#: src/ap-trapd.c:167
+msgid "Can't bind socket. Exiting."
+msgstr "Nu se poate face legãtura(bind) la socket. Ieºire."
+
+#: src/ap-trapd.c:174
+#, c-format
+msgid "Can't bind to device %s. Exiting."
+msgstr "Nu se poate face legãtura(bind) la device-ul %s. Ieºire."
+
+#: src/ap-trapd.c:185
+#, c-format
+msgid "Unable to process username %s. Error: %m."
+msgstr "Nu pot procesa username-ul %s. Eroare: %m."
+
+#: src/ap-trapd.c:190
+#, c-format
+msgid "Unable to change to uid %d."
+msgstr "Nu pot schimba în uid %d."
+
+#: src/ap-trapd.c:239
+#, c-format
+msgid ""
+"Received unknown SNMP ver %d trap. From %s:%d. Agent: %s. Community: %s."
+msgstr ""
+"S-a primit trap necunoscut SNMP ver %d. De la %s:%d. Agent: %s. Comunitate: %"
+"s."
+
+#: src/ap-trapd.c:311
+#, fuzzy, c-format
+msgid "Agent:v%d %s (%s@%s:%d) Trap %i: %s%s%s. SysUptime %d:%02d:%02d.%02d"
+msgstr "Agent:v%d %s (%s@%s:%d) %s%s%s. SysUptime %d:%02d:%02d.%02d"
+
+#: src/auth.c:30
+msgid "APClient authorization credentials"
+msgstr ""
+
+#: src/auth.c:32
+#, fuzzy
+msgid "[A] MAC authorization: "
+msgstr "[A] Autorizare prin MAC: %s"
+
+#: src/auth.c:33
+#, fuzzy
+msgid "Enter MAC: "
+msgstr "Introducere Mac:"
+
+#: src/auth.c:34
+#, fuzzy
+msgid "Delete Num: "
+msgstr "ªterge Num:"
+
+#: src/auth.c:35
+#, fuzzy
+msgid " NUM     MAC address     "
+msgstr "NUM     adresã MAC"
+
+#: src/auth.c:36
+#, fuzzy
+msgid "A: auth; N: new; D: del; arrows: scroll; W: write conf; Q: quit"
+msgstr ""
+"A - autentificare; N - nou; D - ºtergere; sãgeþi -scroll; W- scriere conf; Q "
+"- ieºire"
+
+#: src/auth.c:38
+msgid "[I] Radius server IP: "
+msgstr ""
+
+#: src/auth.c:39
+#, fuzzy
+msgid "[P] Radius server port: "
+msgstr "[P] Port primar: %s"
+
+#: src/auth.c:40
+msgid "[S] Radius server secret: "
+msgstr ""
+
+#: src/auth.c:41
+#, fuzzy
+msgid "[T] Reauthorization time (sec): "
+msgstr "[A] Autorizare prin MAC: %s"
+
+#: src/auth.c:42
+msgid "[F] Radius source port: "
+msgstr ""
+
+#: src/auth.c:43
+#, fuzzy
+msgid ""
+"A: auth; N: new; D: del; IPSTF: set; arrows: scroll; W: write conf; Q: quit"
+msgstr ""
+"A - autentificare; N - nou; D - ºtergere; sãgeþi -scroll; W- scriere conf; Q "
+"- ieºire"
+
+#: src/auth.c:45
+#, fuzzy
+msgid "[M] 802.1x authorization: "
+msgstr "[A] Autorizare prin MAC: %s"
+
+#: src/auth.c:46
+msgid "[T] key broadcasting time period (sec): "
+msgstr ""
+
+#: src/auth.c:47
+msgid "[I] 802.1x auth. server IP: "
+msgstr ""
+
+#: src/auth.c:48
+msgid "[S] 802.1x auth. server secret: "
+msgstr ""
+
+#: src/auth.c:49
+#, fuzzy
+msgid ""
+"A: auth; N: new; D: del; MTIS: set; arrows: scroll; W: write conf; Q: quit"
+msgstr ""
+"A - autentificare; N - nou; D - ºtergere; sãgeþi -scroll; W- scriere conf; Q "
+"- ieºire"
+
+#: src/auth.c:114
+#, fuzzy
+msgid "Internal"
+msgstr "General"
+
+#: src/auth.c:116
+#, fuzzy
+msgid "Radius"
+msgstr "Radio"
+
+#: src/auth.c:121
+msgid "Allow listed MACs only"
+msgstr ""
+
+#: src/auth.c:123
+msgid "Deny listed MACs only"
+msgstr ""
+
+#: src/auth.c:129
+msgid "Mixed environment"
+msgstr ""
+
+#: src/auth.c:213
+msgid "(not shown)"
+msgstr ""
+
+#: src/auth.c:270
+#, fuzzy
+msgid "Authorized MAC addresses:"
+msgstr "Adrese MAC Autorizate"
+
+#: src/auth.c:339
+msgid "(insufficient community used)"
+msgstr ""
+
+#: src/auth.c:466
+#, c-format
+msgid "Given MAC already exists in MAC list at position %d. Press any key."
+msgstr ""
+
+#: src/bridge.c:27
+msgid "[I] IP: "
+msgstr ""
+
+#: src/bridge.c:28
+#, fuzzy
+msgid "[N] Netmask: "
+msgstr "[N] Netmask: %s"
+
+#: src/bridge.c:29
+#, fuzzy
+msgid "[G] Gateway: "
+msgstr "[G] Gateway %s"
+
+#: src/bridge.c:30
+#, fuzzy
+msgid "[F] Filter non-IP traffic: "
+msgstr "[F] Filtrare traficul non IP: %s"
+
+#: src/bridge.c:31
+#, fuzzy
+msgid "[P] Primary port: "
+msgstr "[P] Port primar: %s"
+
+#: src/bridge.c:32
+#, fuzzy
+msgid "Attached station MAC: "
+msgstr "MAC ataºat staþiei: %02X%02X%02X%02X%02X%02X"
+
+#: src/bridge.c:33
+#, fuzzy
+msgid "[D] DHCP client: "
+msgstr "[D] Protocol DHCP: %s"
+
+#: src/bridge.c:34
+#, fuzzy
+msgid "[O] Operational mode: "
+msgstr "[O] Mod Operaþional: %s"
+
+#: src/bridge.c:35
+#, fuzzy
+msgid "[M] Preferred BSSID (remote MAC addr.): "
+msgstr "[R] Adresã Mac remote: %02X:%02X:%02X:%02X:%02X:%02X"
+
+#: src/bridge.c:36
+msgid "[C] Configuration-enabled port(s): "
+msgstr ""
+
+#: src/bridge.c:37
+msgid "[T] Trap-sending port: "
+msgstr ""
+
+#: src/bridge.c:38
+msgid "[R] Forward broadcast traffic: "
+msgstr ""
+
+#: src/bridge.c:39
+msgid "[B] Isolate wireless clients (broadcast traffic): "
+msgstr ""
+
+#: src/bridge.c:40
+msgid "[U] Isolate wireless clients (unicast traffic): "
+msgstr ""
+
+#: src/bridge.c:41
+#, fuzzy
+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/nwn_advanced.c:60
 #, c-format
 msgid "[D] DB Station Timeout: %d"
@@ -1741,35 +2261,50 @@ msgstr "Ultima eroare:"
 msgid "Error:"
 msgstr "Eroare:"
 
-#: src/stations.c:33
-msgid "AP link state"
+#: src/stations.c:82
+msgid "Not available (device not in AP mode)."
 msgstr ""
 
-#: src/stations.c:37
-msgid " #            MAC                                               "
+#: src/stations.c:93
+msgid "  #     MAC       Parent MAC  RSSI   LQ Sts MACn      IP        "
 msgstr ""
 
-#: src/stations.c:40
-msgid " #     MAC       Parent MAC    RSSI  Status MACn      IP        "
-msgstr ""
+#: src/stations.c:139
+msgid "AssociatedSTAsInfo packet error"
+msgstr "Eroare pachet AssociatedSTAsInfo"
 
-#: src/stations.c:195 src/stations.c:367
+#: src/stations.c:192 src/stations.c:364
 #, 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:200
+#: src/stations.c:196
 #, 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:279
+#: src/stations.c:276
 #, fuzzy
 msgid "Id       MAC address     Quality  Age  RSSI"
 msgstr "Id      Adresã MAC     Calitate  Vechime  RSSI"
 
+#, fuzzy
+#~ msgid "NUM       MAC address"
+#~ msgstr "NUM     adresã MAC"
+
+#, fuzzy
+#~ msgid "A - auth; IPSTF - set; W - write conf; Q - quit"
+#~ msgstr "DA - opþiuni; W - scriere configuraþie; Q - ieºire în meniu"
+
+#, fuzzy
+#~ msgid "A - auth; W - write conf; Q - quit"
+#~ msgstr "DA - opþiuni; W - scriere configuraþie; Q - ieºire în meniu"
+
+#~ msgid "Arrows - scroll; S - save to file; Q - quit to menu."
+#~ msgstr "Sãgeþi - scroll; S - salvare în fiºier; Q - ieºire în meniu."
+
 #~ msgid "Associated Stations"
 #~ msgstr "Staþii Asociate"
 
index 4697a96b2f7122b9db8cc58c341df0a4843bed94..cb8bfd2cae1ff59bd4ca8f295b2f8c929c4af556 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: 2004-11-28 00:59+0200\n"
+"POT-Creation-Date: 2005-01-16 02:07+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,313 +15,6 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Report-Msgid-Bugs-To: \n"
 
-#: ap-gl/ap-gl.c:41 ap-gl/bridge.c:178 src/ap-config.c:41 src/bridge.c:182
-msgid "Bridging"
-msgstr "Bağlanıyor"
-
-#: ap-gl/ap-gl.c:41 src/ap-config.c:41
-msgid "Set bridging and IP-related options"
-msgstr "Bağlantı kurma ve IP bağlantılı seçenekler"
-
-#: ap-gl/ap-gl.c:43 ap-gl/ap-gl.c:81 ap-gl/bridge.c:132 src/ap-config.c:43
-#: src/ap-config.c:112 src/ap-config.c:120 src/bridge.c:117 src/bridge.c:121
-msgid "Wireless"
-msgstr "Kablosuz"
-
-#: ap-gl/ap-gl.c:43 src/ap-config.c:43
-msgid "Set wireless options"
-msgstr "Kablosuz seçenekleri kur"
-
-#: ap-gl/ap-gl.c:44 src/ap-config.c:44 src/ap-config.c:56
-msgid "Privacy"
-msgstr "Gizlilik"
-
-#: ap-gl/ap-gl.c:45 src/ap-config.c:45 src/ap-config.c:57
-#, fuzzy
-msgid "MAC auth"
-msgstr "Mac adresini gir"
-
-#: ap-gl/ap-gl.c:46 src/ap-config.c:46 src/ap-config.c:58
-msgid "Community"
-msgstr "Topluluk"
-
-#: ap-gl/ap-gl.c:47 src/ap-config.c:47
-msgid "Radio"
-msgstr "Radyo"
-
-#: ap-gl/ap-gl.c:47 src/ap-config.c:47
-msgid "Set radio signal power and antenna options"
-msgstr "Radyo sinyal gücünü ve anten seçeneklerini ayarlayınız."
-
-#: ap-gl/ap-gl.c:62 src/ap-config.c:80
-msgid "Upload"
-msgstr "Yükleme"
-
-#: ap-gl/ap-gl.c:62 src/ap-config.c:80
-#, fuzzy
-msgid "Activate current configuration"
-msgstr "Geçerli yapılandırmaları aktif hale getir."
-
-#: ap-gl/ap-gl.c:63 src/ap-config.c:81
-msgid "Defaults"
-msgstr "Varsayılanlar"
-
-#: ap-gl/ap-gl.c:63 src/ap-config.c:81
-msgid "Restore factory default settings"
-msgstr "Fabrika varsayılan ayarlarını geri yükle "
-
-#: ap-gl/ap-gl.c:64 src/ap-config.c:82 src/ap-config.c:89
-msgid "Reset"
-msgstr "Sıfırla"
-
-#: ap-gl/ap-gl.c:65 src/ap-config.c:83
-msgid "Reset AP. All not uploaded configuration will be lost"
-msgstr "AP' yi sıfırla. Yüklenmemiş yapılandırmalar kaybolacaktır"
-
-#: ap-gl/ap-gl.c:66 src/ap-config.c:84
-msgid "TestMode"
-msgstr "TestKipi"
-
-#: ap-gl/ap-gl.c:66 src/ap-config.c:84
-msgid "Put Access Point in test mode"
-msgstr "Test kipine Erişim Noktası koy"
-
-#: ap-gl/ap-gl.c:79 src/ap-config.c:110 src/ap-config.c:119
-msgid "SysInfo"
-msgstr "Sistembilgisi"
-
-#: ap-gl/ap-gl.c:80 ap-gl/bridge.c:131 src/ap-config.c:111 src/bridge.c:116
-#: src/bridge.c:120
-msgid "Ethernet"
-msgstr "Eternet"
-
-#: ap-gl/ap-gl.c:80 src/ap-config.c:111
-msgid "Get ethernet port statistics"
-msgstr "Eternet bağlantı noktaları istatistiklerini bul"
-
-#: ap-gl/ap-gl.c:82 src/ap-config.c:113 src/ap-config.c:121
-msgid "Stations"
-msgstr "İstasyonlar"
-
-#: ap-gl/ap-gl.c:83 src/ap-config.c:114
-msgid "KnownAPs"
-msgstr "Bilinen AP' ler"
-
-#: ap-gl/ap-gl.c:83 src/ap-config.c:114
-msgid "Get info about known Access Points"
-msgstr "Bilinen Erişim Noktaları hakkında bilgi edinin."
-
-#: ap-gl/ap-gl.c:100 src/ap-config.c:147
-msgid "Info"
-msgstr "Bilgi"
-
-#: ap-gl/ap-gl.c:101 src/ap-config.c:148
-msgid "Config"
-msgstr "Yapılandırma"
-
-#: ap-gl/ap-gl.c:102 src/ap-config.c:149
-msgid "Commands"
-msgstr "Komutlar"
-
-#: ap-gl/ap-gl.c:102 src/ap-config.c:149
-msgid "Execute commands on Access Point"
-msgstr "Erişim Noktasında komut gönder"
-
-#: ap-gl/ap-gl.c:104 src/ap-config.c:151
-msgid "Connect"
-msgstr "Bağlan"
-
-#: ap-gl/ap-gl.c:105 src/ap-config.c:152
-msgid "Search"
-msgstr "Ara"
-
-#: ap-gl/ap-gl.c:106 lib/common.c:83 src/ap-config.c:153
-msgid "About"
-msgstr "Hakkında"
-
-#: ap-gl/ap-gl.c:107 src/ap-config.c:154
-msgid "Shell"
-msgstr "Kabuk"
-
-#: ap-gl/ap-gl.c:108 src/ap-config.c:155
-msgid "Exit"
-msgstr "Çıkış"
-
-#: ap-gl/ap-gl.c:158 src/ap-config.c:204
-#, c-format
-msgid "Wireless Access Point Configurator ver. %s"
-msgstr "Kablosuz Erişim Noktası Konfigürasyon Tanımlayıcısı Sürümü %s"
-
-#: ap-gl/auth_mac.c:27 src/auth_mac.c:27
-msgid "AuthorizedMacTableString packet error"
-msgstr "YetkiliMacTablosuDizgi paketi hatası"
-
-#: ap-gl/auth_mac.c:29 src/auth_mac.c:29
-#, fuzzy
-msgid "[A] MAC authorization: "
-msgstr "(A) Makro yetki: %s"
-
-#: ap-gl/auth_mac.c:30 src/auth_mac.c:30
-#, fuzzy
-msgid "Enter MAC: "
-msgstr "Makro gir"
-
-#: ap-gl/auth_mac.c:31 src/auth_mac.c:31
-#, fuzzy
-msgid "Delete Num: "
-msgstr "Numarayı sil:"
-
-#: ap-gl/auth_mac.c:32 src/auth_mac.c:32
-#, fuzzy
-msgid "Authorized MAC addresses"
-msgstr "Yetkili makro adresler"
-
-#: ap-gl/auth_mac.c:33
-#, fuzzy
-msgid "NUM       MAC address"
-msgstr "NUM MAKRO adres"
-
-#: ap-gl/auth_mac.c:34 src/auth_mac.c:34
-msgid "A - auth; N - new; D - del; arrows - scroll; W - write conf; Q - quit"
-msgstr ""
-"A - yetki; N - yeni; D - sil; oklar - kaydırma; W - yapılandırmayı yaz; Q - "
-"durdur "
-
-#: ap-gl/auth_mac.c:35
-#, fuzzy
-msgid "A - auth; IPSTF - set; W - write conf; Q - quit"
-msgstr "BPGINFDRT - kur;W - yapılandırmayı yaz; Q - menüye dön"
-
-#: ap-gl/auth_mac.c:36
-#, fuzzy
-msgid "A - auth; W - write conf; Q - quit"
-msgstr "DA -seçenekler; W - yapılandırmayı yaz; Q - menüye geri dön"
-
-#: ap-gl/auth_mac.c:38
-msgid "[I] RADIUS SERVER IP: "
-msgstr ""
-
-#: ap-gl/auth_mac.c:39
-msgid "[P] RADIUS SERVER PORT: "
-msgstr ""
-
-#: ap-gl/auth_mac.c:40
-msgid "[S] RADIUS SERVER SECRET: "
-msgstr ""
-
-#: ap-gl/auth_mac.c:41
-msgid "[T] REAUTHORIZATION TIME: "
-msgstr ""
-
-#: ap-gl/auth_mac.c:42
-msgid "[F] RADIUS SOURCE PORT: "
-msgstr ""
-
-#: ap-gl/auth_mac.c:87
-#, fuzzy
-msgid "Internal"
-msgstr "Genel"
-
-#: ap-gl/auth_mac.c:95
-msgid "<hidden>"
-msgstr ""
-
-#: ap-gl/bridge.c:26 src/bridge.c:26
-msgid "[I] IP: "
-msgstr ""
-
-#: ap-gl/bridge.c:27 src/bridge.c:27
-#, fuzzy
-msgid "[N] Netmask: "
-msgstr "[N] Ağ Maskesi: %s"
-
-#: ap-gl/bridge.c:28 src/bridge.c:28
-#, fuzzy
-msgid "[G] Gateway: "
-msgstr "(G) Ağ Geçidi %s"
-
-#: ap-gl/bridge.c:29 src/bridge.c:29
-#, fuzzy
-msgid "[F] Filter non-IP traffic: "
-msgstr "(F) IP- dışı trafik süzgeci: %s"
-
-#: ap-gl/bridge.c:30 src/bridge.c:30
-#, fuzzy
-msgid "[P] Primary port: "
-msgstr "(P) Gizli bağlantı noktaları: %s"
-
-#: ap-gl/bridge.c:31 src/bridge.c:31
-#, fuzzy
-msgid "Attached station MAC: "
-msgstr "İliştirilmiş MAC İstasyonu: %02X%02X%02X%02X%02X%02X"
-
-#: ap-gl/bridge.c:32 src/bridge.c:32
-#, fuzzy
-msgid "[D] DHCP client: "
-msgstr "(D) DHCP protokolü: %s"
-
-#: ap-gl/bridge.c:33 src/bridge.c:33
-#, fuzzy
-msgid "[O] Operational mode: "
-msgstr "(O) İşlemsel Kip: %s"
-
-#: ap-gl/bridge.c:34 src/bridge.c:34
-msgid "[M] Preferred BSSID (remote MAC addr.): "
-msgstr ""
-
-#: ap-gl/bridge.c:36 src/bridge.c:36
-msgid "[T] Trap-sending port(s): "
-msgstr ""
-
-#: ap-gl/bridge.c:37 src/bridge.c:37
-msgid "[R] Forward broadcast traffic: "
-msgstr ""
-
-#: ap-gl/bridge.c:39
-msgid "[U] Isolate wireless clients: "
-msgstr ""
-
-#: ap-gl/bridge.c:40 src/bridge.c:40
-#, fuzzy
-msgid "INGFPDOMSCTRBU - set; W - write conf; Q - quit to menu"
-msgstr "BPGINFDRT - kur;W - yapılandırmayı yaz; Q - menüye dön"
-
-#: ap-gl/bridge.c:124 src/bridge.c:109
-msgid "Wireless Bridge Point to MultiPoint"
-msgstr "Noktadan Çok Bağlantı Noktasına Kablosuz Köprü"
-
-#: ap-gl/bridge.c:125 src/bridge.c:110
-msgid "Access Point"
-msgstr "Erişim Noktası"
-
-#: ap-gl/bridge.c:126 src/bridge.c:111
-msgid "Access Point client"
-msgstr "Erşim Noktası Kullanıcısı"
-
-#: ap-gl/bridge.c:127 src/bridge.c:112
-msgid "Wireless Bridge Point to Point"
-msgstr "noktadan noktaya kablosuz köprü"
-
-#: ap-gl/bridge.c:128 src/bridge.c:113
-msgid "Repeater"
-msgstr "Yineleyici"
-
-#: ap-gl/stations.c:77 src/stations.c:100
-msgid "AP is currently in AP Client Mode => no associated STAtions."
-msgstr ""
-
-#: ap-gl/stations.c:102
-msgid "#     MAC       LQ    RSSI   Status Port IP"
-msgstr ""
-
-#: ap-gl/stations.c:128 src/stations.c:159
-msgid "AssociatedSTAsInfo packet error"
-msgstr "İlişkiliSTAbilgi paketi hatası"
-
-#: ap-gl/stations.c:160
-msgid "Arrows - scroll; S - save to file; Q - quit to menu."
-msgstr "Oklar - kaydırma; S - dosyaya kaydet; Q - menüye geri dön"
-
 #: lib/aps.c:29
 msgid "Known Access Points"
 msgstr "Tanımlana Erişim Noktaları"
@@ -360,7 +53,7 @@ msgstr ""
 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:91
+#: lib/aps.c:153 lib/cmd.c:45 lib/cmd.c:75 lib/test.c:96
 msgid "Do you want to continue? "
 msgstr "Devam etmek istiyor musunuz?"
 
@@ -666,79 +359,96 @@ 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:115
+#, 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
+msgid "AP list file ~/.ap-config successfully written. Press any key."
+msgstr ""
+
+#: lib/ap-utils.h:118
 msgid "Back to main menu"
 msgstr "Ana menüye geri dön."
 
-#: lib/ap-utils.h:116
+#: lib/ap-utils.h:119
 msgid "Exit program"
 msgstr "Programdan çık."
 
-#: lib/ap-utils.h:117
+#: lib/ap-utils.h:120
 #, 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:118
+#: lib/ap-utils.h:121
 msgid "Short info about program"
 msgstr "Program hakkında kısa bilgi"
 
-#: lib/ap-utils.h:119
+#: lib/ap-utils.h:122
 msgid "Find connected Access Points"
 msgstr "Bağlantılı Erişim Noktalarını bul."
 
-#: lib/ap-utils.h:120
+#: lib/ap-utils.h:123
 msgid "Set connection options: ip and community"
 msgstr "Bağlantı seçeneklerini ayarla: ip ve topluluk "
 
-#: lib/ap-utils.h:121
+#: lib/ap-utils.h:124
 #, fuzzy
 msgid "Set encryption; edit WEP keys"
 msgstr "Kriptolamayı ayarla, WEP tuşlarını düzenle."
 
-#: lib/ap-utils.h:122
+#: lib/ap-utils.h:125
 #, fuzzy
-msgid "Set MAC authorization; edit MAC authorization table"
+msgid "Set authorization; edit MAC authorization table"
 msgstr "Makro yetkiyi ayarla, makro yetki tablosunu düzelt."
 
-#: lib/ap-utils.h:123
+#: lib/ap-utils.h:126
 #, 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:124
+#: lib/ap-utils.h:127
 #, 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:125
+#: lib/ap-utils.h:128
 #, fuzzy
 msgid "Get wireless port statistics"
 msgstr "kablosuz bağlantı noktaları istatistiklerine ulaş."
 
-#: lib/ap-utils.h:126
+#: lib/ap-utils.h:129
 #, fuzzy
 msgid "Get list of currently associated stations (Access Point clients)"
 msgstr "Geçerli ilişkilendirilmiş istasyonlar listesine ulaş"
 
-#: lib/ap-utils.h:127
+#: lib/ap-utils.h:130
+msgid "Get link status in APclient mode"
+msgstr ""
+
+#: lib/ap-utils.h:131
 #, fuzzy
 msgid "Get info and statistics from AP"
 msgstr "AP bilgi ve istatistiklerine ulaş"
 
-#: lib/ap-utils.h:128
+#: lib/ap-utils.h:132
 #, fuzzy
 msgid "Set various configuration options"
 msgstr "Çeşitli yapılandırma seçenekleri kurma "
 
-#: lib/ap-utils.h:130
+#: lib/ap-utils.h:134
 msgid "Associated stations"
 msgstr "İlişkili istasyonlar"
 
-#: lib/ap-utils.h:132
+#: lib/ap-utils.h:135
+msgid "AP Client link state"
+msgstr ""
+
+#: lib/ap-utils.h:137
 msgid "Polling: on"
 msgstr ""
 
-#: lib/ap-utils.h:133
+#: lib/ap-utils.h:138
 msgid "Polling: off"
 msgstr ""
 
@@ -839,42 +549,46 @@ msgstr "Erişim Noktası"
 msgid "Save connect-settings: "
 msgstr "Bağlantı ayarlarını kaydediniz."
 
-#: lib/common.c:100
+#: lib/common.c:84 src/ap-config.c:154
+msgid "About"
+msgstr "Hakkında"
+
+#: lib/common.c:101
 #, c-format
 msgid "From %s"
 msgstr "%s' ten"
 
-#: lib/common.c:102
+#: lib/common.c:103
 #, c-format
 msgid "Version %s"
 msgstr "Sürüm %s"
 
-#: lib/common.c:105
+#: lib/common.c:106
 msgid "Written by Roman Festchook roma@polesye.net"
 msgstr "Roman Festchook tarafından yazılmıştır roma@polesye.net"
 
-#: lib/common.c:107
-msgid "Portions by Jan Rafaj aputils@cedric.unob.cz"
+#: lib/common.c:108
+msgid "and Jan Rafaj jr-aputils@cedric.unob.cz"
 msgstr ""
 
-#: lib/common.c:109
+#: lib/common.c:110
 #, fuzzy
-msgid "Copyright (c) 2001-2004"
+msgid "Copyright (c) 2001-2005"
 msgstr "Telif Hakkı (c) Roman Festchoo 2001-2002"
 
-#: lib/common.c:111
+#: lib/common.c:112
 msgid "Roman Festchook and Jan Rafaj"
 msgstr ""
 
-#: lib/common.c:114
+#: lib/common.c:115
 msgid "This program is distributed under the terms"
 msgstr "Bu program GNU Toplu Kamu Lisansı Sürüm 2"
 
-#: lib/common.c:116
+#: lib/common.c:117
 msgid "of the GNU General Public License version 2."
 msgstr "denetiminde dağıtılmaktadır. "
 
-#: lib/common.c:118
+#: lib/common.c:119
 msgid "See the included COPYING file for details."
 msgstr "Ayrıntılar için mevcuti KOPYALAMA dosyasına bakınız."
 
@@ -890,16 +604,16 @@ msgstr "Erişim Noktanızın IP adresini giriniz."
 msgid "Entered characters will not be displayed for security reason."
 msgstr "Girdiğiniz karakterler güvenlik nedeniyle gösterilmeyecektir."
 
-#: lib/common.c:266
+#: lib/common.c:259
 msgid "This label will be stored on HDD (independently on AP name!)."
 msgstr ""
 
-#: lib/common.c:361
+#: lib/common.c:370
 #, fuzzy
 msgid "Trying to probe AP for MIB properties. Please wait..."
 msgstr "AP' ye veri yazılıyor. Lütfen bekleyin."
 
-#: lib/common.c:390
+#: lib/common.c:399
 #, fuzzy
 msgid ""
 "Unable to determine AP MIB properties (no response from AP). Press any key."
@@ -926,21 +640,12 @@ msgstr "AP numarasına bağlan:"
 msgid "Delete num:"
 msgstr "numarayı sil"
 
-#: lib/file.c:372
-msgid "AP list file ~/.ap-config successfully written. Press any key."
-msgstr ""
-
-#: lib/file.c:376
-#, 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/file.c:426
+#: lib/file.c:458
 #, 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:428
+#: lib/file.c:460
 msgid "Stations file succesfully written. Press any key."
 msgstr ""
 
@@ -954,12 +659,12 @@ msgstr "Geçersiz IP- adresi"
 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:412
+#: lib/input.c:413
 #, 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:6056
+#: lib/oui.c:6058
 msgid "Unknown or Private"
 msgstr "Bilinmiyor ya da gizli"
 
@@ -1006,7 +711,7 @@ msgstr ""
 "İki anten birden geçersiz kılınamaz, anten yapılandırması kaydedilemiyor. "
 "Bir tuşa basınız."
 
-#: lib/scr.c:168
+#: lib/scr.c:156
 #, fuzzy, c-format
 msgid "Current AP: %s Type: %s Ext: %s"
 msgstr "Geçerli AP: %s Çeşit: %s"
@@ -1047,6 +752,152 @@ msgstr ""
 "TUŞ - topluluk/ şifre ayarını yapınız; W - tamamlanmış AP'ye yapılandırma "
 "yapınız."
 
+#: lib/set_oeminfo.c:28
+#, fuzzy
+msgid "Info structure version: "
+msgstr "YapıSürüm: %lu"
+
+#: lib/set_oeminfo.c:29
+#, fuzzy
+msgid "[M] Device MAC address: "
+msgstr "NUM MAKRO adres"
+
+#: lib/set_oeminfo.c:30
+#, fuzzy
+msgid "    Manufacturer with this OUI: "
+msgstr "Üretici ID:"
+
+#: lib/set_oeminfo.c:31
+#, fuzzy
+msgid "[D] Regulatory domain: "
+msgstr "Düzenleme Alanı: %s"
+
+#: lib/set_oeminfo.c:32
+#, fuzzy
+msgid "[T] Product type: "
+msgstr "ÜrünTürü: %lu"
+
+#: lib/set_oeminfo.c:33
+#, fuzzy
+msgid "[E] OEM name: "
+msgstr "OEMAdı:"
+
+#: lib/set_oeminfo.c:34
+msgid "[I] OEM ID: "
+msgstr ""
+
+#: lib/set_oeminfo.c:35
+#, fuzzy
+msgid "[N] Product name: "
+msgstr "Ürün Adı"
+
+#: lib/set_oeminfo.c:36
+#, fuzzy
+msgid "[H] Hardware revision: "
+msgstr "DonanımDeğişiklikleri: %lu"
+
+#: lib/set_oeminfo.c:37
+#, fuzzy
+msgid "[O] Country code: "
+msgstr "[O] Komut: %s"
+
+#: lib/set_oeminfo.c:38
+#, fuzzy
+msgid "[C] Default channel: "
+msgstr "[C] Sıklık Kanalı: %02u (%u MHz)"
+
+#: lib/set_oeminfo.c:39
+#, fuzzy
+msgid "[A] Calibrated channels: "
+msgstr "[C] Sıklık Kanalı: %02u (%u MHz)"
+
+#: lib/set_oeminfo.c:40
+msgid "[P] Nominal Tx Power (CR31) value for calibrated channels: "
+msgstr ""
+
+#: lib/set_oeminfo.c:41
+#, fuzzy
+msgid ""
+"Keys in brackets - set corresponding option; W - write conf; Q - quit to menu"
+msgstr "(tuş) - seçenek kur; W - yapılandırmayı yaz; Q - menüye geri dön"
+
+#: lib/set_oeminfo.c:101
+msgid "THIS IS A SECRET MENU LEADING TO VERY DANGEROUS OPTIONS."
+msgstr ""
+
+#: lib/set_oeminfo.c:103
+msgid "It is intended only for WISPs and repair shops."
+msgstr ""
+
+#: lib/set_oeminfo.c:107
+msgid "It allows to set OEM information stored in the AP (like its"
+msgstr ""
+
+#: lib/set_oeminfo.c:109
+msgid "MAC address, manuf. name, OEM ID, etc.). BE ABSOLUTELY SURE"
+msgstr ""
+
+#: lib/set_oeminfo.c:111
+msgid "THAT YOU KNOW WHAT YOU ARE DOING, AND THAT YOU HAVE THE"
+msgstr ""
+
+#: lib/set_oeminfo.c:113
+msgid "LEGAL RIGHT TO DO ANY MODIFICATION. Disobserving of these"
+msgstr ""
+
+#: lib/set_oeminfo.c:115
+msgid "rules may lead you into a conflict with your local"
+msgstr ""
+
+#: lib/set_oeminfo.c:117
+msgid "regulations and/or law."
+msgstr ""
+
+#: lib/set_oeminfo.c:119
+msgid "Also be warned that the setting of any from these options"
+msgstr ""
+
+#: lib/set_oeminfo.c:121
+msgid "may DAMAGE YOUR AP (other reason why this menu is hidden)."
+msgstr ""
+
+#: lib/set_oeminfo.c:123
+msgid "Values changed here will NOT be restored upon reset"
+msgstr ""
+
+#: lib/set_oeminfo.c:125
+msgid "of the device to factory defaults! It is advisable to"
+msgstr ""
+
+#: lib/set_oeminfo.c:127
+msgid "write them down somewhere prior their changing."
+msgstr ""
+
+#: lib/set_oeminfo.c:129
+msgid "Finally, note that you need to use MANUFACTURER community, "
+msgstr ""
+
+#: lib/set_oeminfo.c:131
+msgid "in order to be able to do any OEM info modification."
+msgstr ""
+
+#: lib/set_oeminfo.c:133
+msgid "Proceed further only at your full risk and responsibility. "
+msgstr ""
+
+#: lib/set_oeminfo.c:135
+msgid "You got the warnings."
+msgstr ""
+
+#: lib/set_oeminfo.c:141
+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"
@@ -1087,161 +938,186 @@ msgstr "Sistem Tanımı:"
 msgid "System Info"
 msgstr "Sistem Bilgisi"
 
-#: lib/sysinfo.c:120
+#: lib/sysinfo.c:54 src/bridge.c:86
+msgid "Wireless Bridge Point to MultiPoint"
+msgstr "Noktadan Çok Bağlantı Noktasına Kablosuz Köprü"
+
+#: lib/sysinfo.c:55 src/bridge.c:87
+msgid "Access Point"
+msgstr "Erişim Noktası"
+
+#: lib/sysinfo.c:56 src/bridge.c:88
+msgid "Access Point client"
+msgstr "Erşim Noktası Kullanıcısı"
+
+#: lib/sysinfo.c:57 src/bridge.c:89
+msgid "Wireless Bridge Point to Point"
+msgstr "noktadan noktaya kablosuz köprü"
+
+#: lib/sysinfo.c:58 src/bridge.c:90
+msgid "Repeater"
+msgstr "Yineleyici"
+
+#: lib/sysinfo.c:59 lib/sysinfo.c:314 lib/sysinfo.c:423 src/bridge.c:91
+msgid "unknown"
+msgstr "tanımlanamayan"
+
+#: lib/sysinfo.c:143
 msgid "Device hardware/software/name info:"
 msgstr ""
 
-#: lib/sysinfo.c:154
+#: lib/sysinfo.c:171
+#, fuzzy, c-format
+msgid "Operational mode: %s"
+msgstr "(O) İşlemsel Kip: %s"
+
+#: lib/sysinfo.c:181
 #, fuzzy
-msgid "Product name:"
+msgid "Product name: "
 msgstr "Ürün Adı"
 
-#: lib/sysinfo.c:158
+#: lib/sysinfo.c:185
 #, fuzzy, c-format
 msgid "Product type: %u"
 msgstr "ÜrünTürü: %lu"
 
-#: lib/sysinfo.c:161
+#: lib/sysinfo.c:188
 #, fuzzy
-msgid "OEM name:"
+msgid "OEM name: "
 msgstr "OEMAdı:"
 
-#: lib/sysinfo.c:168
+#: lib/sysinfo.c:195
 #, fuzzy, c-format
 msgid "Hardware revision: %u"
 msgstr "DonanımDeğişiklikleri: %lu"
 
-#: lib/sysinfo.c:176
+#: lib/sysinfo.c:203
 #, fuzzy, c-format
 msgid "Info structure version: %u"
 msgstr "YapıSürüm: %lu"
 
-#: lib/sysinfo.c:179 lib/sysinfo.c:355
+#: lib/sysinfo.c:206 lib/sysinfo.c:382
 #, c-format
 msgid "Manufacturer OUI: %02X %02X %02X (%s)"
 msgstr "Üretici OUI: %02X %02X %02X (%s)"
 
-#: lib/sysinfo.c:196
+#: lib/sysinfo.c:223
 #, 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:284
+#: lib/sysinfo.c:311
 msgid "FHSS 2.4 GHz"
 msgstr "FHSS 2.4 GHz"
 
-#: lib/sysinfo.c:284
+#: lib/sysinfo.c:311
 msgid "DSSS 2.4 GHz"
 msgstr "DSSS 2.4 GHz"
 
-#: lib/sysinfo.c:284
+#: lib/sysinfo.c:311
 msgid "IR Baseband"
 msgstr "IR Tabanbant"
 
-#: lib/sysinfo.c:285
+#: lib/sysinfo.c:312
 msgid "Commercial range 0..40 C"
 msgstr "Ticari Aralık 0..40 C"
 
-#: lib/sysinfo.c:286
+#: lib/sysinfo.c:313
 msgid "Industrial range -30..70 C"
 msgstr "Endüstriyel aralık -30..70 C"
 
-#: lib/sysinfo.c:287 lib/sysinfo.c:396
-msgid "unknown"
-msgstr "tanımlanamayan"
-
-#: lib/sysinfo.c:289
+#: lib/sysinfo.c:316
 msgid "manual"
 msgstr "kılavuz"
 
-#: lib/sysinfo.c:289
+#: lib/sysinfo.c:316
 msgid "notsupported"
 msgstr "desteklenmiyor"
 
-#: lib/sysinfo.c:289
+#: lib/sysinfo.c:316
 msgid "dynamic"
 msgstr "dinamik"
 
-#: lib/sysinfo.c:345
+#: lib/sysinfo.c:372
 msgid "Manufacturer:"
 msgstr "Üretici:"
 
-#: lib/sysinfo.c:350
+#: lib/sysinfo.c:377
 msgid "Manufacturer ID:"
 msgstr "Üretici ID:"
 
-#: lib/sysinfo.c:361
+#: lib/sysinfo.c:388
 msgid "Product Name:"
 msgstr "Ürün Adı"
 
-#: lib/sysinfo.c:367
+#: lib/sysinfo.c:394
 msgid "Product ID:"
 msgstr "Ürün ID:"
 
-#: lib/sysinfo.c:373
+#: lib/sysinfo.c:400
 msgid "Product Version:"
 msgstr "Ürün Sürümü:"
 
-#: lib/sysinfo.c:379
+#: lib/sysinfo.c:406
 #, c-format
 msgid "PHYType: %s"
 msgstr "PHYTürü: %s"
 
-#: lib/sysinfo.c:382
+#: lib/sysinfo.c:409
 #, c-format
 msgid "Temperature: %s"
 msgstr "Sıcaklık: %s"
 
-#: lib/sysinfo.c:390
+#: lib/sysinfo.c:417
 #, fuzzy, c-format
 msgid "Regulatory Domain: %s"
 msgstr "Düzenleme Alanı: %s"
 
-#: lib/sysinfo.c:391
+#: lib/sysinfo.c:418
 msgid "FCC (USA)"
 msgstr "FCC ( Amerika)"
 
-#: lib/sysinfo.c:392
+#: lib/sysinfo.c:419
 msgid "DOC (Canada)"
 msgstr "DOC (Kanada)"
 
-#: lib/sysinfo.c:393
+#: lib/sysinfo.c:420
 msgid "ETSI (Europe)"
 msgstr "ETSI (Avrupa)"
 
-#: lib/sysinfo.c:394
+#: lib/sysinfo.c:421
 msgid "Spain"
 msgstr "İspanya"
 
-#: lib/sysinfo.c:395
+#: lib/sysinfo.c:422
 msgid "France"
 msgstr "Fransa"
 
-#: lib/sysinfo.c:396
+#: lib/sysinfo.c:423
 msgid "MKK (Japan)"
 msgstr "MKK ( Japonya)"
 
-#: lib/sysinfo.c:399
+#: lib/sysinfo.c:426
 #, c-format
 msgid "Transmit Power: %u mW"
 msgstr "Geçiş süresi: %u mW"
 
-#: lib/sysinfo.c:429
+#: lib/sysinfo.c:456
 #, fuzzy, c-format
 msgid "WEP implemented: %s"
 msgstr "WEP girildi: %s"
 
-#: lib/sysinfo.c:432
+#: lib/sysinfo.c:459
 #, c-format
 msgid "Diversity: %s"
 msgstr "Çeşitleme: %s"
 
-#: lib/sysinfo.c:460
+#: lib/sysinfo.c:487
 #, c-format
 msgid "Uptime: %u:%02u:%02u.%02u"
 msgstr "işlem süresi: %u:%02u:%02u.%02u"
 
-#: lib/sysinfo.c:480
+#: lib/sysinfo.c:507
 #, c-format
 msgid "IP  Address: %s"
 msgstr "IP Adresi: %s"
@@ -1289,34 +1165,38 @@ msgstr "Sol"
 msgid "Right"
 msgstr "Sağ"
 
-#: lib/test.c:86
+#: lib/test.c:79
+msgid "Devices with ATMEL12350 MIB not yet supported."
+msgstr ""
+
+#: lib/test.c:91
 #, fuzzy
 msgid "Test mode"
 msgstr "Test Kipi"
 
-#: lib/test.c:89
+#: lib/test.c:94
 #, fuzzy
 msgid "Using the \"Test mode\" may cause loss of your current"
 msgstr "Test kipi kullanımı mevcut yapılandırmada kayıplara yol açabilir."
 
-#: lib/test.c:90
+#: lib/test.c:95
 #, fuzzy
 msgid "configuration."
 msgstr "Yapılandırmayı yükle"
 
-#: lib/test.c:102
+#: lib/test.c:107
 msgid "Options:"
 msgstr "Seçenekler:"
 
-#: lib/test.c:128
+#: lib/test.c:133
 msgid "Statistics:"
 msgstr "İstatistikler:"
 
-#: lib/test.c:129
+#: lib/test.c:134
 msgid "Success Frames: 0 Failed Frames: 0"
 msgstr "Başarı Profili: 0 Başarısızlık Profili: 0"
 
-#: lib/test.c:190
+#: lib/test.c:195
 #, c-format
 msgid "Success Frames: %lu Failed Frames: %lu"
 msgstr "Başarı Profili: %lu  Başarısızlık Profili: %lu"
@@ -1451,7 +1331,7 @@ msgid "[D] DTIM sending interval (beacons): "
 msgstr ""
 
 #: lib/wlan.c:48
-msgid "[T] SIFS time (msec): "
+msgid "[T] SIFS time (ACK timeout) msec: "
 msgstr ""
 
 #: lib/wlan.c:49
@@ -1485,35 +1365,27 @@ msgstr ""
 "UIOPTY - anten; SCANLEDFR1234 - seçenekler; W - yapılandırmayı yaz; Q - "
 "menüye geri dön"
 
-#: src/ap-config.c:54
-msgid "General"
-msgstr "Genel"
-
-#: src/ap-config.c:54
-msgid "Set general options"
-msgstr "Genel seçenekleri kurunuz"
-
-#: src/ap-config.c:55
-msgid "Advanced"
-msgstr "Gelişmiş"
+#: src/ap-auth.c:32 src/auth.c:28
+msgid "AuthorizedMacTableString packet error"
+msgstr "YetkiliMacTablosuDizgi paketi hatası"
 
-#: src/ap-config.c:55
-msgid "Set advanced options"
-msgstr "Gelişmiş seçenekleri kurunuz"
+#: src/ap-auth.c:33
+msgid "Invalid data in source file"
+msgstr ""
 
-#: src/ap-config.c:89
-msgid "Reset AP."
-msgstr "AP'yi sıfırla"
+#: src/ap-auth.c:34
+msgid "Can't open file"
+msgstr ""
 
-#: src/ap-config.c:122
-msgid "Latest"
-msgstr "Son haberler"
+#: src/ap-auth.c:35
+msgid "Can't write to file"
+msgstr ""
 
-#: src/ap-config.c:122
-msgid "Get info about latest events"
-msgstr "son gelişmeler hakkında bilgi edinin."
+#: src/ap-auth.c:36
+msgid "Error closing file"
+msgstr ""
 
-#: src/ap-mrtg.c:42
+#: src/ap-auth.c:45 src/ap-mrtg.c:42 src/ap-rrd.c:42
 msgid ""
 "\n"
 "Usage:\n"
@@ -1521,169 +1393,816 @@ msgstr ""
 "\n"
 "Kullanım:\n"
 
-#: src/ap-mrtg.c:44
-#, fuzzy
+#: src/ap-auth.c:46
+msgid "\tap-auth -i ip -c community -d filename [-h]\n"
+msgstr ""
+
+#: src/ap-auth.c:47
 msgid ""
-"\tap-mrtg -i ip -c community -t type [-b bssid] [-n name] [-a aptype] [-v] [-"
-"h] [-r]\n"
+"\tap-auth -i ip -c community -u filename [-h]\n"
 "\n"
 msgstr ""
-"\tap-mrtg -i ip -c topluluk -t türü [-b bssid] [-v] [-h] [-r]\n"
-"\n"
 
-#: src/ap-mrtg.c:46
+#: src/ap-auth.c:48
 msgid ""
-"Get stats from AP and return it in MRTG parsable format\n"
+"Change accesspoint's list of authorised MAC addresses\n"
 "\n"
 msgstr ""
-"AP'den istatistik al ve çözümlenebilir formatta MRTG'ye aktar\n"
-"\n"
 
-#: src/ap-mrtg.c:47
+#: src/ap-auth.c:49 src/ap-mrtg.c:46 src/ap-rrd.c:47
 msgid "-i ip        - AP ip address\n"
 msgstr "-i ip        - AP ip adresi\n"
 
-#: src/ap-mrtg.c:48
+#: src/ap-auth.c:50 src/ap-mrtg.c:47 src/ap-rrd.c:48
 msgid "-c community - SNMP community string\n"
 msgstr "-c topluluk - SNMP topluluk dizgisi\n"
 
-#: src/ap-mrtg.c:50
-msgid ""
-"-t type      - statistics type <w>ireless, <e>thernet, associated <s>tations "
-"or <l>ink quality in client mode\n"
-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:52
+#: src/ap-auth.c:51
 msgid ""
-"-b bssid     - mac address of the AP to which get link quality, only if "
-"type=l\n"
-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
-msgid "-n name     - AP name - for check only\n"
+"-d filename  - download list of authorised MAC addresses from AP to a file\n"
 msgstr ""
 
-#: src/ap-mrtg.c:54
+#: src/ap-auth.c:53
 msgid ""
-"-a aptype        - AP type - 410 (default) or 510 for ATMEL12350's, like the "
-"ME-102\n"
-msgstr ""
-
-#: src/ap-mrtg.c:56
-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:57
-msgid "-r           - reset AP when getting LinkQuality stats\n"
+"-u filename  - upload list of authorised MAC addresses from a file to AP\n"
 msgstr ""
-"-r           - BağlantıKalitesi istatistiklerini alıp AP'yi yeniden başlat \n"
 
-#: src/ap-mrtg.c:58
+#: src/ap-auth.c:55 src/ap-mrtg.c:56 src/ap-rrd.c:57
 msgid ""
 "-h           - print this help screen\n"
 "\n"
 msgstr "-h            - bu yardım ekranını yazdır\n"
 
-#: src/ap-mrtg.c:59
+#: src/ap-auth.c:56
 #, fuzzy, c-format
 msgid ""
-"ap-mrtg %s Copyright (c) 2002-2003 Roman Festchook\n"
+"ap-auth %s Copyright (c) 2004 Teemu Kiviniemi\n"
 "\n"
 msgstr ""
 "ap-mrtg %s Telifhakkı (c) 2002 Roman Festchook\n"
 "\n"
 
-#: src/ap-mrtg.c:143
-msgid "Invalid IP-address\n"
+#: src/ap-auth.c:146 src/ap-mrtg.c:139
+#, fuzzy
+msgid "Error: invalid IP-address.\n"
 msgstr "geçersiz IP-adresi\n"
 
-#: src/ap-mrtg.c:188
-#, c-format
-msgid "Invalid AP-Type '%s' - valid types are 510 or 410\n"
-msgstr ""
-
-#: src/ap-mrtg.c:207
+#: 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-mrtg.c:211
+#: 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-trapd.c:148
-#, c-format
-msgid "ap-trapd %s started%s%s."
-msgstr "ap-trapd %s başladı%s%s."
+#: src/ap-auth.c:220 src/ap-mrtg.c:220
+#, 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-trapd.c:149
-msgid " on "
-msgstr "aktif"
+#: src/ap-auth.c:228
+msgid "NWN devices are not yet supported."
+msgstr ""
 
-#: src/ap-trapd.c:155
-msgid "Unable to fork. Exiting."
-msgstr "Çatallayamıyor. Çıkıyor."
+#: src/ap-config.c:41 src/bridge.c:200
+msgid "Bridging"
+msgstr "Bağlanıyor"
 
-#: src/ap-trapd.c:159
-msgid "Can't create socket. Exiting."
-msgstr "Yuva oluşturulamıyor. Çıkıyor."
+#: src/ap-config.c:41
+msgid "Set bridging and IP-related options"
+msgstr "Bağlantı kurma ve IP bağlantılı seçenekler"
 
-#: src/ap-trapd.c:165
-msgid "Can't bind socket. Exiting."
-msgstr "Yuva bağlanamıyor. Çıkıyor."
+#: src/ap-config.c:43 src/ap-config.c:112 src/ap-config.c:121 src/bridge.c:124
+msgid "Wireless"
+msgstr "Kablosuz"
 
-#: src/ap-trapd.c:172
-#, c-format
-msgid "Can't bind to device %s. Exiting."
-msgstr "Aygıta bağlanamıyor %s. Çıkıyor."
+#: src/ap-config.c:43
+msgid "Set wireless options"
+msgstr "Kablosuz seçenekleri kur"
 
-#: src/ap-trapd.c:183
-#, c-format
-msgid "Unable to process username %s. Error: %m."
-msgstr "kullanıcı adı işlemiyor %s. hata: %m."
+#: src/ap-config.c:44 src/ap-config.c:56
+msgid "Privacy"
+msgstr "Gizlilik"
 
-#: src/ap-trapd.c:188
-#, c-format
-msgid "Unable to change to uid %d."
-msgstr "uid' ye geçiş sağlanamıyor %d."
+#: src/ap-config.c:45
+#, fuzzy
+msgid "Auth"
+msgstr "Hakkında"
 
-#: src/ap-trapd.c:235
-#, c-format
-msgid ""
-"Received unknown SNMP ver %d trap. From %s:%d. Agent: %s. Community: %s."
-msgstr ""
-"tanımlanamayan SNMP sürümü alındı %d tuzağı. %s'ten:%d.Aracı: %s.Topluluk:%s."
+#: src/ap-config.c:46 src/ap-config.c:58
+msgid "Community"
+msgstr "Topluluk"
 
-#: src/ap-trapd.c:307
-#, c-format
-msgid "Agent:v%d %s (%s@%s:%d) %s%s%s. SysUptime %d:%02d:%02d.%02d"
-msgstr "Aracı:v%d %s (%s@%s:%d) %s%s%s. SistemİşlemSüresi %d:%02d:%02d.%02d"
+#: src/ap-config.c:47
+msgid "Radio"
+msgstr "Radyo"
 
-#: src/auth_mac.c:33
-#, fuzzy
-msgid "NUM     MAC address"
-msgstr "NUM MAKRO adres"
+#: src/ap-config.c:47
+msgid "Set radio signal power and antenna options"
+msgstr "Radyo sinyal gücünü ve anten seçeneklerini ayarlayınız."
 
-#: src/bridge.c:35
-msgid "[C] Configuration-enabled port(s): "
-msgstr ""
+#: src/ap-config.c:54
+msgid "General"
+msgstr "Genel"
 
-#: src/bridge.c:38
-msgid "[B] Isolate wireless clients (broadcast traffic): "
-msgstr ""
+#: src/ap-config.c:54
+msgid "Set general options"
+msgstr "Genel seçenekleri kurunuz"
 
-#: src/bridge.c:39
-msgid "[U] Isolate wireless clients (unicast traffic): "
-msgstr ""
+#: src/ap-config.c:55
+msgid "Advanced"
+msgstr "Gelişmiş"
 
-#: src/bridge.c:119
-#, fuzzy
-msgid "Both"
+#: src/ap-config.c:55
+msgid "Set advanced options"
+msgstr "Gelişmiş seçenekleri kurunuz"
+
+#: src/ap-config.c:57
+#, fuzzy
+msgid "MAC auth"
+msgstr "Mac adresini gir"
+
+#: src/ap-config.c:80
+msgid "Upload"
+msgstr "Yükleme"
+
+#: src/ap-config.c:80
+#, fuzzy
+msgid "Activate current configuration"
+msgstr "Geçerli yapılandırmaları aktif hale getir."
+
+#: src/ap-config.c:81
+msgid "Defaults"
+msgstr "Varsayılanlar"
+
+#: src/ap-config.c:81
+msgid "Restore factory default settings"
+msgstr "Fabrika varsayılan ayarlarını geri yükle "
+
+#: src/ap-config.c:82 src/ap-config.c:89
+msgid "Reset"
+msgstr "Sıfırla"
+
+#: src/ap-config.c:83
+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
+msgid "TestMode"
+msgstr "TestKipi"
+
+#: src/ap-config.c:84
+msgid "Put Access Point in test mode"
+msgstr "Test kipine Erişim Noktası koy"
+
+#: src/ap-config.c:89
+msgid "Reset AP."
+msgstr "AP'yi sıfırla"
+
+#: src/ap-config.c:110 src/ap-config.c:120
+msgid "SysInfo"
+msgstr "Sistembilgisi"
+
+#: src/ap-config.c:111 src/bridge.c:123 src/bridge.c:127
+msgid "Ethernet"
+msgstr "Eternet"
+
+#: src/ap-config.c:111
+msgid "Get ethernet port statistics"
+msgstr "Eternet bağlantı noktaları istatistiklerini bul"
+
+#: src/ap-config.c:113 src/ap-config.c:122
+msgid "Stations"
+msgstr "İstasyonlar"
+
+#: src/ap-config.c:114
+msgid "AP link"
+msgstr ""
+
+#: src/ap-config.c:115
+msgid "KnownAPs"
+msgstr "Bilinen AP' ler"
+
+#: src/ap-config.c:115
+msgid "Get info about known Access Points"
+msgstr "Bilinen Erişim Noktaları hakkında bilgi edinin."
+
+#: src/ap-config.c:123
+msgid "Latest"
+msgstr "Son haberler"
+
+#: src/ap-config.c:123
+msgid "Get info about latest events"
+msgstr "son gelişmeler hakkında bilgi edinin."
+
+#: src/ap-config.c:148
+msgid "Info"
+msgstr "Bilgi"
+
+#: src/ap-config.c:149
+msgid "Config"
+msgstr "Yapılandırma"
+
+#: src/ap-config.c:150
+msgid "Commands"
+msgstr "Komutlar"
+
+#: src/ap-config.c:150
+msgid "Execute commands on Access Point"
+msgstr "Erişim Noktasında komut gönder"
+
+#: src/ap-config.c:152
+msgid "Connect"
+msgstr "Bağlan"
+
+#: src/ap-config.c:153
+msgid "Search"
+msgstr "Ara"
+
+#: src/ap-config.c:155
+msgid "Shell"
+msgstr "Kabuk"
+
+#: src/ap-config.c:156
+msgid "Exit"
+msgstr "Çıkış"
+
+#: src/ap-config.c:214
+#, 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
+msgid "RSSI:     ["
+msgstr ""
+
+#: src/aplink.c:29
+msgid "RSSI avg: ["
+msgstr ""
+
+#: src/aplink.c:30
+msgid "RSSI top: ["
+msgstr ""
+
+#: src/aplink.c:112
+msgid "Not available - device must have firmware with necessary "
+msgstr ""
+
+#: src/aplink.c:114
+msgid "vendor extensions and be in either 'Access Point client'"
+msgstr ""
+
+#: src/aplink.c:116
+msgid "or 'Repeater' mode."
+msgstr ""
+
+#: src/ap-mrtg.c:43
+#, fuzzy
+msgid ""
+"\tap-mrtg -i ip -c community -t type [-b bssid] [-n name] [-v] [-h] [-r]\n"
+"\n"
+msgstr ""
+"\tap-mrtg -i ip -c topluluk -t türü [-b bssid] [-v] [-h] [-r]\n"
+"\n"
+
+#: src/ap-mrtg.c:45
+msgid ""
+"Get stats from AP and return it in MRTG parsable format\n"
+"\n"
+msgstr ""
+"AP'den istatistik al ve çözümlenebilir formatta MRTG'ye aktar\n"
+"\n"
+
+#: src/ap-mrtg.c:48
+#, fuzzy
+msgid ""
+"-t type      - statistics type <w>ireless, <e>thernet, associated <s>tations "
+"or <l>ink quality (last one will only "
+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
+msgid "work with ATMEL410 MIB devices in AP Client mode)\n"
+msgstr ""
+
+#: src/ap-mrtg.c:51
+#, fuzzy
+msgid ""
+"-b bssid     - mac address of the AP from which get link quality, only if "
+"type=l\n"
+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
+msgid "-n name      - AP name - for check only\n"
+msgstr ""
+
+#: src/ap-mrtg.c:54
+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
+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
+#, fuzzy, c-format
+msgid ""
+"ap-mrtg %s Copyright (c) 2002-2003 Roman Festchook\n"
+"\n"
+msgstr ""
+"ap-mrtg %s Telifhakkı (c) 2002 Roman Festchook\n"
+"\n"
+
+#: src/ap-rrd.c:44
+#, fuzzy
+msgid ""
+"\tap-rrd -i ip -c community -t type -d db_file [-b bssid] [-n name] [-a "
+"aptype] [-h] [-r] \n"
+"\n"
+msgstr ""
+"\tap-mrtg -i ip -c topluluk -t türü [-b bssid] [-v] [-h] [-r]\n"
+"\n"
+
+#: src/ap-rrd.c:46
+#, fuzzy
+msgid ""
+"Get stats from AP and put it in to specified RRDtool database\n"
+"\n"
+msgstr ""
+"AP'den istatistik al ve çözümlenebilir formatta MRTG'ye aktar\n"
+"\n"
+
+#: src/ap-rrd.c:50
+msgid ""
+"-t type      - statistics type <w>ireless, <e>thernet, associated <s>tations "
+"or <l>ink quality in client mode\n"
+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
+msgid "-d db_file   - RRD database file with full path\n"
+msgstr ""
+
+#: src/ap-rrd.c:53
+msgid ""
+"-b bssid     - mac address of the AP to which get link quality, only if "
+"type=l\n"
+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
+msgid "-n name     - AP name - for check only\n"
+msgstr ""
+
+#: src/ap-rrd.c:55
+msgid ""
+"-a aptype    - AP type - 410 (default) or 510 for ATMEL12350's, like the ME-"
+"102\n"
+msgstr ""
+
+#: src/ap-rrd.c:58
+#, fuzzy, c-format
+msgid ""
+"ap-rrd %s Copyright (c) 2002-2004 Roman Festchook\n"
+"\n"
+msgstr ""
+"ap-mrtg %s Telifhakkı (c) 2002 Roman Festchook\n"
+"\n"
+
+#: src/ap-rrd.c:142
+msgid "Invalid IP-address\n"
+msgstr "geçersiz IP-adresi\n"
+
+#: src/ap-rrd.c:188
+#, c-format
+msgid "Invalid AP-Type '%s' - valid types are 510 or 410\n"
+msgstr ""
+
+#: src/ap-tftp.c:81
+msgid "yes"
+msgstr ""
+
+#: src/ap-tftp.c:82
+#, fuzzy
+msgid "no"
+msgstr "Bilgi"
+
+#: src/ap-tftp.c:84
+msgid "Error while read()ing firmware file"
+msgstr ""
+
+#: src/ap-tftp.c:88
+msgid "Undefined error"
+msgstr ""
+
+#: src/ap-tftp.c:89
+msgid "File not found"
+msgstr ""
+
+#: src/ap-tftp.c:90
+#, fuzzy
+msgid "Access violation"
+msgstr "Erişim Noktası"
+
+#: src/ap-tftp.c:91
+msgid "Disk full or allocation error"
+msgstr ""
+
+#: src/ap-tftp.c:92
+msgid "Illegal TFTP operation"
+msgstr ""
+
+#: src/ap-tftp.c:93
+msgid "Unknown transfer ID"
+msgstr ""
+
+#: src/ap-tftp.c:94
+msgid "File already exists"
+msgstr ""
+
+#: src/ap-tftp.c:95
+msgid "No such user"
+msgstr ""
+
+#: src/ap-tftp.c:161
+msgid "Remote-filename too long.\n"
+msgstr ""
+
+#: src/ap-tftp.c:187
+#, c-format
+msgid "%sError in read()"
+msgstr ""
+
+#: src/ap-tftp.c:215
+#, c-format
+msgid "sending %u bytes\n"
+msgstr ""
+
+#: src/ap-tftp.c:224
+#, c-format
+msgid "%sError in sendto()"
+msgstr ""
+
+#: src/ap-tftp.c:247
+#, c-format
+msgid "%sError in recvfrom()"
+msgstr ""
+
+#: src/ap-tftp.c:261
+#, c-format
+msgid "\rProgress: uploaded %.0f %%."
+msgstr ""
+
+#: src/ap-tftp.c:272
+#, c-format
+msgid "%sMalformed packet received. Aborting.\n"
+msgstr ""
+
+#: src/ap-tftp.c:281
+#, c-format
+msgid "%sTimed out waiting for response from server (%i/%i).\n"
+msgstr ""
+
+#: src/ap-tftp.c:288
+#, c-format
+msgid "%sError in select()"
+msgstr ""
+
+#: src/ap-tftp.c:302
+#, c-format
+msgid "Received %d bytes: %04x %04x\n"
+msgstr ""
+
+#: src/ap-tftp.c:313
+#, c-format
+msgid "%sError: server responded with %s. Aborting.\n"
+msgstr ""
+
+#: src/ap-tftp.c:320
+#, c-format
+msgid "%sFlash programming in progress...\n"
+msgstr ""
+
+#: src/ap-tftp.c:322
+msgid "Finished successfully.\n"
+msgstr ""
+
+#: src/ap-tftp.c:340
+msgid "PLEASE BE _ABSOLUTELY_ SURE TO READ MANPAGE PRIOR USE!!!\n"
+msgstr ""
+
+#: src/ap-tftp.c:341
+#, c-format
+msgid ""
+"\n"
+"Usage: %s <-l firmware_file.rom> <IP>\n"
+msgstr ""
+
+#: src/ap-tftp.c:363
+msgid "TFTP client for upgrading firmware in ATMEL AT76C510 WiSOC-based APs.\n"
+msgstr ""
+
+#: src/ap-tftp.c:365
+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
+msgid "Error: invalid IP address format given.\n"
+msgstr ""
+
+#: src/ap-tftp.c:405
+msgid "Error while open()ing firmware file"
+msgstr ""
+
+#: src/ap-tftp.c:411 src/ap-tftp.c:462
+msgid "Error: invalid firmware file given.\n"
+msgstr ""
+
+#: src/ap-tftp.c:451
+#, c-format
+msgid ""
+"Firmware file contains:\n"
+"- string \"ATMEL\": %s\n"
+"- string \"802.11 AP\": %s\n"
+"- string \"atbrfirm.bin\": %s\n"
+"- string \"atsingle.bin\": %s\n"
+msgstr ""
+
+#: src/ap-tftp.c:474
+#, c-format
+msgid ""
+"Using:\n"
+"- server: %s\n"
+"- firmware file: \"%s\"\n"
+"- name used for upload: \"%s\"\n"
+msgstr ""
+
+#: src/ap-tftp.c:537
+msgid "Error while lseek()ing in firmware file\n"
+msgstr ""
+
+#: src/ap-trapd.c:150
+#, c-format
+msgid "ap-trapd %s started%s%s."
+msgstr "ap-trapd %s başladı%s%s."
+
+#: src/ap-trapd.c:151
+msgid " on "
+msgstr "aktif"
+
+#: src/ap-trapd.c:157
+msgid "Unable to fork. Exiting."
+msgstr "Çatallayamıyor. Çıkıyor."
+
+#: src/ap-trapd.c:161
+msgid "Can't create socket. Exiting."
+msgstr "Yuva oluşturulamıyor. Çıkıyor."
+
+#: src/ap-trapd.c:167
+msgid "Can't bind socket. Exiting."
+msgstr "Yuva bağlanamıyor. Çıkıyor."
+
+#: src/ap-trapd.c:174
+#, c-format
+msgid "Can't bind to device %s. Exiting."
+msgstr "Aygıta bağlanamıyor %s. Çıkıyor."
+
+#: src/ap-trapd.c:185
+#, c-format
+msgid "Unable to process username %s. Error: %m."
+msgstr "kullanıcı adı işlemiyor %s. hata: %m."
+
+#: src/ap-trapd.c:190
+#, c-format
+msgid "Unable to change to uid %d."
+msgstr "uid' ye geçiş sağlanamıyor %d."
+
+#: src/ap-trapd.c:239
+#, c-format
+msgid ""
+"Received unknown SNMP ver %d trap. From %s:%d. Agent: %s. Community: %s."
+msgstr ""
+"tanımlanamayan SNMP sürümü alındı %d tuzağı. %s'ten:%d.Aracı: %s.Topluluk:%s."
+
+#: src/ap-trapd.c:311
+#, fuzzy, c-format
+msgid "Agent:v%d %s (%s@%s:%d) Trap %i: %s%s%s. SysUptime %d:%02d:%02d.%02d"
+msgstr "Aracı:v%d %s (%s@%s:%d) %s%s%s. SistemİşlemSüresi %d:%02d:%02d.%02d"
+
+#: src/auth.c:30
+msgid "APClient authorization credentials"
+msgstr ""
+
+#: src/auth.c:32
+#, fuzzy
+msgid "[A] MAC authorization: "
+msgstr "(A) Makro yetki: %s"
+
+#: src/auth.c:33
+#, fuzzy
+msgid "Enter MAC: "
+msgstr "Makro gir"
+
+#: src/auth.c:34
+#, fuzzy
+msgid "Delete Num: "
+msgstr "Numarayı sil:"
+
+#: src/auth.c:35
+#, fuzzy
+msgid " NUM     MAC address     "
+msgstr "NUM MAKRO adres"
+
+#: src/auth.c:36
+#, fuzzy
+msgid "A: auth; N: new; D: del; arrows: scroll; W: write conf; Q: quit"
+msgstr ""
+"A - yetki; N - yeni; D - sil; oklar - kaydırma; W - yapılandırmayı yaz; Q - "
+"durdur "
+
+#: src/auth.c:38
+msgid "[I] Radius server IP: "
+msgstr ""
+
+#: src/auth.c:39
+#, fuzzy
+msgid "[P] Radius server port: "
+msgstr "(P) Gizli bağlantı noktaları: %s"
+
+#: src/auth.c:40
+msgid "[S] Radius server secret: "
+msgstr ""
+
+#: src/auth.c:41
+#, fuzzy
+msgid "[T] Reauthorization time (sec): "
+msgstr "(A) Makro yetki: %s"
+
+#: src/auth.c:42
+msgid "[F] Radius source port: "
+msgstr ""
+
+#: src/auth.c:43
+#, fuzzy
+msgid ""
+"A: auth; N: new; D: del; IPSTF: set; arrows: scroll; W: write conf; Q: quit"
+msgstr ""
+"A - yetki; N - yeni; D - sil; oklar - kaydırma; W - yapılandırmayı yaz; Q - "
+"durdur "
+
+#: src/auth.c:45
+#, fuzzy
+msgid "[M] 802.1x authorization: "
+msgstr "(A) Makro yetki: %s"
+
+#: src/auth.c:46
+msgid "[T] key broadcasting time period (sec): "
+msgstr ""
+
+#: src/auth.c:47
+msgid "[I] 802.1x auth. server IP: "
+msgstr ""
+
+#: src/auth.c:48
+msgid "[S] 802.1x auth. server secret: "
+msgstr ""
+
+#: src/auth.c:49
+#, fuzzy
+msgid ""
+"A: auth; N: new; D: del; MTIS: set; arrows: scroll; W: write conf; Q: quit"
+msgstr ""
+"A - yetki; N - yeni; D - sil; oklar - kaydırma; W - yapılandırmayı yaz; Q - "
+"durdur "
+
+#: src/auth.c:114
+#, fuzzy
+msgid "Internal"
+msgstr "Genel"
+
+#: src/auth.c:116
+#, fuzzy
+msgid "Radius"
+msgstr "Radyo"
+
+#: src/auth.c:121
+msgid "Allow listed MACs only"
+msgstr ""
+
+#: src/auth.c:123
+msgid "Deny listed MACs only"
+msgstr ""
+
+#: src/auth.c:129
+msgid "Mixed environment"
+msgstr ""
+
+#: src/auth.c:213
+msgid "(not shown)"
+msgstr ""
+
+#: src/auth.c:270
+#, fuzzy
+msgid "Authorized MAC addresses:"
+msgstr "Yetkili makro adresler"
+
+#: src/auth.c:339
+msgid "(insufficient community used)"
+msgstr ""
+
+#: src/auth.c:466
+#, c-format
+msgid "Given MAC already exists in MAC list at position %d. Press any key."
+msgstr ""
+
+#: src/bridge.c:27
+msgid "[I] IP: "
+msgstr ""
+
+#: src/bridge.c:28
+#, fuzzy
+msgid "[N] Netmask: "
+msgstr "[N] Ağ Maskesi: %s"
+
+#: src/bridge.c:29
+#, fuzzy
+msgid "[G] Gateway: "
+msgstr "(G) Ağ Geçidi %s"
+
+#: src/bridge.c:30
+#, fuzzy
+msgid "[F] Filter non-IP traffic: "
+msgstr "(F) IP- dışı trafik süzgeci: %s"
+
+#: src/bridge.c:31
+#, fuzzy
+msgid "[P] Primary port: "
+msgstr "(P) Gizli bağlantı noktaları: %s"
+
+#: src/bridge.c:32
+#, fuzzy
+msgid "Attached station MAC: "
+msgstr "İliştirilmiş MAC İstasyonu: %02X%02X%02X%02X%02X%02X"
+
+#: src/bridge.c:33
+#, fuzzy
+msgid "[D] DHCP client: "
+msgstr "(D) DHCP protokolü: %s"
+
+#: src/bridge.c:34
+#, fuzzy
+msgid "[O] Operational mode: "
+msgstr "(O) İşlemsel Kip: %s"
+
+#: src/bridge.c:35
+msgid "[M] Preferred BSSID (remote MAC addr.): "
+msgstr ""
+
+#: src/bridge.c:36
+msgid "[C] Configuration-enabled port(s): "
+msgstr ""
+
+#: src/bridge.c:37
+msgid "[T] Trap-sending port: "
+msgstr ""
+
+#: src/bridge.c:38
+msgid "[R] Forward broadcast traffic: "
+msgstr ""
+
+#: src/bridge.c:39
+msgid "[B] Isolate wireless clients (broadcast traffic): "
+msgstr ""
+
+#: src/bridge.c:40
+msgid "[U] Isolate wireless clients (unicast traffic): "
+msgstr ""
+
+#: src/bridge.c:41
+#, fuzzy
+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/nwn_advanced.c:60
 #, c-format
 msgid "[D] DB Station Timeout: %d"
@@ -1732,35 +2251,50 @@ msgstr "Son hata:"
 msgid "Error:"
 msgstr "Hata"
 
-#: src/stations.c:33
-msgid "AP link state"
+#: src/stations.c:82
+msgid "Not available (device not in AP mode)."
 msgstr ""
 
-#: src/stations.c:37
-msgid " #            MAC                                               "
+#: src/stations.c:93
+msgid "  #     MAC       Parent MAC  RSSI   LQ Sts MACn      IP        "
 msgstr ""
 
-#: src/stations.c:40
-msgid " #     MAC       Parent MAC    RSSI  Status MACn      IP        "
-msgstr ""
+#: src/stations.c:139
+msgid "AssociatedSTAsInfo packet error"
+msgstr "İlişkiliSTAbilgi paketi hatası"
 
-#: src/stations.c:195 src/stations.c:367
+#: src/stations.c:192 src/stations.c:364
 #, 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:200
+#: src/stations.c:196
 #, 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:279
+#: src/stations.c:276
 #, fuzzy
 msgid "Id       MAC address     Quality  Age  RSSI"
 msgstr "Id       MAC adresi       Kalite Yükseltme RSSI"
 
+#, fuzzy
+#~ msgid "NUM       MAC address"
+#~ msgstr "NUM MAKRO adres"
+
+#, fuzzy
+#~ msgid "A - auth; IPSTF - set; W - write conf; Q - quit"
+#~ msgstr "BPGINFDRT - kur;W - yapılandırmayı yaz; Q - menüye dön"
+
+#, fuzzy
+#~ msgid "A - auth; W - write conf; Q - quit"
+#~ msgstr "DA -seçenekler; W - yapılandırmayı yaz; Q - menüye geri dön"
+
+#~ msgid "Arrows - scroll; S - save to file; Q - quit to menu."
+#~ msgstr "Oklar - kaydırma; S - dosyaya kaydet; Q - menüye geri dön"
+
 #~ msgid "Associated Stations"
 #~ msgstr "İlişkili istasyonlar"
 
index 3f5c69578c592dde83ca5e3bb79766f9e398c8e0..d0b4728b3824767b5d5ba0df33c5deb4bcb6c425 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: 2004-11-28 00:59+0200\n"
+"POT-Creation-Date: 2005-01-16 02:07+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,294 +15,6 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Report-Msgid-Bugs-To: \n"
 
-#: ap-gl/ap-gl.c:41 ap-gl/bridge.c:178 src/ap-config.c:41 src/bridge.c:182
-msgid "Bridging"
-msgstr "íÏÓÔ"
-
-#: ap-gl/ap-gl.c:41 src/ap-config.c:41
-msgid "Set bridging and IP-related options"
-msgstr "÷ÓÔÁÎÏ×ÉÔÉ ÏÐ槠ÍÏÓÔÁ ÔÁ ¶ò ÐÒÏÔÏËÏÌÕ"
-
-#: ap-gl/ap-gl.c:43 ap-gl/ap-gl.c:81 ap-gl/bridge.c:132 src/ap-config.c:43
-#: src/ap-config.c:112 src/ap-config.c:120 src/bridge.c:117 src/bridge.c:121
-msgid "Wireless"
-msgstr "òÁĦÏ"
-
-#: ap-gl/ap-gl.c:43 src/ap-config.c:43
-msgid "Set wireless options"
-msgstr "÷ÓÔÁÎÏ×ÉÔÉ ÐÁÒÁÍÅÔÒÉ ÒÁĦÏÍÅÒÅÖ¦"
-
-#: ap-gl/ap-gl.c:44 src/ap-config.c:44 src/ap-config.c:56
-msgid "Privacy"
-msgstr "ûÉÆÒÕ×ÁÎÎÑ"
-
-#: ap-gl/ap-gl.c:45 src/ap-config.c:45 src/ap-config.c:57
-msgid "MAC auth"
-msgstr "íáó ÄÏÓÔÕÐ"
-
-#: ap-gl/ap-gl.c:46 src/ap-config.c:46 src/ap-config.c:58
-msgid "Community"
-msgstr "ëÏÍ'ÀΦԦ"
-
-#: ap-gl/ap-gl.c:47 src/ap-config.c:47
-msgid "Radio"
-msgstr "ðÅÒÅÄÁ×ÁÞ"
-
-#: ap-gl/ap-gl.c:47 src/ap-config.c:47
-msgid "Set radio signal power and antenna options"
-msgstr "÷ÓÔÁÎÏ×ÉÔÉ ÐÏÔÕÖΦÓÔØ ÐÅÒÅÄÁ×ÁÞÁ ÔÁ ÁÎÔÅÎÉ"
-
-#: ap-gl/ap-gl.c:62 src/ap-config.c:80
-msgid "Upload"
-msgstr "úÁ×ÁÎÔÁÖÉÔÉ"
-
-#: ap-gl/ap-gl.c:62 src/ap-config.c:80
-msgid "Activate current configuration"
-msgstr "áËÔÉצÚÕ×ÁÔÉ ÐÏÔÏÞÎÕ ËÏÎƦÇÕÒÁæÀ"
-
-#: ap-gl/ap-gl.c:63 src/ap-config.c:81
-msgid "Defaults"
-msgstr "æÁÂÒ¦ÞΦ"
-
-#: ap-gl/ap-gl.c:63 src/ap-config.c:81
-msgid "Restore factory default settings"
-msgstr "÷¦ÄÎÏ×ÉÔÉ ÆÁÂÒ¦ÞΦ ÎÁÓÔÒÏÊËÉ."
-
-#: ap-gl/ap-gl.c:64 src/ap-config.c:82 src/ap-config.c:89
-msgid "Reset"
-msgstr "òÅÓÔÁÒÔ"
-
-#: ap-gl/ap-gl.c:65 src/ap-config.c:83
-msgid "Reset AP. All not uploaded configuration will be lost"
-msgstr "ðÅÒÅÚÁ×ÁÎÔÁÖÉÔÉ áò. îÅÁËÔÉצÚÏ×ÁΦ ÚͦÎÉ Õ ËÏÎƦÇÕÒÁ槠ÂÕÄÁ ×ÔÒÁÞÅÎÏ."
-
-#: ap-gl/ap-gl.c:66 src/ap-config.c:84
-msgid "TestMode"
-msgstr "ôÅÓÔ"
-
-#: ap-gl/ap-gl.c:66 src/ap-config.c:84
-msgid "Put Access Point in test mode"
-msgstr "ðÏÓÔÁ×ÉÔÉ áò Õ ÔÅÓÔÏ×ÉÊ ÒÅÖÉÍ"
-
-#: ap-gl/ap-gl.c:79 src/ap-config.c:110 src/ap-config.c:119
-msgid "SysInfo"
-msgstr "óÉÓÔÅÍÁ"
-
-#: ap-gl/ap-gl.c:80 ap-gl/bridge.c:131 src/ap-config.c:111 src/bridge.c:116
-#: src/bridge.c:120
-msgid "Ethernet"
-msgstr "åÚÅÒÎÅÔ"
-
-#: ap-gl/ap-gl.c:80 src/ap-config.c:111
-msgid "Get ethernet port statistics"
-msgstr "ïÔÒÉÍÁÔÉ ÓÔÁÔÉÓÔÉËÕ ÅÚÅÒÎÅÔ ÐÏÒÔÕ"
-
-#: ap-gl/ap-gl.c:82 src/ap-config.c:113 src/ap-config.c:121
-msgid "Stations"
-msgstr "óÔÁÎæ§"
-
-#: ap-gl/ap-gl.c:83 src/ap-config.c:114
-msgid "KnownAPs"
-msgstr "÷¦ÄÏͦôÏÞËÉ"
-
-#: ap-gl/ap-gl.c:83 src/ap-config.c:114
-msgid "Get info about known Access Points"
-msgstr "ïÔÒÉÍÁÔÉ ¦ÎÆÏÒÍÁÃÉÀ ÐÒϠצÄÏͦ ôÏÞËÉ äÏÓÔÕÐÕ"
-
-#: ap-gl/ap-gl.c:100 src/ap-config.c:147
-msgid "Info"
-msgstr "¶ÎÆÏÒÍÁæÑ"
-
-#: ap-gl/ap-gl.c:101 src/ap-config.c:148
-msgid "Config"
-msgstr "õÓÔÁÎÏ×ËÉ"
-
-#: ap-gl/ap-gl.c:102 src/ap-config.c:149
-msgid "Commands"
-msgstr "ëÏÍÁÎÄÉ"
-
-#: ap-gl/ap-gl.c:102 src/ap-config.c:149
-msgid "Execute commands on Access Point"
-msgstr "÷ÉËÏÎÁÔÉ ËÏÍÁÎÄÉ ÎÁ áò"
-
-#: ap-gl/ap-gl.c:104 src/ap-config.c:151
-msgid "Connect"
-msgstr "ú'¤ÄÎÁÎÎÑ"
-
-#: ap-gl/ap-gl.c:105 src/ap-config.c:152
-msgid "Search"
-msgstr "ðÏÛÕË"
-
-#: ap-gl/ap-gl.c:106 lib/common.c:83 src/ap-config.c:153
-msgid "About"
-msgstr "ðÒÏÇÒÁÍÁ"
-
-#: ap-gl/ap-gl.c:107 src/ap-config.c:154
-msgid "Shell"
-msgstr "ïÂÏÌÏÎËÁ"
-
-#: ap-gl/ap-gl.c:108 src/ap-config.c:155
-msgid "Exit"
-msgstr "÷ÉȦÄ"
-
-#: ap-gl/ap-gl.c:158 src/ap-config.c:204
-#, c-format
-msgid "Wireless Access Point Configurator ver. %s"
-msgstr "ëÏÎƦÇÕÒÁÔÏÒ ÔÏÞËÉ ÄÏÓÔÕÐÕ ÒÁĦÏÍÅÒÅÖ¦ ×ÅÒ. %s"
-
-#: ap-gl/auth_mac.c:27 src/auth_mac.c:27
-msgid "AuthorizedMacTableString packet error"
-msgstr "ðÏÍÉÌËÏ×ÉÊ ÐÁËÅÔ AuthorizedMacTableString"
-
-#: ap-gl/auth_mac.c:29 src/auth_mac.c:29
-msgid "[A] MAC authorization: "
-msgstr "[A] Máó Á×ÔÏÒÉÚÁæÑ: "
-
-#: ap-gl/auth_mac.c:30 src/auth_mac.c:30
-msgid "Enter MAC: "
-msgstr "÷×ÅĦÔØ íáó:"
-
-#: ap-gl/auth_mac.c:31 src/auth_mac.c:31
-msgid "Delete Num: "
-msgstr "÷ÉÄÁÌÉÔÉ ÎÏÍÅÒ:"
-
-#: ap-gl/auth_mac.c:32 src/auth_mac.c:32
-msgid "Authorized MAC addresses"
-msgstr "á×ÔÏÒÉÚÏ×ÁΦ íáó ÁÄÒÅÓÉ"
-
-#: ap-gl/auth_mac.c:33
-msgid "NUM       MAC address"
-msgstr "#         íáó ÁÄÒÅÓÁ"
-
-#: ap-gl/auth_mac.c:34 src/auth_mac.c:34
-msgid "A - auth; N - new; D - del; arrows - scroll; W - write conf; Q - quit"
-msgstr ""
-"A Á×ÔÏÒÉÚÁæÑ; N ÎÏ×Á; D ×ÉÄÁÌÉÔÉ; ÓÔÒ¦ÌËÉ ÐÅÒÅÇÌÑÄ; W ÚÁÐÉÓÁÔÉ; Q ×ÉÊÔÉ"
-
-#: ap-gl/auth_mac.c:35
-msgid "A - auth; IPSTF - set; W - write conf; Q - quit"
-msgstr "A - a×ÔÏÒÉÚÁæÑ; IPSTF - ×ÓÔÁÎÏ×ÉÔÉ;W - ÚÁÐÉÓÁÔÉ; Q - ×ÉÊÔÉ"
-
-#: ap-gl/auth_mac.c:36
-msgid "A - auth; W - write conf; Q - quit"
-msgstr "A - a×ÔÏÒÉÚÁæÑ; W - ÚÁÐÉÓÁÔÉ; Q - ×ÉÊÔÉ"
-
-#: ap-gl/auth_mac.c:38
-msgid "[I] RADIUS SERVER IP: "
-msgstr "[I] ¶ò ÁÄÒÅÓÁ RADIUS ÓÅÒ×ÅÒÁ: "
-
-#: ap-gl/auth_mac.c:39
-msgid "[P] RADIUS SERVER PORT: "
-msgstr "[P] ðÏÒÔ RADIUS ÓÅÒ×ÅÒÁ: "
-
-#: ap-gl/auth_mac.c:40
-msgid "[S] RADIUS SERVER SECRET: "
-msgstr "[S] ðÁÒÏÌØ RADIUS ÓÅÒ×ÅÒÁ: "
-
-#: ap-gl/auth_mac.c:41
-msgid "[T] REAUTHORIZATION TIME: "
-msgstr "[T] þÁÓ ÐÅÒÅÁ×ÔÏÒÉÚÁæ§: "
-
-#: ap-gl/auth_mac.c:42
-msgid "[F] RADIUS SOURCE PORT: "
-msgstr "[F] ÷ÉȦÄÎÉÊ ÐÏÒÔ RADIUS ÐÁËÅÔ¦×: "
-
-#: ap-gl/auth_mac.c:87
-msgid "Internal"
-msgstr "÷ÎÕÔÒ¦ÛÎÑ ÔÁÂÌÉÃÑ"
-
-#: ap-gl/auth_mac.c:95
-msgid "<hidden>"
-msgstr "<ÐÒÉÈÏ×ÁÎÏ>"
-
-#: ap-gl/bridge.c:26 src/bridge.c:26
-msgid "[I] IP: "
-msgstr "[I] ¶ò: "
-
-#: ap-gl/bridge.c:27 src/bridge.c:27
-msgid "[N] Netmask: "
-msgstr "[N] íÁÓËÁ: "
-
-#: ap-gl/bridge.c:28 src/bridge.c:28
-msgid "[G] Gateway: "
-msgstr "[G] ûÌÀÚ: "
-
-#: ap-gl/bridge.c:29 src/bridge.c:29
-msgid "[F] Filter non-IP traffic: "
-msgstr "[F] æ¦ÌØÔÒÕ×ÁÔÉ ÎÅ-¶ò ÔÒÁƦË: "
-
-#: ap-gl/bridge.c:30 src/bridge.c:30
-msgid "[P] Primary port: "
-msgstr "[P] çÏÌÏ×ΦʠÐÏÒÔ: "
-
-#: ap-gl/bridge.c:31 src/bridge.c:31
-msgid "Attached station MAC: "
-msgstr "ð¦Ä'¤ÄÎÁÎÁ ÓÔÁÎæÑ: "
-
-#: ap-gl/bridge.c:32 src/bridge.c:32
-msgid "[D] DHCP client: "
-msgstr "[D] DHCP Ë̦¤ÎÔ: "
-
-#: ap-gl/bridge.c:33 src/bridge.c:33
-msgid "[O] Operational mode: "
-msgstr "[O] òÅÖÉÍ ÒÏÂÏÔÉ: "
-
-#: ap-gl/bridge.c:34 src/bridge.c:34
-msgid "[M] Preferred BSSID (remote MAC addr.): "
-msgstr "[M] ÷¦ÄÄÁÌÅÎÉÊ Máó: "
-
-#: ap-gl/bridge.c:36 src/bridge.c:36
-msgid "[T] Trap-sending port(s): "
-msgstr "[T] ðÏÒԠצÄÐÒÁ×ËÉ ÔÒÁЦ×: "
-
-#: ap-gl/bridge.c:37 src/bridge.c:37
-msgid "[R] Forward broadcast traffic: "
-msgstr "[R] ðÅÒÅÄÁÞÁ ÂÒÏÁÄËÁÓÔÏ×ÉÈ ÐÁËÕÎ˦×: "
-
-#: ap-gl/bridge.c:39
-msgid "[U] Isolate wireless clients: "
-msgstr "[U] ¶ÚÏÌÀ×ÁÔÉ ÒÁĦÏË̦¤ÎÔ¦×: "
-
-#: ap-gl/bridge.c:40 src/bridge.c:40
-msgid "INGFPDOMSCTRBU - set; W - write conf; Q - quit to menu"
-msgstr "INGFPDOMSCTRBU - ×ÓÔÁÎÏ×ÉÔÉ; W - ÚÁÐÉÓÁÔÉ; Q - ×ÉÊÔÉ"
-
-#: ap-gl/bridge.c:124 src/bridge.c:109
-msgid "Wireless Bridge Point to MultiPoint"
-msgstr "òÁĦÏÍÏÓÔ ÔÏÞËÁ-ÂÁÇÁÔÏÔÏÞËÁ"
-
-#: ap-gl/bridge.c:125 src/bridge.c:110
-msgid "Access Point"
-msgstr "âÁÚÏ×Á ÓÔÁÎæÑ"
-
-#: ap-gl/bridge.c:126 src/bridge.c:111
-msgid "Access Point client"
-msgstr "ë̦¤ÎÔÓØËÁ ÓÔÁÎæÑ"
-
-#: ap-gl/bridge.c:127 src/bridge.c:112
-msgid "Wireless Bridge Point to Point"
-msgstr "òÁĦÏÍÏÓÔ ÔÏÞËÁ-ÔÏÞËÁ"
-
-#: ap-gl/bridge.c:128 src/bridge.c:113
-msgid "Repeater"
-msgstr "ðÏ×ÔÏÒÀ×ÁÞ"
-
-#: ap-gl/stations.c:77 src/stations.c:100
-msgid "AP is currently in AP Client Mode => no associated STAtions."
-msgstr "ôÏÞËÁ äÏÓÔÕÐÕ Õ ÒÅÖÉͦ Ë̦¤ÎÔÁ => ÎÅÍÁ¤ Ð¦Ä'¤ÄÎÁÎÉÈ ÓÔÁÎæÊ"
-
-#: ap-gl/stations.c:102
-msgid "#     MAC       LQ    RSSI   Status Port IP"
-msgstr "#     MAC       LQ    RSSI   óÔÁÔ   ðÏÒÔ IP"
-
-#: ap-gl/stations.c:128 src/stations.c:159
-msgid "AssociatedSTAsInfo packet error"
-msgstr "ðÏÍÉÌËÏ×ÉÊ ÐÁËÅÔ AssociatedSTAsInfo."
-
-#: ap-gl/stations.c:160
-msgid "Arrows - scroll; S - save to file; Q - quit to menu."
-msgstr "óÔÒ¦ÌËÉ - ÐÒÏËÒÕÔËÁ; S - ÚÂÅÒÅÇÔÉ Õ ÆÁÊÌ; Q - ×ÉÊÔÉ × ÍÅÎÀ."
-
 #: lib/aps.c:29
 msgid "Known Access Points"
 msgstr "÷¦ÄÏͦ ÔÏÞËÉ ÄÏÓÔÕÐÕ"
@@ -339,7 +51,7 @@ msgstr "
 msgid "via its wireless port."
 msgstr "ÞÅÒÅÚ §§ ÒÁĦÏÐÏÒÔ."
 
-#: lib/aps.c:153 lib/cmd.c:45 lib/cmd.c:75 lib/test.c:91
+#: lib/aps.c:153 lib/cmd.c:45 lib/cmd.c:75 lib/test.c:96
 msgid "Do you want to continue? "
 msgstr "âÁÖÁ¤ÔÅ ÐÒÏÄÏ×ÖÉÔÉ? "
 
@@ -617,70 +329,91 @@ msgid "Bind socket error. Press any key."
 msgstr "ðÏÍÉÌËÁ ÐÒÉ×`ÑÚËÉ ÓÏËÅÔÕ. âÕÄØ ÑËÁ ËÌÁצÛÁ ÄÌÑ ÐÒÏÄÏ×ÖÅÎÎÑ"
 
 #: lib/ap-utils.h:115
+msgid "Unable to write AP list file ~/.ap-config. Press any key."
+msgstr ""
+"îÅ ÍÏÖÕ ÚÁÐÉÓÁÔÉ ÆÁÊÌ ÓÐÉÓËÕ AP ~/.ap-config. âÕÄØ ÑËÁ ËÌÁצÛÁ ÄÌÑ "
+"ÐÒÏÄÏ×ÖÅÎÎÑ"
+
+#: lib/ap-utils.h:116
+msgid "AP list file ~/.ap-config successfully written. Press any key."
+msgstr ""
+"æÁÊÌ ÓÐÉÓËÕ AP ~/.ap-config ×ÄÁÌÏ ÚÁÐÉÓÁÎÏ. îÁÔÉÓΦÔØ ÂÕÄØ ÑËÕ ËÌÁצÛÕ."
+
+#: lib/ap-utils.h:118
 msgid "Back to main menu"
 msgstr "ðÏ×ÅÒÎÕÔÉÓÑ ÄÏ ÍÅÎÀ"
 
-#: lib/ap-utils.h:116
+#: lib/ap-utils.h:119
 msgid "Exit program"
 msgstr "÷ÉÊÔÉ Ú ÐÒÏÇÒÁÍÉ"
 
-#: lib/ap-utils.h:117
+#: lib/ap-utils.h:120
 msgid "Run subshell. To return type 'exit'."
 msgstr "úÁÐÕÓÔÉÔÉ ÛÅÌÌ. äÌÑ ÐÏ×ÅÒÎÅÎÎÑ ÎÁÂÅÒ¦ÔØ 'exit'."
 
-#: lib/ap-utils.h:118
+#: lib/ap-utils.h:121
 msgid "Short info about program"
 msgstr "ðÒÏ ÐÒÏÇÒÁÍÍÕ"
 
-#: lib/ap-utils.h:119
+#: lib/ap-utils.h:122
 msgid "Find connected Access Points"
 msgstr "úÎÁÊÔɠЦÄËÌÀÞÅΦ áò"
 
-#: lib/ap-utils.h:120
+#: lib/ap-utils.h:123
 msgid "Set connection options: ip and community"
 msgstr "÷ÓÔÁÎÏ×ÉÔÉ ÐÁÒÁÍÅÔÒÉ Ú`¤ÄÎÁÎÎÑ"
 
-#: lib/ap-utils.h:121
+#: lib/ap-utils.h:124
 msgid "Set encryption; edit WEP keys"
 msgstr "÷ÓÔÁÎÏ×ÉÔÉ ÛÉÆÒÕ×ÁÎÎÑ, ÒÅÄÁÇÕ×ÁÔÉ WEP ËÌÀÞ¦"
 
-#: lib/ap-utils.h:122
-msgid "Set MAC authorization; edit MAC authorization table"
+#: lib/ap-utils.h:125
+#, fuzzy
+msgid "Set authorization; edit MAC authorization table"
 msgstr "÷ÓÔÁÎÏ×ÉÔÉ íáó Á×ÔÏÒÉÚÁæÀ; ÒÅÄÁÇÕ×ÁÔÉ ÔÁÂÌÉÃÀ Á×ÔÏÒÉÚÁæ§"
 
-#: lib/ap-utils.h:123
+#: lib/ap-utils.h:126
 msgid "Set SNMP community/password for access to the AP"
 msgstr "÷ÓÔÁÎÏ×ÉÔÉ SNMP ËÏÍ'ÀΦԦ/ÐÁÒÏÌØ ÄÌÑ ÄÏÓÔÕÐÕ ÄÏ áò"
 
-#: lib/ap-utils.h:124
+#: lib/ap-utils.h:127
 msgid "Get info about AP hardware and firmware"
 msgstr "ïÔÒÉÍÁÔÉ ¦ÎÆÏÒÍÁæÀ ÐÒÏ ÁÐÁÒÁÔÎÅ ÔÁ ÐÒÏÇÒÁÍÎÅ ÚÁÂÅÚÐÅÞÅÎÎÑ"
 
-#: lib/ap-utils.h:125
+#: lib/ap-utils.h:128
 msgid "Get wireless port statistics"
 msgstr "ïÔÒÉÍÁÔÉ ÓÔÁÔÉÓÔÉËÕ ÒÁĦϠÐÏÒÔÕ"
 
-#: lib/ap-utils.h:126
+#: lib/ap-utils.h:129
 msgid "Get list of currently associated stations (Access Point clients)"
 msgstr "ïÔÒÉÍÁÔÉ ÐÅÒÅ̦ˠÁÓÏæÊÏ×ÁÎÉÈ ÓÔÁÎæʠ(Ë̦¤ÎԦנáò)"
 
-#: lib/ap-utils.h:127
+#: lib/ap-utils.h:130
+msgid "Get link status in APclient mode"
+msgstr ""
+
+#: lib/ap-utils.h:131
 msgid "Get info and statistics from AP"
 msgstr "ïÔÒÉÍÁÔÉ ¦ÎÆÏÒÍÁæÀ ÔÁ ÓÔÁÔÉÓÔÉËÕ Ú áò"
 
-#: lib/ap-utils.h:128
+#: lib/ap-utils.h:132
 msgid "Set various configuration options"
 msgstr "÷ÓÔÁÎÏ×ÉÔÉ ÐÁÒÁÍÅÔÒÉ ËÏÎƦÇÕÒÁæ§"
 
-#: lib/ap-utils.h:130
+#: lib/ap-utils.h:134
 msgid "Associated stations"
 msgstr "áÓÏæÊÏ×ÁΦ ÓÔÁÎæ§"
 
-#: lib/ap-utils.h:132
+#: lib/ap-utils.h:135
+#, fuzzy
+msgid "AP Client link state"
+msgstr "óÔÁΠÚ×'ÑÚËÕ Ú AP"
+
+#: lib/ap-utils.h:137
 msgid "Polling: on"
 msgstr "ïÐÉÔÕ×ÁÎÎÑ: ÔÁË"
 
-#: lib/ap-utils.h:133
+#: lib/ap-utils.h:138
 msgid "Polling: off"
 msgstr "ïÐÉÔÕ×ÁÎÎÑ: Î¦"
 
@@ -764,41 +497,47 @@ msgstr "
 msgid "Save connect-settings: "
 msgstr "úÂÅÒÅÇÔɠæ ÐÁÒÁÍÅÔÒÉ: "
 
-#: lib/common.c:100
+#: lib/common.c:84 src/ap-config.c:154
+msgid "About"
+msgstr "ðÒÏÇÒÁÍÁ"
+
+#: lib/common.c:101
 #, c-format
 msgid "From %s"
 msgstr "Ú %s"
 
-#: lib/common.c:102
+#: lib/common.c:103
 #, c-format
 msgid "Version %s"
 msgstr "÷ÅÒӦѠ%s"
 
-#: lib/common.c:105
+#: lib/common.c:106
 msgid "Written by Roman Festchook roma@polesye.net"
 msgstr "á×ÔÏÒ òÏÍÁΠæÅÝÕË roma@polesye.net"
 
-#: lib/common.c:107
-msgid "Portions by Jan Rafaj aputils@cedric.unob.cz"
+#: lib/common.c:108
+#, fuzzy
+msgid "and Jan Rafaj jr-aputils@cedric.unob.cz"
 msgstr "þÁÓÔËÏ×Ï Jan Rafaj aputils@cedric.unob.cz"
 
-#: lib/common.c:109
-msgid "Copyright (c) 2001-2004"
+#: lib/common.c:110
+#, fuzzy
+msgid "Copyright (c) 2001-2005"
 msgstr "Copyright (c) 2001-2004"
 
-#: lib/common.c:111
+#: lib/common.c:112
 msgid "Roman Festchook and Jan Rafaj"
 msgstr "òÏÍÁΠæÅÝÕË ÔÁ Jan Rafaj"
 
-#: lib/common.c:114
+#: lib/common.c:115
 msgid "This program is distributed under the terms"
 msgstr "ãÑ ÐÒÏÇÒÁÍÁ ÒÏÚÐÏ×ÓÀÄÖÕ¤ÔØÓÑ ÎÁ ÕÍÏ×ÁÈ"
 
-#: lib/common.c:116
+#: lib/common.c:117
 msgid "of the GNU General Public License version 2."
 msgstr "GNU úÁÇÁÌØÎϧ ðÕÂ̦ÞÎϧ ì¦ÃÅÎÚ¦§ ×ÅÒÓ¦§ 2"
 
-#: lib/common.c:118
+#: lib/common.c:119
 msgid "See the included COPYING file for details."
 msgstr "ÄÌÑ ¦ÎÆÏÒÍÁ槠ÄÉצÔØÓÑ ÆÁÊÌ COPYING"
 
@@ -814,15 +553,15 @@ msgstr "
 msgid "Entered characters will not be displayed for security reason."
 msgstr "÷×ÅÄÅΦ ÓÉÍ×ÏÌɠΊצÄÏÂÒÁÖÕÀÔØÓѠڠͦÒËÕ×ÁΦ ÂÅÚÐÅËÉ."
 
-#: lib/common.c:266
+#: lib/common.c:259
 msgid "This label will be stored on HDD (independently on AP name!)."
 msgstr "í¦ÔËÕ ÂÕÄÅ ÚÂÅÒÅÖÅÎÏ ÎÁ ÖÏÒÓÔËÉÊ ÄÉÓË (ÎÅÚÁÌÅÖÎϠצĠÎÁÚ×É áò)."
 
-#: lib/common.c:361
+#: lib/common.c:370
 msgid "Trying to probe AP for MIB properties. Please wait..."
 msgstr "ïÐÉÔÕÀ áò Õ ÐÏÛÕËÕ ×ÌÁÓÔÉ×ÏÓÔÅÊ MIB - ÚÁÖĦÔØ ÂÕÄØ ÌÁÓËÁ..."
 
-#: lib/common.c:390
+#: lib/common.c:399
 msgid ""
 "Unable to determine AP MIB properties (no response from AP). Press any key."
 msgstr ""
@@ -850,23 +589,12 @@ msgstr "
 msgid "Delete num:"
 msgstr "÷ÉÄÁÌÉÔÉ #:"
 
-#: lib/file.c:372
-msgid "AP list file ~/.ap-config successfully written. Press any key."
-msgstr ""
-"æÁÊÌ ÓÐÉÓËÕ AP ~/.ap-config ×ÄÁÌÏ ÚÁÐÉÓÁÎÏ. îÁÔÉÓΦÔØ ÂÕÄØ ÑËÕ ËÌÁצÛÕ."
-
-#: lib/file.c:376
-msgid "Unable to write AP list file ~/.ap-config. Press any key."
-msgstr ""
-"îÅ ÍÏÖÕ ÚÁÐÉÓÁÔÉ ÆÁÊÌ ÓÐÉÓËÕ AP ~/.ap-config. âÕÄØ ÑËÁ ËÌÁצÛÁ ÄÌÑ "
-"ÐÒÏÄÏ×ÖÅÎÎÑ"
-
-#: lib/file.c:426
+#: lib/file.c:458
 msgid "Unable to write stations file. Press any key."
 msgstr ""
 "îÅ ÍÏÖÕ ÚÁÐÉÓÁÔÉ ÆÁÊÌ ÓÐÉÓËÕ ÓÔÁÎæÊ. âÕÄØ ÑËÁ ËÌÁצÛÁ ÄÌÑ ÐÒÏÄÏ×ÖÅÎÎÑ."
 
-#: lib/file.c:428
+#: lib/file.c:460
 msgid "Stations file succesfully written. Press any key."
 msgstr "æÁÊÌ ÓÐÉÓËÕ ÓÔÁÎæʠ×ÄÁÌÏ ÚÁÐÉÓÁÎÏ. îÁÔÉÓΦÔØ ÂÕÄØ ÑËÕ ËÌÁצÛÕ."
 
@@ -880,11 +608,11 @@ msgid "Value must be in range %u - %u. Press any key to continue."
 msgstr ""
 "úÎÁÞÅÎÎÑ ÍÁ¤ ÂÕÔÉ Õ ÄÉÁÐÁÚÏΦ %u - %u. âÕÄØ ÑËÁ ËÌÁצÛÁ ÄÌÑ ÐÒÏÄÏ×ÖÅÎÎÑ"
 
-#: lib/input.c:412
+#: lib/input.c:413
 msgid "Y - Yes; Any other key - No (it's safer to answer No)"
 msgstr "(Y - ÔÁË; N - Î¦ (ÂÅÚÐÅÞΦÛŠצÄÐÏצÓÔɠΦ)"
 
-#: lib/oui.c:6056
+#: lib/oui.c:6058
 msgid "Unknown or Private"
 msgstr "îÅצÄÏÍÉÊ ÁÂÏ ÐÒÉ×ÁÔÎÉÊ"
 
@@ -923,7 +651,7 @@ msgid ""
 "key."
 msgstr "÷É ÎÅ ÍÏÖÅÔÅ ×ÉÍËÎÕÔÉ ÏÂÉÄצ ÁÎÔÅÎÉ. âÕÄØ ÑËÁ ËÌÁצÛÁ ÄÌÑ ÐÒÏÄÏ×ÖÅÎÎÑ."
 
-#: lib/scr.c:168
+#: lib/scr.c:156
 #, c-format
 msgid "Current AP: %s Type: %s Ext: %s"
 msgstr "ðÏÔÏÞÎÉÊ ÐÒÉÓÔÒ¦Ê: %s ôÉÐ: %s òÏÚ: %s"
@@ -957,23 +685,170 @@ msgid ""
 "[key] - set community/password; W - write config to AP; Q - quit to menu"
 msgstr "# - ×ÓÔÁÎÏ×ÉÔÉ ËÏÍ`ÀΦԦ/ÐÁÒÏÌØ; W - ÚÁÐÉÓÁÔÉ ÕÓÔÁÎÏ×ËÉ; Q - ×ÉȦÄ"
 
-#: lib/stat.c:29
-msgid "Ethernet Statistics"
-msgstr "óÔÁÔÉÓÔÉËÁ ÅÚÅÒÎÅÔ ÐÏÒÔÕ"
+#: lib/set_oeminfo.c:28
+#, fuzzy
+msgid "Info structure version: "
+msgstr "÷ÅÒӦѠÓÔÒÕËÔÕÒÉ: %u"
 
-#: lib/stat.c:30
-msgid "Wireless Statistics"
-msgstr "óÔÁÔÉÓÔÉËÁ ÒÁĦÏÐÏÒÔÕ"
+#: lib/set_oeminfo.c:29
+#, fuzzy
+msgid "[M] Device MAC address: "
+msgstr "MAC ÁÄÒÅÓÁ: "
 
-#: lib/stat.c:98
-msgid "EthRxStat packet error. Press any key."
-msgstr "ðÏÍÉÌËÏ×ÉÊ ÐÁËÅÔ EthRxStat. îÁÔÉÓΦÔØ Q ÄÌÑ ×ÉÈÏÄÕ."
+#: lib/set_oeminfo.c:30
+#, fuzzy
+msgid "    Manufacturer with this OUI: "
+msgstr "ID ×ÉÒÏÂÎÉËÁ:"
 
-#: lib/stat.c:111
-msgid "EthTxStat packet error. Press any key."
-msgstr "ðÏÍÉÌËÏ×ÉÊ ÐÁËÅÔ EthTxStat. îÁÔÉÓΦÔØ Q ÄÌÑ ×ÉÈÏÄÕ."
+#: lib/set_oeminfo.c:31
+#, fuzzy
+msgid "[D] Regulatory domain: "
+msgstr "òÅÇÕÌÑÔÏÒΦ ÏÂÍÅÖÅÎÎÑ: %s"
 
-#: lib/stat.c:115
+#: lib/set_oeminfo.c:32
+#, fuzzy
+msgid "[T] Product type: "
+msgstr "ôÉРÐÒÏÄÕËÔÕ: %u"
+
+#: lib/set_oeminfo.c:33
+#, fuzzy
+msgid "[E] OEM name: "
+msgstr "OEM ¶Í`Ñ:"
+
+#: lib/set_oeminfo.c:34
+#, fuzzy
+msgid "[I] OEM ID: "
+msgstr "[I] ¶ò: "
+
+#: lib/set_oeminfo.c:35
+#, fuzzy
+msgid "[N] Product name: "
+msgstr "¶Í`Ñ ÐÒÏÄÕËÔÕ:"
+
+#: lib/set_oeminfo.c:36
+#, fuzzy
+msgid "[H] Hardware revision: "
+msgstr "áÐÁÒÁÔÎÁ ×ÅÒÓ¦Ñ: %u"
+
+#: lib/set_oeminfo.c:37
+#, fuzzy
+msgid "[O] Country code: "
+msgstr "[O] ëÏÍÁÎÄÁ: "
+
+#: lib/set_oeminfo.c:38
+#, fuzzy
+msgid "[C] Default channel: "
+msgstr "[C] þÁÓÔÏÔÎÉÊ ËÁÎÁÌ: "
+
+#: lib/set_oeminfo.c:39
+#, fuzzy
+msgid "[A] Calibrated channels: "
+msgstr "[C] þÁÓÔÏÔÎÉÊ ËÁÎÁÌ: "
+
+#: lib/set_oeminfo.c:40
+msgid "[P] Nominal Tx Power (CR31) value for calibrated channels: "
+msgstr ""
+
+#: lib/set_oeminfo.c:41
+#, fuzzy
+msgid ""
+"Keys in brackets - set corresponding option; W - write conf; Q - quit to menu"
+msgstr "# - ×ÓÔÁÎÏ×ÉÔÉ ÐÁÒÁÍÅÔÒ; W - ÚÁÐÉÓÁÔÉ ËÏÎƦÇÕÒÁæÀ; Q - ×ÉÊÔÉ × ÍÅÎÀ"
+
+#: lib/set_oeminfo.c:101
+msgid "THIS IS A SECRET MENU LEADING TO VERY DANGEROUS OPTIONS."
+msgstr ""
+
+#: lib/set_oeminfo.c:103
+msgid "It is intended only for WISPs and repair shops."
+msgstr ""
+
+#: lib/set_oeminfo.c:107
+msgid "It allows to set OEM information stored in the AP (like its"
+msgstr ""
+
+#: lib/set_oeminfo.c:109
+msgid "MAC address, manuf. name, OEM ID, etc.). BE ABSOLUTELY SURE"
+msgstr ""
+
+#: lib/set_oeminfo.c:111
+msgid "THAT YOU KNOW WHAT YOU ARE DOING, AND THAT YOU HAVE THE"
+msgstr ""
+
+#: lib/set_oeminfo.c:113
+msgid "LEGAL RIGHT TO DO ANY MODIFICATION. Disobserving of these"
+msgstr ""
+
+#: lib/set_oeminfo.c:115
+msgid "rules may lead you into a conflict with your local"
+msgstr ""
+
+#: lib/set_oeminfo.c:117
+msgid "regulations and/or law."
+msgstr ""
+
+#: lib/set_oeminfo.c:119
+msgid "Also be warned that the setting of any from these options"
+msgstr ""
+
+#: lib/set_oeminfo.c:121
+msgid "may DAMAGE YOUR AP (other reason why this menu is hidden)."
+msgstr ""
+
+#: lib/set_oeminfo.c:123
+msgid "Values changed here will NOT be restored upon reset"
+msgstr ""
+
+#: lib/set_oeminfo.c:125
+msgid "of the device to factory defaults! It is advisable to"
+msgstr ""
+
+#: lib/set_oeminfo.c:127
+msgid "write them down somewhere prior their changing."
+msgstr ""
+
+#: lib/set_oeminfo.c:129
+msgid "Finally, note that you need to use MANUFACTURER community, "
+msgstr ""
+
+#: lib/set_oeminfo.c:131
+msgid "in order to be able to do any OEM info modification."
+msgstr ""
+
+#: lib/set_oeminfo.c:133
+msgid "Proceed further only at your full risk and responsibility. "
+msgstr ""
+
+#: lib/set_oeminfo.c:135
+msgid "You got the warnings."
+msgstr ""
+
+#: lib/set_oeminfo.c:141
+msgid "OEM Info settings"
+msgstr ""
+
+#: lib/set_oeminfo.c:221
+#, c-format
+msgid "%s%u"
+msgstr ""
+
+#: lib/stat.c:29
+msgid "Ethernet Statistics"
+msgstr "óÔÁÔÉÓÔÉËÁ ÅÚÅÒÎÅÔ ÐÏÒÔÕ"
+
+#: lib/stat.c:30
+msgid "Wireless Statistics"
+msgstr "óÔÁÔÉÓÔÉËÁ ÒÁĦÏÐÏÒÔÕ"
+
+#: lib/stat.c:98
+msgid "EthRxStat packet error. Press any key."
+msgstr "ðÏÍÉÌËÏ×ÉÊ ÐÁËÅÔ EthRxStat. îÁÔÉÓΦÔØ Q ÄÌÑ ×ÉÈÏÄÕ."
+
+#: lib/stat.c:111
+msgid "EthTxStat packet error. Press any key."
+msgstr "ðÏÍÉÌËÏ×ÉÊ ÐÁËÅÔ EthTxStat. îÁÔÉÓΦÔØ Q ÄÌÑ ×ÉÈÏÄÕ."
+
+#: lib/stat.c:115
 msgid "Received:"
 msgstr "ðÒÉÊÎÑÔÏ:"
 
@@ -993,159 +868,186 @@ msgstr "
 msgid "System Info"
 msgstr "óÉÓÔÅÍÎÁ ¦ÎÆÏÒÍÁæÑ"
 
-#: lib/sysinfo.c:120
+#: lib/sysinfo.c:54 src/bridge.c:86
+msgid "Wireless Bridge Point to MultiPoint"
+msgstr "òÁĦÏÍÏÓÔ ÔÏÞËÁ-ÂÁÇÁÔÏÔÏÞËÁ"
+
+#: lib/sysinfo.c:55 src/bridge.c:87
+msgid "Access Point"
+msgstr "âÁÚÏ×Á ÓÔÁÎæÑ"
+
+#: lib/sysinfo.c:56 src/bridge.c:88
+msgid "Access Point client"
+msgstr "ë̦¤ÎÔÓØËÁ ÓÔÁÎæÑ"
+
+#: lib/sysinfo.c:57 src/bridge.c:89
+msgid "Wireless Bridge Point to Point"
+msgstr "òÁĦÏÍÏÓÔ ÔÏÞËÁ-ÔÏÞËÁ"
+
+#: lib/sysinfo.c:58 src/bridge.c:90
+msgid "Repeater"
+msgstr "ðÏ×ÔÏÒÀ×ÁÞ"
+
+#: lib/sysinfo.c:59 lib/sysinfo.c:314 lib/sysinfo.c:423 src/bridge.c:91
+msgid "unknown"
+msgstr "ÎÅצÄÏÍÉÊ"
+
+#: lib/sysinfo.c:143
 msgid "Device hardware/software/name info:"
 msgstr "¶ÎÆÏÒÍÁæѠÐÒÏ ÐÒÉÓÔҦʠÁÐÁÒÁÔÕÒÁ/ÐÒÏÇÒÁÍÁ/ÎÁÚ×Á:"
 
-#: lib/sysinfo.c:154
-msgid "Product name:"
+#: lib/sysinfo.c:171
+#, fuzzy, c-format
+msgid "Operational mode: %s"
+msgstr "[O] òÅÖÉÍ ÒÏÂÏÔÉ: "
+
+#: lib/sysinfo.c:181
+#, fuzzy
+msgid "Product name: "
 msgstr "¶Í`Ñ ÐÒÏÄÕËÔÕ:"
 
-#: lib/sysinfo.c:158
+#: lib/sysinfo.c:185
 #, c-format
 msgid "Product type: %u"
 msgstr "ôÉРÐÒÏÄÕËÔÕ: %u"
 
-#: lib/sysinfo.c:161
-msgid "OEM name:"
+#: lib/sysinfo.c:188
+#, fuzzy
+msgid "OEM name: "
 msgstr "OEM ¶Í`Ñ:"
 
-#: lib/sysinfo.c:168
+#: lib/sysinfo.c:195
 #, c-format
 msgid "Hardware revision: %u"
 msgstr "áÐÁÒÁÔÎÁ ×ÅÒÓ¦Ñ: %u"
 
-#: lib/sysinfo.c:176
+#: lib/sysinfo.c:203
 #, c-format
 msgid "Info structure version: %u"
 msgstr "÷ÅÒӦѠÓÔÒÕËÔÕÒÉ: %u"
 
-#: lib/sysinfo.c:179 lib/sysinfo.c:355
+#: lib/sysinfo.c:206 lib/sysinfo.c:382
 #, c-format
 msgid "Manufacturer OUI: %02X %02X %02X (%s)"
 msgstr "OUI ×ÉÒÏÂÎÉËÁ: %02X %02X %02X (%s)"
 
-#: lib/sysinfo.c:196
+#: lib/sysinfo.c:223
 #, c-format
 msgid "Uptime: %u days, %02u:%02u:%02u hours:mins:secs"
 msgstr "îÁÐÒÁÃØÏ×ÁÎÏ: %u ÄΦ×, :%02u:%02u.%02u ÇÏÄ:È×:ÓÅË"
 
-#: lib/sysinfo.c:284
+#: lib/sysinfo.c:311
 msgid "FHSS 2.4 GHz"
 msgstr "FHSS 2.4 ççÃ"
 
-#: lib/sysinfo.c:284
+#: lib/sysinfo.c:311
 msgid "DSSS 2.4 GHz"
 msgstr "ûðó 2.4 ççÃ"
 
-#: lib/sysinfo.c:284
+#: lib/sysinfo.c:311
 msgid "IR Baseband"
 msgstr "¶ÎÆÒÁÞÅÒ×ÏÎÉÊ"
 
-#: lib/sysinfo.c:285
+#: lib/sysinfo.c:312
 msgid "Commercial range 0..40 C"
 msgstr "ëÏÍÅÒæÊÎÉʠĦÁÐÁÚÏΠ0..40 C"
 
-#: lib/sysinfo.c:286
+#: lib/sysinfo.c:313
 msgid "Industrial range -30..70 C"
 msgstr "¶ÎÄÕÓÔÒ¦ÁÌØÎÉʠĦÁÐÁÚÏΠ-30..70 C"
 
-#: lib/sysinfo.c:287 lib/sysinfo.c:396
-msgid "unknown"
-msgstr "ÎÅצÄÏÍÉÊ"
-
-#: lib/sysinfo.c:289
+#: lib/sysinfo.c:316
 msgid "manual"
 msgstr "×ÒÕÞÎÕ"
 
-#: lib/sysinfo.c:289
+#: lib/sysinfo.c:316
 msgid "notsupported"
 msgstr "ΊЦÄÔÒÉÍÕ¤ÔØÓÑ"
 
-#: lib/sysinfo.c:289
+#: lib/sysinfo.c:316
 msgid "dynamic"
 msgstr "ĦÎÁͦÞÎÏ"
 
-#: lib/sysinfo.c:345
+#: lib/sysinfo.c:372
 msgid "Manufacturer:"
 msgstr "÷ÉÒÏÂÎÉË:"
 
-#: lib/sysinfo.c:350
+#: lib/sysinfo.c:377
 msgid "Manufacturer ID:"
 msgstr "ID ×ÉÒÏÂÎÉËÁ:"
 
-#: lib/sysinfo.c:361
+#: lib/sysinfo.c:388
 msgid "Product Name:"
 msgstr "¶Í`Ñ ÐÒÏÄÕËÔÕ:"
 
-#: lib/sysinfo.c:367
+#: lib/sysinfo.c:394
 msgid "Product ID:"
 msgstr "ID ÐÒÏÄÕËÔÕ:"
 
-#: lib/sysinfo.c:373
+#: lib/sysinfo.c:400
 msgid "Product Version:"
 msgstr "÷ÅÒӦѠÐÒÏÄÕËÔÕ:"
 
-#: lib/sysinfo.c:379
+#: lib/sysinfo.c:406
 #, c-format
 msgid "PHYType: %s"
 msgstr "ôÉРPHY: %s"
 
-#: lib/sysinfo.c:382
+#: lib/sysinfo.c:409
 #, c-format
 msgid "Temperature: %s"
 msgstr "ôÅÍÐÅÒÁÔÕÒÁ: %s"
 
-#: lib/sysinfo.c:390
+#: lib/sysinfo.c:417
 #, c-format
 msgid "Regulatory Domain: %s"
 msgstr "òÅÇÕÌÑÔÏÒΦ ÏÂÍÅÖÅÎÎÑ: %s"
 
-#: lib/sysinfo.c:391
+#: lib/sysinfo.c:418
 msgid "FCC (USA)"
 msgstr "FCC (óûá)"
 
-#: lib/sysinfo.c:392
+#: lib/sysinfo.c:419
 msgid "DOC (Canada)"
 msgstr "DOC (ëÁÎÁÄÁ)"
 
-#: lib/sysinfo.c:393
+#: lib/sysinfo.c:420
 msgid "ETSI (Europe)"
 msgstr "ETSI (´×ÒÏÐÁ)"
 
-#: lib/sysinfo.c:394
+#: lib/sysinfo.c:421
 msgid "Spain"
 msgstr "¶ÓÐÁΦÑ"
 
-#: lib/sysinfo.c:395
+#: lib/sysinfo.c:422
 msgid "France"
 msgstr "æÒÁÎæÑ"
 
-#: lib/sysinfo.c:396
+#: lib/sysinfo.c:423
 msgid "MKK (Japan)"
 msgstr "MKK (ñÐÏΦÑ)"
 
-#: lib/sysinfo.c:399
+#: lib/sysinfo.c:426
 #, c-format
 msgid "Transmit Power: %u mW"
 msgstr "ðÏÔÕÖΦÓÔØ: %u Í÷Ô"
 
-#: lib/sysinfo.c:429
+#: lib/sysinfo.c:456
 #, c-format
 msgid "WEP implemented: %s"
 msgstr "ð¦ÄÔÒÉÍËÁ WEP: %s"
 
-#: lib/sysinfo.c:432
+#: lib/sysinfo.c:459
 #, c-format
 msgid "Diversity: %s"
 msgstr "÷ɦҠÁÎÔÅÎÉ: %s"
 
-#: lib/sysinfo.c:460
+#: lib/sysinfo.c:487
 #, c-format
 msgid "Uptime: %u:%02u:%02u.%02u"
 msgstr "îÁÐÒÁÃØÏ×ÁÎÏ: %u:%02u:%02u.%02u"
 
-#: lib/sysinfo.c:480
+#: lib/sysinfo.c:507
 #, c-format
 msgid "IP  Address: %s"
 msgstr "IP ÁÄÒÅÓÁ: %s"
@@ -1186,31 +1088,35 @@ msgstr "
 msgid "Right"
 msgstr "ðÒÁ×Á"
 
-#: lib/test.c:86
+#: lib/test.c:79
+msgid "Devices with ATMEL12350 MIB not yet supported."
+msgstr ""
+
+#: lib/test.c:91
 msgid "Test mode"
 msgstr "ôÅÓÔÏ×ÉÊ ÒÅÖÉÍ"
 
-#: lib/test.c:89
+#: lib/test.c:94
 msgid "Using the \"Test mode\" may cause loss of your current"
 msgstr "÷ÉËÏÒÉÓÔÁÎÎÑ ÔÅÓÔÏ×ÏÇÏ ÒÅÖÉÍÕ ÍÏÖÅ ÐÒÉÚ×ÅÓÔÉ ÄÏ ×ÔÒÁÔÉ"
 
-#: lib/test.c:90
+#: lib/test.c:95
 msgid "configuration."
 msgstr "ÐÏÔÏÞÎϧ ËÏÎƦÇÕÒÁæ§."
 
-#: lib/test.c:102
+#: lib/test.c:107
 msgid "Options:"
 msgstr "ðÁÒÁÍÅÔÒÉ:"
 
-#: lib/test.c:128
+#: lib/test.c:133
 msgid "Statistics:"
 msgstr "óÔÁÔÉÓÔÉËÁ:"
 
-#: lib/test.c:129
+#: lib/test.c:134
 msgid "Success Frames: 0 Failed Frames: 0"
 msgstr "÷ÄÁÌÉȠצËÏÎ: 0 îÅ×ÄÁÌÉȠצËÏÎ: 0"
 
-#: lib/test.c:190
+#: lib/test.c:195
 #, c-format
 msgid "Success Frames: %lu Failed Frames: %lu"
 msgstr "÷ÄÁÌÉȠצËÏÎ: %lu îÅ×ÄÁÌÉȠצËÏÎ: %lu"
@@ -1325,7 +1231,8 @@ msgid "[D] DTIM sending interval (beacons): "
 msgstr "[D] ¶ÎÔÅÒ×Á̠צÄÐÒÁ×ËÉ DTIM (ÂÅËÏÎÉ): "
 
 #: lib/wlan.c:48
-msgid "[T] SIFS time (msec): "
+#, fuzzy
+msgid "[T] SIFS time (ACK timeout) msec: "
 msgstr "[T] þÁÓ SIFS (ÍÓÅË): "
 
 #: lib/wlan.c:49
@@ -1357,35 +1264,27 @@ msgid ""
 "UIOPTY - antenna; SCANLEDFR1234 - options; W - write conf; Q - quit to menu"
 msgstr "UIOPTY - ÁÎÔÅÎÁ; SCANLEDFR1234 - ×ÓÔÁÎÏ×ÉÔÉ; W - ÚÁÐÉÓÁÔÉ; Q - ×ÉÊÔÉ"
 
-#: src/ap-config.c:54
-msgid "General"
-msgstr "çÏÌÏ×Φ"
-
-#: src/ap-config.c:54
-msgid "Set general options"
-msgstr "÷ÓÔÁÎÏ×ÉÔÉ ÚÁÇÁÌØΦ ÐÁÒÁÍÅÔÒÉ"
-
-#: src/ap-config.c:55
-msgid "Advanced"
-msgstr "óÐÅæÁÌØΦ"
+#: src/ap-auth.c:32 src/auth.c:28
+msgid "AuthorizedMacTableString packet error"
+msgstr "ðÏÍÉÌËÏ×ÉÊ ÐÁËÅÔ AuthorizedMacTableString"
 
-#: src/ap-config.c:55
-msgid "Set advanced options"
-msgstr "÷ÓÔÁÎÏ×ÉÔÉ ÓÐÅæÁÌØΦ ÐÁÒÁÍÅÔÒÉ"
+#: src/ap-auth.c:33
+msgid "Invalid data in source file"
+msgstr ""
 
-#: src/ap-config.c:89
-msgid "Reset AP."
-msgstr "òÅÓÔÁÒÔ"
+#: src/ap-auth.c:34
+msgid "Can't open file"
+msgstr ""
 
-#: src/ap-config.c:122
-msgid "Latest"
-msgstr "ðÏĦ§"
+#: src/ap-auth.c:35
+msgid "Can't write to file"
+msgstr ""
 
-#: src/ap-config.c:122
-msgid "Get info about latest events"
-msgstr "ïÔÒÉÍÁÔÉ ¦ÎÆÏÒÍÁæÀ ÐÒÏ ÏÓÔÁÎΦ ÐÏĦ§"
+#: src/ap-auth.c:36
+msgid "Error closing file"
+msgstr ""
 
-#: src/ap-mrtg.c:42
+#: src/ap-auth.c:45 src/ap-mrtg.c:42 src/ap-rrd.c:42
 msgid ""
 "\n"
 "Usage:\n"
@@ -1393,72 +1292,41 @@ msgstr ""
 "\n"
 "÷ÉËÏÒÉÓÔÁÎÎÑ:\n"
 
-#: src/ap-mrtg.c:44
+#: src/ap-auth.c:46
+msgid "\tap-auth -i ip -c community -d filename [-h]\n"
+msgstr ""
+
+#: src/ap-auth.c:47
 msgid ""
-"\tap-mrtg -i ip -c community -t type [-b bssid] [-n name] [-a aptype] [-v] [-"
-"h] [-r]\n"
+"\tap-auth -i ip -c community -u filename [-h]\n"
 "\n"
 msgstr ""
-"\tap-mrtg -i ip -c ËÏÍ`ÀΦԦ -t ÔÉР[-b bssid] [-n name] [-a aptype] [-v] [-"
-"h] [-r]\n"
-"\n"
 
-#: src/ap-mrtg.c:46
+#: src/ap-auth.c:48
 msgid ""
-"Get stats from AP and return it in MRTG parsable format\n"
+"Change accesspoint's list of authorised MAC addresses\n"
 "\n"
 msgstr ""
-"ïÔÒÉÍÕ¤ ÄÁÎΦ Ú ÔÏÞËÉ ÄÏÓÔÕÐÕ ÔÁ ÐÏ×ÅÒÔÁ¤ §È Õ MRTG ÆÏÒÍÁÔ¦\n"
-"\n"
 
-#: src/ap-mrtg.c:47
+#: src/ap-auth.c:49 src/ap-mrtg.c:46 src/ap-rrd.c:47
 msgid "-i ip        - AP ip address\n"
 msgstr "-i ip        - ip ÁÄÒÅÓÁ ÔÏÞËÉ ÄÏÓÔÕÐÕ\n"
 
-#: src/ap-mrtg.c:48
+#: src/ap-auth.c:50 src/ap-mrtg.c:47 src/ap-rrd.c:48
 msgid "-c community - SNMP community string\n"
 msgstr "-c ËÏÍ`ÀΦԦ - SNMP ËÏÍ'ÀΦԦ\n"
 
-#: src/ap-mrtg.c:50
-msgid ""
-"-t type      - statistics type <w>ireless, <e>thernet, associated <s>tations "
-"or <l>ink quality in client mode\n"
-msgstr ""
-"-t ÔÉР      - ÔÉРÓÔÁÔÉÓÔÉËÉ w - ÒÁĦÏ, e - ÅÚÅÒÎÅÔ, s - ÁÓÏæÊÏ×ÁΦ "
-"ÓÔÁÎ槠ÁÂÏ l - Ñ˦ÓÔØ ËÁÎÁÌÕ Õ ÒÅÖÉͦ Ë̦ÅÎÔÁ\n"
-
-#: src/ap-mrtg.c:52
+#: src/ap-auth.c:51
 msgid ""
-"-b bssid     - mac address of the AP to which get link quality, only if "
-"type=l\n"
+"-d filename  - download list of authorised MAC addresses from AP to a file\n"
 msgstr ""
-"-b bssid     - ÍÁË-ÁÄÒÅÓÁ ÂÁÚÏ×ϧ ÓÔÁÎ槠ÄÏ ÑËϧ ×ÉÚÎÁÞÁÔÉ Ñ˦ÓÔØ "
-"̦ÎËÕ×ÉËÏÒÉÓÔÏ×ÕÊÔÅ Ô¦ÌØ˦ ÌÉÛÅ, ÑËÝÏ ÔÉÐ=l\n"
-
-#: src/ap-mrtg.c:53
-msgid "-n name     - AP name - for check only\n"
-msgstr "-n ÎÁÚ×Á     - ÎÁÚ×Á ÔÏÞËÉ ÄÏÓÔÕÐÕ (ÌÉÛÅ ÄÌÑ ÐÅÒÅצÒËÉ)\n"
 
-#: src/ap-mrtg.c:54
+#: src/ap-auth.c:53
 msgid ""
-"-a aptype        - AP type - 410 (default) or 510 for ATMEL12350's, like the "
-"ME-102\n"
-msgstr ""
-"-a ÔÉР          - ÔÉРÔÏÞËÉ ÄÏÓÔÕÐÕ - 410 (ÐÏ ÚÁÍÏ×ÞÕ×ÁÎÎÀ) ÁÂÏ 510 ÄÌÑ "
-"ATMEL12350, ÑË íå-102\n"
-
-#: src/ap-mrtg.c:56
-msgid "-v           - report MRTG about problems connecting to AP\n"
-msgstr ""
-"-v           - ÐÏצÄÏÍÌÑÔÉ MRTG ÐÒÏ ÐÏÍÉÌËÉ Ú`¤ÄÎÁÎÎÑ Ú ÔÏÞËÏÀ ÄÏÓÔÕÐÕ\n"
-
-#: src/ap-mrtg.c:57
-msgid "-r           - reset AP when getting LinkQuality stats\n"
+"-u filename  - upload list of authorised MAC addresses from a file to AP\n"
 msgstr ""
-"-r           - ÒÅÓÔÁÒÔÕ×ÁÔÉ ÔÏÞËÕ ÄÏÓÔÕÐÕ ÐÒÉ ÏÔÒÉÍÁÎΦ ÄÁÎÎÉÈ ÐÒÏ Ñ˦ÓÔØ "
-"̦ÎËÕ\n"
 
-#: src/ap-mrtg.c:58
+#: src/ap-auth.c:55 src/ap-mrtg.c:56 src/ap-rrd.c:57
 msgid ""
 "-h           - print this help screen\n"
 "\n"
@@ -1466,106 +1334,779 @@ msgstr ""
 "-h           - ÎÁÄÒÕËÕ×ÁÔÉ ÃÅÊ ÅËÒÁΠÄÏÐÏÍÏÇÉ\n"
 "\n"
 
-#: src/ap-mrtg.c:59
-#, c-format
+#: src/ap-auth.c:56
+#, fuzzy, c-format
 msgid ""
-"ap-mrtg %s Copyright (c) 2002-2003 Roman Festchook\n"
+"ap-auth %s Copyright (c) 2004 Teemu Kiviniemi\n"
 "\n"
 msgstr ""
 "ap-mrtg %s Copyright (c) 2002-2003 òÏÍÁΠæÅÝÕË\n"
 "\n"
 
-#: src/ap-mrtg.c:143
-msgid "Invalid IP-address\n"
+#: src/ap-auth.c:146 src/ap-mrtg.c:139
+#, fuzzy
+msgid "Error: invalid IP-address.\n"
 msgstr "îÅצÒÎÁ ¶ò ÁÄÒÅÓÁ\n"
 
-#: src/ap-mrtg.c:188
-#, c-format
-msgid "Invalid AP-Type '%s' - valid types are 510 or 410\n"
-msgstr "îÅצÒÎÉÊ ÔÉР'%s' - ÄÏÚ×ÏÌÅΦ ÔÉÐÉ 510 ÔÁ 410\n"
-
-#: src/ap-mrtg.c:207
+#: src/ap-auth.c:178 src/ap-mrtg.c:178 src/ap-rrd.c:207
 msgid "Create socket error"
 msgstr "ðÏÍÉÌËÁ ÓÔ×ÏÒÅÎÎÑ ÓÏËÅÔÕ"
 
-#: src/ap-mrtg.c:211
+#: src/ap-auth.c:182 src/ap-mrtg.c:182 src/ap-rrd.c:211
 msgid "Bind socket error"
 msgstr "ðÏÍÉÌËÁ ÐÒÉ×`ÑÚËÉ ÓÏËÅÔÕ"
 
-#: src/ap-trapd.c:148
-#, c-format
-msgid "ap-trapd %s started%s%s."
-msgstr "ap-trapd %s ÓÔÁÒÔÏ×ÁÎÏ%s%s."
+#: src/ap-auth.c:220 src/ap-mrtg.c:220
+#, fuzzy
+msgid "Unable to determine AP MIB type (no response from AP)."
+msgstr ""
+"îÅ ÍÏÖÕ ×ÉÚÎÁÞÉÔÉ ÔÉРáò MIB (ΊצÄÐÏצÄÁ¤). âÕÄØ ÑËÁ ËÌÁצÛÁ ÄÌÑ "
+"ÐÒÏÄÏ×ÖÅÎÎÑ"
 
-#: src/ap-trapd.c:149
-msgid " on "
-msgstr " ÎÁ "
+#: src/ap-auth.c:228
+msgid "NWN devices are not yet supported."
+msgstr ""
 
-#: src/ap-trapd.c:155
-msgid "Unable to fork. Exiting."
-msgstr "îÅ ÍÏÖÕ ×ÉËÏÎÁÔÉ fork. ÷ÉÈÏÄÖÕ."
+#: src/ap-config.c:41 src/bridge.c:200
+msgid "Bridging"
+msgstr "íÏÓÔ"
 
-#: src/ap-trapd.c:159
-msgid "Can't create socket. Exiting."
-msgstr "îÅ ÍÏÖÕ ÓÔ×ÏÒÉÔÉ ÓÏËÅÔ. ÷ÉÈÏÄÖÕ."
+#: src/ap-config.c:41
+msgid "Set bridging and IP-related options"
+msgstr "÷ÓÔÁÎÏ×ÉÔÉ ÏÐ槠ÍÏÓÔÁ ÔÁ ¶ò ÐÒÏÔÏËÏÌÕ"
 
-#: src/ap-trapd.c:165
-msgid "Can't bind socket. Exiting."
-msgstr "îÅ ÍÏÖÕ ÐÒÉ×`ÑÚÁÔÉ ÓÏËÅÔ. ÷ÉÈÏÄÖÕ."
+#: src/ap-config.c:43 src/ap-config.c:112 src/ap-config.c:121 src/bridge.c:124
+msgid "Wireless"
+msgstr "òÁĦÏ"
 
-#: src/ap-trapd.c:172
-#, c-format
-msgid "Can't bind to device %s. Exiting."
-msgstr "îÅ ÍÏÖÕ ÐÒÉ×`ÑÚÁÔÉÓÑ ÄÏ ÐÒÉÓÔÒÏÀ %s. ÷ÉÈÏÄÖÕ."
+#: src/ap-config.c:43
+msgid "Set wireless options"
+msgstr "÷ÓÔÁÎÏ×ÉÔÉ ÐÁÒÁÍÅÔÒÉ ÒÁĦÏÍÅÒÅÖ¦"
 
-#: src/ap-trapd.c:183
-#, c-format
-msgid "Unable to process username %s. Error: %m."
-msgstr "îÅ ÍÏÖÕ ÏÂÒÏÂÉÔÉ ÌÏǦΠ%s. ðÏÍÉÌËÁ: %m."
+#: src/ap-config.c:44 src/ap-config.c:56
+msgid "Privacy"
+msgstr "ûÉÆÒÕ×ÁÎÎÑ"
 
-#: src/ap-trapd.c:188
-#, c-format
-msgid "Unable to change to uid %d."
-msgstr "îÅ ÍÏÖÕ ÐÅÒÅÚÁÐÕÓÔÉÔÉÓؠЦĠuid %d. "
+#: src/ap-config.c:45
+#, fuzzy
+msgid "Auth"
+msgstr "ðÒÏÇÒÁÍÁ"
 
-#: src/ap-trapd.c:235
-#, c-format
-msgid ""
-"Received unknown SNMP ver %d trap. From %s:%d. Agent: %s. Community: %s."
-msgstr ""
-"ïÔÒÉÍÁÎÏ ÎÅצÄÏÍÉÊ SNMP ×ÅÒ %d ÔÒÁÐ. ú %s:%d. áÇÅÎÔ: %s. ëÏÍ`ÀΦԦ: %s."
+#: src/ap-config.c:46 src/ap-config.c:58
+msgid "Community"
+msgstr "ëÏÍ'ÀΦԦ"
 
-#: src/ap-trapd.c:307
-#, c-format
-msgid "Agent:v%d %s (%s@%s:%d) %s%s%s. SysUptime %d:%02d:%02d.%02d"
-msgstr "áÇÅÎÔ:v%d %s (%s@%s:%d) %s%s%s. îÁÐÒÁÃØÏ×ÁÎÏ %d:%02d:%02d.%02d"
+#: src/ap-config.c:47
+msgid "Radio"
+msgstr "ðÅÒÅÄÁ×ÁÞ"
 
-#: src/auth_mac.c:33
-msgid "NUM     MAC address"
-msgstr "#       íáó ÁÄÒÅÓÁ"
+#: src/ap-config.c:47
+msgid "Set radio signal power and antenna options"
+msgstr "÷ÓÔÁÎÏ×ÉÔÉ ÐÏÔÕÖΦÓÔØ ÐÅÒÅÄÁ×ÁÞÁ ÔÁ ÁÎÔÅÎÉ"
 
-#: src/bridge.c:35
-msgid "[C] Configuration-enabled port(s): "
-msgstr "[C] ðÏÒÔ ËÏÎƦÇÕÒÕ×ÁÎÎÑ: "
+#: src/ap-config.c:54
+msgid "General"
+msgstr "çÏÌÏ×Φ"
 
-#: src/bridge.c:38
-msgid "[B] Isolate wireless clients (broadcast traffic): "
-msgstr "[B] ¶ÚÏÌÀ×ÁÔÉ ÒÁĦÏË̦¤ÎԦנ(ÂÒÏÁÄËÁÓÔÏצ ÐÁËÕÎËÉ): "
+#: src/ap-config.c:54
+msgid "Set general options"
+msgstr "÷ÓÔÁÎÏ×ÉÔÉ ÚÁÇÁÌØΦ ÐÁÒÁÍÅÔÒÉ"
 
-#: src/bridge.c:39
-msgid "[U] Isolate wireless clients (unicast traffic): "
-msgstr "[U] ¶ÚÏÌÀ×ÁÔÉ ÒÁĦÏË̦¤ÎԦנ(ÕΦËÁÓÔÏצ ÐÁËÕÎËÉ): "
+#: src/ap-config.c:55
+msgid "Advanced"
+msgstr "óÐÅæÁÌØΦ"
 
-#: src/bridge.c:119
-msgid "Both"
-msgstr "ïÂÉÄ×Á"
+#: src/ap-config.c:55
+msgid "Set advanced options"
+msgstr "÷ÓÔÁÎÏ×ÉÔÉ ÓÐÅæÁÌØΦ ÐÁÒÁÍÅÔÒÉ"
 
-#: src/nwn_advanced.c:60
-#, c-format
-msgid "[D] DB Station Timeout: %d"
-msgstr "[D] ðÏÎÏ×ÌÅÎÎÑ óÔÁÎæÊ: %d"
+#: src/ap-config.c:57
+msgid "MAC auth"
+msgstr "íáó ÄÏÓÔÕÐ"
 
-#: src/nwn_advanced.c:62
+#: src/ap-config.c:80
+msgid "Upload"
+msgstr "úÁ×ÁÎÔÁÖÉÔÉ"
+
+#: src/ap-config.c:80
+msgid "Activate current configuration"
+msgstr "áËÔÉצÚÕ×ÁÔÉ ÐÏÔÏÞÎÕ ËÏÎƦÇÕÒÁæÀ"
+
+#: src/ap-config.c:81
+msgid "Defaults"
+msgstr "æÁÂÒ¦ÞΦ"
+
+#: src/ap-config.c:81
+msgid "Restore factory default settings"
+msgstr "÷¦ÄÎÏ×ÉÔÉ ÆÁÂÒ¦ÞΦ ÎÁÓÔÒÏÊËÉ."
+
+#: src/ap-config.c:82 src/ap-config.c:89
+msgid "Reset"
+msgstr "òÅÓÔÁÒÔ"
+
+#: src/ap-config.c:83
+msgid "Reset AP. All not uploaded configuration will be lost"
+msgstr "ðÅÒÅÚÁ×ÁÎÔÁÖÉÔÉ áò. îÅÁËÔÉצÚÏ×ÁΦ ÚͦÎÉ Õ ËÏÎƦÇÕÒÁ槠ÂÕÄÁ ×ÔÒÁÞÅÎÏ."
+
+#: src/ap-config.c:84
+msgid "TestMode"
+msgstr "ôÅÓÔ"
+
+#: src/ap-config.c:84
+msgid "Put Access Point in test mode"
+msgstr "ðÏÓÔÁ×ÉÔÉ áò Õ ÔÅÓÔÏ×ÉÊ ÒÅÖÉÍ"
+
+#: src/ap-config.c:89
+msgid "Reset AP."
+msgstr "òÅÓÔÁÒÔ"
+
+#: src/ap-config.c:110 src/ap-config.c:120
+msgid "SysInfo"
+msgstr "óÉÓÔÅÍÁ"
+
+#: src/ap-config.c:111 src/bridge.c:123 src/bridge.c:127
+msgid "Ethernet"
+msgstr "åÚÅÒÎÅÔ"
+
+#: src/ap-config.c:111
+msgid "Get ethernet port statistics"
+msgstr "ïÔÒÉÍÁÔÉ ÓÔÁÔÉÓÔÉËÕ ÅÚÅÒÎÅÔ ÐÏÒÔÕ"
+
+#: src/ap-config.c:113 src/ap-config.c:122
+msgid "Stations"
+msgstr "óÔÁÎæ§"
+
+#: src/ap-config.c:114
+#, fuzzy
+msgid "AP link"
+msgstr "óÔÁΠÚ×'ÑÚËÕ Ú AP"
+
+#: src/ap-config.c:115
+msgid "KnownAPs"
+msgstr "÷¦ÄÏͦôÏÞËÉ"
+
+#: src/ap-config.c:115
+msgid "Get info about known Access Points"
+msgstr "ïÔÒÉÍÁÔÉ ¦ÎÆÏÒÍÁÃÉÀ ÐÒϠצÄÏͦ ôÏÞËÉ äÏÓÔÕÐÕ"
+
+#: src/ap-config.c:123
+msgid "Latest"
+msgstr "ðÏĦ§"
+
+#: src/ap-config.c:123
+msgid "Get info about latest events"
+msgstr "ïÔÒÉÍÁÔÉ ¦ÎÆÏÒÍÁæÀ ÐÒÏ ÏÓÔÁÎΦ ÐÏĦ§"
+
+#: src/ap-config.c:148
+msgid "Info"
+msgstr "¶ÎÆÏÒÍÁæÑ"
+
+#: src/ap-config.c:149
+msgid "Config"
+msgstr "õÓÔÁÎÏ×ËÉ"
+
+#: src/ap-config.c:150
+msgid "Commands"
+msgstr "ëÏÍÁÎÄÉ"
+
+#: src/ap-config.c:150
+msgid "Execute commands on Access Point"
+msgstr "÷ÉËÏÎÁÔÉ ËÏÍÁÎÄÉ ÎÁ áò"
+
+#: src/ap-config.c:152
+msgid "Connect"
+msgstr "ú'¤ÄÎÁÎÎÑ"
+
+#: src/ap-config.c:153
+msgid "Search"
+msgstr "ðÏÛÕË"
+
+#: src/ap-config.c:155
+msgid "Shell"
+msgstr "ïÂÏÌÏÎËÁ"
+
+#: src/ap-config.c:156
+msgid "Exit"
+msgstr "÷ÉȦÄ"
+
+#: src/ap-config.c:214
+#, c-format
+msgid "Wireless Access Point Configurator ver. %s"
+msgstr "ëÏÎƦÇÕÒÁÔÏÒ ÔÏÞËÉ ÄÏÓÔÕÐÕ ÒÁĦÏÍÅÒÅÖ¦ ×ÅÒ. %s"
+
+#: src/aplink.c:28
+msgid "RSSI:     ["
+msgstr ""
+
+#: src/aplink.c:29
+msgid "RSSI avg: ["
+msgstr ""
+
+#: src/aplink.c:30
+msgid "RSSI top: ["
+msgstr ""
+
+#: src/aplink.c:112
+msgid "Not available - device must have firmware with necessary "
+msgstr ""
+
+#: src/aplink.c:114
+msgid "vendor extensions and be in either 'Access Point client'"
+msgstr ""
+
+#: src/aplink.c:116
+msgid "or 'Repeater' mode."
+msgstr ""
+
+#: src/ap-mrtg.c:43
+#, fuzzy
+msgid ""
+"\tap-mrtg -i ip -c community -t type [-b bssid] [-n name] [-v] [-h] [-r]\n"
+"\n"
+msgstr ""
+"\tap-mrtg -i ip -c ËÏÍ`ÀΦԦ -t ÔÉР[-b bssid] [-n name] [-a aptype] [-v] [-"
+"h] [-r]\n"
+"\n"
+
+#: src/ap-mrtg.c:45
+msgid ""
+"Get stats from AP and return it in MRTG parsable format\n"
+"\n"
+msgstr ""
+"ïÔÒÉÍÕ¤ ÄÁÎΦ Ú ÔÏÞËÉ ÄÏÓÔÕÐÕ ÔÁ ÐÏ×ÅÒÔÁ¤ §È Õ MRTG ÆÏÒÍÁÔ¦\n"
+"\n"
+
+#: src/ap-mrtg.c:48
+#, fuzzy
+msgid ""
+"-t type      - statistics type <w>ireless, <e>thernet, associated <s>tations "
+"or <l>ink quality (last one will only "
+msgstr ""
+"-t ÔÉР      - ÔÉРÓÔÁÔÉÓÔÉËÉ w - ÒÁĦÏ, e - ÅÚÅÒÎÅÔ, s - ÁÓÏæÊÏ×ÁΦ "
+"ÓÔÁÎ槠ÁÂÏ l - Ñ˦ÓÔØ ËÁÎÁÌÕ Õ ÒÅÖÉͦ Ë̦ÅÎÔÁ\n"
+
+#: src/ap-mrtg.c:50
+msgid "work with ATMEL410 MIB devices in AP Client mode)\n"
+msgstr ""
+
+#: src/ap-mrtg.c:51
+#, fuzzy
+msgid ""
+"-b bssid     - mac address of the AP from which get link quality, only if "
+"type=l\n"
+msgstr ""
+"-b bssid     - ÍÁË-ÁÄÒÅÓÁ ÂÁÚÏ×ϧ ÓÔÁÎ槠ÄÏ ÑËϧ ×ÉÚÎÁÞÁÔÉ Ñ˦ÓÔØ "
+"̦ÎËÕ×ÉËÏÒÉÓÔÏ×ÕÊÔÅ Ô¦ÌØ˦ ÌÉÛÅ, ÑËÝÏ ÔÉÐ=l\n"
+
+#: src/ap-mrtg.c:53
+#, fuzzy
+msgid "-n name      - AP name - for check only\n"
+msgstr "-n ÎÁÚ×Á     - ÎÁÚ×Á ÔÏÞËÉ ÄÏÓÔÕÐÕ (ÌÉÛÅ ÄÌÑ ÐÅÒÅצÒËÉ)\n"
+
+#: src/ap-mrtg.c:54
+msgid "-v           - report MRTG about problems connecting to AP\n"
+msgstr ""
+"-v           - ÐÏצÄÏÍÌÑÔÉ MRTG ÐÒÏ ÐÏÍÉÌËÉ Ú`¤ÄÎÁÎÎÑ Ú ÔÏÞËÏÀ ÄÏÓÔÕÐÕ\n"
+
+#: src/ap-mrtg.c:55 src/ap-rrd.c:56
+msgid "-r           - reset AP when getting LinkQuality stats\n"
+msgstr ""
+"-r           - ÒÅÓÔÁÒÔÕ×ÁÔÉ ÔÏÞËÕ ÄÏÓÔÕÐÕ ÐÒÉ ÏÔÒÉÍÁÎΦ ÄÁÎÎÉÈ ÐÒÏ Ñ˦ÓÔØ "
+"̦ÎËÕ\n"
+
+#: src/ap-mrtg.c:57
+#, c-format
+msgid ""
+"ap-mrtg %s Copyright (c) 2002-2003 Roman Festchook\n"
+"\n"
+msgstr ""
+"ap-mrtg %s Copyright (c) 2002-2003 òÏÍÁΠæÅÝÕË\n"
+"\n"
+
+#: src/ap-rrd.c:44
+#, fuzzy
+msgid ""
+"\tap-rrd -i ip -c community -t type -d db_file [-b bssid] [-n name] [-a "
+"aptype] [-h] [-r] \n"
+"\n"
+msgstr ""
+"\tap-mrtg -i ip -c ËÏÍ`ÀΦԦ -t ÔÉР[-b bssid] [-n name] [-a aptype] [-v] [-"
+"h] [-r]\n"
+"\n"
+
+#: src/ap-rrd.c:46
+#, fuzzy
+msgid ""
+"Get stats from AP and put it in to specified RRDtool database\n"
+"\n"
+msgstr ""
+"ïÔÒÉÍÕ¤ ÄÁÎΦ Ú ÔÏÞËÉ ÄÏÓÔÕÐÕ ÔÁ ÐÏ×ÅÒÔÁ¤ §È Õ MRTG ÆÏÒÍÁÔ¦\n"
+"\n"
+
+#: src/ap-rrd.c:50
+msgid ""
+"-t type      - statistics type <w>ireless, <e>thernet, associated <s>tations "
+"or <l>ink quality in client mode\n"
+msgstr ""
+"-t ÔÉР      - ÔÉРÓÔÁÔÉÓÔÉËÉ w - ÒÁĦÏ, e - ÅÚÅÒÎÅÔ, s - ÁÓÏæÊÏ×ÁΦ "
+"ÓÔÁÎ槠ÁÂÏ l - Ñ˦ÓÔØ ËÁÎÁÌÕ Õ ÒÅÖÉͦ Ë̦ÅÎÔÁ\n"
+
+#: src/ap-rrd.c:51
+msgid "-d db_file   - RRD database file with full path\n"
+msgstr ""
+
+#: src/ap-rrd.c:53
+msgid ""
+"-b bssid     - mac address of the AP to which get link quality, only if "
+"type=l\n"
+msgstr ""
+"-b bssid     - ÍÁË-ÁÄÒÅÓÁ ÂÁÚÏ×ϧ ÓÔÁÎ槠ÄÏ ÑËϧ ×ÉÚÎÁÞÁÔÉ Ñ˦ÓÔØ "
+"̦ÎËÕ×ÉËÏÒÉÓÔÏ×ÕÊÔÅ Ô¦ÌØ˦ ÌÉÛÅ, ÑËÝÏ ÔÉÐ=l\n"
+
+#: src/ap-rrd.c:54
+msgid "-n name     - AP name - for check only\n"
+msgstr "-n ÎÁÚ×Á     - ÎÁÚ×Á ÔÏÞËÉ ÄÏÓÔÕÐÕ (ÌÉÛÅ ÄÌÑ ÐÅÒÅצÒËÉ)\n"
+
+#: src/ap-rrd.c:55
+#, fuzzy
+msgid ""
+"-a aptype    - AP type - 410 (default) or 510 for ATMEL12350's, like the ME-"
+"102\n"
+msgstr ""
+"-a ÔÉР          - ÔÉРÔÏÞËÉ ÄÏÓÔÕÐÕ - 410 (ÐÏ ÚÁÍÏ×ÞÕ×ÁÎÎÀ) ÁÂÏ 510 ÄÌÑ "
+"ATMEL12350, ÑË íå-102\n"
+
+#: src/ap-rrd.c:58
+#, fuzzy, c-format
+msgid ""
+"ap-rrd %s Copyright (c) 2002-2004 Roman Festchook\n"
+"\n"
+msgstr ""
+"ap-mrtg %s Copyright (c) 2002-2003 òÏÍÁΠæÅÝÕË\n"
+"\n"
+
+#: src/ap-rrd.c:142
+msgid "Invalid IP-address\n"
+msgstr "îÅצÒÎÁ ¶ò ÁÄÒÅÓÁ\n"
+
+#: src/ap-rrd.c:188
+#, c-format
+msgid "Invalid AP-Type '%s' - valid types are 510 or 410\n"
+msgstr "îÅצÒÎÉÊ ÔÉР'%s' - ÄÏÚ×ÏÌÅΦ ÔÉÐÉ 510 ÔÁ 410\n"
+
+#: src/ap-tftp.c:81
+#, fuzzy
+msgid "yes"
+msgstr "ôÁË"
+
+#: src/ap-tftp.c:82
+#, fuzzy
+msgid "no"
+msgstr "¶ÎÆÏÒÍÁæÑ"
+
+#: src/ap-tftp.c:84
+msgid "Error while read()ing firmware file"
+msgstr ""
+
+#: src/ap-tftp.c:88
+msgid "Undefined error"
+msgstr ""
+
+#: src/ap-tftp.c:89
+msgid "File not found"
+msgstr ""
+
+#: src/ap-tftp.c:90
+#, fuzzy
+msgid "Access violation"
+msgstr "âÁÚÏ×Á ÓÔÁÎæÑ"
+
+#: src/ap-tftp.c:91
+msgid "Disk full or allocation error"
+msgstr ""
+
+#: src/ap-tftp.c:92
+msgid "Illegal TFTP operation"
+msgstr ""
+
+#: src/ap-tftp.c:93
+msgid "Unknown transfer ID"
+msgstr ""
+
+#: src/ap-tftp.c:94
+msgid "File already exists"
+msgstr ""
+
+#: src/ap-tftp.c:95
+msgid "No such user"
+msgstr ""
+
+#: src/ap-tftp.c:161
+msgid "Remote-filename too long.\n"
+msgstr ""
+
+#: src/ap-tftp.c:187
+#, c-format
+msgid "%sError in read()"
+msgstr ""
+
+#: src/ap-tftp.c:215
+#, c-format
+msgid "sending %u bytes\n"
+msgstr ""
+
+#: src/ap-tftp.c:224
+#, c-format
+msgid "%sError in sendto()"
+msgstr ""
+
+#: src/ap-tftp.c:247
+#, c-format
+msgid "%sError in recvfrom()"
+msgstr ""
+
+#: src/ap-tftp.c:261
+#, c-format
+msgid "\rProgress: uploaded %.0f %%."
+msgstr ""
+
+#: src/ap-tftp.c:272
+#, c-format
+msgid "%sMalformed packet received. Aborting.\n"
+msgstr ""
+
+#: src/ap-tftp.c:281
+#, c-format
+msgid "%sTimed out waiting for response from server (%i/%i).\n"
+msgstr ""
+
+#: src/ap-tftp.c:288
+#, c-format
+msgid "%sError in select()"
+msgstr ""
+
+#: src/ap-tftp.c:302
+#, c-format
+msgid "Received %d bytes: %04x %04x\n"
+msgstr ""
+
+#: src/ap-tftp.c:313
+#, c-format
+msgid "%sError: server responded with %s. Aborting.\n"
+msgstr ""
+
+#: src/ap-tftp.c:320
+#, c-format
+msgid "%sFlash programming in progress...\n"
+msgstr ""
+
+#: src/ap-tftp.c:322
+msgid "Finished successfully.\n"
+msgstr ""
+
+#: src/ap-tftp.c:340
+msgid "PLEASE BE _ABSOLUTELY_ SURE TO READ MANPAGE PRIOR USE!!!\n"
+msgstr ""
+
+#: src/ap-tftp.c:341
+#, c-format
+msgid ""
+"\n"
+"Usage: %s <-l firmware_file.rom> <IP>\n"
+msgstr ""
+
+#: src/ap-tftp.c:363
+msgid "TFTP client for upgrading firmware in ATMEL AT76C510 WiSOC-based APs.\n"
+msgstr ""
+
+#: src/ap-tftp.c:365
+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
+msgid "Error: invalid IP address format given.\n"
+msgstr ""
+
+#: src/ap-tftp.c:405
+msgid "Error while open()ing firmware file"
+msgstr ""
+
+#: src/ap-tftp.c:411 src/ap-tftp.c:462
+msgid "Error: invalid firmware file given.\n"
+msgstr ""
+
+#: src/ap-tftp.c:451
+#, c-format
+msgid ""
+"Firmware file contains:\n"
+"- string \"ATMEL\": %s\n"
+"- string \"802.11 AP\": %s\n"
+"- string \"atbrfirm.bin\": %s\n"
+"- string \"atsingle.bin\": %s\n"
+msgstr ""
+
+#: src/ap-tftp.c:474
+#, c-format
+msgid ""
+"Using:\n"
+"- server: %s\n"
+"- firmware file: \"%s\"\n"
+"- name used for upload: \"%s\"\n"
+msgstr ""
+
+#: src/ap-tftp.c:537
+msgid "Error while lseek()ing in firmware file\n"
+msgstr ""
+
+#: src/ap-trapd.c:150
+#, c-format
+msgid "ap-trapd %s started%s%s."
+msgstr "ap-trapd %s ÓÔÁÒÔÏ×ÁÎÏ%s%s."
+
+#: src/ap-trapd.c:151
+msgid " on "
+msgstr " ÎÁ "
+
+#: src/ap-trapd.c:157
+msgid "Unable to fork. Exiting."
+msgstr "îÅ ÍÏÖÕ ×ÉËÏÎÁÔÉ fork. ÷ÉÈÏÄÖÕ."
+
+#: src/ap-trapd.c:161
+msgid "Can't create socket. Exiting."
+msgstr "îÅ ÍÏÖÕ ÓÔ×ÏÒÉÔÉ ÓÏËÅÔ. ÷ÉÈÏÄÖÕ."
+
+#: src/ap-trapd.c:167
+msgid "Can't bind socket. Exiting."
+msgstr "îÅ ÍÏÖÕ ÐÒÉ×`ÑÚÁÔÉ ÓÏËÅÔ. ÷ÉÈÏÄÖÕ."
+
+#: src/ap-trapd.c:174
+#, c-format
+msgid "Can't bind to device %s. Exiting."
+msgstr "îÅ ÍÏÖÕ ÐÒÉ×`ÑÚÁÔÉÓÑ ÄÏ ÐÒÉÓÔÒÏÀ %s. ÷ÉÈÏÄÖÕ."
+
+#: src/ap-trapd.c:185
+#, c-format
+msgid "Unable to process username %s. Error: %m."
+msgstr "îÅ ÍÏÖÕ ÏÂÒÏÂÉÔÉ ÌÏǦΠ%s. ðÏÍÉÌËÁ: %m."
+
+#: src/ap-trapd.c:190
+#, c-format
+msgid "Unable to change to uid %d."
+msgstr "îÅ ÍÏÖÕ ÐÅÒÅÚÁÐÕÓÔÉÔÉÓؠЦĠuid %d. "
+
+#: src/ap-trapd.c:239
+#, c-format
+msgid ""
+"Received unknown SNMP ver %d trap. From %s:%d. Agent: %s. Community: %s."
+msgstr ""
+"ïÔÒÉÍÁÎÏ ÎÅצÄÏÍÉÊ SNMP ×ÅÒ %d ÔÒÁÐ. ú %s:%d. áÇÅÎÔ: %s. ëÏÍ`ÀΦԦ: %s."
+
+#: src/ap-trapd.c:311
+#, fuzzy, c-format
+msgid "Agent:v%d %s (%s@%s:%d) Trap %i: %s%s%s. SysUptime %d:%02d:%02d.%02d"
+msgstr "áÇÅÎÔ:v%d %s (%s@%s:%d) %s%s%s. îÁÐÒÁÃØÏ×ÁÎÏ %d:%02d:%02d.%02d"
+
+#: src/auth.c:30
+msgid "APClient authorization credentials"
+msgstr ""
+
+#: src/auth.c:32
+msgid "[A] MAC authorization: "
+msgstr "[A] Máó Á×ÔÏÒÉÚÁæÑ: "
+
+#: src/auth.c:33
+msgid "Enter MAC: "
+msgstr "÷×ÅĦÔØ íáó:"
+
+#: src/auth.c:34
+msgid "Delete Num: "
+msgstr "÷ÉÄÁÌÉÔÉ ÎÏÍÅÒ:"
+
+#: src/auth.c:35
+#, fuzzy
+msgid " NUM     MAC address     "
+msgstr "#       íáó ÁÄÒÅÓÁ"
+
+#: src/auth.c:36
+#, fuzzy
+msgid "A: auth; N: new; D: del; arrows: scroll; W: write conf; Q: quit"
+msgstr ""
+"A Á×ÔÏÒÉÚÁæÑ; N ÎÏ×Á; D ×ÉÄÁÌÉÔÉ; ÓÔÒ¦ÌËÉ ÐÅÒÅÇÌÑÄ; W ÚÁÐÉÓÁÔÉ; Q ×ÉÊÔÉ"
+
+#: src/auth.c:38
+msgid "[I] Radius server IP: "
+msgstr ""
+
+#: src/auth.c:39
+#, fuzzy
+msgid "[P] Radius server port: "
+msgstr "[P] çÏÌÏ×ΦʠÐÏÒÔ: "
+
+#: src/auth.c:40
+msgid "[S] Radius server secret: "
+msgstr ""
+
+#: src/auth.c:41
+#, fuzzy
+msgid "[T] Reauthorization time (sec): "
+msgstr "[A] Máó Á×ÔÏÒÉÚÁæÑ: "
+
+#: src/auth.c:42
+msgid "[F] Radius source port: "
+msgstr ""
+
+#: src/auth.c:43
+#, fuzzy
+msgid ""
+"A: auth; N: new; D: del; IPSTF: set; arrows: scroll; W: write conf; Q: quit"
+msgstr ""
+"A Á×ÔÏÒÉÚÁæÑ; N ÎÏ×Á; D ×ÉÄÁÌÉÔÉ; ÓÔÒ¦ÌËÉ ÐÅÒÅÇÌÑÄ; W ÚÁÐÉÓÁÔÉ; Q ×ÉÊÔÉ"
+
+#: src/auth.c:45
+#, fuzzy
+msgid "[M] 802.1x authorization: "
+msgstr "[A] Máó Á×ÔÏÒÉÚÁæÑ: "
+
+#: src/auth.c:46
+#, fuzzy
+msgid "[T] key broadcasting time period (sec): "
+msgstr "[B] ðÅÒ¦ÏÄ ÂÅËÏΦנ(ÍÓÅË): "
+
+#: src/auth.c:47
+msgid "[I] 802.1x auth. server IP: "
+msgstr ""
+
+#: src/auth.c:48
+msgid "[S] 802.1x auth. server secret: "
+msgstr ""
+
+#: src/auth.c:49
+#, fuzzy
+msgid ""
+"A: auth; N: new; D: del; MTIS: set; arrows: scroll; W: write conf; Q: quit"
+msgstr ""
+"A Á×ÔÏÒÉÚÁæÑ; N ÎÏ×Á; D ×ÉÄÁÌÉÔÉ; ÓÔÒ¦ÌËÉ ÐÅÒÅÇÌÑÄ; W ÚÁÐÉÓÁÔÉ; Q ×ÉÊÔÉ"
+
+#: src/auth.c:114
+msgid "Internal"
+msgstr "÷ÎÕÔÒ¦ÛÎÑ ÔÁÂÌÉÃÑ"
+
+#: src/auth.c:116
+#, fuzzy
+msgid "Radius"
+msgstr "ðÅÒÅÄÁ×ÁÞ"
+
+#: src/auth.c:121
+msgid "Allow listed MACs only"
+msgstr ""
+
+#: src/auth.c:123
+msgid "Deny listed MACs only"
+msgstr ""
+
+#: src/auth.c:129
+msgid "Mixed environment"
+msgstr ""
+
+#: src/auth.c:213
+msgid "(not shown)"
+msgstr ""
+
+#: src/auth.c:270
+#, fuzzy
+msgid "Authorized MAC addresses:"
+msgstr "á×ÔÏÒÉÚÏ×ÁΦ íáó ÁÄÒÅÓÉ"
+
+#: src/auth.c:339
+msgid "(insufficient community used)"
+msgstr ""
+
+#: src/auth.c:466
+#, c-format
+msgid "Given MAC already exists in MAC list at position %d. Press any key."
+msgstr ""
+
+#: src/bridge.c:27
+msgid "[I] IP: "
+msgstr "[I] ¶ò: "
+
+#: src/bridge.c:28
+msgid "[N] Netmask: "
+msgstr "[N] íÁÓËÁ: "
+
+#: src/bridge.c:29
+msgid "[G] Gateway: "
+msgstr "[G] ûÌÀÚ: "
+
+#: src/bridge.c:30
+msgid "[F] Filter non-IP traffic: "
+msgstr "[F] æ¦ÌØÔÒÕ×ÁÔÉ ÎÅ-¶ò ÔÒÁƦË: "
+
+#: src/bridge.c:31
+msgid "[P] Primary port: "
+msgstr "[P] çÏÌÏ×ΦʠÐÏÒÔ: "
+
+#: src/bridge.c:32
+msgid "Attached station MAC: "
+msgstr "ð¦Ä'¤ÄÎÁÎÁ ÓÔÁÎæÑ: "
+
+#: src/bridge.c:33
+msgid "[D] DHCP client: "
+msgstr "[D] DHCP Ë̦¤ÎÔ: "
+
+#: src/bridge.c:34
+msgid "[O] Operational mode: "
+msgstr "[O] òÅÖÉÍ ÒÏÂÏÔÉ: "
+
+#: src/bridge.c:35
+msgid "[M] Preferred BSSID (remote MAC addr.): "
+msgstr "[M] ÷¦ÄÄÁÌÅÎÉÊ Máó: "
+
+#: src/bridge.c:36
+msgid "[C] Configuration-enabled port(s): "
+msgstr "[C] ðÏÒÔ ËÏÎƦÇÕÒÕ×ÁÎÎÑ: "
+
+#: src/bridge.c:37
+#, fuzzy
+msgid "[T] Trap-sending port: "
+msgstr "[T] ðÏÒԠצÄÐÒÁ×ËÉ ÔÒÁЦ×: "
+
+#: src/bridge.c:38
+msgid "[R] Forward broadcast traffic: "
+msgstr "[R] ðÅÒÅÄÁÞÁ ÂÒÏÁÄËÁÓÔÏ×ÉÈ ÐÁËÕÎ˦×: "
+
+#: src/bridge.c:39
+msgid "[B] Isolate wireless clients (broadcast traffic): "
+msgstr "[B] ¶ÚÏÌÀ×ÁÔÉ ÒÁĦÏË̦¤ÎԦנ(ÂÒÏÁÄËÁÓÔÏצ ÐÁËÕÎËÉ): "
+
+#: src/bridge.c:40
+msgid "[U] Isolate wireless clients (unicast traffic): "
+msgstr "[U] ¶ÚÏÌÀ×ÁÔÉ ÒÁĦÏË̦¤ÎԦנ(ÕΦËÁÓÔÏצ ÐÁËÕÎËÉ): "
+
+#: src/bridge.c:41
+#, fuzzy
+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/nwn_advanced.c:60
+#, c-format
+msgid "[D] DB Station Timeout: %d"
+msgstr "[D] ðÏÎÏ×ÌÅÎÎÑ óÔÁÎæÊ: %d"
+
+#: src/nwn_advanced.c:62
 #, c-format
 msgid "[A] ACK Window: %d"
 msgstr "[A] ÷¦ËÎÏ ACK : %d"
@@ -1607,29 +2148,72 @@ msgstr "
 msgid "Error:"
 msgstr "ðÏÍÉÌËÁ:"
 
-#: src/stations.c:33
-msgid "AP link state"
-msgstr "óÔÁΠÚ×'ÑÚËÕ Ú AP"
-
-#: src/stations.c:37
-msgid " #            MAC                                               "
-msgstr " #            MAC                                               "
+#: src/stations.c:82
+msgid "Not available (device not in AP mode)."
+msgstr ""
 
-#: src/stations.c:40
-msgid " #     MAC       Parent MAC    RSSI  Status MACn      IP        "
+#: src/stations.c:93
+#, fuzzy
+msgid "  #     MAC       Parent MAC  RSSI   LQ Sts MACn      IP        "
 msgstr " #     MAC       MAC ÂÁÚÉ      RSSI   óÔÁÔÕ MACn      IP        "
 
-#: src/stations.c:195 src/stations.c:367
+#: src/stations.c:139
+msgid "AssociatedSTAsInfo packet error"
+msgstr "ðÏÍÉÌËÏ×ÉÊ ÐÁËÅÔ AssociatedSTAsInfo."
+
+#: src/stations.c:192 src/stations.c:364
 msgid ""
 "Arrows - scroll; S - save to file; Q - return; T - toggle view; Other - "
 "refresh"
 msgstr ""
 "óÔÒ¦ÌËÉ - ÐÒÏËÒÕÔËÁ; S - ÚÂÅÒÅÇÔÉ Õ ÆÁÊÌ; T - ÐÅÒÅÍËÎÕÔÉ; Q - ×ÉÊÔÉ × ÍÅÎÀ."
 
-#: src/stations.c:200
+#: src/stations.c:196
 msgid "Arrows - scroll; S - save to file; Q - return; Other key - refresh"
 msgstr "óÔÒ¦ÌËÉ - ÐÒÏËÒÕÔËÁ; S - ÚÂÅÒÅÇÔÉ Õ ÆÁÊÌ; Q - ×ÉÊÔÉ × ÍÅÎÀ."
 
-#: src/stations.c:279
+#: src/stations.c:276
 msgid "Id       MAC address     Quality  Age  RSSI"
 msgstr "#        MAC ÁÄÒÅÓÁ      ñ˦ÓÔØ âÅÚĦѠóÉÌÁ ÓÉÇÎÁÌÕ"
+
+#~ msgid "NUM       MAC address"
+#~ msgstr "#         íáó ÁÄÒÅÓÁ"
+
+#~ msgid "A - auth; IPSTF - set; W - write conf; Q - quit"
+#~ msgstr "A - a×ÔÏÒÉÚÁæÑ; IPSTF - ×ÓÔÁÎÏ×ÉÔÉ;W - ÚÁÐÉÓÁÔÉ; Q - ×ÉÊÔÉ"
+
+#~ msgid "A - auth; W - write conf; Q - quit"
+#~ msgstr "A - a×ÔÏÒÉÚÁæÑ; W - ÚÁÐÉÓÁÔÉ; Q - ×ÉÊÔÉ"
+
+#~ msgid "[I] RADIUS SERVER IP: "
+#~ msgstr "[I] ¶ò ÁÄÒÅÓÁ RADIUS ÓÅÒ×ÅÒÁ: "
+
+#~ msgid "[P] RADIUS SERVER PORT: "
+#~ msgstr "[P] ðÏÒÔ RADIUS ÓÅÒ×ÅÒÁ: "
+
+#~ msgid "[S] RADIUS SERVER SECRET: "
+#~ msgstr "[S] ðÁÒÏÌØ RADIUS ÓÅÒ×ÅÒÁ: "
+
+#~ msgid "[T] REAUTHORIZATION TIME: "
+#~ msgstr "[T] þÁÓ ÐÅÒÅÁ×ÔÏÒÉÚÁæ§: "
+
+#~ msgid "[F] RADIUS SOURCE PORT: "
+#~ msgstr "[F] ÷ÉȦÄÎÉÊ ÐÏÒÔ RADIUS ÐÁËÅÔ¦×: "
+
+#~ msgid "<hidden>"
+#~ msgstr "<ÐÒÉÈÏ×ÁÎÏ>"
+
+#~ msgid "[U] Isolate wireless clients: "
+#~ msgstr "[U] ¶ÚÏÌÀ×ÁÔÉ ÒÁĦÏË̦¤ÎÔ¦×: "
+
+#~ msgid "AP is currently in AP Client Mode => no associated STAtions."
+#~ msgstr "ôÏÞËÁ äÏÓÔÕÐÕ Õ ÒÅÖÉͦ Ë̦¤ÎÔÁ => ÎÅÍÁ¤ Ð¦Ä'¤ÄÎÁÎÉÈ ÓÔÁÎæÊ"
+
+#~ msgid "#     MAC       LQ    RSSI   Status Port IP"
+#~ msgstr "#     MAC       LQ    RSSI   óÔÁÔ   ðÏÒÔ IP"
+
+#~ msgid "Arrows - scroll; S - save to file; Q - quit to menu."
+#~ msgstr "óÔÒ¦ÌËÉ - ÐÒÏËÒÕÔËÁ; S - ÚÂÅÒÅÇÔÉ Õ ÆÁÊÌ; Q - ×ÉÊÔÉ × ÍÅÎÀ."
+
+#~ msgid " #            MAC                                               "
+#~ msgstr " #            MAC                                               "
index 00f1793fc5ffca66ab75fa5d4b3b84153054518b..70edeebc8c7ab7080c6f5b5eeedd6078844323e9 100644 (file)
@@ -21,11 +21,11 @@ DEFS = -DLOCALEDIR=\"$(datadir)/locale\" -DHAVE_CONFIG_H
 INCLUDES = -I../lib -I../intl -I..
 LIBS = @INTLLIBS@ @LIBS@
 
-bin_PROGRAMS = ap-config ap-mrtg ap-auth
+bin_PROGRAMS = ap-config ap-mrtg ap-auth ap-tftp ap-rrd
 sbin_PROGRAMS = ap-trapd
  
-ap_config_SOURCES = ap-config.c auth_mac.c bridge.c nwn_advanced.c nwn_latest.c stations.c
-ap_config_LDADD = ../lib/libap.a -lmenu
+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
@@ -34,3 +34,10 @@ ap_trapd_SOURCES = ap-trapd.c
 
 ap_auth_SOURCES = ap-auth.c
 ap_auth_LDADD = ../lib/libap.a
+
+ap_rrd_SOURCES = ap-rrd.c
+ap_rrd_LDADD = ../lib/libap.a
+
+
+ap_tftp_SOURCES = ap-tftp.c
+
index d31bc356cb7ef73bec102b923b92c82ee6c306ff..969f8f885ee7210092d2473f83732536ce9bcab7 100644 (file)
@@ -71,6 +71,7 @@ CCDEPMODE = @CCDEPMODE@
 CFLAGS = @CFLAGS@
 CPP = @CPP@
 CPPFLAGS = @CPPFLAGS@
+CURSESLIBS = @CURSESLIBS@
 CYGPATH_W = @CYGPATH_W@
 DATADIRNAME = @DATADIRNAME@
 
@@ -159,11 +160,11 @@ sysconfdir = @sysconfdir@
 target_alias = @target_alias@
 INCLUDES = -I../lib -I../intl -I..
 
-bin_PROGRAMS = ap-config ap-mrtg ap-auth
+bin_PROGRAMS = ap-config ap-mrtg ap-auth ap-tftp ap-rrd
 sbin_PROGRAMS = ap-trapd
 
-ap_config_SOURCES = ap-config.c auth_mac.c bridge.c nwn_advanced.c nwn_latest.c stations.c
-ap_config_LDADD = ../lib/libap.a -lmenu
+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
@@ -172,12 +173,18 @@ ap_trapd_SOURCES = ap-trapd.c
 
 ap_auth_SOURCES = ap-auth.c
 ap_auth_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
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
-bin_PROGRAMS = ap-config$(EXEEXT) ap-mrtg$(EXEEXT) ap-auth$(EXEEXT)
+bin_PROGRAMS = ap-config$(EXEEXT) ap-mrtg$(EXEEXT) ap-auth$(EXEEXT) \
+       ap-tftp$(EXEEXT) ap-rrd$(EXEEXT)
 sbin_PROGRAMS = ap-trapd$(EXEEXT)
 PROGRAMS = $(bin_PROGRAMS) $(sbin_PROGRAMS)
 
@@ -185,9 +192,9 @@ am_ap_auth_OBJECTS = ap-auth.$(OBJEXT)
 ap_auth_OBJECTS = $(am_ap_auth_OBJECTS)
 ap_auth_DEPENDENCIES = ../lib/libap.a
 ap_auth_LDFLAGS =
-am_ap_config_OBJECTS = ap-config.$(OBJEXT) auth_mac.$(OBJEXT) \
+am_ap_config_OBJECTS = ap-config.$(OBJEXT) auth.$(OBJEXT) \
        bridge.$(OBJEXT) nwn_advanced.$(OBJEXT) nwn_latest.$(OBJEXT) \
-       stations.$(OBJEXT)
+       stations.$(OBJEXT) aplink.$(OBJEXT)
 ap_config_OBJECTS = $(am_ap_config_OBJECTS)
 ap_config_DEPENDENCIES = ../lib/libap.a
 ap_config_LDFLAGS =
@@ -195,6 +202,15 @@ am_ap_mrtg_OBJECTS = ap-mrtg.$(OBJEXT)
 ap_mrtg_OBJECTS = $(am_ap_mrtg_OBJECTS)
 ap_mrtg_DEPENDENCIES = ../lib/libap.a
 ap_mrtg_LDFLAGS =
+am_ap_rrd_OBJECTS = ap-rrd.$(OBJEXT)
+ap_rrd_OBJECTS = $(am_ap_rrd_OBJECTS)
+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_LDFLAGS =
 am_ap_trapd_OBJECTS = ap-trapd.$(OBJEXT)
 ap_trapd_OBJECTS = $(am_ap_trapd_OBJECTS)
 ap_trapd_LDADD = $(LDADD)
@@ -205,18 +221,20 @@ DEFAULT_INCLUDES =  -I. -I$(srcdir) -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/config/depcomp
 am__depfiles_maybe = depfiles
 @AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/ap-auth.Po ./$(DEPDIR)/ap-config.Po \
-@AMDEP_TRUE@   ./$(DEPDIR)/ap-mrtg.Po ./$(DEPDIR)/ap-trapd.Po \
-@AMDEP_TRUE@   ./$(DEPDIR)/auth_mac.Po ./$(DEPDIR)/bridge.Po \
-@AMDEP_TRUE@   ./$(DEPDIR)/nwn_advanced.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/ap-mrtg.Po ./$(DEPDIR)/ap-rrd.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/ap-tftp.Po ./$(DEPDIR)/ap-trapd.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/aplink.Po ./$(DEPDIR)/auth.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/bridge.Po ./$(DEPDIR)/nwn_advanced.Po \
 @AMDEP_TRUE@   ./$(DEPDIR)/nwn_latest.Po ./$(DEPDIR)/stations.Po
 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
        $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
 CCLD = $(CC)
 LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
 DIST_SOURCES = $(ap_auth_SOURCES) $(ap_config_SOURCES) \
-       $(ap_mrtg_SOURCES) $(ap_trapd_SOURCES)
+       $(ap_mrtg_SOURCES) $(ap_rrd_SOURCES) $(ap_tftp_SOURCES) \
+       $(ap_trapd_SOURCES)
 DIST_COMMON = $(srcdir)/Makefile.in Makefile.am
-SOURCES = $(ap_auth_SOURCES) $(ap_config_SOURCES) $(ap_mrtg_SOURCES) $(ap_trapd_SOURCES)
+SOURCES = $(ap_auth_SOURCES) $(ap_config_SOURCES) $(ap_mrtg_SOURCES) $(ap_rrd_SOURCES) $(ap_tftp_SOURCES) $(ap_trapd_SOURCES)
 
 all: all-am
 
@@ -284,6 +302,12 @@ ap-config$(EXEEXT): $(ap_config_OBJECTS) $(ap_config_DEPENDENCIES)
 ap-mrtg$(EXEEXT): $(ap_mrtg_OBJECTS) $(ap_mrtg_DEPENDENCIES) 
        @rm -f ap-mrtg$(EXEEXT)
        $(LINK) $(ap_mrtg_LDFLAGS) $(ap_mrtg_OBJECTS) $(ap_mrtg_LDADD) $(LIBS)
+ap-rrd$(EXEEXT): $(ap_rrd_OBJECTS) $(ap_rrd_DEPENDENCIES) 
+       @rm -f ap-rrd$(EXEEXT)
+       $(LINK) $(ap_rrd_LDFLAGS) $(ap_rrd_OBJECTS) $(ap_rrd_LDADD) $(LIBS)
+ap-tftp$(EXEEXT): $(ap_tftp_OBJECTS) $(ap_tftp_DEPENDENCIES) 
+       @rm -f ap-tftp$(EXEEXT)
+       $(LINK) $(ap_tftp_LDFLAGS) $(ap_tftp_OBJECTS) $(ap_tftp_LDADD) $(LIBS)
 ap-trapd$(EXEEXT): $(ap_trapd_OBJECTS) $(ap_trapd_DEPENDENCIES) 
        @rm -f ap-trapd$(EXEEXT)
        $(LINK) $(ap_trapd_LDFLAGS) $(ap_trapd_OBJECTS) $(ap_trapd_LDADD) $(LIBS)
@@ -297,8 +321,11 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ap-auth.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ap-config.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ap-mrtg.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ap-rrd.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ap-tftp.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ap-trapd.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/auth_mac.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/aplink.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/auth.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bridge.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nwn_advanced.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nwn_latest.Po@am__quote@
index fbd72ef7ff96f2db71ed44fed3af4cde82c3ea82..9b8b95fb35ae6fe487a2bb63019e73dc46cb8eec 100644 (file)
@@ -1,7 +1,7 @@
 /*
  *      ap-auth.c from Access Point SNMP Utils for Linux
  *
- * Copyright (c) 2002 Roman Festchook <roma at polesye dot net>
+ * Copyright (c) 2004 Teemu Kiviniemi <teemuki at fotokone.fi>
  *
  * 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
 #endif
 #include "ap-utils.h"
 
-#define PACKET_ERROR _("AuthorizedMacTableString packet error")
+#define ERROR_PACKET _("AuthorizedMacTableString packet error")
 #define ERROR_DATA _("Invalid data in source file")
 #define ERROR_FILE_OPEN _("Can't open file")
 #define ERROR_FILE_WRITE _("Can't write to file")
 #define ERROR_FILE_CLOSE _("Error closing file")
 
-short ap_type = ATMEL410;
+short ap_type;
 char *community = NULL;
 int sockfd;
 struct in_addr ap_ip;
@@ -45,16 +45,15 @@ void usage()
     printf(_("\nUsage:\n"));
     printf(_("\tap-auth -i ip -c community -d filename [-h]\n"));
     printf(_("\tap-auth -i ip -c community -u filename [-h]\n\n"));
-    printf(_("Change accesspoint's list of authorised MAC"
-        " addresses\n\n"));
+    printf(_("Change accesspoint's list of authorised MAC addresses\n\n"));
     printf(_("-i ip        - AP ip address\n"));
     printf(_("-c community - SNMP community string\n"));
     printf(_("-d filename  - download list of authorised MAC addresses from AP"
-        " to a file\n"));
+       " to a file\n"));
     printf(_("-u filename  - upload list of authorised MAC addresses from"
-        " a file to AP\n"));
+       " a file to AP\n"));
     printf(_("-h           - print this help screen\n\n"));
-    printf(_("ap-auth %s Copyright (c) 2002-2004 Roman Festchook\n\n"),
+    printf(_("ap-auth %s Copyright (c) 2004 Teemu Kiviniemi\n\n"),
           VERSION);
 }
 
@@ -73,18 +72,18 @@ int get_addr (struct MacListStat *ml, char *addr)
 {
     int i;
     char tmp[3];
-    
+
     if (strlen (addr) != 12)
         return 1;
-    
+
     tmp[2] = '\0';
-    
+
     for (i = 0; i < 6 ; i++) {
         tmp[0] = addr[2 * i];
        tmp[1] = addr[2 * i + 1];
        ml->addr[i] = strtol (tmp, NULL, 16);
     }
-    
+
     return 0;
 }
 
@@ -100,26 +99,33 @@ int main(int argc, char **argv)
     FILE *f;
     char *filename = NULL;
     struct sockaddr_in client;
-    
+
     struct AuthorizedMacTableString {
        unsigned int short Action;
        unsigned int short NumOfAllTableAddresses;
        unsigned int short NumOfCurrentAddress;
        unsigned char MacAddress[6];
     } *AuthMac = NULL, get;
-    
+
     struct MacListStat *first = NULL, *curr = NULL;
-    
-    char AutorizedMac[] = { 0x2B, 0x06, 0x01, 0x04, 0x01, 0x83, 0x1A, 0x01,
-       0x02, 0x06, 0x02, 0x00
+
+    char sysDescr_NWN[] = {
+       0x2B, 0x06, 0x01, 0x02, 0x01, 0x01, 0x01, 0x00
+    };
+    char sysDescr_ATMEL[] = {
+       0x2B, 0x06, 0x01, 0x04, 0x01, 0x83, 0x1A, 0x01, 0x01, 0x01, 0x01, 0x00
+    };
+    char AutorizedMac_ATMEL[] = {
+       0x2B, 0x06, 0x01, 0x04, 0x01, 0x83, 0x1A, 0x01, 0x02, 0x06, 0x02, 0x00
     };
-    
+
     int total_mac, mac_num = 0;
     varbind varbinds[1];
     char mac_tmp[13];
+    char *cp;
     struct MacListStat ml_tmp;
     int i, tmp;
-        
+
 #ifdef HAVE_GETTEXT
     setlocale(LC_ALL, "");
     bindtextdomain("ap-utils", LOCALEDIR);
@@ -130,13 +136,14 @@ int main(int argc, char **argv)
     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:")) {
        case 'i':
-           if (inet_aton(optarg, &ap_ip) == 0) {
-               printf(_("Invalid IP-address\n"));
+           for (cp = optarg, i = 0; *cp && (cp = index(cp, '.')); cp++, i++);
+           if (i < 3 || inet_aton(optarg, &ap_ip) == 0) {
+               printf(_("Error: invalid IP-address.\n"));
                return 1;
            }
            break;
@@ -161,12 +168,12 @@ int main(int argc, char **argv)
            return 1;
        }
     } while (opt != -1);
-    
+
     if (!community) {
        usage();
        return 1;
     }
-    
+
     if ((sockfd = socket(AF_INET, SOCK_DGRAM, 0)) == -1) {
        perror(_("Create socket error"));
        return 1;
@@ -175,21 +182,72 @@ int main(int argc, char **argv)
        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
+     * have to involve 1. putting it to separate file in lib/ and
+     * 2. patch it so it would not contain curses-related commands (TODO)
+     */
+
+    /* determine private MIB type according to enterprises ID */
+    varbinds[0].oid = sysDescr_NWN;
+    varbinds[0].len_oid = sizeof(sysDescr_NWN);
+    varbinds[0].value = NULL;
+    varbinds[0].len_val = 0;
+    varbinds[0].type = NULL_VALUE;
+    if (snmp(varbinds, 1, GET) > 0) {
+        ap_type = NWN;
+    } else {
+       varbinds[0].oid = sysDescr_ATMEL;
+       varbinds[0].len_oid = sizeof(sysDescr_ATMEL);
+       varbinds[0].value = NULL;
+       varbinds[0].len_val = 0;
+       varbinds[0].type = NULL_VALUE;
+       if (snmp(varbinds, 1, GET) > 0) {
+           ap_type = ATMEL410;
+       } else {
+           sysDescr_ATMEL[5] = 0xE0;
+           sysDescr_ATMEL[6] = 0x3E;
+           varbinds[0].oid = sysDescr_ATMEL;
+           varbinds[0].len_oid = sizeof(sysDescr_ATMEL);
+           varbinds[0].value = NULL;
+           varbinds[0].len_val = 0;
+           varbinds[0].type = NULL_VALUE;
+           if (snmp(varbinds, 1, GET) > 0) {
+               ap_type = ATMEL12350;
+           } else {
+               printf(_("Unable to determine AP MIB type "
+                   "(no response from AP)."));
+               return 1;
+           }
+       }
+    }
+
+    if (ap_type == NWN) {
+       printf(_("NWN devices are not yet supported."));
+       return 1;
+    }
+
+    if (ap_type == ATMEL12350) {
+       AutorizedMac_ATMEL[5] = 0xE0;
+       AutorizedMac_ATMEL[6] = 0x3E;
+    }
+
     switch (mode) {
-    
+
     case 1: /* download */
-    
+
        total_mac = 0;
        mac_num = 0;
-       
+
        while (mac_num <= total_mac) {
            get.Action = 0x02; rshort(get.Action);
            get.NumOfAllTableAddresses = total_mac; rshort(get.NumOfAllTableAddresses);
            get.NumOfCurrentAddress = mac_num; rshort(get.NumOfCurrentAddress);
            
-           varbinds[0].oid = AutorizedMac;
-           varbinds[0].len_oid = sizeof(AutorizedMac);
+           varbinds[0].oid = AutorizedMac_ATMEL;
+           varbinds[0].len_oid = sizeof(AutorizedMac_ATMEL);
            varbinds[0].value = (char *) &get;
            varbinds[0].len_val = 12;
            varbinds[0].type = STRING_VALUE;
@@ -199,7 +257,7 @@ int main(int argc, char **argv)
                printf("\n");
                return 1;
            }
-           
+
            if (varbinds[0].len_val == 12) {
                if (AuthMac)
                    free(AuthMac);
@@ -208,16 +266,16 @@ int main(int argc, char **argv)
                                                               len_val);
                memcpy(AuthMac, varbinds[0].value, varbinds[0].len_val);
            } else {
-               printf(PACKET_ERROR);
+               printf(ERROR_PACKET);
                printf("\n");
                return 1;
            }
-           
+
            rshort(AuthMac->NumOfAllTableAddresses);
            total_mac =
                (AuthMac->NumOfAllTableAddresses ==
                 65535) ? 0 : AuthMac->NumOfAllTableAddresses;
-       
+
            if (mac_num) {
                if (first == NULL) {
                    first = (struct MacListStat *)
@@ -264,7 +322,7 @@ int main(int argc, char **argv)
        mac_num  = 0;
        while (!feof (f)) {
            tmp = fread (mac_tmp, 1, sizeof (mac_tmp), f);
-           
+
            if (tmp == sizeof (mac_tmp)) {
                if (mac_tmp[12] != '\n') {
                    printf(ERROR_DATA);
@@ -272,7 +330,7 @@ int main(int argc, char **argv)
                    return 1;
                }
                mac_tmp[12] = '\0';
-               
+
                if (get_addr (&ml_tmp, mac_tmp) != 0) {
                    printf(ERROR_DATA);
                    printf("\n");
@@ -293,7 +351,7 @@ int main(int argc, char **argv)
            }
        }
        fclose(f);
-       
+
        curr = first;
        i = 1;
        while (curr != NULL) {
@@ -304,8 +362,8 @@ int main(int argc, char **argv)
            get.NumOfCurrentAddress = i;
            rshort(get.NumOfCurrentAddress);
            memcpy(get.MacAddress, curr->addr, 6);
-           varbinds[0].oid = AutorizedMac;
-           varbinds[0].len_oid = sizeof(AutorizedMac);
+           varbinds[0].oid = AutorizedMac_ATMEL;
+           varbinds[0].len_oid = sizeof(AutorizedMac_ATMEL);
            varbinds[0].value = (char *) &get;
            varbinds[0].len_val = 12;
            varbinds[0].type = STRING_VALUE;
@@ -315,7 +373,7 @@ int main(int argc, char **argv)
                return 1;
            }
            if (varbinds[0].len_val != 12) {
-               printf(PACKET_ERROR);
+               printf(ERROR_PACKET);
                printf("\n");
                return 1;
            }
@@ -327,16 +385,16 @@ int main(int argc, char **argv)
        usage();
        return 1;
     }
-    
+
     close(sockfd);
-    
+
     curr = first;
     while (curr != NULL) {
         curr = curr->next;
        free (first);
        first = curr;
     }
-    
+
     if (community)
        free(community);
     if (filename)
index c41525e89b6d640d95ada9b0d585dd4fcff4dd4e..e17926d75339ca318975b88d994cc50a957e9348 100644 (file)
@@ -42,7 +42,7 @@ void config_menu()
         0},
        {_("Wireless"), _("Set wireless options"), atmel_wireless, 0},
        {_("Privacy"), MENU_ENCRYPT, wep, 0},
-       {_("MAC auth"), MENU_MAC, atmel_auth_mac, 0},
+       {_("Auth"), MENU_AUTH, atmel_auth, 0},
        {_("Community"), MENU_COMMUNITY, AuthorizedSettings, 0},
        {_("Radio"), _("Set radio signal power and antenna options"),
         power, 0},
@@ -54,7 +54,7 @@ void config_menu()
         {_("General"), _("Set general options"), nwn_wireless, 0},
         {_("Advanced"), _("Set advanced options"), advanced, 0},
         {_("Privacy"), MENU_ENCRYPT, nwn_wep, 0},
-        {_("MAC auth"), MENU_MAC, nwn_auth_mac, 0},
+        {_("MAC auth"), MENU_AUTH, nwn_auth_mac, 0},
         {_("Community"), MENU_COMMUNITY, AuthorizedSettings, 0},
         {"..", MAIN_MENU, NULL, 0},
         {0, 0, NULL, 0}
@@ -111,6 +111,7 @@ void stat_menu()
        {_("Ethernet"), _("Get ethernet port statistics"), EthStat, 0},
        {_("Wireless"), MENU_WIRELESS, WirelessStat, 0},
        {_("Stations"), MENU_STAS, atmel_stations, 0},
+       {_("AP link"), MENU_APLINK, atmel_aplink, 0},
        {_("KnownAPs"), _("Get info about known Access Points"), APs, 0},
        {"..", MAIN_MENU, NULL, 0},
        {0, 0, NULL, 0}
@@ -177,10 +178,19 @@ int main( /*int argc, char **argv */ )
     initscr();
     if (has_colors()) {
        start_color();
-       init_pair(1, COLOR_BLACK, COLOR_CYAN);
-       init_pair(2, COLOR_BLACK, COLOR_WHITE);
-       init_pair(3, COLOR_BLACK, COLOR_GREEN);
-       init_pair(4, COLOR_WHITE, COLOR_RED);
+
+       /* Never trust that these are defined by default. */
+       init_pair (COLOR_RED, COLOR_RED, COLOR_BLACK );
+       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_CYAN, COLOR_CYAN, COLOR_BLACK);
+
+       init_pair(11, COLOR_BLACK, COLOR_CYAN);
+       init_pair(12, COLOR_BLACK, COLOR_WHITE);
+       init_pair(13, COLOR_BLACK, COLOR_GREEN);
+       init_pair(14, COLOR_WHITE, COLOR_RED);
     }
 
     noraw();
@@ -193,12 +203,12 @@ int main( /*int argc, char **argv */ )
 
 /* draw help win */
     win_for_help = newwin(1, COLS, LINES - 1, 0);
-    wattrset(win_for_help, COLOR_PAIR(1));
+    wattrset(win_for_help, COLOR_PAIR(11));
     print_help("");
 
 /* draw title win */
     win_for_title = newwin(1, COLS, 0, 0);
-    wattrset(win_for_title, COLOR_PAIR(1));
+    wattrset(win_for_title, COLOR_PAIR(11));
     for (i = 0; i < COLS; i++)
        waddch(win_for_title, ' ');
     sprintf(message, _("Wireless Access Point Configurator ver. %s"),
@@ -211,7 +221,7 @@ int main( /*int argc, char **argv */ )
     sub_for_menu = derwin(win_for_menu, LINES - 5, MCOLS - 2, 2, 1);
     set_menu_win(NULL, win_for_menu);
     set_menu_sub(NULL, sub_for_menu);
-    attrset(COLOR_PAIR(1));
+    attrset(COLOR_PAIR(11));
 
     /* íÁÌÀÀ ÒÁÍËÕ */
     waddch(win_for_menu, ACS_BSSB);
index 296a37ac4f5dbccb45d923eb0cebb51421c0355e..b64a4e8582e5a1be247a134149844d0c0c22f962 100644 (file)
@@ -32,7 +32,7 @@
 #define ERR_STR_V "\n\n-\n\n"
 #define ERR_STR_N "999999999\n999999999\n-\n\n"
 
-short ap_type = ATMEL410;
+short ap_type;
 char *community = NULL;
 int sockfd;
 struct in_addr ap_ip;
@@ -40,28 +40,24 @@ struct in_addr ap_ip;
 void usage()
 {
     printf(_("\nUsage:\n"));
-    printf(_
-          ("\tap-mrtg -i ip -c community -t type [-b bssid] [-n name] [-a aptype] [-v] [-h] [-r]\n\n"));
-    printf(_
-          ("Get stats from AP and return it in MRTG parsable format\n\n"));
+    printf(_("\tap-mrtg -i ip -c community -t type [-b bssid] [-n name] "
+            "[-v] [-h] [-r]\n\n"));
+    printf(_("Get stats from AP and return it in MRTG parsable format\n\n"));
     printf(_("-i ip        - AP ip address\n"));
     printf(_("-c community - SNMP community string\n"));
-    printf(_
-          ("-t type      - statistics type <w>ireless, <e>thernet, associated <s>tations or <l>ink quality in client mode\n"));
-    printf(_
-          ("-b bssid     - mac address of the AP to which get link quality, only if type=l\n"));
-    printf(_("-n name     - AP name - for check only\n")); 
-    printf(_("-a aptype        - AP type - 410 (default) or 510 for ATMEL12350's, like the ME-102\n"));
-    printf(_
-          ("-v           - report MRTG about problems connecting to AP\n"));
+    printf(_("-t type      - statistics type <w>ireless, <e>thernet, "
+            "associated <s>tations or <l>ink quality (last one will only "));
+    printf(_("work with ATMEL410 MIB devices in AP Client mode)\n"));
+    printf(_("-b bssid     - mac address of the AP from which get link quality"
+            ", only if type=l\n"));
+    printf(_("-n name      - AP name - for check only\n")); 
+    printf(_("-v           - report MRTG about problems connecting to AP\n"));
     printf(_("-r           - reset AP when getting LinkQuality stats\n"));
     printf(_("-h           - print this help screen\n\n"));
     printf(_("ap-mrtg %s Copyright (c) 2002-2003 Roman Festchook\n\n"),
           VERSION);
-
 }
 
-
 int main(int argc, char **argv)
 {
     extern char *optarg;
@@ -81,42 +77,41 @@ int main(int argc, char **argv)
        unsigned char essid[32];
     } *app = NULL;
 
-    char Wireless[] =
-       { 0x2B, 0x06, 0x01, 0x04, 0x01, 0x83, 0x1A, 0x01, 0x02, 0x03, 0x01,
-       0x00
+    char sysDescr_NWN[] = {
+       0x2B, 0x06, 0x01, 0x02, 0x01, 0x01, 0x01, 0x00
+    };
+    char sysDescr_ATMEL[] = {
+       0x2B, 0x06, 0x01, 0x04, 0x01, 0x83, 0x1A, 0x01, 0x01, 0x01, 0x01, 0x00
     };
-    char EthRx[] =
-       { 0x2B, 0x06, 0x01, 0x04, 0x01, 0x83, 0x1A, 0x01, 0x01, 0x07, 0x01,
-       0x00
+    char bridgeOperationalMode[] = {
+       0x2B, 0x06, 0x01, 0x04, 0x01, 0x83, 0x1A, 0x01, 0x01, 0x04, 0x01, 0x00
     };
-    char EthTx[] =
-       { 0x2B, 0x06, 0x01, 0x04, 0x01, 0x83, 0x1A, 0x01, 0x01, 0x07, 0x02,
-       0x00
+    char EthRxStatistics[] = {
+       0x2B, 0x06, 0x01, 0x04, 0x01, 0x83, 0x1A, 0x01, 0x01, 0x07, 0x01, 0x00
     };
-    char operAccessPointName[] =
-       { 0x2B, 0x06, 0x01, 0x04, 0x01, 0x83, 0x1A, 0x01, 0x02, 0x01, 0x0A,
-       0x00
+    char EthTxStatistics[] = {
+       0x2B, 0x06, 0x01, 0x04, 0x01, 0x83, 0x1A, 0x01, 0x01, 0x07, 0x02, 0x00
     };
-    char StasNum[] =
-       { 0x2B, 0x06, 0x01, 0x04, 0x01, 0x83, 0x1A, 0x01, 0x02, 0x05, 0x01,
-       0x00
+    char operAccessPointName[] = {
+       0x2B, 0x06, 0x01, 0x04, 0x01, 0x83, 0x1A, 0x01, 0x02, 0x01, 0x0A, 0x00
     };
-    char KnownAP[] =
-       { 0x2B, 0x06, 0x01, 0x04, 0x01, 0x83, 0x1A, 0x01, 0x02, 0x07,
-       0x01, 0x00
+    char wirelessStatistics[] = {
+       0x2B, 0x06, 0x01, 0x04, 0x01, 0x83, 0x1A, 0x01, 0x02, 0x03, 0x01, 0x00
     };
-    char bridgeOperationalMode[] =
-       { 0x2B, 0x06, 0x01, 0x04, 0x01, 0x83, 0x1A, 0x01,
-       0x01, 0x04, 0x01, 0x00
+    char AssociatedSTAsNum[] = {
+       0x2B, 0x06, 0x01, 0x04, 0x01, 0x83, 0x1A, 0x01, 0x02, 0x05, 0x01, 0x00
+    };
+    char wirelessKnownAPs[] = {
+       0x2B, 0x06, 0x01, 0x04, 0x01, 0x83, 0x1A, 0x01, 0x02, 0x07, 0x01, 0x00
     };
 
-    struct EthernetRxStatistics *EthRxStat = NULL;
-    struct EthernetTxStatistics *EthTxStat = NULL;
-    struct WirelessStatistics *WirelessStat = NULL;
+    struct EthRxStatistics_s *EthRxStat = NULL;
+    struct EthTxStatistics_s *EthTxStat = NULL;
+    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;
+       ERR_STR_N, *bssid = NULL, *name = NULL, *cp;
     struct sockaddr_in client;
 
 #ifdef HAVE_GETTEXT
@@ -137,10 +132,11 @@ int main(int argc, char **argv)
 
     do {
        opterr = 0;
-       switch (opt = getopt(argc, argv, "i:c:t:b:n:a:rv")) {
+       switch (opt = getopt(argc, argv, "i:c:t:b:n:rv")) {
        case 'i':
-           if (inet_aton(optarg, &ap_ip) == 0) {
-               printf(_("Invalid IP-address\n"));
+           for (cp = optarg, i = 0; *cp && (cp = index(cp, '.')); cp++, i++);
+           if (i < 3 || inet_aton(optarg, &ap_ip) == 0) {
+               printf(_("Error: invalid IP-address.\n"));
                return 1;
            }
            break;
@@ -165,30 +161,6 @@ int main(int argc, char **argv)
        case 'r':
            reset_flag=1;
            break;
-        case 'a':
-            if ( strcmp( optarg, "510\0" ) == 0) {
-              Wireless[5] = 0xE0;
-              Wireless[6] = 0x3E;
-              EthRx[5] = 0xE0;
-              EthRx[6] = 0x3E;
-              EthTx[5] = 0xE0;
-              EthTx[6] = 0x3E;
-              operAccessPointName[5] = 0xE0;
-              operAccessPointName[6] = 0x3E;
-              StasNum[5] = 0xE0;
-              StasNum[6] = 0x3E;
-              KnownAP[5] = 0xE0;
-              KnownAP[6] = 0x3E;
-              bridgeOperationalMode[5] = 0xE0;
-              bridgeOperationalMode[6] = 0x3E;
-            } else if (strcmp(optarg, "410") == 0) {
-              /* nothing - hard-coded defaults are fine */
-            } else {
-              /* Invalid AP-Type */
-              printf(_("Invalid AP-Type '%s' - valid types are 510 or 410\n"), optarg);
-              return 1;
-            }
-            break;
        case -1:
             break;
        default:
@@ -202,7 +174,6 @@ int main(int argc, char **argv)
        goto quit;
     }
 
-
     if ((sockfd = socket(AF_INET, SOCK_DGRAM, 0)) == -1) {
        perror(_("Create socket error"));
        return 1;
@@ -212,22 +183,84 @@ int main(int argc, char **argv)
        return 1;
     }
 
+    /*
+     * Part detecting ap_type (ATMEL AP MIB type) follows.
+     * We could use get_mib_details() here with advantage, but it would
+     * have to involve 1. putting it to separate file in lib/ and
+     * 2. patch it so it would not contain curses-related commands (TODO)
+     */
+
+    /* determine private MIB type according to enterprises ID */
+    varbinds[0].oid = sysDescr_NWN;
+    varbinds[0].len_oid = sizeof(sysDescr_NWN);
+    varbinds[0].value = NULL;
+    varbinds[0].len_val = 0;
+    varbinds[0].type = NULL_VALUE;
+    if (snmp(varbinds, 1, GET) > 0) {
+        ap_type = NWN;
+    } else {
+       varbinds[0].oid = sysDescr_ATMEL;
+       varbinds[0].len_oid = sizeof(sysDescr_ATMEL);
+       varbinds[0].value = NULL;
+       varbinds[0].len_val = 0;
+       varbinds[0].type = NULL_VALUE;
+       if (snmp(varbinds, 1, GET) > 0) {
+           ap_type = ATMEL410;
+       } else {
+           sysDescr_ATMEL[5] = 0xE0;
+           sysDescr_ATMEL[6] = 0x3E;
+           varbinds[0].oid = sysDescr_ATMEL;
+           varbinds[0].len_oid = sizeof(sysDescr_ATMEL);
+           varbinds[0].value = NULL;
+           varbinds[0].len_val = 0;
+           varbinds[0].type = NULL_VALUE;
+           if (snmp(varbinds, 1, GET) > 0) {
+               ap_type = ATMEL12350;
+           } else {
+               printf(_("Unable to determine AP MIB type "
+                   "(no response from AP)."));
+               return 1;
+           }
+       }
+    }
+
+    if (ap_type == NWN) {
+       printf("NWN devices are not yet supported.");
+       return 1;
+    }
+
+    if (ap_type == ATMEL12350) {
+       bridgeOperationalMode[5] = 0xE0;
+       bridgeOperationalMode[6] = 0x3E;
+       EthRxStatistics[5] = 0xE0;
+       EthRxStatistics[6] = 0x3E;
+       EthTxStatistics[5] = 0xE0;
+       EthTxStatistics[6] = 0x3E;
+       operAccessPointName[5] = 0xE0;
+       operAccessPointName[6] = 0x3E;
+       wirelessStatistics[5] = 0xE0;
+       wirelessStatistics[6] = 0x3E;
+       AssociatedSTAsNum[5] = 0xE0;
+       AssociatedSTAsNum[6] = 0x3E;
+       wirelessKnownAPs[5] = 0xE0;
+       wirelessKnownAPs[6] = 0x3E;
+    }
+
     switch (stat_type) {
 
     case 'e':
-
-       varbinds[0].oid = EthRx;
-       varbinds[0].len_oid = sizeof(EthRx);
-       varbinds[0].value = EthRx;
+       varbinds[0].oid = EthRxStatistics;
+       varbinds[0].len_oid = sizeof(EthRxStatistics);
+       varbinds[0].value = EthRxStatistics;
        varbinds[0].len_val = 0;
        varbinds[0].type = NULL_VALUE;
-       varbinds[1].oid = EthTx;
-       varbinds[1].len_oid = sizeof(EthTx);
-       varbinds[1].value = EthTx;
+       varbinds[1].oid = EthTxStatistics;
+       varbinds[1].len_oid = sizeof(EthTxStatistics);
+       varbinds[1].value = EthTxStatistics;
        varbinds[1].len_val = 0;
        varbinds[1].type = NULL_VALUE;
 
-       if (snmp(varbinds, 2, GET) <= 0) {
+       if (snmp(varbinds, 2, GET) < 2) {
            printf(ERR_STR);
            return 1;
        }
@@ -236,7 +269,7 @@ int main(int argc, char **argv)
            if (EthRxStat)
                free(EthRxStat);
            EthRxStat =
-               (struct EthernetRxStatistics *) malloc(varbinds[0].
+               (struct EthRxStatistics_s *) malloc(varbinds[0].
                                                       len_val);
            memcpy(EthRxStat, varbinds[0].value, varbinds[0].len_val);
        } else {
@@ -248,7 +281,7 @@ int main(int argc, char **argv)
            if (EthTxStat)
                free(EthTxStat);
            EthTxStat =
-               (struct EthernetTxStatistics *) malloc(varbinds[1].
+               (struct EthTxStatistics_s *) malloc(varbinds[1].
                                                       len_val);
            memcpy(EthTxStat, varbinds[1].value, varbinds[1].len_val);
        } else {
@@ -263,9 +296,9 @@ int main(int argc, char **argv)
            free(EthTxStat);
        break;
     case 'w':
-       varbinds[0].oid = Wireless;
-       varbinds[0].len_oid = sizeof(Wireless);
-       varbinds[0].value = Wireless;
+       varbinds[0].oid = wirelessStatistics;
+       varbinds[0].len_oid = sizeof(wirelessStatistics);
+       varbinds[0].value = wirelessStatistics;
        varbinds[0].len_val = 0;
        varbinds[0].type = NULL_VALUE;
 
@@ -274,11 +307,15 @@ int main(int argc, char **argv)
            return 1;
        }
 
-       if (varbinds[0].len_val == 88) {
+       if (varbinds[0].len_val == 88 || varbinds[0].len_val == 104) {
+           /*
+            * 88 ... using traditional ATMEL 12350 MIB
+            * 104 .. using functionally enhanced ATMEL 12350 MIB by EZYNET
+            */
            if (WirelessStat)
                free(WirelessStat);
            WirelessStat =
-               (struct WirelessStatistics *) malloc(varbinds[0].len_val);
+               (struct wirelessStatistics_s *) malloc(varbinds[0].len_val);
            memcpy(WirelessStat, varbinds[0].value, varbinds[0].len_val);
        } else {
            printf(ERR_STR);
@@ -294,9 +331,9 @@ int main(int argc, char **argv)
        break;
 
     case 's':
-       varbinds[0].oid = StasNum;
-       varbinds[0].len_oid = sizeof(StasNum);
-       varbinds[0].value = StasNum;
+       varbinds[0].oid = AssociatedSTAsNum;
+       varbinds[0].len_oid = sizeof(AssociatedSTAsNum);
+       varbinds[0].value = AssociatedSTAsNum;
        varbinds[0].len_val = 0;
        varbinds[0].type = NULL_VALUE;
 
@@ -309,7 +346,6 @@ int main(int argc, char **argv)
        break;
 
     case 'l':
-
        varbinds[0].oid = bridgeOperationalMode;
        varbinds[0].len_oid = sizeof(bridgeOperationalMode);
        varbinds[0].len_val = 0;
@@ -320,7 +356,7 @@ int main(int argc, char **argv)
            return 1;
        }
 
-       if (*(varbinds[0].value) != 3) {
+       if (!(ap_type == ATMEL410 && *(varbinds[0].value) == 3)) {
            printf(ERR_STR);
            return 1;
        }
@@ -332,9 +368,9 @@ int main(int argc, char **argv)
                }
                sleep(10);
        }
-               
-       varbinds[0].oid = KnownAP;
-       varbinds[0].len_oid = sizeof(KnownAP);
+
+       varbinds[0].oid = wirelessKnownAPs;
+       varbinds[0].len_oid = sizeof(wirelessKnownAPs);
        varbinds[0].type = NULL_VALUE;
        varbinds[0].len_val = 0;
 
@@ -373,7 +409,6 @@ int main(int argc, char **argv)
 
     printf("-\n");
 
-
     if ( name != NULL ) {
         varbinds[0].oid = operAccessPointName;
         varbinds[0].len_oid = sizeof(operAccessPointName);
diff --git a/src/ap-rrd.c b/src/ap-rrd.c
new file mode 100644 (file)
index 0000000..33b5463
--- /dev/null
@@ -0,0 +1,413 @@
+/*
+ *      ap-mrtg.c from Access Point SNMP Utils for Linux
+ *
+ * Copyright (c) 2002 Roman Festchook <roma at polesye dot net>
+ *
+ * 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
+ * June 1991 as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ */
+#include <stdio.h>
+#include <fcntl.h>
+#include <string.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <sys/ioctl.h>
+#include <sys/types.h>
+#if defined (__GLIBC__)
+#include <libgen.h>
+#endif
+#include "ap-utils.h"
+
+#define ERR_STR_V "\n\n-\n\n"
+#define ERR_STR_N "999999999\n999999999\n-\n\n"
+
+short ap_type = ATMEL410;
+char *community = NULL;
+int sockfd;
+struct in_addr ap_ip;
+
+void usage()
+{
+    printf(_("\nUsage:\n"));
+    printf(_
+          ("\tap-rrd -i ip -c community -t type -d db_file [-b bssid] [-n name] [-a aptype] [-h] [-r] \n\n"));
+    printf(_
+          ("Get stats from AP and put it in to specified RRDtool database\n\n"));
+    printf(_("-i ip        - AP ip address\n"));
+    printf(_("-c community - SNMP community string\n"));
+    printf(_
+          ("-t type      - statistics type <w>ireless, <e>thernet, associated <s>tations or <l>ink quality in client mode\n"));
+    printf(_("-d db_file   - RRD database file with full path\n"));
+    printf(_
+          ("-b bssid     - mac address of the AP to which get link quality, only if type=l\n"));
+    printf(_("-n name     - AP name - for check only\n")); 
+    printf(_("-a aptype    - AP type - 410 (default) or 510 for ATMEL12350's, like the ME-102\n"));
+    printf(_("-r           - reset AP when getting LinkQuality stats\n"));
+    printf(_("-h           - print this help screen\n\n"));
+    printf(_("ap-rrd %s Copyright (c) 2002-2004 Roman Festchook\n\n"),
+          VERSION);
+
+}
+
+
+int main(int argc, char **argv)
+{
+    extern char *optarg;
+    extern int optind;
+    extern int opterr;
+    extern int optopt;
+    int opt = 0;
+
+    struct ap {
+       char mac[6];
+       unsigned char q1;
+       unsigned char q2;
+       unsigned char channel;
+       unsigned char x2;
+       unsigned char options;
+       unsigned char x3[5];
+       unsigned char essid[32];
+    } *app = NULL;
+
+    char Wireless[] =
+       { 0x2B, 0x06, 0x01, 0x04, 0x01, 0x83, 0x1A, 0x01, 0x02, 0x03, 0x01,
+       0x00
+    };
+    char EthRx[] =
+       { 0x2B, 0x06, 0x01, 0x04, 0x01, 0x83, 0x1A, 0x01, 0x01, 0x07, 0x01,
+       0x00
+    };
+    char EthTx[] =
+       { 0x2B, 0x06, 0x01, 0x04, 0x01, 0x83, 0x1A, 0x01, 0x01, 0x07, 0x02,
+       0x00
+    };
+    char operAccessPointName[] =
+       { 0x2B, 0x06, 0x01, 0x04, 0x01, 0x83, 0x1A, 0x01, 0x02, 0x01, 0x0A,
+       0x00
+    };
+    char StasNum[] =
+       { 0x2B, 0x06, 0x01, 0x04, 0x01, 0x83, 0x1A, 0x01, 0x02, 0x05, 0x01,
+       0x00
+    };
+    char KnownAP[] =
+       { 0x2B, 0x06, 0x01, 0x04, 0x01, 0x83, 0x1A, 0x01, 0x02, 0x07,
+       0x01, 0x00
+    };
+    char bridgeOperationalMode[] =
+       { 0x2B, 0x06, 0x01, 0x04, 0x01, 0x83, 0x1A, 0x01,
+       0x01, 0x04, 0x01, 0x00
+    };
+
+    struct EthRxStatistics_s *EthRxStat = NULL;
+    struct EthTxStatistics_s *EthTxStat = NULL;
+    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;
+
+#ifdef HAVE_GETTEXT
+    setlocale(LC_ALL, "");
+    bindtextdomain("ap-utils", LOCALEDIR);
+    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);
+    }
+
+    do {
+       opterr = 0;
+       switch (opt = getopt(argc, argv, "i:c:t:b:n:a:d:r")) {
+       case 'i':
+           if (inet_aton(optarg, &ap_ip) == 0) {
+               printf(_("Invalid IP-address\n"));
+               return 1;
+           }
+           break;
+       case 't':
+           stat_type = optarg[0];
+           break;
+       case 'c':
+           community = malloc(strlen(optarg) + 1);
+           strncpy(community, optarg, strlen(optarg) + 1);
+           break;
+       case 'b':
+           bssid = malloc(strlen(optarg) + 1);
+           strncpy(bssid, optarg, strlen(optarg) + 1);
+           break;
+       case 'd':
+           rrd_file = malloc(strlen(optarg) + 1);
+           strncpy(rrd_file, optarg, strlen(optarg) + 1);
+           break;
+       case 'n':
+           name = malloc(strlen(optarg) + 1);
+           strncpy(name, optarg, strlen(optarg) + 1);
+           break;
+       case 'r':
+           reset_flag=1;
+           break;
+        case 'a':
+            if ( strcmp( optarg, "510\0" ) == 0) {
+              Wireless[5] = 0xE0;
+              Wireless[6] = 0x3E;
+              EthRx[5] = 0xE0;
+              EthRx[6] = 0x3E;
+              EthTx[5] = 0xE0;
+              EthTx[6] = 0x3E;
+              operAccessPointName[5] = 0xE0;
+              operAccessPointName[6] = 0x3E;
+              StasNum[5] = 0xE0;
+              StasNum[6] = 0x3E;
+              KnownAP[5] = 0xE0;
+              KnownAP[6] = 0x3E;
+              bridgeOperationalMode[5] = 0xE0;
+              bridgeOperationalMode[6] = 0x3E;
+            } else if (strcmp(optarg, "410") == 0) {
+              /* nothing - hard-coded defaults are fine */
+            } else {
+              /* Invalid AP-Type */
+              printf(_("Invalid AP-Type '%s' - valid types are 510 or 410\n"), optarg);
+              return 1;
+            }
+            break;
+       case -1:
+            break;
+       default:
+           usage();
+           goto quit;
+       }
+    } while (opt != -1);
+
+    if (!community) {
+       usage();
+       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':
+
+       varbinds[0].oid = EthRx;
+       varbinds[0].len_oid = sizeof(EthRx);
+       varbinds[0].value = EthRx;
+       varbinds[0].len_val = 0;
+       varbinds[0].type = NULL_VALUE;
+       varbinds[1].oid = EthTx;
+       varbinds[1].len_oid = sizeof(EthTx);
+       varbinds[1].value = EthTx;
+       varbinds[1].len_val = 0;
+       varbinds[1].type = NULL_VALUE;
+
+       if (snmp(varbinds, 2, GET) <= 0) {
+           printf(ERR_STR);
+           return 1;
+       }
+
+       if (varbinds[0].len_val == 64) {
+           if (EthRxStat)
+               free(EthRxStat);
+           EthRxStat =
+               (struct EthRxStatistics_s *) malloc(varbinds[0].
+                                                      len_val);
+           memcpy(EthRxStat, varbinds[0].value, varbinds[0].len_val);
+       } else {
+           printf(ERR_STR);
+           return 1;
+       }
+
+       if (varbinds[1].len_val == 56) {
+           if (EthTxStat)
+               free(EthTxStat);
+           EthTxStat =
+               (struct EthTxStatistics_s *) malloc(varbinds[1].
+                                                      len_val);
+           memcpy(EthTxStat, varbinds[1].value, varbinds[1].len_val);
+       } else {
+           printf(ERR_STR);
+           return 1;
+       }
+       sprintf(cmd, "rrdtool update %s N:%u:%u", rrd_file, swap4(EthRxStat->TotalBytesRx), swap4(EthTxStat->TotalBytesTx));
+       system(cmd);
+       if (EthRxStat)
+           free(EthRxStat);
+       if (EthTxStat)
+           free(EthTxStat);
+       break;
+    case 'w':
+       varbinds[0].oid = Wireless;
+       varbinds[0].len_oid = sizeof(Wireless);
+       varbinds[0].value = Wireless;
+       varbinds[0].len_val = 0;
+       varbinds[0].type = NULL_VALUE;
+
+       if (snmp(varbinds, 1, GET) <= 0) {
+           printf(ERR_STR);
+           return 1;
+       }
+
+       if (varbinds[0].len_val == 88) {
+           if (WirelessStat)
+               free(WirelessStat);
+           WirelessStat =
+               (struct wirelessStatistics_s *) malloc(varbinds[0].len_val);
+           memcpy(WirelessStat, varbinds[0].value, varbinds[0].len_val);
+       } else {
+           printf(ERR_STR);
+           return 1;
+       }
+       sprintf(cmd, "rrdtool update %s N:%u:%u", rrd_file,
+              swap4(WirelessStat->UnicastReceivedPackets) +
+              swap4(WirelessStat->BroadcastReceivedPackets) +
+              swap4(WirelessStat->MulticastReceivedPackets),
+              swap4(WirelessStat->UnicastTransmittedPackets) +
+              swap4(WirelessStat->BroadcastTransmittedPackets) +
+              swap4(WirelessStat->MulticastTransmittedPackets));
+       system(cmd);
+       break;
+
+    case 's':
+       varbinds[0].oid = StasNum;
+       varbinds[0].len_oid = sizeof(StasNum);
+       varbinds[0].value = StasNum;
+       varbinds[0].len_val = 0;
+       varbinds[0].type = NULL_VALUE;
+
+       if (snmp(varbinds, 1, GET) <= 0) {
+           printf(ERR_STR);
+           return 1;
+       }
+
+       sprintf(cmd, "rrdtool update %s N:%u", rrd_file, *varbinds[0].value);
+       system(cmd);
+       break;
+
+    case 'l':
+
+       varbinds[0].oid = bridgeOperationalMode;
+       varbinds[0].len_oid = sizeof(bridgeOperationalMode);
+       varbinds[0].len_val = 0;
+       varbinds[0].type = NULL_VALUE;
+
+       if (snmp(varbinds, 1, GET) <= 0) {
+           printf(ERR_STR);
+           return 1;
+       }
+
+       if (*(varbinds[0].value) != 3) {
+           printf(ERR_STR);
+           return 1;
+       }
+
+       if (reset_flag) {
+               if (SysReset()) {
+                   printf(ERR_STR);
+                   return 1;
+               }
+               sleep(10);
+       }
+               
+       varbinds[0].oid = KnownAP;
+       varbinds[0].len_oid = sizeof(KnownAP);
+       varbinds[0].type = NULL_VALUE;
+       varbinds[0].len_val = 0;
+
+       if (snmp(varbinds, 1, GET) <= 0) {
+           printf(ERR_STR);
+           return 1;
+       }
+       bssid_flag = 1;
+       for (i = 0; i < varbinds[0].len_val; i += 48) {
+           if (app)
+               free(app);
+           app = (struct ap *) malloc(48);
+           memcpy(app, varbinds[0].value + i, 48);
+           if (!app->channel)
+               continue;
+           if (bssid) {
+               sprintf(message, "%02X%02X%02X%02X%02X%02X",
+                       app->mac[0] & 0xFF, app->mac[1] & 0xFF,
+                       app->mac[2] & 0xFF, app->mac[3] & 0xFF,
+                       app->mac[4] & 0xFF, app->mac[5] & 0xFF);
+               if (memcmp(message, bssid, 12))
+                   continue;
+           };
+       sprintf(cmd, "rrdtool update %s N:%u:%u", rrd_file, app->q2, 96 - app->q1);
+       system(cmd);
+           bssid_flag = 0;
+           break;
+       }
+       if (bssid_flag)
+           printf(ERR_STR);
+       break;
+    default:
+       usage();
+       goto quit;
+    }
+
+/*    printf("-\n");
+
+
+    if ( name != NULL ) {
+        varbinds[0].oid = operAccessPointName;
+        varbinds[0].len_oid = sizeof(operAccessPointName);
+        varbinds[0].len_val = 0;
+        varbinds[0].type = NULL_VALUE;
+        if (snmp(varbinds, 1, GET) <= 0) {
+               printf("\n");
+               return 1;
+        }
+
+        for (i = 0; i < 32 && *(varbinds[0].value + i); i++)
+               putchar(*(varbinds[0].value + i));
+               putchar('\n');
+          if (strncmp(name,varbinds[0].value,strlen(name)) ){
+               return 2;
+        }
+    } else {
+        printf("-\n");
+    }
+*/
+    close(sockfd);
+
+    
+  quit:
+    if (community)
+       free(community);
+    if (app)
+       free(app);
+    if (bssid)
+       free(bssid);
+    if (name)
+       free(name);
+    return 0;
+}
+
diff --git a/src/ap-tftp.c b/src/ap-tftp.c
new file mode 100644 (file)
index 0000000..990de43
--- /dev/null
@@ -0,0 +1,545 @@
+/* ------------------------------------------------------------------------- */
+/* ap-tftp.c                                                                 */
+/*                                                                           */
+/* 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.      */
+/* 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                                                 */
+/*                                                                           */
+/* Code based on:                                                            */
+/*                                                                           */
+/* bb tftp: Copyright (C) 2001 Magnus Damm <damm@opensource.se>              */
+/*                                                                           */
+/* atftp:   Copyright (C) 2000 Jean-Pierre Lefebvre <helix@step.polymtl.ca>  */
+/*                             and Remi Lefebvre <remi@debian.org>           */
+/*                                                                           */
+/* utftp:   Copyright (C) 1999 Uwe Ohse <uwe@ohse.de>                        */
+/*                                                                           */
+/* This program is free software; you can redistribute it and/or modify      */
+/* it under the terms of the GNU General Public License as published by      */
+/* the Free Software Foundation; either version 2 of the License, or         */
+/* (at your option) any later version.                                       */
+/*                                                                           */
+/* This program is distributed in the hope that it will be useful,           */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of            */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU          */
+/* General Public License for more details.                                  */
+/*                                                                           */
+/* You should have received a copy of the GNU General Public License         */
+/* along with this program; if not, write to the Free Software               */
+/* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA   */
+/*                                                                           */
+/* ------------------------------------------------------------------------- */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <sys/time.h>
+#include <sys/stat.h>
+#include <netdb.h>
+#include <netinet/in.h>
+#include <arpa/inet.h>
+#include <unistd.h>
+#include <fcntl.h>
+
+#ifdef HAVE_GETTEXT
+/* GNU gettext stuff*/
+#include <locale.h>
+#include <libgnuintl.h>
+#define _(String) gettext (String)
+#else
+#define _(String) (String)
+#endif
+
+#define TFTP_BLOCKSIZE_DEFAULT 512 /* according to RFC 1350, don't change */
+#define TFTP_TIMEOUT 2             /* # seconds waiting for single response */
+#define TFTP_RETRIES 5             /* # retries with TFTP_TIMEOUT */
+#undef FEATURE_TFTP_DEBUG
+
+/* opcodes we support */
+#define TFTP_WRQ   2
+#define TFTP_DATA  3
+#define TFTP_ACK   4
+#define TFTP_ERROR 5
+
+#ifdef FEATURE_TFTP_DEBUG
+#define YES _("yes")
+#define NO _("no")
+#endif
+#define ERR_READFW _("Error while read()ing firmware file")
+
+/* known errors server may respond with */
+static const char *tftp_error_msg[] = {
+    _("Undefined error"),
+    _("File not found"),
+    _("Access violation"),
+    _("Disk full or allocation error"),
+    _("Illegal TFTP operation"),
+    _("Unknown transfer ID"),
+    _("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;
+    int opcode = TFTP_WRQ;
+    int tftp_bufsize = TFTP_BLOCKSIZE_DEFAULT;
+    int timeout;
+    int block_nr = 1;
+    int finished = 0;
+    int socketfd;
+    int len;
+    int maxlen;
+    int optlen;
+    char *nl = "";
+    char *cp;
+    char *buf = malloc(tftp_bufsize);
+    char buf2[64];
+
+    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;
+    }
+
+    len = sizeof(to);
+    memset(&to, 0, len);
+    bind(socketfd, (struct sockaddr *)&to, len);
+
+    to.sin_family = AF_INET;
+    to.sin_port = htons(port);
+    to.sin_addr.s_addr = ip;
+
+    while (1) {
+       timeout = TFTP_RETRIES;
+       cp = buf;
+
+       /* first create the opcode part */
+
+       *((unsigned short *) cp) = htons(opcode);
+       cp += 2;
+
+       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]) {
+               printf(_("Remote-filename too long.\n"));
+               break;
+           }
+
+           strncpy(cp, remotefile, len);
+           cp += len;
+
+           // ATMEL tftp client specific
+           *cp = 1;
+           cp++;
+
+           memcpy(cp, "octet", 6);
+           cp += 6;
+
+           // ATMEL tftp client specific ("upload auth. code")
+           memcpy(cp, options, optlen);
+           cp += optlen;
+       }
+
+       if (opcode == TFTP_DATA) {
+           *((unsigned short *) cp) = htons(block_nr);
+           cp += 2;
+
+           len = read(localfd, cp, tftp_bufsize);
+
+           if (len < 0) {
+               sprintf(buf2, _("%sError in read()"), nl);
+               perror(buf2);
+               break;
+           }
+
+           block_nr++;
+
+           /*
+            * assure we wont upload more than maxlen bytes
+            * even if total file length > maxlen
+            */
+           if (maxlen && (block_nr - 2) * tftp_bufsize + len > maxlen) {
+               len = maxlen - (block_nr - 2) * tftp_bufsize;
+               cp[len] = '\0';
+           }
+
+           if (len != tftp_bufsize)
+               finished++;
+
+           cp += len;
+       }
+
+       /* send packet */
+
+       do {
+           len = cp - buf;
+
+#ifdef FEATURE_TFTP_DEBUG
+           printf(_("sending %u bytes\n"), len);
+           for (cp = buf; cp < &buf[len]; cp++)
+               printf("%02x ", *cp & 0xFF);
+
+           printf("\n");
+#endif
+           if (sendto(socketfd, buf, len, 0,
+               (struct sockaddr *) &to, sizeof(to)) < 0)
+           {
+               sprintf(buf2, _("%sError in sendto()"), nl);
+               perror(buf2);
+               len = -1;
+               break;
+           }
+
+           /* receive packet */
+
+           memset(&from, 0, sizeof(from));
+           fromlen = sizeof(from);
+
+           tv.tv_sec = TFTP_TIMEOUT;
+           tv.tv_usec = 0;
+
+           FD_ZERO(&rfds);
+           FD_SET(socketfd, &rfds);
+
+           switch (select(FD_SETSIZE, &rfds, NULL, NULL, &tv)) {
+               case 1:
+                   len = recvfrom(socketfd, buf, tftp_bufsize, 0,
+                       (struct sockaddr *) &from, &fromlen);
+
+                   if (len < 0) {
+                       sprintf(buf2, _("%sError in recvfrom()"), nl);
+                       perror(buf2);
+                       break;
+                   }
+
+                   /*
+                   if (to.sin_port == htons(port))
+                       to.sin_port = from.sin_port;
+                   */
+                   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);
+                           write(fileno(stdout), buf2, strlen(buf2));
+                           nl = "\n";
+                       }
+#endif
+                       timeout = 0;
+                       break;
+                   }
+
+                   /* assume invalid packet */
+                   printf(_("%sMalformed packet received. Aborting.\n"), nl);
+                   len = -1;
+                   break;
+
+               case 0:
+                   timeout--;
+                   if (timeout == 0)
+                       len = -1;
+
+                   printf(_("%sTimed out waiting for response from server "
+                       "(%i/%i).\n"),nl, TFTP_RETRIES - timeout, TFTP_RETRIES);
+                   nl = "";
+                   break;
+
+               default:
+                   len = -1;
+                   sprintf(buf2, _("%sError in select()"), nl);
+                   perror(buf2);
+           }
+       } while (timeout && (len >= 0));
+
+       if (len < 0)
+           break;
+
+       /* process received packet */
+
+       opcode = ntohs(*((unsigned short *) buf));
+       tmp = ntohs(*((unsigned short *) &buf[2]));
+
+#ifdef FEATURE_TFTP_DEBUG
+       printf(_("Received %d bytes: %04x %04x\n"), len, opcode, tmp);
+#endif
+
+       if (opcode == TFTP_ERROR) {
+           sprintf(buf, "code %i", tmp);
+           if (tmp < (sizeof(tftp_error_msg) / sizeof(char *))) {
+               strcat(buf, " (");
+               strcat(buf, tftp_error_msg[tmp]);
+               strcat(buf, ")");
+           }
+
+           printf(_("%sError: server responded with %s. Aborting.\n"),nl,buf);
+           break;
+       }
+
+       if (opcode == TFTP_ACK) {
+           if (tmp == (block_nr - 1)) {
+               if (finished) {
+                   printf(_("%sFlash programming in progress...\n"), nl);
+                   sleep(5);
+                   printf(_("Finished successfully.\n"));
+                   break;
+               }
+
+               opcode = TFTP_DATA;
+               continue;
+           }
+       }
+    }
+
+    close(socketfd);
+    free(buf);
+
+    return finished ? EXIT_SUCCESS : EXIT_FAILURE;
+}
+
+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]);
+}
+
+int main(int argc, char **argv)
+{
+    struct in_addr in;
+    struct stat sb;
+    char *localfile = NULL;
+    char *remotefile = NULL;
+    char *cp;
+    int fd;
+    int result = 0;
+    int i;
+    static char buf[256];
+
+#ifdef HAVE_GETTEXT
+    /* locale support init */
+    setlocale(LC_ALL, "");
+    bindtextdomain("ap-utils", LOCALEDIR);
+    textdomain("ap-utils");
+#endif
+
+    printf (_("TFTP client for upgrading firmware in ATMEL AT76C510 "
+           "WiSOC-based APs.\n"));
+    printf (_("(C) 2004-2005 Jan Rafaj "
+           "<jr-aputils at cedric dot unob dot cz>\n"));
+
+    while ((i = getopt(argc, argv, "l:h")) != -1) {
+       switch (i) {
+           case 'l': 
+               localfile = strdup(optarg);
+               break;
+           case 'h':
+               usage(argv);
+               return EXIT_SUCCESS;
+           default:
+               return EXIT_FAILURE;
+       }
+    }
+
+    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
+     */
+    if (optind == 1 || optind < 3 || argc > 4 || optind == argc) {
+       printf(_("Error: invalid arguments given.\n"));
+       return EXIT_FAILURE;
+    }
+
+    /* 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;
+    }
+
+    fstat(fd, &sb);
+    if (sb.st_size < 94448 || sb.st_size > 524288) {
+       printf(_("Error: invalid firmware file given.\n"));
+       return EXIT_FAILURE;
+    }
+
+    while ((i = read(fd, buf, sizeof(buf))) != 0) {
+       if (i < 0) {
+           perror(ERR_READFW);
+           return EXIT_FAILURE;
+       }
+
+       if (i == sizeof(buf))
+           lseek(fd, -13, SEEK_CUR);
+
+       while (i--) {
+           if (!(memcmp(&buf[i], "ATMEL", 5)))
+               result |= 1;
+
+           if (!(memcmp(&buf[i], "802.11 AP", 9)))
+               result |= 2;
+
+           if (!(memcmp(&buf[i], "atbrfirm.bin", 12))) {
+               result |= 16;
+               remotefile = "atbrfirm.bin";
+           }
+
+           if (!(memcmp(&buf[i], "atsingle.bin", 12))) {
+               result |= 32;
+               remotefile = "atsingle.bin";
+           }
+
+           if (result > 18)
+               break;
+       }
+
+       if (result > 18)
+           break;
+
+       memset(buf, 0, sizeof(buf));
+    }
+#if FEATURE_TFTP_DEBUG
+    printf(_("Firmware file contains:\n"
+           "- string \"ATMEL\": %s\n"
+           "- string \"802.11 AP\": %s\n"
+           "- string \"atbrfirm.bin\": %s\n"
+           "- string \"atsingle.bin\": %s\n"),
+           result & 1 ? YES : NO, result & 2 ? YES : NO,
+           result & 16 ? YES : NO, result & 32 ? YES : NO);
+#endif
+    if ((result & (1|2)) != (1|2) || (result & (16|32)) == (16|32) ||
+       (result & (16|32)) == 0)
+    {
+       printf(_("Error: invalid firmware file given.\n"));
+       return EXIT_FAILURE;
+    }
+
+    lseek(fd, 0, SEEK_SET);
+
+    cp = strrchr(localfile, '/');
+    if (cp)
+       cp++;
+    else
+       cp = localfile;
+
+    printf(_("Using:\n"
+       "- server: %s\n"
+       "- firmware file: \"%s\"\n"
+       "- name used for upload: \"%s\"\n"),
+       inet_ntoa(in), cp, remotefile);
+
+    if (result & 16) {
+       /* Firmware series 1.4x.y - atbrfirm.bin */
+
+       unsigned short sum = 0;
+       unsigned short *wp;
+       int maxlen = 94448;
+       int bufs_read = 0;
+
+       /* compute checksum */
+       while ((i = read(fd, buf, sizeof(buf))) != 0) {
+           if (i < 0) {
+               perror(ERR_READFW);
+               return EXIT_FAILURE;
+           }
+
+           /* assure we do not checksum more than maxlen bytes */
+           if ((bufs_read + i) > maxlen)
+               i = maxlen - bufs_read;
+
+           bufs_read += i;
+
+           /* perform iterative checksumming */
+           i /= 2;
+           wp = (unsigned short *)buf;
+           while (i--) {
+               if (sum + *wp > 0xFFFF)
+                   sum++;
+
+               sum += *(wp++);
+           };
+
+           /* prevent eventual fread() if file length > maxlen */
+           if (bufs_read == maxlen)
+               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;
+
+       printf("- checksum: %x\n", ntohs(sum));
+    } else { /* result & 32 */
+       /* Firmware series 0.x.y.z - atsingle.bin */
+
+       i = read(fd, buf, 234);
+       if (i < 234) {
+           printf(ERR_READFW);
+           return EXIT_FAILURE;
+       }
+       if (lseek(fd, 256, SEEK_SET) == -1) {
+           perror(_("Error while lseek()ing in firmware file\n"));
+           return EXIT_FAILURE;
+       }
+    }
+
+    result = tftp(in.s_addr, remotefile, fd, buf);
+
+    return(result);
+}
index cd864a1d84c10cd6f5a6fdc1986dbe6194bdd4c9..d1666e0865b1101c5dbde836573cdc1bf3f7fcfa 100644 (file)
@@ -53,8 +53,10 @@ int main(int argc, char **argv)
     size_t time_stamp;
     char mac[6], *enterprise_oid = NULL, c, mac_info[31], mac_flag = 0;
     struct in_addr agent_addr;
-    char enterprise[] = { 0x2b, 0x06, 1, 4, 1, 0x83, 0x1a, 1, 1 };
-    char *generic_traps[8] = { "ColdStart",
+    char enterprise_410[] = { 0x2b, 0x06, 1, 4, 1, 0x83, 0x1a, 1, 1 };
+    char enterprise_12350[] = { 0x2b, 0x06, 1, 4, 1, 0xe0, 0x3e, 1, 1 };
+    char *generic_traps[8] = {
+       "ColdStart",
        "WarmStart",
        "LinkDown",
        "LinkUp",
@@ -229,7 +231,9 @@ int main(int argc, char **argv)
        enterprise_oid[start[1]] = '\0';
        start += start[1] + 2;
        memcpy(&agent_addr.s_addr, start + 2, 4);
-       if (memcmp(enterprise_oid, enterprise, sizeof(enterprise))) {
+       if (memcmp(enterprise_oid, enterprise_410, sizeof(enterprise_410)) &&
+           memcmp(enterprise_oid, enterprise_12350, sizeof(enterprise_12350)))
+       {
            syslog(LOG_INFO,
                   _
                   ("Received unknown SNMP ver %d trap. From %s:%d. Agent: %s. Community: %s."),
@@ -304,11 +308,13 @@ int main(int argc, char **argv)
        }
        syslog(LOG_INFO,
               _
-              ("Agent:v%d %s (%s@%s:%d) %s%s%s. SysUptime %d:%02d:%02d.%02d"),
+              ("Agent:v%d %s (%s@%s:%d) Trap %i: %s%s%s. "
+               "SysUptime %d:%02d:%02d.%02d"),
               snmp_version + 1,  inet_ntoa(agent_addr),
               community, inet_ntoa(client.sin_addr), ntohs(client.sin_port),
-              (generic_trap ==
-               6) ? (atmel_ap_type == 1) ? specific_traps[specific_trap-1] : specific_traps_sb[specific_trap-1] :
+              (generic_trap == 6) ? specific_trap: generic_trap + 1,
+              (generic_trap == 6) ?
+               (atmel_ap_type == 1) ? specific_traps_sb[specific_trap-1] : specific_traps[specific_trap-1] :
               generic_traps[generic_trap], (mac_flag) ? " " : "",
               (mac_flag) ? mac_info : "", time_stamp, min, sec, hand);
     }
diff --git a/src/aplink.c b/src/aplink.c
new file mode 100644 (file)
index 0000000..eb5ed3d
--- /dev/null
@@ -0,0 +1,304 @@
+/*
+ *        aplink.c from Access Point SNMP Utils for Linux
+ *
+ * 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
+ * June 1991 as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 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 "ap-utils.h"
+
+#define S_RSSI     _("RSSI:     [")
+#define S_RSSI_AVG _("RSSI avg: [")
+#define S_RSSI_TOP _("RSSI top: [")
+
+extern WINDOW *main_sub;
+extern short ap_type, ap_vendorext;
+extern int wait_mode, snmp_retries;
+
+/*
+ * TODO: Implement APClientInfo as alternative, for NetGear ME102 MIB
+ * (ap_type == ATMEL12350 && ap_vendorext == NONE).
+ */
+
+void atmel_aplink()
+{
+    char bridgeOperationalMode[] = {
+       0x2B, 0x06, 0x01, 0x04, 0x01, 0x83, 0x1A, 0x01, 0x01, 0x04, 0x01, 0x00
+    };
+    /*
+     * ATMEL12350 EZYNET MIB and ATMEL410 SBRIDGES MIB specific:
+     * 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
+     */
+    char NetworkSettings[] = {
+       0x2B, 0x06, 0x01, 0x04, 0x01, 0x83, 0x1A, 0x01, 0x02, 0x08, 0x01, 0x00
+    };
+
+    /* APClient mode: AP link diagnostics */
+
+    struct NetworkSettings_ATMEL410_SBRIDGES sa_sb_410;
+    struct NetworkSettings_ATMEL12350_EZYNET sa_en_12350;
+
+    /* Used common members of the 2 structures above. */
+    unsigned char BSSID[6];
+    /* unsigned short InfoCapability; */
+    unsigned char Rssi;
+    unsigned char Channel;
+    /* LinkQuality for NetworkSettings_ATMEL410_SBRIDGES */
+    /* CurrentRate for NetworkSettings_ATMEL12350_EZYNET */
+    unsigned char LQCR;
+    unsigned char ESSID[32];
+    unsigned long ESSLEN; /* uchar for NetworkSettings_ATMEL410_SBRIDGES */
+
+    char message[1024];
+    int i, linked = 0, rssi_perc, samples = 0, sum = 0, avg = 0, avg_perc;
+    int top = 0, top_perc;
+    varbind varbinds[1];
+    WINDOW *gauge_rssi, *gauge_rssi_avg, *gauge_rssi_top;
+
+    if (ap_type == ATMEL12350) {
+       bridgeOperationalMode[5] = 0xE0;
+       bridgeOperationalMode[6] = 0x3E;
+
+       NetworkSettings[5] = 0xE0;
+       NetworkSettings[6] = 0x3E;
+       NetworkSettings[9] = 0x07;
+       NetworkSettings[10] = 0x04;
+    }  
+
+    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));
+
+    /* find out mode the device is currently in */
+    varbinds[0].oid = bridgeOperationalMode;
+    varbinds[0].len_oid = sizeof(bridgeOperationalMode);
+    varbinds[0].value = bridgeOperationalMode;
+    varbinds[0].len_val = 0;
+    varbinds[0].type = NULL_VALUE;
+    print_help(WAIT_RET);
+    if (snmp(varbinds, 1, GET) <= 0) {
+         print_helperr(ERR_RET);
+         getch();
+         goto exit;
+    }
+
+    /*
+     * Rule out all modes except APClient(3) mode and WRepeater(5) mode on
+     * device running firmware with necessary vendor extensions.
+     */
+    if(!( ((ap_type == ATMEL410 && ap_vendorext == SBRIDGES) ||
+          (ap_type == ATMEL12350 && ap_vendorext == EZYNET)) &&
+         (*(varbinds[0].value) == 3 || *(varbinds[0].value) == 5) )) {
+       mvwaddstr(main_sub, 1, 1,
+           _("Not available - device must have firmware with necessary "));
+       mvwaddstr(main_sub, 2, 1,
+           _("vendor extensions and be in either 'Access Point client'"));
+       mvwaddstr(main_sub, 3, 1,
+           _("or 'Repeater' mode."));
+       print_help(ANY_KEY);
+       wrefresh(main_sub);
+       getch();
+       goto exit;
+    }
+
+    print_top(wait_mode == WAIT_TIMEOUT ? POLL_ON : POLL_OFF, AP_TITLE);
+    print_help(QT_HELP);
+    noecho();
+
+    while (1) {
+       /* find out how many STAtions is in the list */
+       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) {
+           waddstr(main_sub, NO);
+           if (linked)
+               clear_main(0);
+
+           wrefresh(main_sub);
+           linked = 0;
+           sum = samples = 0;
+       } else {
+           if (wait_mode == WAIT_FOREVER)
+               print_help(QT_HELP);
+
+           waddstr(main_sub, YES);
+
+           if (ap_type == ATMEL410) {
+               memcpy(&sa_sb_410, varbinds[0].value, varbinds[0].len_val);
+
+               memcpy(BSSID, sa_sb_410.BSSID, 6);
+               /* InfoCapability = sa_sb_410.InfoCapability; */
+               Rssi = sa_sb_410.Rssi;
+               Channel = sa_sb_410.Channel;
+               LQCR = sa_sb_410.LinkQuality;
+               memcpy(ESSID, sa_sb_410.ESSID, 32);
+               ESSLEN = sa_sb_410.ESSLEN;
+           } else { /* ap_type == ATMEL12350 */
+               memcpy(&sa_en_12350, varbinds[0].value, varbinds[0].len_val);
+
+               memcpy(BSSID, sa_en_12350.BSSID, 6);
+               /* InfoCapability = sa_en_12350.InfoCapability; */
+               Rssi = sa_en_12350.Rssi;
+               Channel = sa_en_12350.Channel;
+               LQCR = sa_en_12350.CurrentRate;
+               memcpy(ESSID, sa_en_12350.ESSID, 32);
+               ESSLEN = sa_en_12350.ESSLEN;
+           }
+
+           sprintf(message, "Joined BSSID: %02X%02X%02X%02X%02X%02X",
+               BSSID[0] & 0xFF, BSSID[1] & 0xFF, BSSID[2] & 0xFF,
+               BSSID[3] & 0xFF, BSSID[4] & 0xFF, BSSID[5] & 0xFF);
+           mvwaddstr(main_sub, 1, 0, message);
+
+           mvwaddstr(main_sub, 2, 0, S_RSSI);
+           rssi_perc = (int)((minimum (Rssi, 40)) * (float)2.5);
+           werase(gauge_rssi);
+           for (i = 0; i < (20 * rssi_perc / 100); i++) {
+               if (i == 0)
+                   wattrset(gauge_rssi, COLOR_PAIR(COLOR_RED));
+               if (i == 7)
+                   wattrset(gauge_rssi, COLOR_PAIR(COLOR_YELLOW) | A_BOLD);
+               if (i == 14)
+                   wattrset(gauge_rssi, COLOR_PAIR(COLOR_GREEN));
+               waddch(gauge_rssi, ACS_BLOCK);
+           }
+           wnoutrefresh(gauge_rssi);
+           sprintf(message, "] [%4ddBm] [%3u%%] [%3u]",
+               -96 + 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);
+           werase(gauge_rssi_top);
+           for (i = 0; i < (20 * top_perc / 100); i++) {
+               if (i == 0)
+                   wattrset(gauge_rssi_top, COLOR_PAIR(COLOR_RED));
+               if (i == 7)
+                   wattrset(gauge_rssi_top, COLOR_PAIR(COLOR_YELLOW) | A_BOLD);
+               if (i == 14)
+                   wattrset(gauge_rssi_top, COLOR_PAIR(COLOR_GREEN));
+               waddch(gauge_rssi_top, ACS_BLOCK);
+           }
+           wnoutrefresh(gauge_rssi_top);
+           sprintf(message, "] [%4ddBm] [%3u%%] [%3u]",
+               -96 + top, top_perc, top);
+           mvwaddstr(main_sub, 3, strlen(S_RSSI_TOP) + 20, message);
+
+           mvwaddstr(main_sub, 4, 0, S_RSSI_AVG);
+           sum += Rssi;
+           avg = sum / ++samples;
+           if (samples == 100000) {
+               samples = 1;
+               sum = Rssi;
+           }
+           avg_perc = (int)((minimum (avg, 40)) * (float)2.5);
+           werase(gauge_rssi_avg);
+           for (i = 0; i < (20 * avg_perc / 100); i++) {
+               if (i == 0)
+                   wattrset(gauge_rssi_avg, COLOR_PAIR(COLOR_RED));
+               if (i == 7)
+                   wattrset(gauge_rssi_avg, COLOR_PAIR(COLOR_YELLOW) | A_BOLD);
+               if (i == 14)
+                   wattrset(gauge_rssi_avg, COLOR_PAIR(COLOR_GREEN));
+               waddch(gauge_rssi_avg, ACS_BLOCK);
+           }
+           wnoutrefresh(gauge_rssi_avg);
+           sprintf(message, "] [%4ddBm] [%3u%%] / %5u sampl.",
+               -96 + avg, avg_perc, samples);
+           mvwaddstr(main_sub, 4, strlen(S_RSSI_AVG) + 20, message);
+
+           if (ap_type == ATMEL410) {
+               sprintf(message, "Link quality: %3u%%",
+                   (int)(100 - (minimum (LQCR, 40)) * (float)2.5));
+           } else { /* ap_type == ATMEL12350 */
+               sprintf(message, "Current rate: ");
+               switch(LQCR) {
+                  case 0:
+                       strcat(message, "1 Mbps  ");
+                       break;
+                  case 1:
+                       strcat(message, "2 Mbps  ");
+                       break;
+                  case 2:
+                       strcat(message, "5.5 Mbps");
+                       break;
+                  case 3:
+                       strcat(message, "11 Mbps ");
+               }
+           }
+           mvwaddstr(main_sub, 5, 0, message);
+
+           sprintf(message, "Channel: %2u", Channel);
+           mvwaddstr(main_sub, 6, 0, message);
+
+           mvwaddstr(main_sub, 7, 0, "ESSID: ");
+           waddnstr(main_sub, ESSID, ESSLEN);
+/*
+           sprintf(message, "InfoCapability: %3u", InfoCapability & 0xFF);
+           mvwaddstr(main_sub, 8, 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);
+           }
+
+           linked = 1;
+
+           /* either timeout for user input (i == 0) or invalid key => cont. */
+       }
+    }
+
+exit:
+    snmp_retries = 5;
+    delwin(gauge_rssi);
+    delwin(gauge_rssi_top);
+    delwin(gauge_rssi_avg);
+    print_top(NULL, NULL);
+    clear_main(0);
+}
+
diff --git a/src/auth.c b/src/auth.c
new file mode 100644 (file)
index 0000000..e201b8e
--- /dev/null
@@ -0,0 +1,1085 @@
+/*
+ *      auth.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
+ * June 1991 as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ */
+
+#include <stdlib.h>
+#include <unistd.h>
+#include <string.h>
+#include "ap-utils.h"
+
+#define MAX_LINES LINES-12
+#define PACKET_ERROR _("AuthorizedMacTableString packet error")
+
+#define AUTH_TITLE _("APClient authorization credentials")
+
+#define MAC_AUTH _("[A] MAC authorization: ")
+#define MAC_ADD  _("Enter MAC: ")
+#define MAC_DEL  _("Delete Num: ")
+#define MAC_HEADER _(" NUM     MAC address     ")
+#define MAC_HELP _("A: auth; N: new; D: del; arrows: scroll; W: write conf; Q: quit")
+
+#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_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_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")
+
+extern WINDOW *main_sub;
+extern int LINES;
+extern short ap_type, ap_vendorext;
+
+void atmel_auth()
+{
+    char AuthorizationMacEnable[] = {
+       0x2B, 0x06, 0x01, 0x04, 0x01, 0x83, 0x1A, 0x01, 0x02, 0x06, 0x01, 0x00
+    };
+    char AutorizedMac[] = {
+       0x2B, 0x06, 0x01, 0x04, 0x01, 0x83, 0x1A, 0x01, 0x02, 0x06, 0x02, 0x00
+    };
+
+    /* These 6 are ATMEL410 MIB with SBRIDGES extensions -specific */
+    char AuthRadiusIP[] = {
+       0x2B, 0x06, 0x01, 0x04, 0x01, 0x83, 0x1A, 0x01, 0x02, 0x06, 0x03, 0x00
+    };
+    char AuthRadiusSecret[] = {
+       0x2B, 0x06, 0x01, 0x04, 0x01, 0x83, 0x1A, 0x01, 0x02, 0x06, 0x04, 0x00
+    };
+    char AuthRadiusSecretLength[] = {
+       0x2B, 0x06, 0x01, 0x04, 0x01, 0x83, 0x1A, 0x01, 0x02, 0x06, 0x05, 0x00
+    };
+    char AuthRadiusPort[] = {
+       0x2B, 0x06, 0x01, 0x04, 0x01, 0x83, 0x1A, 0x01, 0x02, 0x06, 0x06, 0x00
+    };
+    char AuthRadiusReauthorizationTime[] = {
+       0x2B, 0x06, 0x01, 0x04, 0x01, 0x83, 0x1A, 0x01, 0x02, 0x06, 0x07, 0x00
+    };
+    char AuthRadiusDestinPort[] = {
+       0x2B, 0x06, 0x01, 0x04, 0x01, 0x83, 0x1A, 0x01, 0x02, 0x06, 0x08, 0x00
+    };
+
+    /* These 4 are ATMEL12350 MIB with EZYNET extensions -specific */
+    /* Note: GEMTEK MIB falsely claims it has these, but it is not true. :( */
+    char Dot1xEnable[] = {
+       0x2B, 0x06, 0x01, 0x04, 0x01, 0xE0, 0x3E, 0x01, 0x02, 0x08, 0x01, 0x00
+    };
+    char BroadcastKeyPeriod[] = {
+       0x2B, 0x06, 0x01, 0x04, 0x01, 0xE0, 0x3E, 0x01, 0x02, 0x08, 0x02, 0x00
+    };
+    char ServerIP[] = {
+       0x2B, 0x06, 0x01, 0x04, 0x01, 0xE0, 0x3E, 0x01, 0x02, 0x08, 0x03, 0x00
+    };
+    char ServerSecret[] = {
+       0x2B, 0x06, 0x01, 0x04, 0x01, 0xE0, 0x3E, 0x01, 0x02, 0x08, 0x04, 0x00
+    };
+
+    struct AuthorizedMacTableString {
+       unsigned int short Action;
+       unsigned int short NumOfAllTableAddresses;
+       unsigned int short NumOfCurrentAddress;
+       unsigned char MacAddress[6];
+    } *AuthMac = NULL, get;
+
+    /* for ATMEL* MIBs with NONE extensions */
+    char *AuthModes_OO[] = {
+       ON,
+       OFF
+    };
+       
+    /* for ATMEL410 MIB with SBRIDGES extensions */
+    char *AuthModes_IOR[] = {
+       _("Internal"),
+       OFF,
+       _("Radius")
+    };
+
+    /* for ATMEL12350 MIBs with GEMTEK or EZYNET extensions */
+    char *AuthModes_AOD[] = {
+       _("Allow listed MACs only"),
+       OFF,
+       _("Deny listed MACs only")
+    };
+
+    char *Dot1xModes[] = {
+       ON,
+       OFF,
+       _("Mixed environment")
+    };
+
+    /* These will be used for both Radius-related and 802.1x-related stuff. */
+    struct in_addr ea_ip;
+    char ea_secret[33];
+    int ea_mode, ea_port, ea_time, ea_dest_port,
+       m_ea_mode = 0, m_ea_port = 0, m_ea_ip = 0, m_ea_secret = 0,
+       m_ea_time = 0, m_ea_dest_port = 0;
+
+    struct MacListStat *pmac, *first = NULL, *curr = NULL;
+    char message[1024], m_authmac = 0;
+    int i = 0, total_mac, auth_mode = 0, mac_num = 0, begin, end;
+    varbind varbinds[7];
+
+
+    if (ap_type == ATMEL12350) {
+       AuthorizationMacEnable[5] = 0xE0;
+       AuthorizationMacEnable[6] = 0x3E;
+       AutorizedMac[5] = 0xE0;
+       AutorizedMac[6] = 0x3E;
+    }
+
+    varbinds[i].oid = AuthorizationMacEnable;
+    varbinds[i].len_oid = sizeof(AuthorizationMacEnable);
+    varbinds[i].type = NULL_VALUE;
+    varbinds[i].len_val = 0;
+    i++;
+
+    if (ap_type == ATMEL410 && ap_vendorext == SBRIDGES) {
+       varbinds[i].oid = AuthRadiusIP;
+       varbinds[i].len_oid = sizeof(AuthRadiusIP);
+       varbinds[i].type = NULL_VALUE;
+       varbinds[i].len_val = 0;
+       i++;
+
+       varbinds[i].oid = AuthRadiusPort;
+       varbinds[i].len_oid = sizeof(AuthRadiusPort);
+       varbinds[i].type = NULL_VALUE;
+       varbinds[i].len_val = 0;
+       i++;
+
+       varbinds[i].oid = AuthRadiusReauthorizationTime;
+       varbinds[i].len_oid = sizeof(AuthRadiusReauthorizationTime);
+       varbinds[i].type = NULL_VALUE;
+       varbinds[i].len_val = 0;
+       i++;
+
+       varbinds[i].oid = AuthRadiusDestinPort;
+       varbinds[i].len_oid = sizeof(AuthRadiusDestinPort);
+       varbinds[i].type = NULL_VALUE;
+       varbinds[i].len_val = 0;
+       i++;
+    }
+
+    if (ap_type == ATMEL12350 && ap_vendorext == EZYNET) {
+       varbinds[i].oid = Dot1xEnable;
+       varbinds[i].len_oid = sizeof(Dot1xEnable);
+       varbinds[i].type = NULL_VALUE;
+       varbinds[i].len_val = 0;
+       i++;
+
+       varbinds[i].oid = BroadcastKeyPeriod;
+       varbinds[i].len_oid = sizeof(BroadcastKeyPeriod);
+       varbinds[i].type = NULL_VALUE;
+       varbinds[i].len_val = 0;
+       i++;
+
+       varbinds[i].oid = ServerIP;
+       varbinds[i].len_oid = sizeof(ServerIP);
+       varbinds[i].type = NULL_VALUE;
+       varbinds[i].len_val = 0;
+       i++;
+    }
+
+    print_help(WAIT_RET);
+    if (snmp(varbinds, i, GET) < i) {
+       print_helperr(ERR_RET);
+       goto exit;
+    }
+    print_top(NULL, AUTH_TITLE);
+
+    auth_mode = *(varbinds[0].value);
+
+    strcpy(ea_secret, _("(not shown)"));
+
+    if (ap_type == ATMEL410 && ap_vendorext == SBRIDGES) {
+       sprintf(message, "%s%s", MAC_AUTH, AuthModes_IOR[auth_mode - 1]);
+       mvwaddstr(main_sub, 0, 0, message);
+
+       if (auth_mode == 3) { /* Radius */
+           memcpy(&ea_ip.s_addr, varbinds[1].value, 4);
+           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);
+           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);
+           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);
+           sprintf(message, "%s%d", RADIUS_PORT, ea_port);
+           mvwaddstr(main_sub, 5, 0, message);
+       }
+    } else if (ap_type == ATMEL12350 &&
+       (ap_vendorext == GEMTEK || ap_vendorext == EZYNET)) {
+       sprintf(message, "%s%s", MAC_AUTH, AuthModes_AOD[auth_mode - 1]);
+       mvwaddstr(main_sub, 0, 0, message);
+
+       if (ap_vendorext == EZYNET) {
+           ea_mode = *(varbinds[1].value);
+           sprintf(message, "%s%s", DOT1X_MODE, Dot1xModes[ea_mode - 1]);
+           mvwaddstr(main_sub, 1, 0, message);
+
+           ea_time = 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", DOT1X_TIME, ea_time);
+           mvwaddstr(main_sub, 2, 0, message);
+
+           memcpy(&ea_ip.s_addr, varbinds[3].value, 4);
+           sprintf(message, "%s%s", DOT1X_IP, inet_ntoa(ea_ip));
+           mvwaddstr(main_sub, 3, 0, message);
+
+           sprintf(message, "%s%s", DOT1X_SECRET, ea_secret);
+           mvwaddstr(main_sub, 4, 0, message);
+       }
+    } else {
+       sprintf(message, "%s%s", MAC_AUTH, AuthModes_OO[auth_mode - 1]);
+       mvwaddstr(main_sub, 0, 0, message);
+    }
+    mvwaddstr(main_sub, 7, 0, _("Authorized MAC addresses:"));
+    wattrset(main_sub, COLOR_PAIR(13));
+    mvwaddstr(main_sub, 8, 0, MAC_HEADER);
+    wattrset(main_sub, A_NORMAL);
+    wrefresh(main_sub);
+
+    print_help("Trying to retrieve auth. MAC address list from AP. Please wait.");
+
+    total_mac = 0;
+    mac_num = 0;
+
+    while (mac_num <= total_mac) {
+       get.Action = 0x02; rshort(get.Action);
+       get.NumOfAllTableAddresses = total_mac; rshort(get.NumOfAllTableAddresses);
+       get.NumOfCurrentAddress = mac_num; rshort(get.NumOfCurrentAddress);
+
+       varbinds[0].oid = AutorizedMac;
+       varbinds[0].len_oid = sizeof(AutorizedMac);
+       varbinds[0].value = (char *) &get;
+       varbinds[0].len_val = 12;
+       varbinds[0].type = STRING_VALUE;
+
+       i = snmp(varbinds, 1, SET);
+       if (i == 0) {
+           print_helperr(ERR_SET);
+           goto exit;
+       }
+       if (i < 0)
+           break;
+
+       if (varbinds[0].len_val == 12) {
+           if (AuthMac)
+               free(AuthMac);
+           AuthMac =
+               (struct AuthorizedMacTableString *) malloc(varbinds[0].
+                                                          len_val);
+           memcpy(AuthMac, varbinds[0].value, varbinds[0].len_val);
+/*         AuthMac =
+               (struct AuthorizedMacTableString *) varbinds[0].value;*/
+       } else {
+           print_helperr(PACKET_ERROR);
+           goto exit;
+       }
+
+       rshort(AuthMac->NumOfAllTableAddresses);
+       total_mac =
+           (AuthMac->NumOfAllTableAddresses ==
+            65535) ? 0 : AuthMac->NumOfAllTableAddresses;
+
+       if (mac_num) {
+           if (first == NULL) {
+               first = (struct MacListStat *)
+                   malloc(sizeof(struct MacListStat));
+               curr = first;
+           } else {
+               curr->next = (struct MacListStat *)
+                   malloc(sizeof(struct MacListStat));
+               curr = curr->next;
+           }
+           memcpy(curr->addr, AuthMac->MacAddress, 6);
+           curr->next = NULL;
+       }
+       mac_num++;
+    }
+
+    begin = (mac_num > MAX_LINES) ? mac_num + 1 - (MAX_LINES) : 1;
+    end = mac_num;
+
+    if (i < 0) {
+       mvwaddstr(main_sub, 9, 0, _("(insufficient community used)"));
+       wrefresh(main_sub);
+    } else {
+       scroll_rows(first, begin, end, 9, 0);
+    }
+
+    noecho();
+
+    if (ap_type == ATMEL410 && ap_vendorext == SBRIDGES)
+       print_help(RADIUS_HELP);
+    else if (ap_type == ATMEL12350 && ap_vendorext == EZYNET)
+       print_help(DOT1X_HELP);
+    else
+       print_help(MAC_HELP);
+
+    while (1) {
+       switch (getch()) {
+       case 'q':
+       case 'Q':
+           goto quit;
+       case 'a':
+       case 'A':
+           auth_mode = menu_choose(0, strlen(MAC_AUTH),
+               ap_type == ATMEL410 && ap_vendorext == SBRIDGES ?
+                   AuthModes_IOR :
+               ap_type == ATMEL12350 &&
+                   (ap_vendorext == GEMTEK || ap_vendorext == EZYNET) ?
+                   AuthModes_AOD :
+                   AuthModes_OO,
+               ap_vendorext == NONE ?
+                   2 : 3
+           );
+           clear_main_new(0, 1);
+           print_menusel(0, 0, MAC_AUTH,
+               ap_type == ATMEL410 && ap_vendorext == SBRIDGES ?
+                   AuthModes_IOR[auth_mode] :
+               ap_type == ATMEL12350 &&
+                   (ap_vendorext == GEMTEK || ap_vendorext == EZYNET) ?
+                   AuthModes_AOD[auth_mode] :
+                   AuthModes_OO[auth_mode]
+           );
+           auth_mode++;
+/*
+           auth_mode = on_off(0, strlen(MAC_AUTH));
+           clear_main_new(0, 1);
+           print_menusel(0, 0, MAC_AUTH, (auth_mode == 1) ? ON : OFF);
+*/
+           m_authmac = 1;
+           continue;
+       case 'd':
+       case 'D':
+           /* no MACs available for deletion */
+           if (mac_num == 1)
+               continue;
+
+           mvwaddstr(main_sub, 6, 0, MAC_DEL);
+           get_value(message, 6, strlen(MAC_DEL), 5, INT_STRING,
+               0, mac_num - 1, NULL);
+           i = atoi(message);
+           if (i == 0) {
+               clear_main_new(6, 7);
+               continue;
+           }
+           curr = first;
+           if (i == 1) {
+               if (curr->next) {
+                   pmac = curr->next;
+                   free(first);
+                   first = pmac;
+               }
+           } else {
+               int j = i;
+
+               while (--j > 1)
+                   curr = curr->next;
+               pmac = curr->next;
+               curr->next = pmac->next;
+               free(pmac);
+           }
+
+           mac_num--;
+
+           /* Rather do not ask how this works. */
+           if (i < begin) {
+               begin--;
+               end--;
+           } else if (i > (end - 1)) {
+               /* Nothing to do! */
+           } else { /* begin <= i <= (end - 1) */
+               if ((begin == 1) && ((end - 1) == mac_num)) {
+                   end--;
+               } else if ((begin > 1) && ((end - 1) < mac_num)) {
+                   /* Uncomment for top side scrolling first. */
+/*
+                   begin--;
+                   end--;
+*/
+               } else if (begin > 1) {
+                   begin--;
+                   end--;
+               }
+           }
+#if 0 /* DEBUG */
+           sprintf(message, "MAX_LINES: %i mac_num: %i begin: %i end: %i",
+               MAX_LINES, mac_num, begin, end);
+           clear_main(0);
+           mvwaddstr(main_sub, 0, 0, message);
+           wrefresh(main_sub);
+           exit(0);
+#endif /* DEBUG */
+           scroll_rows(first, begin, end, 9, 0);
+           clear_main_new(6, 7);
+           continue;
+       case 'n':
+       case 'N':
+           if (mac_num == 1) {
+               free(first);
+               first = NULL;
+           }
+again:
+           mvwaddstr(main_sub, 6, 0, MAC_ADD);
+           get_mac(message, 6, strlen(MAC_ADD));
+
+           curr = first;
+           i = 1;
+           while (curr) {
+               if (memcmp(curr->addr, message, 6) == 0) {
+                   sprintf(message, _("Given MAC already exists in MAC list "
+                       "at position %d. Press any key."), i);
+                   print_helperr(message);
+                   getch();
+                   if (ap_type == ATMEL410 && ap_vendorext == SBRIDGES)
+                       print_help(RADIUS_HELP);
+                   else if (ap_type == ATMEL12350 && ap_vendorext == EZYNET)
+                       print_help(DOT1X_HELP);
+                   else
+                       print_help(MAC_HELP);
+                   goto again;
+               }
+               curr = curr->next;
+               i++;
+           }
+
+           curr = first;
+           while (curr && curr->next)
+               curr = curr->next;
+           if (first == NULL) {
+               first = (struct MacListStat *)
+                   malloc(sizeof(struct MacListStat));
+               curr = first;
+           } else {
+               curr->next = (struct MacListStat *)
+                   malloc(sizeof(struct MacListStat));
+               curr = curr->next;
+           }
+           curr->next = NULL;
+           memcpy(curr->addr, message, 6);
+           mac_num++;
+/*         get_value(message, 1, strlen(MAC_ADD), 13, ANY_STRING, 0, 0,
+               NULL);
+
+           for (i = 0; i < 6; i++) {
+               mess[0] = message[2 * i];
+               mess[1] = message[2 * i + 1];
+               mess[2] = '\0';
+               curr->addr[i] = strtol(mess, NULL, 16);
+           }
+           clear_main_new(1, 2);
+*/
+           begin = (mac_num > MAX_LINES) ? mac_num + 1 - (MAX_LINES) : 1;
+           end = mac_num;
+           scroll_rows(first, begin, end, 9, 0);
+           clear_main_new(6, 7);
+           continue;
+       case 'f':
+       case 'F':
+           if (ap_type == ATMEL410 && ap_vendorext == SBRIDGES && auth_mode == 3) {
+               get_value(message, 5, strlen(RADIUS_PORT), 6,
+                   INT_STRING, 0, 65535, RADIUS_HELP);
+               ea_port = atoi(message);
+               m_ea_port = 1;
+           };
+           continue;
+       case 'i':
+       case 'I':
+           if (ap_type == ATMEL410 && ap_vendorext == SBRIDGES && auth_mode == 3) {
+               get_ip(&ea_ip, 1, strlen(RADIUS_IP), RADIUS_HELP);
+               m_ea_ip = 1;
+           }
+           if (ap_type == ATMEL12350 && ap_vendorext == EZYNET) {
+               get_ip(&ea_ip, 3, strlen(DOT1X_IP), DOT1X_HELP);
+               m_ea_ip = 1;
+           }
+           continue;
+       case 'm':
+       case 'M':
+           if (ap_type == ATMEL12350 && ap_vendorext == EZYNET) {
+               ea_mode = menu_choose(1, strlen(DOT1X_MODE), Dot1xModes, 3);
+               clear_main_new(1, 2);
+               print_menusel(1, 0, DOT1X_MODE, Dot1xModes[ea_mode]);
+               ea_mode++;
+               m_ea_mode = 1;
+           }
+           continue;
+       case 'p':
+       case 'P':
+           if (ap_type == ATMEL410 && ap_vendorext == SBRIDGES && auth_mode == 3) {
+               get_value(message, 2, strlen(RADIUS_DEST_PORT), 6,
+                   INT_STRING, 0, 65535, RADIUS_HELP);
+               ea_dest_port = atoi(message);
+               m_ea_dest_port = 1;
+           }
+           continue;
+       case 's':
+       case 'S':
+           if (ap_type == ATMEL410 && ap_vendorext == SBRIDGES && auth_mode == 3) {
+               get_value(ea_secret, 3, strlen(RADIUS_SECRET), -33,
+                   ANY_STRING, 0, 0, NULL);
+               m_ea_secret = 1;
+           }
+           if (ap_type == ATMEL12350 && ap_vendorext == EZYNET) {
+               get_value(ea_secret, 4, strlen(DOT1X_SECRET), -17,
+                   ANY_STRING, 0, 0, NULL);
+               m_ea_secret = 1;
+           }
+           continue;
+       case 't':
+       case 'T':
+           if (ap_type == ATMEL410 && ap_vendorext == SBRIDGES && auth_mode == 3) {
+               get_value(message, 4, strlen(RADIUS_TIME), 6,
+                   INT_STRING, 0, 65535, RADIUS_HELP);
+               ea_time = atoi(message);
+               m_ea_time = 1;
+           }
+           if (ap_type == ATMEL12350 && ap_vendorext == EZYNET) {
+               get_value(message, 2, strlen(DOT1X_TIME), 6,
+                   INT_STRING, 0, 65535, RADIUS_HELP);
+               ea_time = atoi(message);
+               m_ea_time = 1;
+           }
+           continue;
+       case 'w':
+       case 'W':
+           curr = first;
+           i = (mac_num == 1 ? 0 : 1);
+           while (curr != NULL) {
+               get.Action = 0x01; rshort(get.Action);
+               get.NumOfAllTableAddresses = mac_num - 1; rshort(get.NumOfAllTableAddresses);
+               get.NumOfCurrentAddress = i; rshort(get.NumOfCurrentAddress);
+               memcpy(get.MacAddress, curr->addr, 6);
+               varbinds[0].oid = AutorizedMac;
+               varbinds[0].len_oid = sizeof(AutorizedMac);
+               varbinds[0].value = (char *) &get;
+               varbinds[0].len_val = 12;
+               varbinds[0].type = STRING_VALUE;
+               print_help(WAIT_SET);
+               if (snmp(varbinds, 1, SET) <= 0) {
+                   print_helperr(ERR_SET);
+                   goto exit;
+               }
+               if (varbinds[0].len_val != 12) {
+                   print_helperr(PACKET_ERROR);
+                   goto exit;
+               }
+               curr = curr->next;
+               i++;
+           }
+
+           i = 0;
+
+           if (m_authmac) {
+               int c = swap4(auth_mode);
+
+               varbinds[i].oid = AuthorizationMacEnable;
+               varbinds[i].len_oid = sizeof(AuthorizationMacEnable);
+               varbinds[i].value = (char *) &c;
+               varbinds[i].len_val = 1;
+               varbinds[i].type = INT_VALUE;
+               i++;
+           }
+
+           if (m_ea_port) {
+               varbinds[i].oid = AuthRadiusPort;
+               varbinds[i].len_oid = sizeof(AuthRadiusPort);
+               ea_port = htons(ea_port);
+               varbinds[i].value = (char *) &ea_port;
+               varbinds[i].len_val = 2;
+               varbinds[i].type = INT_VALUE;
+               i++;
+           }
+
+           if (m_ea_ip) {
+               if (ap_type == ATMEL410 && ap_vendorext == SBRIDGES) {
+                   varbinds[i].oid = AuthRadiusIP;
+                   varbinds[i].len_oid = sizeof(AuthRadiusIP);
+               }
+
+               if (ap_type == ATMEL12350 && ap_vendorext == EZYNET) {
+                   varbinds[i].oid = ServerIP;
+                   varbinds[i].len_oid = sizeof(ServerIP);
+               }
+
+               ea_ip.s_addr = htonl(ea_ip.s_addr);
+               ea_ip.s_addr = swap4(ea_ip.s_addr);
+               varbinds[i].value = (char *) &ea_ip.s_addr;
+               varbinds[i].len_val = 4;
+               varbinds[i].type = INT_VALUE;
+               i++;
+           }
+
+           if (m_ea_mode) {
+               varbinds[i].oid = Dot1xEnable;
+               varbinds[i].len_oid = sizeof(Dot1xEnable);
+               ea_mode = swap4(ea_mode);
+               varbinds[i].value = (char *) &ea_mode;
+               varbinds[i].len_val = 1;
+               varbinds[i].type = INT_VALUE;
+               i++;
+           }
+
+           if (m_ea_dest_port) {
+               varbinds[i].oid = AuthRadiusDestinPort;
+               varbinds[i].len_oid = sizeof(AuthRadiusDestinPort);
+               ea_dest_port = htons(ea_dest_port);
+               varbinds[i].value = (char *) &ea_dest_port;
+               varbinds[i].len_val = 2;
+               varbinds[i].type = INT_VALUE;
+               i++;
+           }
+
+           if (m_ea_secret) {
+               int c = strlen(ea_secret);
+
+               if (ap_type == ATMEL410 && ap_vendorext == SBRIDGES) {
+                   varbinds[i].oid = AuthRadiusSecretLength;
+                   varbinds[i].len_oid = sizeof(AuthRadiusSecretLength);
+                   varbinds[i].value = (char *) &c;
+                   varbinds[i].len_val = 1;
+                   varbinds[i].type = INT_VALUE;
+                   i++;
+
+                   varbinds[i].oid = AuthRadiusSecret;
+                   varbinds[i].len_oid = sizeof(AuthRadiusSecret);
+               }
+
+               if (ap_type == ATMEL12350 && ap_vendorext == EZYNET) {
+                   varbinds[i].oid = ServerSecret;
+                   varbinds[i].len_oid = sizeof(ServerSecret);
+               }
+
+               varbinds[i].value = ea_secret;
+               varbinds[i].len_val = c;
+               varbinds[i].type = STRING_VALUE;
+               i++;
+           }
+
+           if (m_ea_time) {
+               if (ap_type == ATMEL410 && ap_vendorext == SBRIDGES) {
+                   varbinds[i].oid = AuthRadiusReauthorizationTime;
+                   varbinds[i].len_oid = sizeof(AuthRadiusReauthorizationTime);
+               }
+
+               if (ap_type == ATMEL12350 && ap_vendorext == EZYNET) {
+                   varbinds[i].oid = BroadcastKeyPeriod;
+                   varbinds[i].len_oid = sizeof(BroadcastKeyPeriod);
+               }
+
+               ea_time = htons(ea_time);
+               varbinds[i].value = (char *) &ea_time;
+               varbinds[i].len_val = 2;
+               varbinds[i].type = INT_VALUE;
+               i++;
+           }
+
+           print_help(WAIT_SET);
+           if (snmp(varbinds, i, SET) <= 0) {
+               print_helperr(ERR_SET);
+               goto exit;
+           }
+           print_help(DONE_SET);
+           goto exit;
+       case KEY_DOWN:
+       case KEY_RIGHT:
+           if (end < mac_num) {
+               begin++;
+               end++;
+               scroll_rows(first, begin, end, 9, 0);
+           }
+           continue;
+       case KEY_UP:
+       case KEY_LEFT:
+           if (begin > 1) {
+               begin--;
+               end--;
+               scroll_rows(first, begin, end, 9, 0);
+           }
+           continue;
+       case KEY_NPAGE:
+           if (end < mac_num) {
+               end = (end + (MAX_LINES) - 1 < mac_num) ?
+                   end + (MAX_LINES) - 1 : mac_num;
+               begin = (end - (MAX_LINES) + 1 > 0) ?
+                   end - (MAX_LINES) + 1 : 1;
+               scroll_rows(first, begin, end, 9, 0);
+           }
+           continue;
+       case KEY_PPAGE:
+           if (begin > 1) {
+               begin = (begin - (MAX_LINES) + 1 > 0) ?
+                   begin - (MAX_LINES) + 1 : 1;
+               end = (begin + (MAX_LINES) - 1 < mac_num) ?
+                   begin + (MAX_LINES) - 1 : mac_num;
+               scroll_rows(first, begin, end, 9, 0);
+           }
+           continue;
+       case KEY_END:
+           if (end < mac_num) {
+               begin = (mac_num > MAX_LINES) ? mac_num + 1 - (MAX_LINES) : 1;
+               end = mac_num;
+               scroll_rows(first, begin, end, 9, 0);
+           }
+           continue;
+       case KEY_HOME:
+           if (begin > 1) {
+               begin = 1;
+               end = (mac_num > MAX_LINES) ? MAX_LINES : mac_num;
+               scroll_rows(first, begin, end, 9, 0);
+           }
+           continue;
+       }
+       continue;
+    }
+
+    print_help(ANY_KEY);
+  exit:
+    getch();
+  quit:
+    while ((curr = first)) {
+       first = curr->next;
+       free(curr);
+    }
+    if (AuthMac)
+       free(AuthMac);
+    print_top(NULL, NULL);
+    clear_main(0);
+}
+
+void nwn_auth_mac()
+{
+    struct MacListStat *pmac, *first = NULL, *curr = NULL;
+    char Mac[] =
+       { 0x2b, 0x06, 0x01, 0x04, 0x01, 0x87, 0x29, 0x03, 0x01, 0x03, 0x02,
+       0x02, 0x01, 0x02, 0x00
+    };
+    char MacAllow[] =
+       { 0x2b, 0x06, 0x01, 0x04, 0x01, 0x87, 0x29, 0x03, 0x01, 0x03, 0x02,
+       0x02, 0x01, 0x03, 0x00
+    };
+    char MacRowStatus[] =
+       { 0x2b, 0x06, 0x01, 0x04, 0x01, 0x87, 0x29, 0x03, 0x01, 0x03, 0x02,
+       0x02, 0x01, 0x04, 0x00
+    };
+    char message[1024], auth_enable[] =
+       { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff };
+    char destroy = 6, create = 4, allow = 1;
+    int i, auth_mac = 0, mac_num = 0, begin, end;
+    varbind varbinds[3];
+    print_top(NULL, AUTH_TITLE);
+
+    mvwaddstr(main_sub, 2, 5, MAC_HEADER);
+    wrefresh(main_sub);
+    print_help(WAIT_RET);
+
+    mac_num = 1;
+    varbinds[0].oid = Mac;
+    varbinds[0].len_oid = sizeof(Mac);
+    varbinds[0].value = Mac;
+    varbinds[0].len_val = 0;
+    varbinds[0].type = NULL_VALUE;
+    if (snmp(varbinds, 1, GET_NEXT) <= 0) {
+       print_helperr(ERR_RET);
+       goto exit;
+    }
+
+    while (memcmp(varbinds[0].oid, Mac, sizeof(Mac) - 1) == 0) {
+
+       Mac[sizeof(Mac) - 1] = varbinds[0].oid[sizeof(Mac) - 1];
+       MacAllow[sizeof(MacAllow) - 1] = varbinds[0].oid[sizeof(Mac) - 1];
+       MacRowStatus[sizeof(MacRowStatus) - 1] =
+           varbinds[0].oid[sizeof(Mac) - 1];
+
+       varbinds[0].oid = Mac;
+       varbinds[0].len_oid = sizeof(Mac);
+       varbinds[0].value = Mac;
+       varbinds[0].len_val = 0;
+       varbinds[0].type = NULL_VALUE;
+       varbinds[1].oid = MacAllow;
+       varbinds[1].len_oid = sizeof(MacAllow);
+       varbinds[1].value = Mac;
+       varbinds[1].len_val = 0;
+       varbinds[1].type = NULL_VALUE;
+       varbinds[2].oid = MacRowStatus;
+       varbinds[2].len_oid = sizeof(MacRowStatus);
+       varbinds[2].value = Mac;
+       varbinds[2].len_val = 0;
+       varbinds[2].type = NULL_VALUE;
+       if (snmp(varbinds, 3, GET) < 3) {
+           print_helperr(ERR_RET);
+           goto exit;
+       }
+       if (memcmp(auth_enable, varbinds[0].value, 6)) {
+           if (first == NULL) {
+               first = (struct MacListStat *)
+                   malloc(sizeof(struct MacListStat));
+               curr = first;
+           } else {
+               curr->next = (struct MacListStat *)
+                   malloc(sizeof(struct MacListStat));
+               curr = curr->next;
+           }
+           memcpy(curr->addr, varbinds[0].value, 6);
+           curr->next = NULL;
+           mac_num++;
+       } else
+           auth_mac = 1;
+
+
+       varbinds[0].oid = Mac;
+       varbinds[0].len_oid = sizeof(Mac);
+       varbinds[0].value = Mac;
+       varbinds[0].len_val = 0;
+       varbinds[0].type = NULL_VALUE;
+       if (snmp(varbinds, 1, GET_NEXT) <= 0) {
+           print_helperr(ERR_RET);
+           goto exit;
+       }
+    }
+
+    begin = 1;
+    end = (mac_num > MAX_LINES) ? MAX_LINES : mac_num;
+
+    sprintf(message, "%s%s", MAC_AUTH, (auth_mac) ? OFF : ON);
+    mvwaddstr(main_sub, 0, 0, message);
+
+    scroll_rows(first, begin, end, 3, 0);
+
+    noecho();
+
+    print_help(MAC_HELP);
+    while (1) {
+       switch (getch()) {
+       case 'Q':
+       case 'q':
+           goto quit;
+       case 'a':
+           auth_mac = on_off(0, strlen(MAC_AUTH)) - 1;
+           clear_main_new(0, 1);
+           print_menusel(0, 0, MAC_AUTH, (auth_mac) ? OFF : ON);
+           continue;
+       case 'd':
+           mvwaddstr(main_sub, 1, 0, MAC_DEL);
+           get_value(message, 1, strlen(MAC_DEL), 5, INT_STRING,
+               1, mac_num - 1, NULL);
+           i = atoi(message);
+           if (i == 1) {
+               pmac = first;
+               first = first->next;
+               free(pmac);
+           } else {
+               curr = first;
+               while (--i > 1)
+                   curr = curr->next;
+               pmac = curr->next;
+               curr->next = pmac->next;
+               free(pmac);
+           }
+           mac_num--;
+           begin = 1;
+           end = (mac_num > MAX_LINES) ? MAX_LINES : mac_num;
+           scroll_rows(first, begin, end, 3, 0);
+           clear_main_new(1, 2);
+           continue;
+       case 'n':
+       case 'N':
+           mvwaddstr(main_sub, 1, 0, MAC_ADD);
+           curr = first;
+           while (curr && curr->next)
+               curr = curr->next;
+           if (first == NULL) {
+               first = (struct MacListStat *)
+                   malloc(sizeof(struct MacListStat));
+               curr = first;
+           } else {
+               curr->next = (struct MacListStat *)
+                   malloc(sizeof(struct MacListStat));
+               curr = curr->next;
+           }
+           curr->next = NULL;
+           mac_num++;
+           get_mac(curr->addr, 1, strlen(MAC_ADD));
+/*
+           for (i = 0; i < 6; i++) {
+               get_value(message, 1, 20 + i * 3, 3, ANY_STRING, 0, 0, NULL);
+               curr->addr[i] = strtol(message, NULL, 16);
+           }
+           clear_main_new(1, 2);
+*/
+           begin = 1;
+           end = (mac_num > MAX_LINES) ? MAX_LINES : mac_num;
+           scroll_rows(first, begin, end, 3, 0);
+           continue;
+       case 'w':
+       case 'W':
+           print_help(WAIT_SET);
+
+           Mac[sizeof(Mac) - 1] = 0;
+
+           varbinds[0].oid = Mac;
+           varbinds[0].len_oid = sizeof(Mac);
+           varbinds[0].value = Mac;
+           varbinds[0].len_val = 0;
+           varbinds[0].type = NULL_VALUE;
+           if (snmp(varbinds, 1, GET_NEXT) <= 0) {
+               print_helperr(ERR_RET);
+               goto exit;
+           }
+           while (memcmp(varbinds[0].oid, Mac, sizeof(Mac) - 1) == 0) {
+
+               MacRowStatus[sizeof(MacRowStatus) - 1] =
+                   varbinds[0].oid[sizeof(Mac) - 1];
+               varbinds[0].oid = MacRowStatus;
+               varbinds[0].len_oid = sizeof(MacRowStatus);
+               varbinds[0].value = &destroy;
+               varbinds[0].len_val = 1;
+               varbinds[0].type = INT_VALUE;
+               if (snmp(varbinds, 1, SET) <= 0) {
+                   print_helperr(ERR_SET);
+                   goto exit;
+               }
+               varbinds[0].oid = Mac;
+               varbinds[0].len_oid = sizeof(Mac);
+               varbinds[0].value = Mac;
+               varbinds[0].len_val = 0;
+               varbinds[0].type = NULL_VALUE;
+               if (snmp(varbinds, 1, GET_NEXT) <= 0) {
+                   print_helperr(ERR_RET);
+                   goto exit;
+               }
+           }
+
+
+           curr = first;
+           i = 1;
+
+           if (auth_mac) {
+               Mac[sizeof(Mac) - 1] = i;
+               MacAllow[sizeof(MacAllow) - 1] = i;
+               MacRowStatus[sizeof(MacRowStatus) - 1] = i;
+
+               varbinds[0].oid = MacRowStatus;
+               varbinds[0].len_oid = sizeof(MacRowStatus);
+               varbinds[0].value = &create;
+               varbinds[0].len_val = 1;
+               varbinds[0].type = INT_VALUE;
+               varbinds[1].oid = Mac;
+               varbinds[1].len_oid = sizeof(Mac);
+               varbinds[1].value = auth_enable;
+               varbinds[1].len_val = 6;
+               varbinds[1].type = STRING_VALUE;
+               varbinds[2].oid = MacAllow;
+               varbinds[2].len_oid = sizeof(MacAllow);
+               varbinds[2].value = &allow;
+               varbinds[2].len_val = 1;
+               varbinds[2].type = INT_VALUE;
+               print_help(WAIT_SET);
+               if (snmp(varbinds, 3, SET) <= 0) {
+                   print_helperr(ERR_SET);
+                   goto exit;
+               }
+               i++;
+           }
+
+
+
+
+           while (curr != NULL) {
+               Mac[sizeof(Mac) - 1] = i;
+               MacAllow[sizeof(MacAllow) - 1] = i;
+               MacRowStatus[sizeof(MacRowStatus) - 1] = i;
+
+               varbinds[0].oid = MacRowStatus;
+               varbinds[0].len_oid = sizeof(MacRowStatus);
+               varbinds[0].value = &create;
+               varbinds[0].len_val = 1;
+               varbinds[0].type = INT_VALUE;
+               varbinds[1].oid = Mac;
+               varbinds[1].len_oid = sizeof(Mac);
+               varbinds[1].value = curr->addr;
+               varbinds[1].len_val = 6;
+               varbinds[1].type = STRING_VALUE;
+               varbinds[2].oid = MacAllow;
+               varbinds[2].len_oid = sizeof(MacAllow);
+               varbinds[2].value = &allow;
+               varbinds[2].len_val = 1;
+               varbinds[2].type = INT_VALUE;
+               print_help(WAIT_SET);
+               if (snmp(varbinds, 3, SET) <= 0) {
+                   print_helperr(ERR_SET);
+                   goto exit;
+               }
+               curr = curr->next;
+               i++;
+           }
+           print_help(DONE_SET);
+           goto exit;
+       case KEY_DOWN:
+       case KEY_RIGHT:
+           if (end < mac_num) {
+               begin++;
+               end++;
+               scroll_rows(first, begin, end, 3, 0);
+           }
+
+           continue;
+       case KEY_UP:
+       case KEY_LEFT:
+           if (begin > 1) {
+               begin--;
+               end--;
+               scroll_rows(first, begin, end, 3, 0);
+           }
+           continue;
+       }
+       continue;
+    }
+
+    print_help(ANY_KEY);
+  exit:
+    getch();
+  quit:
+    while ((curr = first)) {
+       first = curr->next;
+       free(curr);
+    }
+    print_top(NULL, NULL);
+    clear_main(0);
+}
diff --git a/src/auth_mac.c b/src/auth_mac.c
deleted file mode 100644 (file)
index 847d62f..0000000
+++ /dev/null
@@ -1,593 +0,0 @@
-/*
- *      auth.c from Access Point SNMP Utils for Linux
- *
- * Copyright (c) 2002 Roman Festchook <roma at polesye dot net>
- *
- * 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
- * June 1991 as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- */
-
-#include <stdlib.h>
-#include <unistd.h>
-#include <string.h>
-#include "ap-utils.h"
-
-#define MAX_LINES LINES-6
-#define PACKET_ERROR _("AuthorizedMacTableString packet error")
-
-#define MAC_AUTH _("[A] MAC authorization: ")
-#define MAC_ADD  _("Enter MAC: ")
-#define MAC_DEL  _("Delete Num: ")
-#define MAC_TITLE _("Authorized MAC addresses")
-#define MAC_HEADER _("NUM     MAC address")
-#define MAC_HELP _("A - auth; N - new; D - del; arrows - scroll; W - write conf; Q - quit")
-
-extern WINDOW *main_sub;
-extern int LINES;
-extern short ap_type;
-
-void atmel_auth_mac()
-{
-    struct AuthorizedMacTableString {
-       unsigned int short Action;
-       unsigned int short NumOfAllTableAddresses;
-       unsigned int short NumOfCurrentAddress;
-       unsigned char MacAddress[6];
-    } *AuthMac = NULL, get;
-
-    struct MacListStat *pmac, *first = NULL, *curr = NULL;
-    uint32_t auth_mac_hw;
-
-    char EnableAuthMAC[] =
-       { 0x2B, 0x06, 0x01, 0x04, 0x01, 0x83, 0x1A, 0x01,
-       0x02, 0x06, 0x01, 0x00
-    };
-    char AutorizedMac[] = { 0x2B, 0x06, 0x01, 0x04, 0x01, 0x83, 0x1A, 0x01,
-       0x02, 0x06, 0x02, 0x00
-    };
-
-    char message[1024], m_authmac = 0;
-    int i, total_mac, auth_mac = 0, mac_num = 0, begin, end;
-    varbind varbinds[1];
-
-    if (ap_type == ATMEL12350) {
-       EnableAuthMAC[5] = 0xE0;
-       EnableAuthMAC[6] = 0x3E;
-       AutorizedMac[5] = 0xE0;
-       AutorizedMac[6] = 0x3E;
-    }
-
-    varbinds[0].oid = EnableAuthMAC;
-    varbinds[0].len_oid = sizeof(EnableAuthMAC);
-    varbinds[0].type = NULL_VALUE;
-    varbinds[0].len_val = 0;
-    print_help(WAIT_RET);
-    if (snmp(varbinds, 1, GET) <= 0) {
-       print_helperr(ERR_RET);
-       goto exit;
-    }
-    print_top(NULL, MAC_TITLE);
-
-    auth_mac = *(varbinds[0].value);
-    sprintf(message, "%s%s", MAC_AUTH, (auth_mac == 1) ? ON : OFF);
-    mvwaddstr(main_sub, 0, 0, message);
-    mvwaddstr(main_sub, 2, 1, MAC_HEADER);
-    wrefresh(main_sub);
-
-    total_mac = 0;
-    mac_num = 0;
-
-    while (mac_num <= total_mac) {
-       get.Action = 0x02; rshort(get.Action);
-       get.NumOfAllTableAddresses = total_mac; rshort(get.NumOfAllTableAddresses);
-       get.NumOfCurrentAddress = mac_num; rshort(get.NumOfCurrentAddress);
-
-       varbinds[0].oid = AutorizedMac;
-       varbinds[0].len_oid = sizeof(AutorizedMac);
-       varbinds[0].value = (char *) &get;
-       varbinds[0].len_val = 12;
-       varbinds[0].type = STRING_VALUE;
-
-       if (snmp(varbinds, 1, SET) <= 0) {
-           print_helperr(ERR_RET);
-           goto exit;
-       }
-
-       if (varbinds[0].len_val == 12) {
-           if (AuthMac)
-               free(AuthMac);
-           AuthMac =
-               (struct AuthorizedMacTableString *) malloc(varbinds[0].
-                                                          len_val);
-           memcpy(AuthMac, varbinds[0].value, varbinds[0].len_val);
-/*         AuthMac =
-               (struct AuthorizedMacTableString *) varbinds[0].value;*/
-       } else {
-           print_helperr(PACKET_ERROR);
-           goto exit;
-       }
-
-       rshort(AuthMac->NumOfAllTableAddresses);
-       total_mac =
-           (AuthMac->NumOfAllTableAddresses ==
-            65535) ? 0 : AuthMac->NumOfAllTableAddresses;
-
-       if (mac_num) {
-           if (first == NULL) {
-               first = (struct MacListStat *)
-                   malloc(sizeof(struct MacListStat));
-               curr = first;
-           } else {
-               curr->next = (struct MacListStat *)
-                   malloc(sizeof(struct MacListStat));
-               curr = curr->next;
-           }
-           memcpy(curr->addr, AuthMac->MacAddress, 6);
-           curr->next = NULL;
-       }
-       mac_num++;
-    }
-
-    begin = 1;
-    end = (MAX_LINES < mac_num) ? MAX_LINES : mac_num;
-    scroll_rows(first, begin, end, 3, 0);
-
-    noecho();
-
-    print_help(MAC_HELP);
-    while (1) {
-       switch (getch()) {
-       case 'q':
-       case 'Q':
-           goto quit;
-       case 'a':
-       case 'A':
-           auth_mac = on_off(0, strlen(MAC_AUTH));
-           clear_main_new(0, 1);
-           print_menusel(0, 0, MAC_AUTH, (auth_mac == 1) ? ON : OFF);
-           m_authmac = 1;
-           continue;
-       case 'd':
-       case 'D':
-           mvwaddstr(main_sub, 1, 0, MAC_DEL);
-           get_value(message, 1, strlen(MAC_DEL), 5, INT_STRING,
-               1, mac_num - 1, NULL);
-           i = atoi(message);
-           if (i == 1) {
-               pmac = first;
-               first = first->next;
-               free(pmac);
-           } else {
-               curr = first;
-               while (--i > 1)
-                   curr = curr->next;
-               pmac = curr->next;
-               curr->next = pmac->next;
-               free(pmac);
-           }
-           mac_num--;
-           begin = 1;
-           end = (MAX_LINES < mac_num) ? MAX_LINES : mac_num;
-           scroll_rows(first, begin, end, 3, 0);
-           clear_main_new(1, 2);
-           continue;
-       case 'n':
-       case 'N':
-           mvwaddstr(main_sub, 1, 0, MAC_ADD);
-           curr = first;
-           while (curr && curr->next)
-               curr = curr->next;
-           if (first == NULL) {
-               first = (struct MacListStat *)
-                   malloc(sizeof(struct MacListStat));
-               curr = first;
-           } else {
-               curr->next = (struct MacListStat *)
-                   malloc(sizeof(struct MacListStat));
-               curr = curr->next;
-           }
-           curr->next = NULL;
-           mac_num++;
-/*         get_value(message, 1, strlen(MAC_ADD), 13, ANY_STRING, 0, 0,
-               NULL);
-
-           for (i = 0; i < 6; i++) {
-               mess[0] = message[2 * i];
-               mess[1] = message[2 * i + 1];
-               mess[2] = '\0';
-               curr->addr[i] = strtol(mess, NULL, 16);
-           }
-           clear_main_new(1, 2);
-*/
-           get_mac(curr->addr, 1, strlen(MAC_ADD));
-           begin = 1;
-           end = (MAX_LINES < mac_num) ? MAX_LINES : mac_num;
-           scroll_rows(first, begin, end, 3, 0);
-           clear_main_new(1, 2);
-           continue;
-       case 'w':
-       case 'W':
-           if (m_authmac) {
-               auth_mac_hw = swap4(auth_mac);
-               varbinds[0].oid = EnableAuthMAC;
-               varbinds[0].len_oid = sizeof(EnableAuthMAC);
-               varbinds[0].type = INT_VALUE;
-               varbinds[0].value = (char *) &auth_mac_hw;
-               varbinds[0].len_val = 1;
-               print_help(WAIT_SET);
-               if (snmp(varbinds, 1, SET) <= 0) {
-                   print_helperr(ERR_RET);
-                   goto exit;
-               }
-           }
-           curr = first;
-           i = 1;
-           while (curr != NULL) {
-               get.Action = 0x01; rshort(get.Action);
-               get.NumOfAllTableAddresses = mac_num - 1; rshort(get.NumOfAllTableAddresses);
-               get.NumOfCurrentAddress = i; rshort(get.NumOfCurrentAddress);
-               memcpy(get.MacAddress, curr->addr, 6);
-               varbinds[0].oid = AutorizedMac;
-               varbinds[0].len_oid = sizeof(AutorizedMac);
-               varbinds[0].value = (char *) &get;
-               varbinds[0].len_val = 12;
-               varbinds[0].type = STRING_VALUE;
-               print_help(WAIT_SET);
-               if (snmp(varbinds, 1, SET) <= 0) {
-                   print_helperr(ERR_RET);
-                   goto exit;
-               }
-               if (varbinds[0].len_val != 12) {
-                   print_helperr(PACKET_ERROR);
-                   goto exit;
-               }
-               curr = curr->next;
-               i++;
-           }
-           print_help(DONE_SET);
-           goto exit;
-       case KEY_DOWN:
-       case KEY_RIGHT:
-           if (end < mac_num) {
-               begin++;
-               end++;
-               scroll_rows(first, begin, end, 3, 0);
-           }
-           continue;
-       case KEY_UP:
-       case KEY_LEFT:
-           if (begin > 1) {
-               begin--;
-               end--;
-               scroll_rows(first, begin, end, 3, 0);
-           }
-           continue;
-       }
-       continue;
-    }
-
-    print_help(ANY_KEY);
-  exit:
-    getch();
-  quit:
-    while ((curr = first)) {
-       first = curr->next;
-       free(curr);
-    }
-    if (AuthMac)
-       free(AuthMac);
-    print_top(NULL, NULL);
-    clear_main(0);
-}
-
-void nwn_auth_mac()
-{
-    struct MacListStat *pmac, *first = NULL, *curr = NULL;
-    char Mac[] =
-       { 0x2b, 0x06, 0x01, 0x04, 0x01, 0x87, 0x29, 0x03, 0x01, 0x03, 0x02,
-       0x02, 0x01, 0x02, 0x00
-    };
-    char MacAllow[] =
-       { 0x2b, 0x06, 0x01, 0x04, 0x01, 0x87, 0x29, 0x03, 0x01, 0x03, 0x02,
-       0x02, 0x01, 0x03, 0x00
-    };
-    char MacRowStatus[] =
-       { 0x2b, 0x06, 0x01, 0x04, 0x01, 0x87, 0x29, 0x03, 0x01, 0x03, 0x02,
-       0x02, 0x01, 0x04, 0x00
-    };
-    char message[1024], auth_enable[] =
-       { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff };
-    char destroy = 6, create = 4, allow = 1;
-    int i, auth_mac = 0, mac_num = 0, begin, end;
-    varbind varbinds[3];
-    print_top(NULL, MAC_TITLE);
-
-    mvwaddstr(main_sub, 2, 5, MAC_HEADER);
-    wrefresh(main_sub);
-    print_help(WAIT_RET);
-
-    mac_num = 1;
-    varbinds[0].oid = Mac;
-    varbinds[0].len_oid = sizeof(Mac);
-    varbinds[0].value = Mac;
-    varbinds[0].len_val = 0;
-    varbinds[0].type = NULL_VALUE;
-    if (snmp(varbinds, 1, GET_NEXT) <= 0) {
-       print_helperr(ERR_RET);
-       goto exit;
-    }
-
-    while (memcmp(varbinds[0].oid, Mac, sizeof(Mac) - 1) == 0) {
-
-       Mac[sizeof(Mac) - 1] = varbinds[0].oid[sizeof(Mac) - 1];
-       MacAllow[sizeof(MacAllow) - 1] = varbinds[0].oid[sizeof(Mac) - 1];
-       MacRowStatus[sizeof(MacRowStatus) - 1] =
-           varbinds[0].oid[sizeof(Mac) - 1];
-
-       varbinds[0].oid = Mac;
-       varbinds[0].len_oid = sizeof(Mac);
-       varbinds[0].value = Mac;
-       varbinds[0].len_val = 0;
-       varbinds[0].type = NULL_VALUE;
-       varbinds[1].oid = MacAllow;
-       varbinds[1].len_oid = sizeof(MacAllow);
-       varbinds[1].value = Mac;
-       varbinds[1].len_val = 0;
-       varbinds[1].type = NULL_VALUE;
-       varbinds[2].oid = MacRowStatus;
-       varbinds[2].len_oid = sizeof(MacRowStatus);
-       varbinds[2].value = Mac;
-       varbinds[2].len_val = 0;
-       varbinds[2].type = NULL_VALUE;
-       if (snmp(varbinds, 3, GET) <= 0) {
-           print_helperr(ERR_RET);
-           goto exit;
-       }
-       if (memcmp(auth_enable, varbinds[0].value, 6)) {
-           if (first == NULL) {
-               first = (struct MacListStat *)
-                   malloc(sizeof(struct MacListStat));
-               curr = first;
-           } else {
-               curr->next = (struct MacListStat *)
-                   malloc(sizeof(struct MacListStat));
-               curr = curr->next;
-           }
-           memcpy(curr->addr, varbinds[0].value, 6);
-           curr->next = NULL;
-           mac_num++;
-       } else
-           auth_mac = 1;
-
-
-       varbinds[0].oid = Mac;
-       varbinds[0].len_oid = sizeof(Mac);
-       varbinds[0].value = Mac;
-       varbinds[0].len_val = 0;
-       varbinds[0].type = NULL_VALUE;
-       if (snmp(varbinds, 1, GET_NEXT) <= 0) {
-           print_helperr(ERR_RET);
-           goto exit;
-       }
-    }
-
-    begin = 1;
-    end = (MAX_LINES < mac_num) ? MAX_LINES : mac_num;
-
-    sprintf(message, "%s%s", MAC_AUTH, (auth_mac) ? OFF : ON);
-    mvwaddstr(main_sub, 0, 0, message);
-
-    scroll_rows(first, begin, end, 3, 0);
-
-    noecho();
-
-    print_help(MAC_HELP);
-    while (1) {
-       switch (getch()) {
-       case 'Q':
-       case 'q':
-           goto quit;
-       case 'a':
-           auth_mac = on_off(0, strlen(MAC_AUTH)) - 1;
-           clear_main_new(0, 1);
-           print_menusel(0, 0, MAC_AUTH, (auth_mac) ? OFF : ON);
-           continue;
-       case 'd':
-           mvwaddstr(main_sub, 1, 0, MAC_DEL);
-           get_value(message, 1, strlen(MAC_DEL), 5, INT_STRING,
-               1, mac_num - 1, NULL);
-           i = atoi(message);
-           if (i == 1) {
-               pmac = first;
-               first = first->next;
-               free(pmac);
-           } else {
-               curr = first;
-               while (--i > 1)
-                   curr = curr->next;
-               pmac = curr->next;
-               curr->next = pmac->next;
-               free(pmac);
-           }
-           mac_num--;
-           begin = 1;
-           end = (MAX_LINES < mac_num) ? MAX_LINES : mac_num;
-           scroll_rows(first, begin, end, 3, 0);
-           clear_main_new(1, 2);
-           continue;
-       case 'n':
-       case 'N':
-           mvwaddstr(main_sub, 1, 0, MAC_ADD);
-           curr = first;
-           while (curr && curr->next)
-               curr = curr->next;
-           if (first == NULL) {
-               first = (struct MacListStat *)
-                   malloc(sizeof(struct MacListStat));
-               curr = first;
-           } else {
-               curr->next = (struct MacListStat *)
-                   malloc(sizeof(struct MacListStat));
-               curr = curr->next;
-           }
-           curr->next = NULL;
-           mac_num++;
-           get_mac(curr->addr, 1, strlen(MAC_ADD));
-/*
-           for (i = 0; i < 6; i++) {
-               get_value(message, 1, 20 + i * 3, 3, ANY_STRING, 0, 0, NULL);
-               curr->addr[i] = strtol(message, NULL, 16);
-           }
-           clear_main_new(1, 2);
-*/
-           begin = 1;
-           end = (MAX_LINES < mac_num) ? MAX_LINES : mac_num;
-           scroll_rows(first, begin, end, 3, 0);
-           continue;
-       case 'w':
-       case 'W':
-           print_help(WAIT_SET);
-
-           Mac[sizeof(Mac) - 1] = 0;
-
-           varbinds[0].oid = Mac;
-           varbinds[0].len_oid = sizeof(Mac);
-           varbinds[0].value = Mac;
-           varbinds[0].len_val = 0;
-           varbinds[0].type = NULL_VALUE;
-           if (snmp(varbinds, 1, GET_NEXT) <= 0) {
-               print_helperr(ERR_RET);
-               goto exit;
-           }
-           while (memcmp(varbinds[0].oid, Mac, sizeof(Mac) - 1) == 0) {
-
-               MacRowStatus[sizeof(MacRowStatus) - 1] =
-                   varbinds[0].oid[sizeof(Mac) - 1];
-               varbinds[0].oid = MacRowStatus;
-               varbinds[0].len_oid = sizeof(MacRowStatus);
-               varbinds[0].value = &destroy;
-               varbinds[0].len_val = 1;
-               varbinds[0].type = INT_VALUE;
-               if (snmp(varbinds, 1, SET) <= 0) {
-                   print_helperr(ERR_RET);
-                   goto exit;
-               }
-               varbinds[0].oid = Mac;
-               varbinds[0].len_oid = sizeof(Mac);
-               varbinds[0].value = Mac;
-               varbinds[0].len_val = 0;
-               varbinds[0].type = NULL_VALUE;
-               if (snmp(varbinds, 1, GET_NEXT) <= 0) {
-                   print_helperr(ERR_RET);
-                   goto exit;
-               }
-           }
-
-
-           curr = first;
-           i = 1;
-
-           if (auth_mac) {
-               Mac[sizeof(Mac) - 1] = i;
-               MacAllow[sizeof(MacAllow) - 1] = i;
-               MacRowStatus[sizeof(MacRowStatus) - 1] = i;
-
-               varbinds[0].oid = MacRowStatus;
-               varbinds[0].len_oid = sizeof(MacRowStatus);
-               varbinds[0].value = &create;
-               varbinds[0].len_val = 1;
-               varbinds[0].type = INT_VALUE;
-               varbinds[1].oid = Mac;
-               varbinds[1].len_oid = sizeof(Mac);
-               varbinds[1].value = auth_enable;
-               varbinds[1].len_val = 6;
-               varbinds[1].type = STRING_VALUE;
-               varbinds[2].oid = MacAllow;
-               varbinds[2].len_oid = sizeof(MacAllow);
-               varbinds[2].value = &allow;
-               varbinds[2].len_val = 1;
-               varbinds[2].type = INT_VALUE;
-               print_help(WAIT_SET);
-               if (snmp(varbinds, 3, SET) <= 0) {
-                   print_helperr(ERR_RET);
-                   goto exit;
-               }
-               i++;
-           }
-
-
-
-
-           while (curr != NULL) {
-               Mac[sizeof(Mac) - 1] = i;
-               MacAllow[sizeof(MacAllow) - 1] = i;
-               MacRowStatus[sizeof(MacRowStatus) - 1] = i;
-
-               varbinds[0].oid = MacRowStatus;
-               varbinds[0].len_oid = sizeof(MacRowStatus);
-               varbinds[0].value = &create;
-               varbinds[0].len_val = 1;
-               varbinds[0].type = INT_VALUE;
-               varbinds[1].oid = Mac;
-               varbinds[1].len_oid = sizeof(Mac);
-               varbinds[1].value = curr->addr;
-               varbinds[1].len_val = 6;
-               varbinds[1].type = STRING_VALUE;
-               varbinds[2].oid = MacAllow;
-               varbinds[2].len_oid = sizeof(MacAllow);
-               varbinds[2].value = &allow;
-               varbinds[2].len_val = 1;
-               varbinds[2].type = INT_VALUE;
-               print_help(WAIT_SET);
-               if (snmp(varbinds, 3, SET) <= 0) {
-                   print_helperr(ERR_RET);
-                   goto exit;
-               }
-               curr = curr->next;
-               i++;
-           }
-           print_help(DONE_SET);
-           goto exit;
-       case KEY_DOWN:
-       case KEY_RIGHT:
-           if (end < mac_num) {
-               begin++;
-               end++;
-               scroll_rows(first, begin, end, 3, 0);
-           }
-
-           continue;
-       case KEY_UP:
-       case KEY_LEFT:
-           if (begin > 1) {
-               begin--;
-               end--;
-               scroll_rows(first, begin, end, 3, 0);
-           }
-           continue;
-       }
-       continue;
-    }
-
-    print_help(ANY_KEY);
-  exit:
-    getch();
-  quit:
-    while ((curr = first)) {
-       first = curr->next;
-       free(curr);
-    }
-    print_top(NULL, NULL);
-    clear_main(0);
-}
index 7833cc510ffb38f72cc0f5cafcdd8274a7a21e60..001975d37d0e34fa451fdbea961323dfb6277eb2 100644 (file)
@@ -2,6 +2,7 @@
  *      bridge.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
 #define OPER _("[O] Operational mode: ")
 #define REMOTE_MAC _("[M] Preferred BSSID (remote MAC addr.): ")
 #define CF_PORT _("[C] Configuration-enabled port(s): ")
-#define TRAP_PORT _("[T] Trap-sending port(s): ")
+#define TRAP_PORT _("[T] Trap-sending port: ")
 #define FW_BCAST _("[R] Forward broadcast traffic: ")
 #define SB_BCAST _("[B] Isolate wireless clients (broadcast traffic): ")
 #define SB_UCAST _("[U] Isolate wireless clients (unicast traffic): ")
-#define HELP _("INGFPDOMSCTRBU - set; W - write conf; Q - quit to menu")
+#define HELP _("INGFPDOMSCRBUT - set; W - write conf; Q - quit to menu")
 
 extern short ap_type, ap_vendorext;
 
+
 void bridging()
 {
     char sysTrapSwitch[] = {
@@ -62,30 +64,42 @@ void bridging()
     char operDHCP[] = {
        0x2B, 0x06, 0x01, 0x04, 0x01, 0x83, 0x1A, 0x01, 0x01, 0x02, 0x05, 0x00
     };
-    char PrimaryPort[] = {
+    char operPrimaryPort[] = {
        0x2B, 0x06, 0x01, 0x04, 0x01, 0x83, 0x1A, 0x01, 0x01, 0x02, 0x06, 0x00
     };
-    /* This one is ATMEL12350 MIB specific. */
-    char ConfigPort[] = {
-       0x2B, 0x06, 0x01, 0x04, 0x01, 0xE0, 0x3E, 0x01, 0x01, 0x02, 0x07, 0x00
+
+    /* This one is ATMEL410 SBRIDGES MIB and ATMEL12350 all MIBs specific. */
+    char operConfigurationPort[] = {
+       0x2B, 0x06, 0x01, 0x04, 0x01, 0x83, 0x1A, 0x01, 0x01, 0x02, 0x07, 0x00
     };
-    /* This one is ATMEL12350 TELLUS MIB specific. */
-    char TrapPort[] = {
+
+    /* This one is ATMEL12350 GEMTEK MIB and ATMEL12350 EZYNET MIB specific. */
+    char operTrapPort[] = {
        0x2B, 0x06, 0x01, 0x04, 0x01, 0xE0, 0x3E, 0x01, 0x01, 0x02, 0x08, 0x00
     };
 
-    char IPFilter[] = {
+    char operIPFilter[] = {
        0x2B, 0x06, 0x01, 0x04, 0x01, 0x83, 0x1A, 0x01, 0x01, 0x03, 0x01, 0x00
     };
-    /* These 3 are ATMEL12350 MIB specific. */
-    char ForwardBroadcast[] = {
-       0x2B, 0x06, 0x01, 0x04, 0x01, 0xE0, 0x3E, 0x01, 0x01, 0x03, 0x02, 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
     };
-    char SendBackBcast[] = {
-       0x2B, 0x06, 0x01, 0x04, 0x01, 0xE0, 0x3E, 0x01, 0x01, 0x03, 0x03, 0x00
+    char operSendBackBcast[] = {
+       0x2B, 0x06, 0x01, 0x04, 0x01, 0x83, 0x1A, 0x01, 0x01, 0x03, 0x03, 0x00
     };
-    char SendBackUnicast[] = {
-       0x2B, 0x06, 0x01, 0x04, 0x01, 0xE0, 0x3E, 0x01, 0x01, 0x03, 0x04, 0x00
+    char operSendBackUnicast[] = {
+       0x2B, 0x06, 0x01, 0x04, 0x01, 0x83, 0x1A, 0x01, 0x01, 0x03, 0x04, 0x00
     };
 
     char bridgeOperationalMode[] = {
@@ -105,45 +119,46 @@ void bridging()
        m_dhcp = 0, m_ip = 0, m_mask = 0, m_gw = 0, m_remote_bssid = 0,
        m_config_port = 0, m_trap_port = 0, m_fw_bcast = 0, m_sb_bcast = 0,
        m_sb_ucast = 0;
-    char *bridge_modes[6] = {
-       _("Wireless Bridge Point to MultiPoint"),
-       _("Access Point"),
-       _("Access Point client"),
-       _("Wireless Bridge Point to Point"),
-       _("Repeater"),
-       ("unknown")
-    }, *pr_ports[2] = {
+    char *pr_ports[2] = {
        _("Ethernet"),
        _("Wireless")
     }, *cf_trap_ports[3] = {
        _("Both"),
        _("Ethernet"),
-       _("Wireless")
+       _("Wireless (can be risky)")
     };
     int i;
     unsigned int trap_port = 0;
 
     if (ap_type == ATMEL12350) {
-       operEthernetAddress[5] = 0xE0;
-       operEthernetAddress[6] = 0x3E;
-       IPFilter[5] = 0xE0;
-       IPFilter[6] = 0x3E;
-       PrimaryPort[5] = 0xE0;
-       PrimaryPort[6] = 0x3E;
-       operDHCP[5] = 0xE0;
-       operDHCP[6] = 0x3E;
+       sysTrapSwitch[5] = 0xE0;
+       sysTrapSwitch[6] = 0x3E;
        operIPAddress[5] = 0xE0;
        operIPAddress[6] = 0x3E;
        operIPMask[5] = 0xE0;
        operIPMask[6] = 0x3E;
+       operEthernetAddress[5] = 0xE0;
+       operEthernetAddress[6] = 0x3E;
        operGateway[5] = 0xE0;
        operGateway[6] = 0x3E;
+       operDHCP[5] = 0xE0;
+       operDHCP[6] = 0x3E;
+       operPrimaryPort[5] = 0xE0;
+       operPrimaryPort[6] = 0x3E;
+       operConfigurationPort[5] = 0xE0;
+       operConfigurationPort[6] = 0x3E;
+       operIPFilter[5] = 0xE0;
+       operIPFilter[6] = 0x3E;
+       operForwarbBcast[5] = 0xE0;
+       operForwarbBcast[6] = 0x3E;
+       operSendBackBcast[5] = 0xE0;
+       operSendBackBcast[6] = 0x3E;
+       operSendBackUnicast[5] = 0xE0;
+       operSendBackUnicast[6] = 0x3E;
        bridgeOperationalMode[5] = 0xE0;
        bridgeOperationalMode[6] = 0x3E;
        bridgeRemoteBridgeBSSID[5] = 0xE0;
        bridgeRemoteBridgeBSSID[6] = 0x3E;
-       sysTrapSwitch[5] = 0xE0;
-       sysTrapSwitch[6] = 0x3E;
     }
 
     for (i = 0; i < 15; i++) {
@@ -154,27 +169,30 @@ void bridging()
 
     i = 0;
 
-    varbinds[i++].oid = operEthernetAddress;
-    varbinds[i++].oid = IPFilter;
-    varbinds[i++].oid = PrimaryPort;
-    varbinds[i++].oid = operDHCP;
+    varbinds[i++].oid = sysTrapSwitch;
     varbinds[i++].oid = operIPAddress;
     varbinds[i++].oid = operIPMask;
+    varbinds[i++].oid = operEthernetAddress;
     varbinds[i++].oid = operGateway;
+    varbinds[i++].oid = operDHCP;
+    varbinds[i++].oid = operPrimaryPort;
+    varbinds[i++].oid = operIPFilter;
     varbinds[i++].oid = bridgeOperationalMode;
-    varbinds[i++].oid = sysTrapSwitch;
     varbinds[i++].oid = bridgeRemoteBridgeBSSID;
-    if (ap_type == ATMEL12350) {
-       varbinds[i++].oid = ConfigPort;
-       varbinds[i++].oid = ForwardBroadcast;
-       varbinds[i++].oid = SendBackBcast;
-       varbinds[i++].oid = SendBackUnicast;
-       if (ap_vendorext == TELLUS || ap_vendorext == VERNET)
-           varbinds[i++].oid = TrapPort;
+    if ((ap_type == ATMEL410 && ap_vendorext == SBRIDGES) ||
+       (ap_type == ATMEL12350)) {
+       varbinds[i++].oid = operConfigurationPort;
+       varbinds[i++].oid = operForwarbBcast;
+       varbinds[i++].oid = operSendBackBcast;
+       varbinds[i++].oid = operSendBackUnicast;
+    }
+    if (ap_type == ATMEL12350 &&
+       (ap_vendorext == GEMTEK || ap_vendorext == EZYNET)) {
+           varbinds[i++].oid = operTrapPort;
     }
 
     print_help(WAIT_RET);
-    if (snmp(varbinds, i, GET) <= 0) {
+    if (snmp(varbinds, i, GET) < i) {
        print_helperr(ERR_RET);
        goto exit;
     }
@@ -182,50 +200,54 @@ void bridging()
     print_top(NULL, _("Bridging"));
 
     sprintf(message, "%s%02X%02X%02X%02X%02X%02X", MAC,
-           varbinds[0].value[0] & 0xFF,
-           varbinds[0].value[1] & 0xFF,
-           varbinds[0].value[2] & 0xFF,
-           varbinds[0].value[3] & 0xFF,
-           varbinds[0].value[4] & 0xFF,
-           varbinds[0].value[5] & 0xFF);
+           varbinds[3].value[0] & 0xFF,
+           varbinds[3].value[1] & 0xFF,
+           varbinds[3].value[2] & 0xFF,
+           varbinds[3].value[3] & 0xFF,
+           varbinds[3].value[4] & 0xFF,
+           varbinds[3].value[5] & 0xFF);
     mvwaddstr(main_sub, 0, 0, message);
 
-    memcpy(&ip.s_addr, varbinds[4].value, 4);
+    memcpy(&ip.s_addr, varbinds[1].value, 4);
     sprintf(message, "%s%s", IPADDR, inet_ntoa(ip));
     mvwaddstr(main_sub, 1, 0, message);
 
-    memcpy(&mask.s_addr, varbinds[5].value, 4);
+    memcpy(&mask.s_addr, varbinds[2].value, 4);
     sprintf(message, "%s%s", NETMASK, inet_ntoa(mask));
     mvwaddstr(main_sub, 1, 24, message);
 
-    memcpy(&gw.s_addr, varbinds[6].value, 4);
+    memcpy(&gw.s_addr, varbinds[4].value, 4);
     sprintf(message, "%s%s", GATEWAY, inet_ntoa(gw));
     mvwaddstr(main_sub, 2, 0, message);
 
-    filter = *(varbinds[1].value);
+    filter = *(varbinds[7].value);
     sprintf(message, "%s%s", IP_FILTER, (filter == 1) ? ON : OFF);
     mvwaddstr(main_sub, 3, 0, message);
 
-    if (ap_vendorext == SBRIDGES) {
+/*
+    if (ap_type == ATMEL410 && ap_vendorext == SBRIDGES) {
        sprintf(message, "%s%02X%02X%02X%02X%02X%02X", SB_ATTMAC,
-               *(varbinds[2].value +0) & 0xFF, *(varbinds[2].value +1) & 0xFF,
-               *(varbinds[2].value +2) & 0xFF, *(varbinds[2].value +3) & 0xFF,
-               *(varbinds[2].value +4) & 0xFF, *(varbinds[2].value +5) & 0xFF);
+               *(varbinds[6].value +0) & 0xFF, *(varbinds[6].value +1) & 0xFF,
+               *(varbinds[6].value +2) & 0xFF, *(varbinds[6].value +3) & 0xFF,
+               *(varbinds[6].value +4) & 0xFF, *(varbinds[6].value +5) & 0xFF);
     } else {
-       primary_port = *(varbinds[2].value);
+*/
+       primary_port = *(varbinds[6].value);
        if (primary_port < 1 || primary_port > 2) {
            primary_port = 1;
        }
        sprintf(message, "%s%s", PR_PORT, pr_ports[primary_port - 1]);
+/*
     }
+*/
     mvwaddstr(main_sub, 4, 0, message);
 
-    dhcp = *(varbinds[3].value);
+    dhcp = *(varbinds[5].value);
     sprintf(message, "%s%s", DHCP, (dhcp == 1) ? ON : OFF);
     mvwaddstr(main_sub, 5, 0, message);
 
     memcpy(RemoteBSSID, varbinds[9].value, 6);
-    if ((bridge_mode = *(varbinds[7].value)) != 2) {
+    if ((bridge_mode = *(varbinds[8].value)) != 2) {
        sprintf(message, "%s%02X%02X%02X%02X%02X%02X", REMOTE_MAC,
                *(RemoteBSSID + 0) & 0xFF, *(RemoteBSSID + 1) & 0xFF,
                *(RemoteBSSID + 2) & 0xFF, *(RemoteBSSID + 3) & 0xFF,
@@ -237,35 +259,38 @@ void bridging()
     sprintf(message, "%s%s", OPER, bridge_modes[bridge_mode - 1]);
     mvwaddstr(main_sub, 6, 0, message);
 
-    traps = *(varbinds[8].value);
+    traps = *(varbinds[0].value);
     sprintf(message, "%s%s", TRAPS, (traps == 1) ? ON : OFF);
     mvwaddstr(main_sub, 8, 0, message);
 
-    if (ap_type == ATMEL12350) {
+    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]);
        mvwaddstr(main_sub, 9, 0, message);
 
-       if (ap_vendorext == TELLUS || ap_vendorext == VERNET) {
-           for (i = 0; i < varbinds[14].len_val;
-                   trap_port += varbinds[14].value[i] *
-                   (1 << ((varbinds[14].len_val - i - 1) * 8)), i++);
-           sprintf(message, "%s%u", TRAP_PORT, trap_port);
-           mvwaddstr(main_sub, 10, 0, message);
-       }
-
        fw_bcast = *(varbinds[11].value);
        sprintf(message, "%s%s", FW_BCAST, (fw_bcast == 1) ? ON : OFF);
-       mvwaddstr(main_sub, 11, 0, message);
+       mvwaddstr(main_sub, 10, 0, message);
 
        sb_bcast = *(varbinds[12].value);
        sprintf(message, "%s%s", SB_BCAST, (sb_bcast == 1) ? ON : OFF);
-       mvwaddstr(main_sub, 12, 0, message);
+       mvwaddstr(main_sub, 11, 0, message);
 
        sb_ucast = *(varbinds[13].value);
        sprintf(message, "%s%s", SB_UCAST, (sb_ucast == 1) ? ON : OFF);
+       mvwaddstr(main_sub, 12, 0, message);
+    }
+
+    if (ap_type == ATMEL12350 &&
+       (ap_vendorext == GEMTEK || ap_vendorext == EZYNET)) {
+       for (i = 0; i < varbinds[14].len_val;
+           trap_port += varbinds[14].value[i] *
+           (1 << ((varbinds[14].len_val - i - 1) * 8)), i++);
+       sprintf(message, "%s%u", TRAP_PORT, trap_port);
        mvwaddstr(main_sub, 13, 0, message);
     }
+
     wrefresh(main_sub);
     noecho();
 
@@ -296,12 +321,14 @@ void bridging()
            continue;
        case 'P':
        case 'p':
-           if (ap_vendorext != SBRIDGES) {
-               primary_port = menu_choose(4, strlen(PR_PORT), pr_ports, 2) + 1;
-               clear_main_new(4, 5);
-               print_menusel(4, 0, PR_PORT, pr_ports[primary_port - 1]);
-               m_primary_port = 1;
-           }   
+/*
+           if (ap_type == ATMEL410 && ap_vendorext == SBRIDGES)
+               continue;
+*/
+           primary_port = menu_choose(4, strlen(PR_PORT), pr_ports, 2) + 1;
+           clear_main_new(4, 5);
+           print_menusel(4, 0, PR_PORT, pr_ports[primary_port - 1]);
+           m_primary_port = 1;
            continue;
        case 'D':
        case 'd':
@@ -354,63 +381,68 @@ void bridging()
            continue;
        case 'C':
        case 'c':
-           if (ap_type == ATMEL12350) {
+           if ((ap_type == ATMEL410 && ap_vendorext == SBRIDGES) ||
+               ap_type == ATMEL12350) {
                config_port = menu_choose(9, strlen(CF_PORT), cf_trap_ports, 3);
                clear_main_new(9, 10);
                print_menusel(9, 0, CF_PORT, cf_trap_ports[config_port]);
                m_config_port = 1;
             }
            continue;
-       case 'T':
-       case 't':
-           if (ap_vendorext == TELLUS || ap_vendorext == VERNET) {
-               get_value(message, 10, strlen(TRAP_PORT), 6, INT_STRING,
-                   0, 65535, HELP);
-               trap_port = atoi(message);
-               m_trap_port = 1;
-           }
-           continue;
        case 'R':
        case 'r':
-           if (ap_type == ATMEL12350) {
-               fw_bcast = on_off(11, strlen(FW_BCAST));
-               clear_main_new(11, 12);
-               print_menusel(11, 0, FW_BCAST, (fw_bcast == 1) ? ON : OFF);
+           if ((ap_type == ATMEL410 && ap_vendorext == SBRIDGES) ||
+               ap_type == ATMEL12350) {
+               fw_bcast = on_off(10, strlen(FW_BCAST));
+               clear_main_new(10, 11);
+               print_menusel(10, 0, FW_BCAST, (fw_bcast == 1) ? ON : OFF);
                m_fw_bcast = 1;
            }
            continue;
        case 'B':
        case 'b':
-           if (ap_type == ATMEL12350) {
-               sb_bcast = on_off(12, strlen(SB_BCAST));
-               clear_main_new(12, 13);
-               print_menusel(12, 0, SB_BCAST, (sb_bcast == 1) ? ON : OFF);
+           if ((ap_type == ATMEL410 && ap_vendorext == SBRIDGES) ||
+               ap_type == ATMEL12350) {
+               sb_bcast = on_off(11, strlen(SB_BCAST));
+               clear_main_new(11, 12);
+               print_menusel(11, 0, SB_BCAST, (sb_bcast == 1) ? ON : OFF);
                m_sb_bcast = 1;
            }
            continue;
        case 'U':
        case 'u':
-           if (ap_type == ATMEL12350) {
-               sb_ucast = on_off(13, strlen(SB_UCAST));
-               clear_main_new(13, 14);
-               print_menusel(13, 0, SB_UCAST, (sb_ucast == 1) ? ON : OFF);
+           if ((ap_type == ATMEL410 && ap_vendorext == SBRIDGES) ||
+               ap_type == ATMEL12350) {
+               sb_ucast = on_off(12, strlen(SB_UCAST));
+               clear_main_new(12, 13);
+               print_menusel(12, 0, SB_UCAST, (sb_ucast == 1) ? ON : OFF);
                m_sb_ucast = 1;
            }
            continue;
+       case 'T':
+       case 't':
+           if (ap_type == ATMEL12350 &&
+               (ap_vendorext == GEMTEK || ap_vendorext == EZYNET)) {
+               get_value(message, 13, strlen(TRAP_PORT), 6, INT_STRING,
+                   0, 65535, HELP);
+               trap_port = atoi(message);
+               m_trap_port = 1;
+           }
+           continue;
        case 'w':
        case 'W':
            i = 0;
            if (m_filter) {
-               varbinds[i].oid = IPFilter;
-               varbinds[i].len_oid = sizeof(IPFilter);
+               varbinds[i].oid = operIPFilter;
+               varbinds[i].len_oid = sizeof(operIPFilter);
                varbinds[i].type = INT_VALUE;
                varbinds[i].value = (char *) &filter;
                varbinds[i].len_val = 1;
                i++;
            }
            if (m_primary_port) {
-               varbinds[i].oid = PrimaryPort;
-               varbinds[i].len_oid = sizeof(PrimaryPort);
+               varbinds[i].oid = operPrimaryPort;
+               varbinds[i].len_oid = sizeof(operPrimaryPort);
                varbinds[i].type = INT_VALUE;
                varbinds[i].value = (char *) &primary_port;
                varbinds[i].len_val = 1;
@@ -479,32 +511,32 @@ void bridging()
                i++;
            }
            if (m_config_port) {
-               varbinds[i].oid = ConfigPort;
-               varbinds[i].len_oid = sizeof(ConfigPort);
+               varbinds[i].oid = operConfigurationPort;
+               varbinds[i].len_oid = sizeof(operConfigurationPort);
                varbinds[i].type = INT_VALUE;
                varbinds[i].value = (char *) &config_port;
                varbinds[i].len_val = 1;
                i++;
            }
            if (m_fw_bcast) {
-               varbinds[i].oid = ForwardBroadcast;
-               varbinds[i].len_oid = sizeof(ForwardBroadcast);
+               varbinds[i].oid = operForwarbBcast;
+               varbinds[i].len_oid = sizeof(operForwarbBcast);
                varbinds[i].type = INT_VALUE;
                varbinds[i].value = (char *) &fw_bcast;
                varbinds[i].len_val = 1;
                i++;
            }
            if (m_sb_bcast) {
-               varbinds[i].oid = SendBackBcast;
-               varbinds[i].len_oid = sizeof(SendBackBcast);
+               varbinds[i].oid = operSendBackBcast;
+               varbinds[i].len_oid = sizeof(operSendBackBcast);
                varbinds[i].type = INT_VALUE;
                varbinds[i].value = (char *) &sb_bcast;
                varbinds[i].len_val = 1;
                i++;
            }
            if (m_sb_ucast) {
-               varbinds[i].oid = SendBackUnicast;
-               varbinds[i].len_oid = sizeof(SendBackUnicast);
+               varbinds[i].oid = operSendBackUnicast;
+               varbinds[i].len_oid = sizeof(operSendBackUnicast);
                varbinds[i].type = INT_VALUE;
                varbinds[i].value = (char *) &sb_ucast;
                varbinds[i].len_val = 1;
@@ -514,8 +546,8 @@ void bridging()
                int len_val;
 
                len_val = (trap_port > 0x7fff) ? 3 : (trap_port > 0x7f) ? 2 : 1;
-               varbinds[i].oid = TrapPort;
-               varbinds[i].len_oid = sizeof(TrapPort);
+               varbinds[i].oid = operTrapPort;
+               varbinds[i].len_oid = sizeof(operTrapPort);
                varbinds[i].type = STRING_VALUE;
                varbinds[i].value = (char *) &trap_port;
                varbinds[i].len_val = len_val;
index db68a788d6c0d76504ed579ff7c304c9132aebb9..a41c1b58ef8b302229f0a8f1d3e769a9fa1b9d7c 100644 (file)
@@ -45,7 +45,7 @@ void advanced()
     varbinds[1].oid = smtACKWindow;
     varbinds[1].len_oid = sizeof(smtACKWindow);
     print_help(WAIT_RET);
-    if (snmp(varbinds, 2, GET) <= 0) {
+    if (snmp(varbinds, 2, GET) < 2) {
        print_helperr(ERR_RET);
        goto exit;
     }
index 59d6b936eda8c04ab10b266e5d78b9cf75758f8f..bfc7a522a400f3186f58c6d301e83012d30014c9 100644 (file)
@@ -80,7 +80,7 @@ void latest()
     varbinds[7].oid = oid_secLastErrorAddress;
     varbinds[7].len_oid = sizeof(oid_secLastErrorAddress);
 
-    if (snmp(varbinds, OID_NUM, GET) <= 0) {
+    if (snmp(varbinds, OID_NUM, GET) < OID_NUM) {
        print_help(ERR_RET);
        goto exit;
     }
index 6c23478305ad874811e587dfbf1945aa2a7cfef4..b37463e33a826fe37478861459181221673b56df 100644 (file)
@@ -2,6 +2,7 @@
  *      stations.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
 #include <string.h>
 #include "ap-utils.h"
 
-/*
- * NOTE: SBRIDGES seems to be currently handled by ap-gl =>
- * no SBRIDGES-related code here (yet)!
- */
-
-#define TITLE_AP _("AP link state")
-
-/* following for any non-VERNET ATMEL* MIB */
-#define HEADER_STAS \
-       _(" #            MAC                                               ")
-/* following for VERNET-enhanced ATMEL12350 MIB */
-#define HEADER_STAS_VERNET \
-       _(" #     MAC       Parent MAC    RSSI  Status MACn      IP        ")
-
 #define MAX_LINES LINES-4
 
 extern int LINES;
@@ -51,39 +38,34 @@ void atmel_stations()
     char bridgeOperationalMode[] = {
        0x2B, 0x06, 0x01, 0x04, 0x01, 0x83, 0x1A, 0x01, 0x01, 0x04, 0x01, 0x00
     };
-    char StasNum[] = {
+    char AssociatedSTAsNum[] = {
        0x2B, 0x06, 0x01, 0x04, 0x01, 0x83, 0x1A, 0x01, 0x02, 0x05, 0x01, 0x00
     };
-    char StasMac[] = {
+    char AssociatedSTAsInfo[] = {
        0x2B, 0x06, 0x01, 0x04, 0x01, 0x83, 0x1A, 0x01, 0x02, 0x05, 0x02, 0x00
     };
 
-    struct AssociatedSTAsInfo {
-       unsigned short Num;
-       unsigned char MacAddress[6];
-       /* following ones are specific for enhanced ATMEL 12350 MIB by VERNET */
-       unsigned char Status;
-       unsigned char Port;
-       unsigned char ParentMacAddress[6];
-       unsigned char RSSI;
-       unsigned char IP[4];
-    } *mac = NULL, get;
+    /* AP mode: connected APClients info */
+
+    struct AssociatedSTAsInfo_ATMEL410 ap_410;
+    struct AssociatedSTAsInfo_ATMEL12350 ap_12350;
 
     struct MacListStat *first = NULL, *curr = NULL;
     char message[1024];
     int mac_idx, begin, end, total_mac;
     varbind varbinds[1];
 
+
     if (ap_type == ATMEL12350) {
         bridgeOperationalMode[5] = 0xE0;
        bridgeOperationalMode[6] = 0x3E;
-       StasNum[5] = 0xE0;
-       StasNum[6] = 0x3E;
-       StasMac[5] = 0xE0;
-       StasMac[6] = 0x3E;
+       AssociatedSTAsNum[5] = 0xE0;
+       AssociatedSTAsNum[6] = 0x3E;
+       AssociatedSTAsInfo[5] = 0xE0;
+       AssociatedSTAsInfo[6] = 0x3E;
     }  
 
-    /* find out in what mode the AP currently is */
+    /* find out mode the device is currently in */
     varbinds[0].oid = bridgeOperationalMode;
     varbinds[0].len_oid = sizeof(bridgeOperationalMode);
     varbinds[0].value = bridgeOperationalMode;
@@ -95,10 +77,9 @@ void atmel_stations()
          goto exit;
     }
 
-    /* for AP in AP-Client mode & without VERNET firmware, disable status */
-    if (*(varbinds[0].value) == 3 && ap_vendorext != VERNET) {
-       mvwaddstr(main_sub, 3, 1, _("AP is currently in AP Client Mode => "
-           "no associated STAtions."));
+    /* Rule out all modes except AP(2). */
+    if (*(varbinds[0].value) != 2) {
+       mvwaddstr(main_sub, 1, 1, _("Not available (device not in AP mode)."));
        print_help(ANY_KEY);
        wrefresh(main_sub);
        getch();
@@ -106,18 +87,17 @@ void atmel_stations()
     }
 
     noecho();
-    wattrset(main_sub, COLOR_PAIR(3));
-    if (ap_vendorext == VERNET)
-       mvwaddstr(main_sub, 0, 0, HEADER_STAS_VERNET);
-    else
-       mvwaddstr(main_sub, 0, 0, HEADER_STAS);
+
+    wattrset(main_sub, COLOR_PAIR(13));
+    mvwaddstr(main_sub, 0, 0,
+       _("  #     MAC       Parent MAC  RSSI   LQ Sts MACn      IP        "));
     wattrset(main_sub, A_NORMAL);
 
 refresh:
     /* find out how many STAtions is in the list */
-    varbinds[0].oid = StasNum;
-    varbinds[0].len_oid = sizeof(StasNum);
-    varbinds[0].value = StasNum;
+    varbinds[0].oid = AssociatedSTAsNum;
+    varbinds[0].len_oid = sizeof(AssociatedSTAsNum);
+    varbinds[0].value = AssociatedSTAsNum;
     varbinds[0].type = NULL_VALUE;
     varbinds[0].len_val = 0;
 
@@ -132,15 +112,22 @@ refresh:
     total_mac = *(varbinds[0].value);
     print_help(WAIT_SET);
     mac_idx = 1;
-    while (mac_idx <= total_mac) {
 
-       /* tell the AP we want first mac_idx-th MAC */
-       varbinds[0].oid = StasMac;
-       varbinds[0].len_oid = sizeof(StasMac);
+    while (mac_idx <= total_mac) {
+       /*
+        * Tell the AP we want mac_idx-th AssociatedSTAsInfo structure.
+        * Note: since:
+        * - position of 'Index' member in ap_* struct is always the same
+        * - only the 'Index' member is actually to be used
+        * - both structures have same size (24)
+        * we may pick *any* ap_* struct here.
+        */
+       varbinds[0].oid = AssociatedSTAsInfo;
+       varbinds[0].len_oid = sizeof(AssociatedSTAsInfo);
        varbinds[0].type = INT_VALUE;
-       get.Num = swap2(mac_idx);
-       varbinds[0].value = (char *) &get;
-       varbinds[0].len_val = sizeof(get);
+       ap_410.Index = swap2(mac_idx);
+       varbinds[0].value = (char *)&ap_410;
+       varbinds[0].len_val = sizeof(ap_410);
 
        if (snmp(varbinds, 1, SET) <= 0) {
            print_helperr(ERR_RET);
@@ -148,36 +135,46 @@ refresh:
            goto exit;
        }
 
-       if (varbinds[0].len_val == 24) {
-           if (mac)
-               free(mac);
-           mac =
-               (struct AssociatedSTAsInfo *) malloc(varbinds[0].len_val);
-           memcpy(mac, varbinds[0].value, varbinds[0].len_val);
-           /* mac = (struct AssociatedSTAsInfo *) varbinds[0].value; */
-       } else {
+       if (varbinds[0].len_val != 24) {
            print_helperr(_("AssociatedSTAsInfo packet error"));
            goto exit;
        }
 
        if (first == NULL) {
            first =
-               (struct MacListStat *) malloc(sizeof(struct MacListStat));
+               (struct MacListStat *) calloc(1, sizeof(struct MacListStat));
            curr = first;
        } else {
            curr->next =
-               (struct MacListStat *) malloc(sizeof(struct MacListStat));
+               (struct MacListStat *) calloc(1, sizeof(struct MacListStat));
            curr = curr->next;
        }
 
-       memcpy(curr->addr, mac->MacAddress, 6);
-
-       if (ap_vendorext == VERNET) {
-           curr->Status = mac->Status;
-           curr->Port = mac->Port;
-           memcpy(curr->ParentMacAddress, mac->ParentMacAddress, 6);
-           curr->rssi = mac->RSSI;
-           memcpy(&(curr->IP.s_addr), mac->IP, 4);
+       /* lets not use black magic (casting) here, ok? */
+       if (ap_type == ATMEL410) {
+           memcpy(&ap_410, varbinds[0].value, sizeof(ap_410));
+
+           memcpy(curr->addr, ap_410.MacAddress, 6);
+           if (ap_vendorext == SBRIDGES) {
+               memcpy(curr->ParentMacAddress, ap_410.ParentMacAddress, 6);
+               memcpy(&(curr->IP.s_addr), ap_410.IP, 4);
+               curr->rssi = ap_410.RSSI;
+               curr->quality = ap_410.LinkQuality;
+               curr->Status = ap_410.Status;
+               curr->Port = ap_410.Port;
+           }
+       } else { /* ap_type == ATMEL12350 */
+           memcpy(&ap_12350, varbinds[0].value, sizeof(ap_12350));
+
+           memcpy(curr->addr, ap_12350.MacAddress, 6);
+           if (ap_vendorext == EZYNET) {
+               memcpy(curr->ParentMacAddress, ap_12350.ParentMacAddress, 6);
+               memcpy(&(curr->IP.s_addr), ap_12350.IP, 4);
+               curr->rssi = ap_12350.RSSI;
+               /* curr->quality stays empty */
+               curr->Status = ap_12350.Status;
+               curr->Port = ap_12350.Port;
+           }
        }
 
        curr->next = NULL;
@@ -187,20 +184,19 @@ refresh:
     begin = 1;
     end = (MAX_LINES < mac_idx) ? MAX_LINES : mac_idx;
 
-    sprintf(message, "%s: %d", TITLE_STAS, total_mac);
+    sprintf(message, "%s: %d", ST_TITLE, total_mac);
     while (1) {
-       if (ap_vendorext == VERNET) {
+       if ((ap_type == ATMEL410 && ap_vendorext == SBRIDGES) ||
+           (ap_type == ATMEL12350 && ap_vendorext == EZYNET)) {
            print_top_rssi(message);
-
            print_help(_("Arrows - scroll; S - save to file; Q - return; "
                         "T - toggle view; Other - refresh"));
-           scroll_rows(first, begin, end, 1, 3);
        } else {
            print_top(NULL, message);
            print_help(_("Arrows - scroll; S - save to file; Q - return; "
                         "Other key - refresh"));
-           scroll_rows(first, begin, end, 1, 0);
        }
+       scroll_rows(first, begin, end, 1, 2);
 
        switch (getch()) {
            case 'S':
@@ -226,7 +222,8 @@ refresh:
                goto exit;
            case 'T':
            case 't':
-               if (ap_vendorext == VERNET) {
+               if ((ap_type == ATMEL410 && ap_vendorext == SBRIDGES) ||
+                   (ap_type == ATMEL12350 && ap_vendorext == EZYNET)) {
                    sts_viewtype += 1;
                    if (sts_viewtype == 3)
                        sts_viewtype = 0;
@@ -274,7 +271,7 @@ void nwn_stations()
 
 
     mac_idx = 0;
-    print_top(NULL, TITLE_STAS);
+    print_top(NULL, ST_TITLE);
     mvwaddstr(main_sub, 0, 3,
        _("Id       MAC address     Quality  Age  RSSI"));
     noecho();
@@ -320,7 +317,7 @@ void nwn_stations()
        varbinds[3].len_oid = sizeof(RSSI);
        varbinds[3].len_val = 0;
        varbinds[3].type = NULL_VALUE;
-       if (snmp(varbinds, 4, GET) <= 0) {
+       if (snmp(varbinds, 4, GET) < 4) {
            print_helperr(ERR_RET);
            getch();
            goto exit;
@@ -369,7 +366,7 @@ void nwn_stations()
 
        scroll_rows(first, begin, end, 1, 1);
 
-       sprintf(message, "%s: %d", TITLE_STAS, mac_idx);
+       sprintf(message, "%s: %d", ST_TITLE, mac_idx);
        print_top_rssi(message);
 
        switch (getch()) {