]> git.decadent.org.uk Git - ap-utils.git/blobdiff - ChangeLog
Update config.{sub,guess} in the right place at build time - closes: #534825
[ap-utils.git] / ChangeLog
index 8a8b8650603068094766da5f00f60c85cd387b46..c004cc08ffc9a1129bdc183950d7eed398c469cf 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,457 @@
+2005-03-07 Roman Festchook
+       * src/ap-rrd.c: changed format of error messages
+       * configure.in, NEWS: version 1.5
+
+2005-03-06 Jan Rafaj
+       Since one of the users has provided me with SmartBridges APPO,
+       the support for latest APPO firmware (1.4k5) can now hopefully
+       be finished as originally intended.
+       * TODO: updated
+       * Documentation/FAQ: updated
+       * ap-gl/Makefile.am:
+         - bugfix: added missing @CURSESLIBS@ to the target
+       * lib/ap-utils.h:
+         - Q_HELP is gone
+         - added dbmconv() macro to correctly handle dBm computing for
+           smartBridges firmware
+       * lib/ap_search.c:
+         - 'Wireless' OID is really 'sysDescr' OID
+         - no longer ask for community, since device will respond to
+           sysDescr query no matter what community is currently being used
+           (Roman, thanks for notifying!)
+         - bugfix: 'AP NAME' changed to 'FW TYPE (VERSION) AP NAME', to
+           reflect better whats being displayed
+         - bugfix: scan_local_segment() now triggers screen-width truncation
+           limit correctly
+       * lib/common.c:
+         - cosmetics: screen is now properly cleared with exit_program()
+       * lib/input.c:
+         - bugfix: exclusive use of getch() in wait_key() instead of
+           escape-sequences-not-aware getc() results in greater robustness
+           of input code (it is now a lot harder to end up with buffered
+           content in stdin, that would otherwise lead to odd results
+           elsewhere)
+         - get_value() almost completely rewritten. switched from getchar()
+           to getch() to get correct output on older terminals, as well as
+           to avoid displaying of escape-sequences and to interpret escape-
+           sequences for the following usual keys, that now work:
+           INSERT (toggles Insert/Overwrite mode)
+           DELETE (rightside delete)
+           BACKSPACE (leftside delete)
+           LEFT ARROW (move cursor back 1 character)
+           RIGHT ARROW (advance cursor forward 1 character)
+           HOME (move to the beginning of the string)
+           END (move to the end of the string)
+         - bugfix: get_value() will now omit leading zeros from correct number
+           given by the user (they will be eaten upon user's ENTER keypress)
+         - bugfix: in get_mask(), trans_count must be always reset upon
+           failure to validate user input, or after single failure, all
+           subsequent attempts would (previously) fail
+       * lib/oui.c: added OUIs:
+         - 000E2E (Edimax Technology Co., Ltd.)
+         - 000F66 (Cisco-Linksys)
+         - 00117C (e-zy.net) :)
+       * lib/set_oeminfo.c:
+         - prepended 'USB ' in front of 'Vendor ID' and 'Product ID'
+           (cosmetic)
+       * lib/snmp.c:
+         - bugfix: eliminated leak by unfreed malloc'ed memory in snmp() using
+           static buffer
+         - introduced three new functions: close_sockfd(), open_sockfd()
+           and reopen_sockfd(). They should really be in common.c, but then
+           again, they are low-level stuff that should primarily be used
+           only in snmp(), and snmp.c itself contains no ncurses stuff
+           so functions it defines can be reused by external non-ncurses-
+         - in snmp(), switched from sig*jmp()/alarm() timeout code to select()
+           in favor of simplicity and possibility to monitor stdin read-state
+           change at the same time
+         - snmp() will now return with 0 immediately upon keypress, if
+           snmp_quit_by_keypress = 1 and type = GET. This has been added
+           to allow user-requested last-resort quit from blocking state
+           (for example when the target AP does not respond). The decision
+           of what to do is up to the calling code, that has to check
+           stdin content and act accordingly (currently this is used for
+           immediate quit using q/Q key from otherwise blocking snmp() calls).
+         - sockfd is now globally defined here
+         - snmp() now always 'flushes' sockfd prior further network processing
+           so that eventual packet received on sockfd prior snmp() call
+           wont cause desync errors
+         - snmp_retries global is gone. We need to wait at least 1 second
+           past sendto() for response packet, and do everything necessary
+           to avoid 'response for previous request received in next snmp()
+           call' => extra TODO: check, whether the OID part of received packet
+           matches with OID of preceding request, and if not, flush sockfd
+           and do an extra retry of sendto()/recv()
+           dependant programs.
+       * Documentation/ap-tftp.8:
+         - (introduced in previous patchset)
+         - added warning that it is unsafe to try upgrading devices for whose
+           there's no vendor firmware nor upgrade utilities (such as
+           Tellus A13 a.k.a. i-Tec AP GOLD with blue front)
+       * src/Makefile.am:
+         - ap-tftp needs to be linked to libap.a from now on
+       * src/ap-tftp.c:
+         - bugfix: computation of percentage was not really correct in v1.0
+         - bugfix: fixed memleak caused by unfreed strdup()
+         - cleanup; use of float type eliminated
+         - it should be now possible to reuse tftp() for .cfg upload, too
+           (.cfg upload code still not there)
+         - revamp of config. parameters
+         - added capability to upgrade all AT76C510-based SmartBridges
+           devices (those with FCC ID 'PWG DOLPHIN')
+       * src/aplink.c:
+         - polling mode is now always enforced
+         - LQ top value is now computed/shown for devices with ATMEL410
+           SBRIDGES MIB
+         - bugfix: screen is now correctly cleaned up upon transition
+           from 'associated: yes' to 'associated: no' state
+         - added pause possibility (using 'q' or 'Q' key)
+         - big facelift: added RSSI 'rounding' (a.k.a. RSSI average / last
+           20 samples) gauge, and a general side-scrolling bargraph
+           showing the history of RSSI, RSSI average, RSSI rounding, and,
+           in case of smartBridges firmware, also Link Quality. Views
+           can be toggled using 't' or 'T' key. At the moment, all values
+           are presented in percentage, since this (compared to dBm)
+           does not fluctuate a lot among different firmware versions.
+           User may just pause the polling process and see the corresponding
+           dBm value for the bar currently shown in graph, near the
+           corresponding gauge.
+       * src/auth.c:
+         - bugfixes: shown ea_dest_port, ea_time and ea_port values are now
+           properly decoded
+       * src/bridge.c:
+         - renamed cf_trap_ports to cf_ports (cosmetic)
+         - bugfix: fixed up order of cf_ports to respect MIB-defined order.
+           Interresting note: ATMEL12350 EZYNET MIB firmware actually
+           returns config_port = 0 when it should return 3 ('Both' ports) =>
+           this case is now taken care of.
+       * lib/common.c:
+         - screen is now cleared upon exiting ap-config
+       * bugfix: fixed rare ap-config crash when sysDeviceInfo OID query
+         would return structure length of 92 bytes instead of 128. Suspection:
+         returning 128 might be a snmp() state machinery error?
+       * squashed any sockfd lowlevel-manipulating stuff (socket(), bind(),
+         close()) everywhere in favour of already globally declared sockfd
+         in snmp.c and eventual reopen_sockfd() call. Lets forget about
+         sockfd if we use just snmp(). TODO: re-evaluate necessity to use
+         reopen_sockfd() in common.c and file.c .
+       * dbmconv() is now used in every place that handles raw->dBm
+         conversion - TODO: just the ap_mrtg needs to be fixed (add
+         detection for SBRIDGES ap_vendorext, then dbmconv())
+       * cosmetics: highlighting over changed values will now disappear,
+         once they are written (using 'W' key)
+       * ERR_CREATING_SOCKET and ERR_BINDING_SOCKET replaced with one single,
+         more generic ERR_SOCKET
+       * new feature: it is now possible to change polling interval in
+         range from <0,1;86400> seconds (default is 1 second)
+
+2005-01-16 Jan Rafaj
+       * ap-gl/auth.c: small bugfix
+
+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