IMC2 AntiFreeze Router - Changes since 3.10 ------------------------------------------- This is not necessarily a detailed list, just a general rundown based on a diff file that was used to document the changes. Changes in RT-4: * Implemented the imclast tracking tables. imc-laston packet created. * Reinstated the hotboot functionality. * Added imcfread_long and imcfread_ulong to handle timestamp data in files. Changes in RT-3a: * MD5 encryption code fixed. Was having issues with ASCII chars 9-13. Changes in RT-3: * MD5 encryption code has been replaced with a more portable version. Changes in RT-2: * All references to "hub" changed to "router". * Webstats script updated to reflect change to "router" vs "hub". * Added info dump to webstats support. Drops remote info list to file. Changes in RT-1: * New name, obviously. * Copyright headers updated. * Remote info keeps track of network names for future use. * close-notify changed back to using host name. * hubflag variable name changed to router. * iced_readchannel requires a name before it will link to the channel list. * who output for router connections displays the type of connection. * Trivial typos fixed in some log messages. Changes in 3.31: * Added support for MD5 Authentication of supporting clients and hubs. * Logs will attempt to identify connection by IP if mud name isn't known yet. * Moved banned IP check in clientpassword() to first priority. * If registered mud is connecting from the same IP, old connection will be dropped. * Remote administration functions require MD5 password for added security. Changes in 3.30: * Reinstituted remote hub administration commands. * Removed the hotboot function. Did not work properly. * Added reboot check event to replace hotboot code. * SIGTERM now performs a complete shutdown of the hub. * Increased spoof protection and packet screening. * imc_name, imc_port, imc_bind all moved to imc_siteinfo struct. * clientpassword function responds with more informative errors to client. * Added IMCKEY macro for file loading. * Added imcfread_* functions to read cleaned up iced file handling. * iced file load and saveroutines cleaned up heavily. * Channels now have default localnames and send them in ice-update. * Logic error corrected in iced_load_oldchannels. * Channel localname and permission can now be set using imccommand. * Bans now kick connections properly when first added. * imc_shutdown_port consolidated into imc_shutdown_network. * iced_recv functions consolidated into imc_recv. * Removed "notset" and "none" from channel perms. * Updated imc_getarg with client version of code. * imc_hasname returns bool instead of int. * ice_audible returns bool instead of int. * inpath returns bool instead of static int. * checkrepeat returns bool instead of static int. * imc_close_notify and related functions use INFO struct instead of name. * imc_close_notify no longer sends version ID tag. * Passwords no longer used in reminfo-destroy. No longer required. * Removed imc_siteinfo.email * Removed imc_setup_reconnect. * Removed iced_init function. * Channel creators line no longer required to start hub. * Sealed a memory leak in imc_delete_reminfo. * Sealed a memory leak in imc_extract_connect. * Sealed a memory leak in imc_delete_info. Changes in 3.25e: * Channel refresh now sent as a forced event at hub reboot. * Spoof protection added to prevent routing hijacks. Changes in 3.25d: * Added ability to add hubs that behave like Connection2 muds. * Webstats file location defined in config file now. Changes in 3.25c: * Added URL processing to webstats script and code. Changes in 3.25b: * Reduced the broadcast packet spam generated by a mud or hub logging on to the network. Changes in 3.25a: * Fixed a crash bug in iced_recv_command. Changes in 3.25: * Added Xorith's statdump PHP code for web statistics. * Implemented Rogel's fix for channel echo problems. * Restructured the directories where files are stored for better organization. Changes in 3.24: * Netname sent during connection handshake now. * Setup a hub-only multicast system. * reminfo-destroy now uses new multicast system. * Fixed broadcast bug in forward(). * Connection status on imcwho now reads as either online or offline. * Added copyover feature. Can now reboot without dropping connections. Changes in 3.23a: * Clients can now ask for their connection data to be removed via the network. Changes in 3.23: * Modfied config file format to differentiate hubs. * Added 'bool hubflag' to imc_info struct to distinguish other hubs. * Muds who don't connect for 14 days will now be automatically removed. * Mud removal from info list is sent to other hubs so they can purge their remote info lists. * Autoupdate file supports auto-adding hubs with the new format. * Removed the comma() formatting function. Useless. * Cleared all aggressive warning flag errors from the code. Changes in 3.22b: * Autosetup handling interfered with 2.x and 1.x client authentication and has been reworked. Changes in 3.22a: * Applied hub level local-echo fix. * Bugfix in iced_privmsg applied. Changes in 3.22: * Protocol version taken back to 2. * can_forward changed from static int to bool. * broadcast and isbroadcast in forward function changed to bool variables. * Version check removed from imc_addnewmud. "unsupported" packet no longer sent. * Autosetup 'command' in clientpassword added to support non-version dependent autoconnect function. - Temporary fix to provide autoconn to clients using V3 to indicate this. * Hub brings connection version down to it's own version to avoid compatibility issues. * Config file will save with the current hub version when doing updates. * BUG: Broadcast packets were not being sent back to the mud who sent them. Affected channel displays. Version 3.21 was skipped to resynch with new client version. Changes in 3.20: * Protocol version raised to 3 for support of autoconn setups. - imc_addnewmud function added to handle autoconn support. - serverpassword and clientpassword modified to accomadate autoconn. * Channel file renamed back to iced to maintain compatibiilty with old hub setups. * Added support for hub level bans. Old ignore system had been removed. (!) - Added ban file to hold ban data. - Added IMC_BAN struct for data tables. - Added host field to IMC_CONNECTION to support IP address bans. - clientpassword checks connection host before allowing complete connection. - Bans can be added and removed using the autoupdate feature if enabled. * Control socket listens for 3 queued connections now instead of just 1. *boggle* * Added disconnect bool to IMC_CONNECTION struct to delay disconnect until after messages are sent. * Memory handling macros updated to the latest versions. * Default channel level now sent down by the hub with the ice-refresh packets. - This is used with the 3.20 client permissions system. * Added autoupdate field to imc_siteinfo_struct for config file control of update file. * Added private field to imc_siteinfo_struct to allow hubs to deny autoconn. Controlled by config file. * Added connects field to imc_siteinfo_struct for counting the number of connections in the config. * Added maxconnects field to imc_siteinfo_struct to allow control over how many muds can connect. Config file. * log() function renamed to imclog() to shut GCC 3.3.x up. * imc_saveconfig is only called by check_mudsfile if an update actually succeeded. * Network name can now be specified in the config file vs hardcoding in send_keepalive. Changes in 3.15: [These have been documented by myself since a changelog for this can't be found] * Connection flags removed. No longer used. * Invisibiliy states removed. No longer used. * IMC_KEEPALIVE_TIME definition removed. No longer used. * IMC_KEEPALIVE_TIMEOUT definition removed. No longer used. * IMC_DROP_TIMEOUT definition removed. No longer used. * Spam counters, definitions, and struct fields removed. No longer used. * IMC_SHRINKTIME definition removed. No longer used. * IMC_PARANOIA definition removed. No longer used. Hub is always paranoid now. * Activation states renamed as connection states and stored in an enum. * LSS, MSS, and SSS string size values defined. MSL, MIL removed. * SFCLOSE macro adpoted from DOTDII codebase FCLOSE macro. * IMC_IGNORE structures removed. Ignore support removed. * imc_isignored function removed. * Channel policy reduced to open or private. policy field in imc_channel struct changed to a bool and renamed 'open'. * Flag state/table struct removed. No longer used. * stamp field removed from imc_packet. No longer used. * flags, timer_duration, rcvstamp, noforward, and connect_attempts fields removed from imc_info struct. No longer used. * alive, type, ping, hide, and route removed from imc_reminfo struct. No longer used. * timed field removed from imc_event. No longer used. * imc_char_data removed. * name, port, www, details, and flags removed from imc_siteinfo_struct. No longer used. * chancreators added to imc_siteinfo_struct to remove hardcoded definition. * imc_prefix variable removed. No longer used. * imc_active variable removed. Replaced with connection state variable. * strlcpy and strlcat added for prevention of buffer overflows. * calls to strcpy, strcat, and imc_sncpy changed to strlcpy and strlcat. * imc_sncpy removed. Superceded by strlcat. * Memory handling macros moved from router.h to imc.h * router.c and router.h deleted. Functions moved to imc.c and imc.h * iced file renamed as channel. * FreeBSD file locking defines removed. No longer used. * imc_logon variable removed. No longer used. * istat ping monitor variables removed. No longer used. * GETSTRING macro removed. * imc_clone_data function removed. No longer used. * imc_slower function removed. * imc_hubinpath function added. * STRFREE calls changed to DISPOSE calls. * Various error messages made more informative. * Channel refreshes only sent when requested by clients instead of at regular intervals. - Note: This may have broken support for 1.03g since it doesn't seem to maintain its channels with this version of the hub. * Automated connection list updating added to allow adding muds without rebooting the hub. - Uses an 'update' file in the hub's main directory. Checks every 15 seconds. * substr function removed. No longer used. * imc_send_chat function removed. No longer used.