+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
+
+2004-12-09 Michel Robitaille
+ * po/fr.po: updated translation
+
+2004-11-28 Roman Festchook
+ * Documentation/ap-gl.8, Documentation/README.ap-gl: info from
+ Documentation/README.ap-gl moved to ap-gl man page, removed
+ Documentation/README.ap-gl
+ * Documentation/README.ap-auth:
+ removed because all info now in ap-auth man page
+
+2004-11-28 Roman Festchook
+ * lib/common.c: added checking then function called from ap-gl utility
+ in connect_options() automatic detecting MIB, extention. Now community
+ must be entered manually
+ * lib/ap_search.c: reverted back to scan oid Wireless info string (that find APs even
+ with wrong community) raser than APName oid; info string now truncated only if it
+ cant be displayed at current screen width (now it screen width independed)
+ * Makefile.am: into dist-hook added command to remove po/*.gmo files from
+ final distribution package to decrease size
+ * ap-gl/ap-gl.c: in ap-gl utility reverted back to ATMEL_PRISM rather than ATMEL410 naming
+ * Documentation/ap-config.8: fixed minor bug in example key for 64-bit WEP encryption
+ (http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=243208)
+ * Documentation/ap-gl.8, Documentation/Makefile.am: added man page for ap-gl utility
+ * Documentation/ap-auth.8, Documentation/Makefile.am: added man page for ap-auth utility
+ * po/fr.po: fixed coredump in Config menu with French locale (now just removed long
+ translated string from po file)
+ (http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=259645)
+ * po/uk.po: updated translation
+ * ap-gl/stations.c: fixed RSSI dBm representation
+ * configure.in: version 1.5pre1_FreedomOfUkraine
+
+2004-11-24 Jan Rafaj
+ * README:
+ - made WARNING2 more accurate; added WARNING3
+ * lib/Makefile.am:
+ - added set_oeminfo.c to the list of source modules
+ * lib/ap-utils.h:
+ - QHELP and SELECT #defines moved here from lib/stat.c, as we now
+ reuse them. QHELP renamed to QTHELP (+ toggling mode).
+ - added #defines for NONE, SBRIDGES, TELLUS and VERNET constants
+ with numbering according to new ap_vendorexts[][]. Actual values
+ of these are hold within newly introduced ap_vendorext global
+ (similar to meaning of ap_type global).
+ - new data type 'rdprops', used to describe regulatory domain
+ properties (code, description, first channel, last channel)
+ - formatting fixes (cosmetic)
+ - now #includes lib/ap-curses.h
+ * lib/ap_search.c:
+ - output formatting changes (unification)
+ - in case the length of AP NAME being displayed for actually
+ scanned AP exceeds 27 characters, truncate the display
+ to first 27 characters (80x25 screen limit) and append
+ '>' character to indicate that not full AP NAME has been
+ displayed
+ - user is now prompted for a community, that will be used
+ to detect APs, prior scanning
+ * lib/common.c:
+ - introduced new char *ap_vendorexts[][]; moved char *ap_type[]
+ here from src/ap-config.c and ap-gl/ap-gl.c
+ - in favour of proper naming, renamed all *APNAME #defines
+ to *APLABEL (same for texts, with a help message that clearly
+ states that AP LABEL is _independent_ of AP NAME (AP NAME = name
+ stored inside the AP), to prevent eventual user confusion.
+ - all references to 'name' changed to 'label' in order to respect
+ that AP label != AP name (see above). permitted length of label
+ is now max. of 16 characters.
+ - implemented ability to manually select MIB vendor extension
+ along with MIB type (previously just 'AP type:'). This was
+ really necessary as we couldn't rely on get_mib_details()
+ probing especially when the target AP was not available.
+ - if AP MIB type & vendor extension has been _autodetected_, or if
+ there's a good belief that the to-be-connected AP (via
+ connect_options()) is really alive (when we enter connect_options()
+ from ap_search()), then offer possibility to use AP NAME
+ as AP LABEL. However, as AP NAME may have max. length of 31
+ characters, it will be always truncated to first 16 chars
+ (max. length of AP LABEL), and user will be warned if this happens.
+ - introduced new 'rdprops regdom_types[]' field to unify reg. domain
+ description. Along with newly introduced regdom_types[]
+ and regdom_idx(), it enables us to get reg. domain properties
+ related to specific reg. domain code at any time, anywhere.
+ Merged reg. domain codes & properties of MKK1 & ISRAEL freq.
+ domains. Change: MKK domain defines only channel 14.
+ - squashed ch_list() in favour of regdom_types[] => killed malloc()s
+ in wlan.c & test.c. char *channels[] now keeps statically what
+ ch_list() was used to generate on demand before
+ - avoid asking for community upon entering connect_options()
+ called from ap_search(), as we already know the community
+ - thrown myself into about()
+ * lib/file.c:
+ - all references to 'name' changed to 'label' in order to respect
+ that AP LABEL != necessarilly AP NAME (see above)
+ - implemented storing of MIB vendor extension into ~/.ap-config
+ - changed name of stored file with MAC authorised addresses
+ in the AP from '~/ap-MIBTYPE.stations' to
+ 'ap-IP-MIBTYPE-MIBEXT.stations'
+ - output formatting changes (in AP list code):
+ - 'NAME' -> 'LABEL', 'TYPE' -> 'MIB TYPE', newly introduced:
+ 'MIB EXT'; accomodate to new layout
+ - in parse_db_str(), truncate displayed length of AP NAME to 16
+ characters (80x25 screen limit), upon length of label being read
+ > 16 characters (80x25 screen width limit), and append '>'
+ character to indicate that it has not been displayed
+ in its full length (TODO: remove screen width limits)
+ - fixed numerous memleaks caused by missing free()ing of
+ ip, passwd and label parts of APList structure in get_opts()
+ - option writing ~/.ap-config is now verbose. Required moving
+ main print_help() to the while(1) cycle body.
+ - save_Stations() is now verbose at minimum level
+ * lib/input.c:
+ - patched get_value() so that zero-length ANY_STRING type input
+ can be optionally allowed. Selected string input fields now accept
+ empty value. minv & maxv arguments switched from int to unsigned
+ int so that we may cover full uint32 range - also involved
+ switching from atoi() to strtoul(), as we need to check a condition
+ when errno == ERANGE (given value bigger than 0xFFFFFFFF).
+ - implemented wait_key() as unified means to wait for user input
+ selection different ways. The actual input mode with respect
+ to waiting is being held in wait_mode global, that can
+ be toggled using 't/T' keys in statistic views where appropriate
+ (SysInfo, Ethernet statistics, Wireless statistics).
+ - added help_ysn() as preferred & unified way to wait for user Y/N
+ choice. Prints Y/ safe N help message; clear settings subwin
+ & returns 0 upon pressing y/Y or 1 upon n/N. All Y/N code
+ everywhere has been replaced with single call to help_syn().
+ * lib/menu.c:
+ - added hidden call to atmel_set_oeminfo (secret 'OEM info settings'
+ menu), based on set_oeminfo_allowed global from set_oeminfo.c
+ * lib/scr.c:
+ - print_bottom() now also prints MIB vendor extension info
+ in form of 'Ext: <TAG>'
+ - introduced print_bold() to decrease high amount of low-level
+ attribute-setting stuff everywhere (involved conversion
+ to print_bold() wherever possible)
+ - removed print_viewtype() and all references to this replaced
+ with print_bold()
+ * lib/set_oeminfo.c:
+ - newly introduced. Actually only functional for ATMEL CPU-based
+ APs. ALLOWS TO CHANGE OEM INFORMATIONS STORED WITHIN THE AP,
+ AFTER PRESSING 'S' KEY WHILE IN 'Config' MENU. Note that this
+ is a HIDDEN function, since it is really only suitable for large
+ WISPs & repair shops. Compatibility level that has been achieved
+ with original windows utility is around 96%. Use with care.
+ * lib/snmp.c:
+ - added (currently commented out) new function ber_decode_uint().
+ It may come in handy elsewhere in the future.
+ * lib/sysinfo.c:
+ - atmel_sysinfo() now uses select() to wait for user keyboard input.
+ 'q' or 'Q' key quits, others force update without clearing screen.
+ - (hopefully) fixed conversion of raw input buffer value to int
+ for uptime-displaying code
+ * lib/sysinfo.c, lib/sysinfo_set.c, lib/wlan.c, lib/ap-utils.h:
+ (cosmetical):
+ - added #include <time.h>, missing on some platforms
+ - renamed ptr410 and ptr12350 to str410 and str12350
+ - renamed SysDeviceInfo_* to sysDeviceInfo (MIB conformance)
+ - fixed interpretation of (long) INT value returned by the AP
+ in UpTime-displaying code
+ - implemented toggling of polling mode through 'T' [works
+ only with ATMEL12350 VERNET MIB-compatible devices]
+ - uses select() instead of getch() when polling is active
+ - indentation fixes (cosmetic)
+ * lib/test.c:
+ - changes to use channels[] and regdom_types[] instead of
+ ch_list() and malloc()s
+ * lib/wlan.c:
+ - changes to use channels[] and regdom_types[] instead of
+ ch_list() and malloc()s
+ - fix: added missing print_help(WAIT_RET)
+ * ap-gl/ap-gl.c:
+ - few indentation fixes (cosmetic)
+ - changes to keep sync with new lib functionality (MIB vendor
+ extensions code)
+ * ap-gl/stations.c, src/stations.c:
+ - print_help() is now called from within while(1) cycle, in order
+ to be compatible with updated save_Stations()
+ * src/bridge.c:
+ - fix: added missing print_help(WAIT_RET)
+ * 'RegulationDomain' renamed to 'RegulatoryDomain' for MIB conformance
+ * further optimisations everywhere for reusing print_bold()
+ * load of small bugfixes
+ * print_title() replaced with new print_top() that will also
+ handle displaying "view" type (on LHS) along with menu title
+ (on RHS) using single pass. This was really in need of unification.
+ Side effect: no need to redraw title strip on each screen update
+ anymore (no two separate ways to write to same location).
+ * some spelling, indentation & accuracy fixes here and there
+
+2004-11-09 Jan Rafaj
+ * README:
+ - removed reference to HARDWARE-NOTES, that didnt made it into
+ previous ap-utils versions by accident
+ - added WARNING 1 and WARNING 2 sections (originally intended to be
+ in HARDWARE-NOTES, but the magnitude of their importance deserves
+ to put them straight into README)
+ * TODO: updated
+ * lib/ap-utils.h:
+ - added "(valid)" to the ERR_RET message, which more accurately
+ reflects what may actually happen (AP actually _may_ return
+ data, but in an unexpected format)
+ - enhanced WirelessStatistics structure for TransmittedPackets_11Mbps,
+ TransmittedPackets_55Mbps, TransmittedPackets_2Mbps, and
+ TransmittedPackets_1Mbps so that we can support functionally
+ enhanced firmware from VERNET WISP.
+ * lib/ap_search.c:
+ - in third column, display operAccessPointName OUI using label
+ "Name" instead of Wireless OUI. Makes more sense.
+ - made the number of APs per screen, as well as the offset at which
+ the info about whats actually scanned, is printed, relative
+ to the actual screen height (so to increase maximum hard-coded
+ amount of APs displayed, just switch from 80x25 console font
+ to a bigger one, or use X terminal window)
+ * lib/aps.c:
+ - reverted displaying back to RSSI & LQ both in % in screen 1.
+ This is becouse a) we want to keep as close to the view of the
+ original ATMEL utility as possible here, and b) huge dispersion
+ in dBm versus raw value of RSSI exists among different flavours
+ of APs, and the dBm formula unfortunately often gives results
+ very far from real values. So we want to display something thats
+ less jittering in the scope of inter-AP comparison.
+ - cosmetic fixes (2-line legend instead of 3-line)
+ - rebound the 'refresh' from 's' key to otherwise unused keys,
+ in favour of keyboard interface unification
+ * lib/common.c:
+ - created get_mib_details() to provide vendor-specific private
+ ATMEL MIB detection
+ - fixed a bug introduced by the 'name' patch, resulting in
+ omission to clear screen properly when user has given
+ insufficient credentials (bad password) to detect new AP type
+ - made the 'name'-patch code malloc-free (and memleak #2 free).
+ There's no point to use malloc()d space here since we dont
+ reuse it elsewhere (contrary to char *community).
+ - fixed bad variable boundary-handling introduced by 'name'-patch
+ that might result in crash of utility under circumstance
+ when ~/.ap-config didnt previously exist and user attempted
+ to add new AP with name of length >= 7 characters
+ - added possibility to skip name definition if user wants to
+ (useful for example when the newly added AP's IP will be used
+ solely for testing purposes :)
+ * vendor-specific private ATMEL MIB detection is now referred to
+ get_mib_details() everywhere
+ * lib/file.c:
+ - a lot of indentation fixes
+ - in get_opts(): fixed couple of bugs:
+ - it was possible to issue 'Connect' command when the AP list
+ was empty (was leading to endless loop)
+ - 'Delete' command failed to remove last remaining AP from the
+ list, ending up in endless loop (as get_value() doesnt do
+ sanity checking on its input paremeters)
+ - fixed a memleak #1 possibly introduced by 'name' patch - we need
+ to free char *name after its use
+ - in _scroll_rows(), fixed the AP MIB TYPE cutoff-by-format-string,
+ introduced by 'name' patch, and enhanced message size to accomodate
+ the true max. row size instead
+ - in get_opts() appended '(in ~/.ap-config)' behind the user-defined
+ APs list banner, to better reflect the real meaning of 'NAME'
+ (and other fields), to prevent someone from f.e. thinking
+ that the NAME here is the name stored in AP's configuration
+ (which it is NOT, of course).
+ * lib/oui.c: added OUIs:
+ - 000B46 (Cisco)
+ - 000D54 (3Com Europe Ltd)
+ - 000D88 (D-Link Corporation)
+ - 000EA6 (ASUSTEK COMPUTER INC.)
+ * lib/radio.c:
+ - fixed non-working radio menu with ATMEL12350 APs by merging the
+ initial TestModeRadioConfiguration and operAntennaSettings OID
+ modifications when ap_type == ATMEL12350
+ * lib/stat.c:
+ - replaced ERR_RET_PRESS with ERR_RET
+ - simplified; no more forking, goto's reduced, no need of
+ pipe(), alarm() or sig*jmp(); use select() for waiting -
+ it is now possible to quit (by pressing 'q' or 'Q') immediately.
+ Also, the counters now get updated immediately after pressing
+ whatever key != q.
+ - fixed a bug that, due to previous use of sig*jmp(), resulted
+ in lockup when attempting to quit ap-config after it has received
+ invalid packet, by pressing 'q' key several times
+ - WirelessStat(): implemented support of ATMEL 12350 functionally
+ enhanced MIB by VERNET WISP.
+ * lib/sysinfo.c:
+ - enhanced atmel_sysinfo() for displaying system uptime using
+ UpTime OID from ATMEL12350 VERNET MIB.
+ * lib/wlan.c:
+ - fixed showing/setting of BeaconPeriod value for ATMEL12350_TELLUS -
+ acceptable value range is now 0 - 65535 as originally intended
+ - new: implemented showing/setting of 'SIFS time' parameter, specific
+ to APs with ATMEL12350_VERNET firmware/MIB
+ * spelling & indentation fixes
+ * lib/scr.c, src/stations.c:
+ - implemented support for viewing statistics
+ produced by enhanced ATMEL 12350 firmware by VERNET
+ - implemented toggling of RSSI between 'dBm' view, '%' view, and
+ raw view - added new functions print_viewtype_rssi(), conv_rssi().
+ [TODO: update ap-gl/stations.c, too]
+ - pressing other than the selected keys will now result in refresh
+ of all values
+
+2004-10-24 Roman Festchook
+ * lib/common.c: fix to clear display before displaying AP type
+ * configure.in: version 1.4.2pre1
+
+2004-10-24 Przemyslaw Stanislaw Knycz
+ * po/pl.po: translation updated
+
+2004-10-18 Roman Festchook
+ * lib/common.c: fix to use get_value instead of get_pass for input AP name
+ * po/uk.po: translation updated
+
+2004-10-18 Teemu Kiviniemi
+ * src/ap-auth.c: command line utility to change the list of authorised MAC addresses added
+ * Documentation/README.ap-auth: some docs for ap-auth utility
+
+2004-10-18 Aleksey Korenkov
+ * lib/common.c, lib/file.c, src/ap-config.c: patch that adds name to list of APs
+
+2004-08-08 Dan Pelleg
+ * lib/ap_search.c: fix error when build ap-utils on freebsd.
+
+2004-06-22 Elif Bilge Maden
+ * po/tr.po: Turkish translation added
+
2004-05-16 Roman Festchook
* configure.in: version 1.4.1
* NEWS: main changes added
* lib/ap_search.c: Compiler Error for ap-utils on Darwin 7.3 (Mac OS X 10.3.3) fix
2004-03-20 Roman Festchook
- * ap-gl/bridge.c: Isolate wireless clients status displaying fixed
+ * ap-gl/bridge.c: Isolate wireless clients status displaying fixed
* lib/snmp.c: decreased timeout waiting for snmp reply packet to 1 second
* src/ap-mrtg.c: to decrease usage of network and AP CPU AP name only requested if -n option specified