X-Git-Url: https://git.decadent.org.uk/gitweb/?p=ap-utils.git;a=blobdiff_plain;f=ChangeLog;h=c004cc08ffc9a1129bdc183950d7eed398c469cf;hp=8a8b8650603068094766da5f00f60c85cd387b46;hb=HEAD;hpb=17638f5bff2fddb825562f9242a364674aa5fb94 diff --git a/ChangeLog b/ChangeLog index 8a8b865..c004cc0 100644 --- 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 + . + + 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 ' 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