CVS log for epic5/source/newio.c

Epicsol.org
(back) Up to [Epic CVS] / epic5 / source

Request diff between arbitrary revisions


Default branch: MAIN
Bookmark a link to: HEAD / (download)

Revision 1.68 / (view) - annotate - [select for diffs] , Fri Apr 4 03:51:05 2008 UTC (5 months ago) by jnelson
Branch: MAIN
CVS Tags: epic5-0_3_9, epic5-0_3_8, HEAD
Changes since 1.67: +4 -3 lines
Diff to previous 1.67
* Roll in a bunch of changes from larne to make epic5 more vms-friendly
* Rename if.h -> ifcmd.h  (larne) -- Make sure you rerun configure!
* Run make depend to pick up name change of if.h
* Check for <sys/param.h> in configure (larne)
* Extern funcs are case insensitive in strict c90, fix (larne)
* Rename options -> options.h since vms requires a dot in filename (larne)
* Change "readonly" -> "rdonly" since "readonly" is a symbol in vms. (larne)
* Pull in "compat.h" for gailib.c and glob.c (larne)
* Set stdout to be explciitly line buffered at startup (larne)
* Returning a value from void functino forbidden by strict c90. fix (larne)
* Fix some compiler warnings that were lying around.
* There are more changes forthcoming, these were the easy ones.

Revision 1.67 / (view) - annotate - [select for diffs] , Fri Jul 20 21:29:32 2007 UTC (13 months, 2 weeks ago) by jnelson
Branch: MAIN
CVS Tags: epic5-0_3_7, epic5-0_3_6, epic5-0_3_5
Changes since 1.66: +11 -9 lines
Diff to previous 1.66
Remove u_* bsd-isms so we can compile with -ansi on linux.

Revision 1.66 / (view) - annotate - [select for diffs] , Mon Jun 25 21:09:29 2007 UTC (14 months, 2 weeks ago) by jnelson
Branch: MAIN
Changes since 1.65: +62 -46 lines
Diff to previous 1.65
* Add new level SYSERR (see UPDATES)
* Add a server refnum to syserr() to send the syserr to the proper window.
* Add a server refnum to new_open() so we can pass it to syserr().
* Add new flag to /XECHO, /XECHO -AS (output to all windows on server)
* This should make syserrs go to the "correct window" most of the time (larne)

Revision 1.65 / (view) - annotate - [select for diffs] , Thu Apr 12 02:24:14 2007 UTC (16 months, 4 weeks ago) by jnelson
Branch: MAIN
CVS Tags: epic5-0_3_4, epic5-0_3_3
Changes since 1.64: +18 -18 lines
Diff to previous 1.64
* Add arg to panic() controlling whether panic is sent via QUIT (rb black)

Revision 1.64 / (view) - annotate - [select for diffs] , Sat Feb 3 15:40:16 2007 UTC (19 months ago) by jnelson
Branch: MAIN
Changes since 1.63: +13 -2 lines
Diff to previous 1.63
* Interrogate, and pass upwards, the socket error from getsockopt()
for nonblocking connects, and then output that error to the user.
Requested by twincest.

Revision 1.63 / (view) - annotate - [select for diffs] , Sat Jan 27 18:47:03 2007 UTC (19 months, 1 week ago) by jnelson
Branch: MAIN
Changes since 1.62: +4 -2 lines
Diff to previous 1.62
* 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)

Revision 1.62 / (view) - annotate - [select for diffs] , Sat Jan 13 04:14:23 2007 UTC (19 months, 3 weeks ago) by jnelson
Branch: MAIN
Changes since 1.61: +3 -4 lines
Diff to previous 1.61
* Fix from black for 'save' script, to save notify nicks.
* Fix from larne for configure checks for tcl for solaris (ick)
* Fix solaris ports support, inspired by patch from larne, rb zlonix

Revision 1.61 / (view) - annotate - [select for diffs] , Sun Oct 8 13:00:08 2006 UTC (23 months ago) by jnelson
Branch: MAIN
CVS Tags: epic5-0_3_2
Changes since 1.60: +3 -2 lines
Diff to previous 1.60
Fix some bugs with /window query that kreca found.

Revision 1.60 / (view) - annotate - [select for diffs] , Fri Jul 28 02:50:40 2006 UTC (2 years, 1 month ago) by jnelson
Branch: MAIN
Changes since 1.59: +7 -5 lines
Diff to previous 1.59
* Fix breakage for solaris found by zlonix
* Fix %{2}+ so it behaves like %+ and not like %{1}+, as per the docs.

Revision 1.59 / (view) - annotate - [select for diffs] , Sat Jul 1 05:53:15 2006 UTC (2 years, 2 months ago) by jnelson
Branch: MAIN
CVS Tags: epic5-0_3_1
Changes since 1.58: +5 -5 lines
Diff to previous 1.58
Fix cut & paste error. doh.

Revision 1.58 / (view) - annotate - [select for diffs] , Sat Jul 1 03:17:12 2006 UTC (2 years, 2 months ago) by jnelson
Branch: MAIN
Changes since 1.57: +189 -1 lines
Diff to previous 1.57
* 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!

Revision 1.57 / (view) - annotate - [select for diffs] , Tue Jun 27 00:42:35 2006 UTC (2 years, 2 months ago) by jnelson
Branch: MAIN
Changes since 1.56: +3 -1 lines
Diff to previous 1.56
* Support cast5/blowfish encryption a la ircII.
* Fix build for non-ssl users.

Revision 1.56 / (view) - annotate - [select for diffs] , Fri Jun 23 04:03:11 2006 UTC (2 years, 2 months ago) by jnelson
Branch: MAIN
Changes since 1.55: +3 -1 lines
Diff to previous 1.55
* Support AI_ADDRCONFIG in our builtin AI_MASK/getaddrinfo().
* Make set[_non]_blocking extern.
* Support NEWIO_SSL_CONNECT as a new_open() type.
* Add a new ssl_connect() io callback function for NEWIO_SSL_CONNECT.
* New scripts from weirdo: autojoin, autoquery, floodprot, renumber
* New version of reconnect script from weirdo.
* GC the fixed-alist support (last used by /quote and protocol handler)
* Reorg server SSL negotation stuff to be nonblocking. yay!
* Comment all sorts of stuff in ssl.c.

Revision 1.55 / (view) - annotate - [select for diffs] , Sun Oct 2 03:18:45 2005 UTC (2 years, 11 months ago) by jnelson
Branch: MAIN
CVS Tags: epic5-0_2_0, epic5-0_0_8, epic5-0_0_7
Changes since 1.54: +18 -2 lines
Diff to previous 1.54
* Add support for dgets buffer type -2 (only return full buffers)
* Use buffer type -2 for reading nonblocking dns addrs, fixes probs on solaris.

Revision 1.54 / (view) - annotate - [select for diffs] , Tue Aug 9 01:01:05 2005 UTC (3 years, 1 month ago) by jnelson
Branch: MAIN
CVS Tags: epic5-0_0_6
Changes since 1.53: +2 -2 lines
Diff to previous 1.53
* Improve /dcc get
* Fix warnings

Revision 1.53 / (view) - annotate - [select for diffs] , Fri May 20 12:44:31 2005 UTC (3 years, 3 months ago) by jnelson
Branch: MAIN
Changes since 1.52: +10 -1 lines
Diff to previous 1.52
* Add marshalling functions for getaddrinfo()
* Use getaddrinfo marshalls + dgets to simulate nonblocking dns lookups.
* New newio io type, "NULL" which i'll probably whack later.

Revision 1.52 / (view) - annotate - [select for diffs] , Tue May 3 13:37:40 2005 UTC (3 years, 4 months ago) by jnelson
Branch: MAIN
Changes since 1.51: +114 -1 lines
Diff to previous 1.51
Add support from larne for solaris ports, which I modified up a bit, so if
there are any problems, blame me, and not him!

Revision 1.51 / (view) - annotate - [select for diffs] , Fri Apr 29 01:39:25 2005 UTC (3 years, 4 months ago) by jnelson
Branch: MAIN
Changes since 1.50: +12 -2 lines
Diff to previous 1.50
* Change /on leave to /on part.
* Only ever do one io event per call through select() or poll()
* Do put_echo() and not add_to_screen() in /window echo so it can be logged

Revision 1.50 / (view) - annotate - [select for diffs] , Mon Mar 28 23:53:58 2005 UTC (3 years, 5 months ago) by jnelson
Branch: MAIN
CVS Tags: epic5-0_0_5
Changes since 1.49: +45 -30 lines
Diff to previous 1.49
* Take a new arg to new_open() to control whether INFO -- errors are output.
* Don't output the "INFO --" things for dcc or execs

Revision 1.49 / (view) - annotate - [select for diffs] , Sun Mar 20 20:50:18 2005 UTC (3 years, 5 months ago) by jnelson
Branch: MAIN
Changes since 1.48: +18 -16 lines
Diff to previous 1.48
Fix fd leak, observed by ce.

Revision 1.48 / (view) - annotate - [select for diffs] , Sat Mar 19 03:55:55 2005 UTC (3 years, 5 months ago) by jnelson
Branch: MAIN
Changes since 1.47: +4 -3 lines
Diff to previous 1.47
* Change "ERROR --" to "INFO --" to not alarm people as much.
* Change a few other warnings to not be so alarming.
* Change new_realloc() to not move ptr if it is big enough to hold new size.
* Fix all the status_* sub-formats to not have any hardcoded size limits.

Revision 1.47 / (view) - annotate - [select for diffs] , Sun Mar 6 21:09:37 2005 UTC (3 years, 6 months ago) by jnelson
Branch: MAIN
CVS Tags: epic5-0_0_4
Changes since 1.46: +2 -1 lines
Diff to previous 1.46
* Prefer timers over i/o to prevent polling loop panics.

Revision 1.46 / (view) - annotate - [select for diffs] , Sun Mar 6 04:42:16 2005 UTC (3 years, 6 months ago) by jnelson
Branch: MAIN
Changes since 1.45: +8 -6 lines
Diff to previous 1.45
Don't emit spurious warnings for control-c

Revision 1.45 / (view) - annotate - [select for diffs] , Fri Mar 4 05:30:59 2005 UTC (3 years, 6 months ago) by jnelson
Branch: MAIN
Changes since 1.44: +1 -5 lines
Diff to previous 1.44
* Fix SSL with pthreads -- need to establish SSL before calling SSL_read!
* Fix compiling with kqueue, call it --with-multiplex=freebsd-kqueue
* Hide SSL capability behind "client_ssl_enabled()", nix all #ifdef HAVE_SSL

Revision 1.44 / (view) - annotate - [select for diffs] , Fri Mar 4 05:09:01 2005 UTC (3 years, 6 months ago) by jnelson
Branch: MAIN
Changes since 1.43: +1 -4 lines
Diff to previous 1.43
Fix SSL with pthreads.

Revision 1.43 / (view) - annotate - [select for diffs] , Fri Mar 4 00:57:45 2005 UTC (3 years, 6 months ago) by jnelson
Branch: MAIN
Changes since 1.42: +6 -10 lines
Diff to previous 1.42
* Add --with-multiplex=[select|poll|kqueue|pthread] to configure
* Check thread-safety of SSL in configure when using pthreads.
* Don't unconditionally skip leading :'s in symbol names.
* When calling functions, handle skipping leading :'s specially.
* Add support for pthread locking for ssl to ssl.c
* Add %{2}+ and %{3}+ status expandos that only show the mode string.
* Use AI_ADDRCONFIG flag to tell getaddrinfo() we only want addrs we can use.

Revision 1.42 / (view) - annotate - [select for diffs] , Thu Mar 3 02:39:20 2005 UTC (3 years, 6 months ago) by jnelson
Branch: MAIN
Changes since 1.41: +2 -2 lines
Diff to previous 1.41
Fix Dain Bramage.

Revision 1.41 / (view) - annotate - [select for diffs] , Thu Mar 3 02:22:12 2005 UTC (3 years, 6 months ago) by jnelson
Branch: MAIN
Changes since 1.40: +4 -16 lines
Diff to previous 1.40
Fix more compiler warnings.

Revision 1.40 / (view) - annotate - [select for diffs] , Thu Mar 3 02:10:39 2005 UTC (3 years, 6 months ago) by jnelson
Branch: MAIN
Changes since 1.39: +234 -79 lines
Diff to previous 1.39
* 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.

Revision 1.39 / (view) - annotate - [select for diffs] , Tue Mar 1 00:54:55 2005 UTC (3 years, 6 months ago) by jnelson
Branch: MAIN
Changes since 1.38: +3 -2 lines
Diff to previous 1.38
* Implement a proper built in /INVITE command.  See UPDATES
* Revert 2.8script change.
* Add "subpackage" command, which i'll document later.
* Package up 'global', and '2.8script' and 'basical' so they can be /unload'ed.
* Don't load "global" if user has their own startup script.
* Don't load "global" if the -q option is set, either.
* Thus, the "global" script acts as a default "epicrc" for those without one.
* THIS IS BACKWARDS INCOMPATABLE.  SEE UPDATES FOR IMPORTANT INFORMATION.
* Nix the "loading_global" variable, only used by hooks.
* Fix /on 005 so it shows the /on 005's and not all numeric hooks.
* If Accept() fails, tell the user straight-way so I can debug this.
* Fix /window name - so it redraws the status bar.

Revision 1.38 / (view) - annotate - [select for diffs] , Sun Feb 27 04:47:46 2005 UTC (3 years, 6 months ago) by jnelson
Branch: MAIN
Changes since 1.37: +12 -2 lines
Diff to previous 1.37
* Fix accept() with pthreads.  Nonblocking + pthreads == Bad.
* Throw away all unused addrs when we are registered, to ensure no reconnects.

Revision 1.37 / (view) - annotate - [select for diffs] , Fri Feb 25 01:27:12 2005 UTC (3 years, 6 months ago) by jnelson
Branch: MAIN
Changes since 1.36: +26 -2 lines
Diff to previous 1.36
Try to auto-repair select(2) failures.

Revision 1.36 / (view) - annotate - [select for diffs] , Mon Feb 21 14:07:43 2005 UTC (3 years, 6 months ago) by jnelson
Branch: MAIN
Changes since 1.35: +2 -2 lines
Diff to previous 1.35
Fix more bugs.

Revision 1.35 / (view) - annotate - [select for diffs] , Sat Feb 19 14:25:08 2005 UTC (3 years, 6 months ago) by jnelson
Branch: MAIN
Changes since 1.34: +7 -5 lines
Diff to previous 1.34
Remove a panic that broke wait().

Revision 1.34 / (view) - annotate - [select for diffs] , Sat Feb 19 05:15:15 2005 UTC (3 years, 6 months ago) by jnelson
Branch: MAIN
Changes since 1.33: +3 -2 lines
Diff to previous 1.33
Fix a minor brain-o.

Revision 1.33 / (view) - annotate - [select for diffs] , Sat Feb 19 04:22:26 2005 UTC (3 years, 6 months ago) by jnelson
Branch: MAIN
Changes since 1.32: +741 -312 lines
Diff to previous 1.32
* Refactor $sar() and $msar() so they share as much code as possible.
* Refactor newio, support select/kqueue/poll (#define's in newio.h)
* ... Getting closer to not needing select!
* Fix SSL.
* Fix a bunch of misc compiler warnings
* Remove restrictions on /QUOTE, so there!
* Add pthread support to newio for larne. HUZZAH!
* I'm sure a zillion things are broken, so it's time to test!

Revision 1.32 / (view) - annotate - [select for diffs] , Thu Feb 10 05:10:57 2005 UTC (3 years, 6 months ago) by jnelson
Branch: MAIN
Changes since 1.31: +266 -272 lines
Diff to previous 1.31
* Add a dgets_buffer() to inject data into dgets() system.
* Fix up dgets() so it has read() like semantics.
* Fix up dgets() callers to use it like a read() type function.
* Turn off /xdebug server_connected hardcoded at startup for now.
* Fix up unix_* io functions to use dgets_buffer().
* Fix do_filedesc() to repeatedly call callback until buffer is clean
* Move set_socket_options() to network.c, make do_filedesc() global func

Revision 1.31 / (view) - annotate - [select for diffs] , Wed Feb 9 03:26:58 2005 UTC (3 years, 6 months ago) by jnelson
Branch: MAIN
Changes since 1.30: +2 -1 lines
Diff to previous 1.30
Fix minor bogon (maybe)

Revision 1.30 / (view) - annotate - [select for diffs] , Wed Feb 9 02:23:25 2005 UTC (3 years, 6 months ago) by jnelson
Branch: MAIN
Changes since 1.29: +217 -442 lines
Diff to previous 1.29
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.

Revision 1.29 / (view) - annotate - [select for diffs] , Sat Feb 5 00:08:11 2005 UTC (3 years, 7 months ago) by jnelson
Branch: MAIN
Changes since 1.28: +43 -26 lines
Diff to previous 1.28
* 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.

Revision 1.28 / (view) - annotate - [select for diffs] , Wed Jan 12 00:12:20 2005 UTC (3 years, 7 months ago) by jnelson
Branch: MAIN
CVS Tags: epic5-0_0_3
Changes since 1.27: +2 -1 lines
Diff to previous 1.27
* Refactor window_check_servers() to work with server's current window only.
* Roll forward all the rest of changes from epic4 (i think)
* Add /ON NEW_NICKNAME, when epic needs a new nickname from you.
* Run 'make depend', fix compile errors, fix 'environment' script

Revision 1.27 / (view) - annotate - [select for diffs] , Fri Jan 7 07:09:46 2005 UTC (3 years, 8 months ago) by jnelson
Branch: MAIN
Changes since 1.26: +24 -5 lines
Diff to previous 1.26
Fix a defect where, if two fd's were ready at the same time (say, dcc chats)
and in the /on for the first one you new_close() the second one, epic would
panic trying to process the 2nd connection ("got a callback, not set up").
Now we only do that panic if the 2nd connection looks like it's still valid,
which it definitely won't be after a new_close().

This bug was discovered by ce.

Revision 1.26 / (view) - annotate - [select for diffs] , Wed May 5 15:43:27 2004 UTC (4 years, 4 months ago) by jnelson
Branch: MAIN
Changes since 1.25: +2 -1 lines
Diff to previous 1.25
Fix bugorz.

Revision 1.25 / (view) - annotate - [select for diffs] , Sun Mar 28 16:26:08 2004 UTC (4 years, 5 months ago) by jnelson
Branch: MAIN
Changes since 1.24: +2 -1 lines
Diff to previous 1.24
Ick.  Hack select__do_wait() to prefer timers over i/o.   This is a nasty
hack, but i think hsoc has suffered enough already.

Revision 1.24 / (view) - annotate - [select for diffs] , Thu Mar 25 04:41:18 2004 UTC (4 years, 5 months ago) by jnelson
Branch: MAIN
Changes since 1.23: +4 -1 lines
Diff to previous 1.23
Add some help for polling loop detections.

Revision 1.23 / (view) - annotate - [select for diffs] , Sun Jan 25 07:04:49 2004 UTC (4 years, 7 months ago) by jnelson
Branch: MAIN
CVS Tags: epic5-0_0_2
Changes since 1.22: +48 -9 lines
Diff to previous 1.22
Expound a bit more in newio.c about the changes and purpose.

Revision 1.22 / (view) - annotate - [select for diffs] , Sun Jan 25 06:48:02 2004 UTC (4 years, 7 months ago) by jnelson
Branch: MAIN
Changes since 1.21: +15 -50 lines
Diff to previous 1.21
* Abstract the reading function out of dgets() via an argument
* Add unix_read(), the default reader for dgets()
* Add ssl_reader(), a dgets-like reader for SSL connections
* Add server_ssl_reader(), a dgets reader for servers using SSL.
* I probably broke SSL servers by doing this -- report bugs please!

Revision 1.21 / (view) - annotate - [select for diffs] , Fri Jan 23 08:03:53 2004 UTC (4 years, 7 months ago) by jnelson
Branch: MAIN
Changes since 1.20: +396 -102 lines
Diff to previous 1.20
* 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().

Revision 1.20 / (view) - annotate - [select for diffs] , Tue Jan 20 16:11:54 2004 UTC (4 years, 7 months ago) by jnelson
Branch: MAIN
Changes since 1.19: +28 -6 lines
Diff to previous 1.19
* Hide new_select() behind wait_select(), which will hold the result fd_set's
* Don't make do_filedesc() take fd_set's, but rather get them from wait_select.
* Be cautious and when redrawing one screen, redraw all screens.
* Refactor io() some more; no explicit dependancy on select() now
* Refactor io(), optimize placement of some of the post-select operations.
* When wserv changes size, recalculate windows, and allow io() to redraw it.

Revision 1.19 / (view) - annotate - [select for diffs] , Thu Jan 15 22:31:03 2004 UTC (4 years, 7 months ago) by jnelson
Branch: MAIN
Changes since 1.18: +46 -3 lines
Diff to previous 1.18
* 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!

Revision 1.18 / (view) - annotate - [select for diffs] , Mon Jan 5 16:24:40 2004 UTC (4 years, 8 months ago) by jnelson
Branch: MAIN
Changes since 1.17: +4 -2 lines
Diff to previous 1.17
* 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.

Revision 1.17 / (view) - annotate - [select for diffs] , Sat Dec 6 02:03:11 2003 UTC (4 years, 9 months ago) by jnelson
Branch: MAIN
CVS Tags: epic5-0_0_1, epic4-1_2_5, epic4-1_2_4, epic4-1_2_3
Changes since 1.16: +3 -2 lines
Diff to previous 1.16
* The last argument to open_file_for_write() needs to be lowercase.
* Add $numlines() from fudd.
EPIC4-1.2.3!

Revision 1.16 / (view) - annotate - [select for diffs] , Fri May 9 03:29:52 2003 UTC (5 years, 4 months ago) by jnelson
Branch: MAIN
CVS Tags: epic4-1_2_2, epic4-1_2_1, epic4-1_2_0, epic4-1_1_17, epic4-1_1_16, epic4-1_1_15, epic4-1_1_14, epic4-1_1_13, epic4-1_1_12
Changes since 1.15: +12 -5 lines
Diff to previous 1.15
* 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!

Revision 1.15 / (view) - annotate - [select for diffs] , Thu Apr 24 20:49:25 2003 UTC (5 years, 4 months ago) by jnelson
Branch: MAIN
Changes since 1.14: +2 -2 lines
Diff to previous 1.14
Nominally remove all uses of "unsafe" functions: (Commit 506)
* Convert all uses of strcpy() to strlcpy()
* Convert all uses of strcat() to strlcat()
* Convert all uses of strmcpy() to strlcpy()
* Convert all uses of strmcat() to strlcat()
* Convert all uses of sprintf() to snprintf()
* As much as possible, use 'sizeof var' in snprintf/strlcpy/strlcat.
* Qualify the size of some global vars so we can sizeof() them.
* Nuke strmcpy(), strmcat(), strmcat_ue(), strmccat(),
* Change strmopencat() to strlopencat().
* Change strmpcat() to strlpcat().
* Fix switch_hostname so it doesn't return a (const) string.
* Fix TimerTimeout so it doesn't return a (const) Timeval.
* Change things like (ret) to do ret while (0); for when "ret" is "{}".
* Fix initialization for load_level
* Stop passing in static strings into io(), so we can modify them.
* Make messages passed to io() more informative to the user.
* Fix CTCP FINGER handler not to assume (struct pw) strings can be overwritten.
* Use (socklen_t) and not an (int) for socket sizes.
* Don't return a value in a void function...
* Don't use return value of process_dcc_chat_ctcps() for assignment.
* Don't put semicolons after function bodies
* Fix $getopt() to save 'input_size' so we can use it with strl*().
* Convert all uses of stpcpy() to strlcat() and strlopencat().
* Nix checks for stpcpy() in configure -- regen configure.

Revision 1.6.2.2 / (view) - annotate - [select for diffs] , Mon Mar 24 17:53:01 2003 UTC (5 years, 5 months ago) by wd
Branch: wd-devel
Changes since 1.6.2.1: +54 -28 lines
Diff to previous 1.6.2.1 to branch point 1.6 to next main 1.7
Another merge.

Revision 1.14 / (view) - annotate - [select for diffs] , Sun Mar 23 02:48:33 2003 UTC (5 years, 5 months ago) by jnelson
Branch: MAIN
CVS Tags: epic4-1_1_11
Changes since 1.13: +27 -8 lines
Diff to previous 1.13
* 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.

Revision 1.13 / (view) - annotate - [select for diffs] , Mon Mar 17 19:39:39 2003 UTC (5 years, 5 months ago) by crazyed
Branch: MAIN
Changes since 1.12: +28 -21 lines
Diff to previous 1.12
* $dccctl() changes as per UPDATES.
* Misc bug fixes as per KNOWNBUGS.

Revision 1.6.2.1 / (view) - annotate - [select for diffs] , Thu Feb 27 15:29:56 2003 UTC (5 years, 6 months ago) by wd
Branch: wd-devel
Changes since 1.6: +126 -379 lines
Diff to previous 1.6
Yikes.  Merged to become consistent with HEAD.  Sorry for all the commits,
I'll be quiet again soon. :)
-wd

Revision 1.12 / (view) - annotate - [select for diffs] , Tue Feb 25 23:56:52 2003 UTC (5 years, 6 months ago) by crazyed
Branch: MAIN
Changes since 1.11: +36 -1 lines
Diff to previous 1.11
* CTCP-over-DCC fix.  There are some things that confuse me about the inner
  workings here, so I'm not sure if this fix was done properly, but I did
  a few tests including a DCC send over a SED encrypted DCC and everything
  seems to tick over well.
* Unix socket configure tests as per KNOWNBUGS.
* /set flood_ignore defaulted to off.
* Tuned commandqueues.
* The 324 hook is now called for joins as well.
* %{1}D status setting as per UPDATES.
* DCC hold mode as per UPDATES.

Revision 1.11 / (view) - annotate - [select for diffs] , Thu Dec 26 16:40:31 2002 UTC (5 years, 8 months ago) by jnelson
Branch: MAIN
CVS Tags: epic4-1_1_10
Changes since 1.10: +4 -2 lines
Diff to previous 1.10
Fix all the rest of the compile issues. bleh.

Revision 1.10 / (view) - annotate - [select for diffs] , Thu Dec 26 05:46:12 2002 UTC (5 years, 8 months ago) by jnelson
Branch: MAIN
Changes since 1.9: +5 -1 lines
Diff to previous 1.9
Fix build error on non-ssl systems.

Revision 1.9 / (view) - annotate - [select for diffs] , Mon Dec 23 15:11:27 2002 UTC (5 years, 8 months ago) by jnelson
Branch: MAIN
CVS Tags: epic4-1_1_9, epic4-1_1_8
Changes since 1.8: +52 -373 lines
Diff to previous 1.8
* 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'

Revision 1.8 / (view) - annotate - [select for diffs] , Thu Dec 19 03:22:59 2002 UTC (5 years, 8 months ago) by jnelson
Branch: MAIN
Changes since 1.7: +37 -10 lines
Diff to previous 1.7
* 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...

Revision 1.7 / (view) - annotate - [select for diffs] , Tue Nov 26 23:03:13 2002 UTC (5 years, 9 months ago) by jnelson
Branch: MAIN
Changes since 1.6: +2 -2 lines
Diff to previous 1.6
* Change do_input_timeouts() to a timer callback.
* Nuke the now unused global /wait stuff
* Revamp timer.c so you can add/change/delete/update timers during a timer
* Change add_timer() so it takes a winref not a window pointer.
* Make the "key timeout" thing happen on demand instead of a recurring timer
* Remove the recurring "key timeout" timer.
* Remove the 'key timeout' thing from io(), also 'first time' stuff.
* Call get_time() after select() in io().
* Fix two compile bugs found by larne.
* Fix bug when you did /flush on a /clear window.

Revision 1.6 / (view) - annotate - [select for diffs] , Wed Jul 17 21:52:52 2002 UTC (6 years, 1 month ago) by jnelson
Branch: MAIN
CVS Tags: epic4-1_1_7, epic4-1_1_6
Branch point for: wd-devel
Changes since 1.5: +31 -4 lines
Diff to previous 1.5
Update copyright notices and copyright dates.

Revision 1.5 / (view) - annotate - [select for diffs] , Thu May 23 02:35:17 2002 UTC (6 years, 3 months ago) by jnelson
Branch: MAIN
Changes since 1.4: +1 -1 lines
Diff to previous 1.4
No functional changes, just removal of unecessary whitespace at the end
of lines.  From adm.

Revision 1.4 / (view) - annotate - [select for diffs] , Tue Apr 9 17:11:26 2002 UTC (6 years, 5 months ago) by jnelson
Branch: MAIN
CVS Tags: epic4-1_1_5, epic4-1_1_4
Changes since 1.3: +4 -1 lines
Diff to previous 1.3
Fix new_select() to not expose a file descriptor with ready (cached) data
unless the caller said they were interested in that file descriptor.

Revision 1.3 / (view) - annotate - [select for diffs] , Fri Jan 25 21:57:10 2002 UTC (6 years, 7 months ago) by crazyed
Branch: MAIN
CVS Tags: epic4-1_1_3
Changes since 1.2: +222 -0 lines
Diff to previous 1.2
Applied the SSL patch from ay-ar.

Details are in README.SSL.  This works well at this point, but there may
be teething problems.

Revision 1.2 / (view) - annotate - [select for diffs] , Thu Jan 24 18:37:18 2002 UTC (6 years, 7 months ago) by jnelson
Branch: MAIN
Changes since 1.1: +1 -1 lines
Diff to previous 1.1
Actually test for polls correctly in the sub-second-resolution world;
second == 0 and usecond == 0.

Revision 1.1.1.1 / (view) - annotate - [select for diffs] (vendor branch) , Tue Dec 5 00:11:57 2000 UTC (7 years, 9 months ago) by jnelson
Branch: epicsol
CVS Tags: start, epic4_0_9_15, epic4-1_1_1, epic4-1_0_1, epic4-1_0, epic4-0_9_17, epic4-0_9_16, epic4-0_9_15, epic4-0_9_14, epic4-0_10_0, epic-test-tag2, epic-test-tag
Changes since 1.1: +0 -0 lines
Diff to previous 1.1
Initial import into CVS

Revision 1.1 / (view) - annotate - [select for diffs] , Tue Dec 5 00:11:57 2000 UTC (7 years, 9 months ago) by jnelson
Branch: MAIN
Initial revision

This form allows you to request diffs between any two revisions of a file. You may select a symbolic revision name using the selection box or you may type in a numeric name using the type-in text box.

Diffs between and
Type of Diff should be a

View only Branch:
Sort log by:

CVS Admin
Powered by
ViewCVS 0.9.2