CVS log for epic5/include/server.h |
![]() |
Request diff between arbitrary revisions
* Add $serverctl(READ_FILE filename) to add servers from a servers file. * Add some preliminary code for sending a /msg to a logfile. * Make scrollback_start/end use "scroll up/down 999,999 lines" * This is for future consolidation of the scrollback code.
* Revert commit 1498 (the dcc stuff) -- it was half baked. * Fix warnings found with --with-warns.
--- This is a bunch of stuff I've been sitting on while I wait for howl to finish what he was doing. --- * Add support for ./configure --localdir * Add support for ./configure --with-iconv=/usr/local * Add support for looking for iconv in configure in various places * Make configure check for nanosleep(). * Add function decls for [sg]et_server_realname() * New version of screen.e * Change "filename" to "local_filename" in dcc's, in prep of further work. * Un-revert a few minor things.
* Added $serverctl(get/set -1 realname/default_realname). * $Y now is a synonym for $serverctl(get -1 realname). * Added $xform(iconv fromcode/tocode ...) wrapper around iconv(3). With this epic5 takes babysteps towards supporting Unicode.
* Fix fulldesc handling code to put []s around ipv6 p-addrs. oops! * GC the if 0'd decls from before the switch to ServerInfos * Add $serverctl(GET <refnum> FULLDESC) for kreca.
* Change startup code so it outputs the pid of the bot process for -b. * Fix $info(o) bug. rb zlonix * Output the errno value ret by failed nonblocking server connects on error. * Add auto-close boolean flag for server (see UPDATES)
Add a new field to server descriptions, 'vhost' to allow you to specify a per-server virtual host. All the usual caveats apply.
Fix some bugs with /window query that kreca found.
* Make $urlencode() rfc3986-ish, converting all non-unreserved chars * Change ServerInfo to use const char's since we don't modify them directly. * Reorganize how ServerInfos are used, into "temporary" and "permanent" types * Convert Server's use of ServerInfo's into safe permanent types. * Add /server -update <refnum> <desc> to change server descs on the fly. * Fix typo in /invite. * Fix 'country' script by wrapping it with xdebug dwords.
* Pass double ptr to remove_bindings_recurse() to fix exit-time memory leak. * Remove /set bad_style, input_aliases, security, (unused) * Remove /set ssl_certfile, ssl_keyfile, and ssl_path (unused) * Add a (ServerInfo) object to (Server), switch to using it. * Remove a bunch of unused thingees in (Server) while i'm here. * Restore /set reverse_status_line to a builtin. oh well.
* Make /window foo kill not fall back to /window describe, for want of 'foo'. * Add a 'proto' field to server descs (tcp4, tcp6, 4, or 6), see UPDATES.
* Add $serverctl(GET refnum ADDRSLEFT) (see UPDATES)
* Add server states CREATED and DELETED for nullie.
* Add SEDSHA cipher type, which is better than SED, and always available. * Add my_sleep|isreadable|iswritable() funcs to phase out rogue selects()h * Add support for multiple concurrent servers to /encrypt. yay! * Store the length of the Crypt key within the key itself. * This moves us closer to being able to decrypt arbitrary data. * Test all of the cipher types, incl. compat of CAST with ircII. All set!
Fix buffer overrun with new server state.
* Lay the foundations for nonblocking ssl connection (not supported yet) * Change SEND_LINE to do SCROLL_FORWARD if we're in scrollback mode * Add support for maildir mailboxes. * Fix crash with 042 numeric.
* Improve /dcc get * Fix warnings
Add humanize_number() and fix compiler warnings. more to follow!
* Add new server status, "ERROR" for nonrecoverable socket errors.
Addendum to the previous commit. The /ison changes were difficult to separate and aren't documented: These are the -e, -end and -max flags, and the fact that -max and -len are per-server variables now.
* When a window is resized, make sure scrollback is bigger than new size. * Add multiple stricmp tables, "ascii" and "rfc1459" * Make all string insensitive compares use "ascii" * Add black's ornamentation on the addset script. * Fix some regression scripts * Fix pf bugs with various scripts. * Add the [$func](args) capability to the new math parser. * Add the === and !== literal equivalence (case sensitive) operators. * Sort of set the case sensitive mapping to use in the 005 handler (hack!) * Fix error recovery of ssl connections.
New builtins, very preliminary support for nonblocking dns.
* Add /window killable to allow you to make windows unkillable * Nickname rejections are handled through /on new_nickname solely now.
Reorganize how nickname changes are handled, refactoring coming soon!
* Refactor the error stuff by eliminating my_strerror() and dgets_errno. * Error messages are now delivered on multiple levels as info is available. * This may get annoying, but it's a lot more accurate now! * Change inet_* functions to return int's since their retval is unused. * Add a new internal "syserr()" function that generates formatted errors. * Syserr's look like say()s but they act like yell()s. (can hook with /on yell) * Keep an counter in the server stuff so we can count off as addrs are used. * So the error message in /ON DCC_LOST is always just "ERROR" now. * Fix various compiler warnings and stuff. * Add $hookctl(GET HOOK <ref> STRING), return /load'able format of ON * Fix some debugging outbound in switch_hostname(), doh! * Roll set_socket_options() into a new Socket() function. * Roll connections to AF_UNIX sockets into the mainline stuff. * Roll nonblocking/connect/nonblocking into Connect(). * Add AF_UNIX support to Getnameinfo() to remove annoying errors. * When doing recovery from EBADF in select, only check fd's we're using * Just puke if configured for kqueue() and kqueue() fails. * Don't puke on default 353 output if the userlist arg is missing. (for ratbox) * Permit doing /window name to change case of window's name.
PHEAR the breakage! * Major refactoring of newio system: * Change main io() look into a "fill" cycle and a "drain" cycle, using buffers * Change new_open() to take an io policy to perform when fd is "ready" * Use token to determine if an fd is "dirty" or "clean" (is data ready?) * Process accept()s through newio/dgets. * Merge nonblocking connects as just another type of new_open() policy. * Nonblocking connects emit sockaddr info when connected for dgets(). * Change dgets() to not perform io, but just drain from the buffer * Now all data goes through dgets()! huzzah! * Nuke kqueue support for the moment (will come back later) * Hide the "holding" status of a fd inside the IO metadata. * This allows me to support "holding" in other IO models. * Major refactoring of ssl support: * Move all meta-data about ssl in ssl.c in a linked list * As much as possible, have server treat the ssl case as "normal" * Implement all ssl interfaces even in non-ssl case, guard with panics ^^^^ None of the above should be user-visible changes.
* Fix /dmsg =<numeric> again, fix compiler warnings. * Whack dgets() into submission regarding incomplete unbuffered lines. * Revamp how partial lines from an /exec process are handled.
* Fix $symbolctl(pmatch <incorrect> *) crash
* Auto-create server's first altname, make %S and %{1}S use it.
* Don't add mode types 2, 3, or 4 (takes-args) to the channel mode string.
* This makes ircnet's +R not show up on the status bar.
* Fix /dmsg =<ircnet-numeric-nick>, for Q.
* Add $serverctl(GET <refnum> PROTOCOL), returns IRC or IRC-SSL
* New /ISON bells and whistles as per UPDATES. * Changes to /reconnect, /server -a, /on server_established and remove_from_comma_list() as per KNOWNBUGS.
* Nix calls to dcc_connected(<fd>, 0) which were always bogus. * Create print_arglist() for printing alias arglists, natch. * Fix crash from /queue -del <name> <num> for <num> = <items> + 1 (rb black) * Show arglist when creating and listing aliases. * Fix memory leaks of buckets when user grabs /on set. * Add a "alternate names" bucket to server data. * Create a whole new api for querying and creating server refnums. * Fix crash with /dump on (/dump all) * Add $serverctl(GET|SET <refnum> ALIAS) get and set server alternate desigs * Add $serverctl(GET|SET <refnum> ALIASES) get and set entire list. * Fix memory leak with /on set
* Numerous new and changed features as per UPDATES. * Better handling of damaged /who x,y responses.
Sync up with all the bug fixes from epic4.
* Userhost updating for NICK messages as per UPDATES. * Delayed ISON requests as per UPDATES.
GC a bunch of useless cruft and stuff.
Merge changes from epic4 commits 674 to 692, inclusive.
* Abstract fd handling in newio.[ch] through #defines * Add fd handling with freebsd's kqueue(). Huzzah! (not turned on by default) * Refactor how dgets() works with incomplete SSL reads, slurp up everything * Nix the bletcherous do_server(-1) hack in io(). * Fix a few more bogons in do_server().
* Make new_open[_for_write] take a callback function, stash it in io_rec. * Add handle_filedescs() which takes select() results and calls callbacks * Make io() call handle_filedescs() instead of the four callback functions. * This is the first stage of an extendable callback event looper! huzzah!
* Fix some compiler issues and so forth * Nix the NOTE level. * Move load_ircrc() to irc.c, nix "startup_file" global var. * Always change server state using set_server_status(), because... * Add /ON SERVER_STATUS, $0 is refnum, $1 is old state, $2 is new state * Delete /on widelist, no longer used * Prototype mode string manipulation functions * Reorganize names.h to reflect new realities * Prototype (Get|Free)addrinfo() now that server.c uses them. * Nix /window bind, rebind, unbound; $windowctl(* BIND_CHANNEL *)
* Assimilate notice.c into parse.c. *poof* * Fix some compiler issues and so forth * Nix the NOTE level. * Move load_ircrc() to irc.c, nix "startup_file" global var.
* Allow client_connect() to be nonblocking * Allow Getaddrinfo() and Freeaddrinfo() to be called extern. * Track writable sockets in 'global_max_fd' too. * Keep a list of AI's for server addresses in the server code * When server connection lost before registration, use the next AI * Implement set_server_status(), which controls where server is in lifetime * Nix reconnect(), which is replaced by close_server + set_server_status(). * Nix server_reconnects_to(), we no longer reconnect to servers. * Make /xdebug server_connect the default for this commit at least * Call window_check_servers() every time through io(), because... * Make window_check_servers() look for disconnected servers and restart them. * Add add_mode_to_str() which adds a channel or usermode to a string (sorted) * Make usermodes use add_mode_to_str() * Make channel modes use add_mode_to_str() * Now modes are not stored in bitmasks, not hard-coded at compile time. HUZZAH! * Nix "inactive" field in channels, channels are thrown away at disconnect * Don't allow channels to move between servers, natch. * Nix all the code to handle disconnected channels and such. * Use change_window_server() to move windows to new servers, because... * Make window_check_servers() auto-close windowless servers. * Make change_window_server(<server>, NOSERV) cause a disconnect from <server> * Don't honor /set auto_reconnect, we don't ever reconnect. * Fix printf() error in /on kick default output * Add new server state, SERVER_RECONNECT which means "i can be connected" * So now SERVER_CLOSED means "don't reconnect me" * Allow /server, /window server, and /reconnect to change CLOSED -> RECONNECT * Make server connections nonblocking. * Server connections are now nonrecursive, nonblocking, multi-protocol. HUZZAH! * GC a bunch of server code dealing with reconnection we don't use now. * Don't call window_check_servers() other than io() for sanity reasons. * Make /window server just change server, let w_c_s() bootstrap connection * Remove many window->channel->server sanity checks.
* commit 1013: * Use a "status" variable in server, instead of a plurality of binary flags * Process usermodes as strings only. * Nix 'flags', 'flags2' and 'umodes', 's_takes_arg', and 'eof'. * Change update_user_mode() to take a server refnum. * Nix $serverctl(... UMODES) * Change server_is_registered() so it takes a server name and our nickname. * Add server_is_unregistered() which i'll use in the future. * Hook /on server_lost all the time in close_server() by popular request. * Make $version() always return "2.8" since all servers are 2.8 servers. * Check /set auto_rejoin_connect at disconnect-time, instead of connect-time. * Use a "is_server_active()" function instead of "did_server_rejoin_channels" * Move the guts of got_initial_version_28() into server_is_registered() * Call "server_is_registered()" from 001, which loads ircrc among other things. * Reduce 004 so it only sets the server's version string id. * Nix got_initial_version_28
Fix some issues with $numlines()
Clean up after the server lists upon exit, for valgrind users.
* Rename 'dcc()' to 'dcc_cmd()' so we can use dcc as variable
* Garbage collect unused 'irc_path' global variable.
* Add --with-warns to configure to do FreeBSD "WARNS" like compiler checks
* Many hundreds of changes to improve the "quality of code" in epic, including:
* - Treat all literal strings as (const char *) and fix const correctness.
* - Mopping up all remaining const-correctness issues
* - Do not "launder" a (const char *) to a (char *) in string searches, (ala
strchr) but rather return a ssize_t offset value.
* - Particular, MatchingBracket() returns (ssize_t) and not (char *).
* - Eliminate all "shadow" variable names by changing them to something else.
* - Eliminate most function decls that do not include a prototype list.
* - Add prototypes for all extern functions that are missing them.
* - Ensure most function pointers include a prototype list.
* - In term.c, most of those (char *)'s are really (const char *)'s.
* - Explicitly specify 'static' functions as 'static'
* - Ensure every function is either 'static' or has a prototype.
* - Eliminate (unsigned) < (signed) type comparisons.
* Hopefully you should not notice any changes!
Another merge.
* Move add_user_who, add_user_end from parse.c to numbers.c * Add (set|get)_server_max_cached_chan_size(), max chan size for u@h caching. * Add $serverctl(SET|GET <refnum> MAXCACHESIZE), largest channel we do WHO for. * Move 'whobase' call from /on join to /on 324. * Don't call 'whobase' (userhost caching) if too many users on channel.
* Reorganize param list to dgets() to include a length argument * Add (set|get)_server_line_length(), the maximum size of an irc protocol line. * Convert dgets() callers to the new calling style.
* $dccctl() changes as per UPDATES. * Misc bug fixes as per KNOWNBUGS.
Yikes. Merged to become consistent with HEAD. Sorry for all the commits, I'll be quiet again soon. :) -wd
Commit 443 * Uniformly use 32 bit file sizes in dcc. That's the way it has to be. * Split process_incoming_chat into modular functions. It's an experiment. * Remove the old, #if 0'd dcc_getfile_resume. * Remove the second, redundant warning from /window refnum(_or_swap). * Make the ArgList portion of server messages const. All const! Huzzah! * Roll /names, /list, and /mode numeric handlers into numbers.c * Roll "funny" global variables into server-specific variables * Nuke funny.c and funny.h -- huzzah! * /on window_kill provides two args now, $0 is refnum, $1 is name/refnum. * Rename "numeric_banner" to "banner" * Rename "parse_notice" to "p_notice" * In /xecho, rename 'banner' local var to 'want_banner'. * Revamp p_notice to look like and act like p_privmsg as much as possible. * Finish the rest of the larnifications. Done with phase 1. Huzzah!
Commit 436 This commit is deceptive because it is huge in scope but can be explained pretty simply. * Const correctness improvements. * Invert the meaning of 'new_check_flooding' to return TRUE if flooding. * Revamp funny.c, /list, /names, /mode reply handling. * Remove unused joined_nick, public_nick * Change got_initial_version_28() arguments singly and not an array * Change signature of protocol handling to take "command" as an argument * The above change cascades to a lot of other changes. * Allow the /msg'ing of @W<refnum> to msg a window's refnum. * First round of larnification (Protection against unexpected server data) * This involved substantial rewrites of parse.c, and numbers.c * Now "fake" stuff goes through /on odd_server_stuff. * Fix /on invite so it takes 3 arguments, not 2.
Fix all the rest of the compile issues. bleh.
* Remove colon at end of RETURN_MSTR so it is like others. * Unify dgets() and SSL_dgets() * Add a 4th argument to dgets(), an (SSL *) for ssl reads, NULL for normals * Integrate SSL stuff more tightly by removing unecessary #ifdef's * Change 'enable_ssl' to 'try_ssl' to avoid confusion with 'ssl_enabled' * Remove uneccesary members of (Window) * #include "functions.h" in any file implementing built in functions. * panic if ssl op attempted on non-ssl connection. * Don't call functions in RETURN_* macros. (they're evaled twice) * Nuke #ifdef 0'd uses of 'ceiling_of_display'
* Use server_list_size() and not number_of_servers outside of server.c * Use NOSERV and not -1 for "no server" * Use (Timeval) and not (struct timeval) * Fix (get|set)_server_sent_*() et al to take server refnum. * Use parse_server_index() and not my_atol() to parse server refnums * re-indent quotecmd * Rename is_server_connected() to is_server_registered * Make /quote work as long as server is open (not registered) * Use send_to_aserver() when it can avoid setting from_server unecessarily * Change sent_to_server and clear_sent_to_server to (set|get)server_sent(). * Change doing_* to get_server_doing_*. * Use (unsigned short) and not (u_short) * Use (unsigned long) and not (u_long) * Make output_reject_ctcp() take a refnum * Lock a dcc while we are connecting it, just in case. ;-) * Fix /dcc send -p <port> * Store protocol enforcements as (get|set)_server_protocol_state(). * Use (Stat) and not (struct stat) * Rewrite $timerctl() so it works like $logctl() * Rename is_server_connected() to is_server_registered() * Fix an off-by-one error with /FOR ... IN ... * Keep track of both readable and writable fd's with newio stuff. * Convert server_list to an array of pointers * When user /server -delete's, leave a gap, don't change refnums around. * Nix code that handles deleting server refnums. * New function, new_open_for_writing(), for when we do nonblocking connects. * Change new_open() to deregister fd as "writable" * Renovate the notify stuff to take refnums and not just use from_server. * Renovate /WHO, /ISON, /USERHOST to take refnums and not just use from_server. * Make everything that uses server_list[] use get_server() instead. * Make everything capable of dealing with "gaps" in server_list[]. * Use a bunch of macros, to handle with getting and setting server attrs. * Make as much as possible use refnums as params and not from_server. * And a lot of other stuff...
Another round of epic5 changes... * Make $B, $., $,, $:, $;, $I, /WAIT stuff server specific, from epic5 * Make tracking of doing_(privmsg|notice|ctcp) server specific, from epic5 * Fixes for Const Correctness.
* Remove /set suppress_server_motd which didn't really work anyways. * Add function decls for bsd_arc4* to ircaux.c * Always check (window->hold_mode || window->autohold) together! * Unhold_window()s only if both hold_mode and autohold are off! * unhold_window()s instead of doing scrollback_end for robustness. * Attempt to recover from the "output is below bottom of window" bug, whine.
Ach. Here goes nothing. Major commit which does many things, but the most prominent of which is the final integration of the scrollback buffer with the hold buffer. This fixes several annoying "features" and introduces a small truckload of new features which have been requested recently. Please see the KNOWNBUGS or UPDATES file for more info, since I don't want this message to be ridiculously long.
* Added support for CHANMODES, PREFIX and CHANTYPES in the processing of modes. If the server doesn't support these, then hopefuly sane default strings are chosen, and these _don't_ include the wacky extensions that have been added over the years, so conceivably, this could break things like halfops and ban/invite exemptions. * Stored the UMODES field from the 004 numeric in the server data. Can be retrieved with $serverctl(get x umodes). * Altered "/msg @$fd" so that $fd must be a number, otherwise, it will be treated as a privmsg. * Added $xdebug() which returns all single bit flags with + or - added as appropriate. /xdebug $xdebug() is a no-op. * Fixed an /xdebug bug in which - would cause all subsequent flags to be switched off. For bug compatibility, it still works this way, but you can specify + to turn all subsequent values on. * Altered m_sc3cat_s() to call m_sc3cat rather than m_c3cat, which results in a cleaner string. Examination of the uses of this function showed that they all dealt with this bug in some way. * Altered $which() to call path_search() directly, rather than uzfopen(). It may be useful to add a flag to path_search indicating which attributes we are searching for. This could cause problems since the old method would skip over a file if it wasn't readable. * Added clue variables for $unsplit().
* Added 005 framework. The internal interfaces to this are get_server_005() and set_server_005(). The scripting interface is $serverctl([gs]et [ref] 005 [set] [[value]]). Unsetting is done by setting a null value, and $serverctl(..set..) will return 1 for set or 0 for unset. All values are reset upon successful reconnect. * Altered $rand() to be more conservative when drawing on the random data source. It should be faster for lower max-values now. * Altered $splice() somehow. I think it was for the clue variables. It didn't improve the speed due to other problems, but it still works.
* Fix parse_server_info() to properly handle ipv6 p-addrs * Add support for [<ipv6 p-addr>] to parse_server_info(). * Fix an off-by-one error in Getaddrinfo. Bleh. * Fix a malloc() size mistake in Getaddrinfo.
Functionally complete the protocol independance of DCC. There are no more ISA's in server code or dcc. To phrase that differently, every IPv4 assumption in the server code or dcc has been identified and conditionalized. Adding support for ipv6 is now simply a matter of adding the conditionals to make it happen. Now we need to test what we have here and see how badly i've broken things. The only remaining IPv4 customers are /WINDOW CREATE (which is likely to stay ipv4 only for the time being) and $iptolong() and $longtoip() which clearly are IPv4 only concepts.
Move the transition macros into ircaux.h. Migrate the server over into protocol independance. That was pretty painless. If you're reading this with rapt attention, please understand that 'protocol independance' does not mean "multi-protocol support". What it means is that instead of using (struct sockaddr_in)s, we're using (struct sockaddr_storage)s, and we conditionalize all IPv4 specific code to work only on (struct sockaddr_storage)s whose family has been set to AF_INET (ipv4). Once total protocol independance has been acheived, adding support for IPv6 will be a matter of adding conditionals to handle it in the same manner IPv4 is already supported. So the current project i'm working on is the protocol independance of epic. Multi-protocol support comes later.
Nuke "local_addr" in server struct in favor of "local_sockname" Convert server to use "connectory" Convert wserv to use "connectory" Nuke connect_by_number() Reorder functions in network.c
This is a huge monster commit -- I put the particulars of the commit in KNOWNBUGS. I will only say here that this fixes a lot of issues with DCC and introduces a lot of protocol independance into the networking API that epic works with. Good things will continue to come in the future!
The last round of changes for tonight. More of the same... I promise! I'll document the user visible parts of this soon! Really! =) I mean it!
* Applied Ay-Ars patch (with a few modifications) which fully melds ssl into the server spec, which is now server:port:pass:nick:group:proto where proto currently is "irc" or "irc-ssl". * Removed -ssl flags from "/window server" and /server. * Ay-Ars patch also includes a new function, $servertype() which returns the proto field by way of extrapolation, (it is not the exact text entered into that field). * Entering a server spec in a /server or "/window server" that currently exists, but which has different additional field values normally alters the current spec to conform to the new spec. This doesn't work with the proto field. This is probably a bug. I am somewhat uncomfortable with all of this. I would like to alter add_to_server_list to be the one true reference for decoding the server spec and simplify the other functions to only breaking it into server, port and "additional". This may be too big a change currently.
Bulk commit:
1) Fix typos in KNOWNBUGS
2) Flesh out the things in UPDATES that need documenting
3) Add target_file_write() to files.[ch] for send_text()'s use.
4) Create "reg.h", to hold protos for reg.c
5) Add some missing protos.
6) If /redirect'ing to 0 or to @<fd>, don't output to the screen.
7) Messages sent to target 0 are dropped (/redirect 0 now actually sends
to target 0, and epic drops it.) You can /query 0 now if you want.
8) Messages sent to @NUMBER get sent to the NUMBER file, where NUMBER is
returned by $open(). For example, to paste stuff to log but not to screen:
@fd = open(FILE w)
query @$fd
<paste some stuff>
query
@close($fd)
or
@fd = open(FILE w)
redirect @$fd lastlog foo
@close($fd)
9) Add a function to reg.c to compile a pattern into a regex -- experimental.
10) Fix some compile warnings regarding ssl.
Applied the SSL patch from ay-ar. Details are in README.SSL. This works well at this point, but there may be teething problems.
* Added a url encoded message switch to /xquote, designed with socks proxy scripts in mind. eg: "xquote -u $urlencode(ISON xxx)%0a" works. One problem with this is that the last command works, and can be used to get around the built in barriers for such things. Is this good or bad? * -- and any other invalid option will end /xquote switch processing now. * Added $servergroup() and $serverourname(). These were copied from $servername() and behave in much the same way, differing in their return values.
Implement the "redirect sink", which instead of sending all output to another irc server, drops the output entirely. This is used by /flush (which is now safe to use again) and can be used by the user via /redirect 0 to execute a server query but suppress it's output.
Oh you didn't know? Server groups, try one!
It would help if i commited the header file changes. d'uh!
Commit #47
* /window server resets the "reconnect attempt" counter ala /server
* /for i in <pattern> {...} now reserved, and emits an error.
* "make depend" done again.
* "my_next_expr" revamped, extra argument added
* "next_expr_with_type" like "next_expr" but first char is "type".
* The /for i in (list) and /for i from x to y commands now use the
above cruft.
* This is epic4-0.9.16-10
* "break_args" now uses "next_expr_with_type"
* "do_log" should use localtime(3) and not gmtime(3), duh.
* "clear_reconnect_counts" is now an extern function from server.c
Roll get_connected() into reconnect() and abolish all uses of get_connected(). Things are starting to look good here!
Argh!
Fix some "issues" with compilation.
Stage 2 -- what am i getting into? This is the second stage of the server connection closed coping mechanism. This will be tested, bugs may ensue!
Initial import into CVS
Initial revision
| CVS Admin |
Powered by ViewCVS 0.9.2 |