CVS log for epic5/include/newio.h

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

Request diff between arbitrary revisions


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

Revision 1.22 / (view) - annotate - [select for diffs] , Mon Jun 25 21:09:29 2007 UTC (15 months, 2 weeks ago) by jnelson
Branch: MAIN
CVS Tags: epic5-0_3_9, epic5-0_3_8, epic5-0_3_7, epic5-0_3_6, epic5-0_3_5, HEAD
Changes since 1.21: +7 -2 lines
Diff to previous 1.21
* 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.21 / (view) - annotate - [select for diffs] , Sat Jul 1 03:17:32 2006 UTC (2 years, 3 months ago) by jnelson
Branch: MAIN
CVS Tags: epic5-0_3_4, epic5-0_3_3, epic5-0_3_2, epic5-0_3_1
Changes since 1.20: +4 -0 lines
Diff to previous 1.20
* 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.20 / (view) - annotate - [select for diffs] , Sat Jun 17 03:04:02 2006 UTC (2 years, 3 months ago) by jnelson
Branch: MAIN
Changes since 1.19: +23 -23 lines
Diff to previous 1.19
* 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.

Revision 1.19 / (view) - annotate - [select for diffs] , Fri May 20 12:44:31 2005 UTC (3 years, 4 months ago) by jnelson
Branch: MAIN
CVS Tags: epic5-0_2_0, epic5-0_0_8, epic5-0_0_7, epic5-0_0_6
Changes since 1.18: +1 -0 lines
Diff to previous 1.18
* 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.18 / (view) - annotate - [select for diffs] , Mon Mar 28 23:53:58 2005 UTC (3 years, 6 months ago) by jnelson
Branch: MAIN
CVS Tags: epic5-0_0_5
Changes since 1.17: +1 -2 lines
Diff to previous 1.17
* 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.17 / (view) - annotate - [select for diffs] , Thu Mar 3 02:10:39 2005 UTC (3 years, 7 months ago) by jnelson
Branch: MAIN
CVS Tags: epic5-0_0_4
Changes since 1.16: +0 -7 lines
Diff to previous 1.16
* 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.16 / (view) - annotate - [select for diffs] , Sun Feb 27 04:47:46 2005 UTC (3 years, 7 months ago) by jnelson
Branch: MAIN
Changes since 1.15: +2 -2 lines
Diff to previous 1.15
* Fix accept() with pthreads.  Nonblocking + pthreads == Bad.
* Throw away all unused addrs when we are registered, to ensure no reconnects.

Revision 1.15 / (view) - annotate - [select for diffs] , Sat Feb 19 04:22:26 2005 UTC (3 years, 7 months ago) by jnelson
Branch: MAIN
Changes since 1.14: +14 -15 lines
Diff to previous 1.14
* 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.14 / (view) - annotate - [select for diffs] , Thu Feb 10 05:10:57 2005 UTC (3 years, 8 months ago) by jnelson
Branch: MAIN
Changes since 1.13: +1 -4 lines
Diff to previous 1.13
* 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.13 / (view) - annotate - [select for diffs] , Wed Feb 9 02:23:25 2005 UTC (3 years, 8 months ago) by jnelson
Branch: MAIN
Changes since 1.12: +10 -25 lines
Diff to previous 1.12
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.12 / (view) - annotate - [select for diffs] , Sun Jan 25 06:48:02 2004 UTC (4 years, 8 months ago) by jnelson
Branch: MAIN
CVS Tags: epic5-0_0_3, epic5-0_0_2
Changes since 1.11: +1 -1 lines
Diff to previous 1.11
* 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.11 / (view) - annotate - [select for diffs] , Fri Jan 23 08:03:53 2004 UTC (4 years, 8 months ago) by jnelson
Branch: MAIN
Changes since 1.10: +94 -10 lines
Diff to previous 1.10
* 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.10 / (view) - annotate - [select for diffs] , Tue Jan 20 16:11:54 2004 UTC (4 years, 8 months ago) by jnelson
Branch: MAIN
Changes since 1.9: +2 -2 lines
Diff to previous 1.9
* 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.9 / (view) - annotate - [select for diffs] , Thu Jan 15 22:31:03 2004 UTC (4 years, 8 months ago) by jnelson
Branch: MAIN
Changes since 1.8: +3 -2 lines
Diff to previous 1.8
* 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.8 / (view) - annotate - [select for diffs] , Fri May 9 03:29:52 2003 UTC (5 years, 5 months ago) by jnelson
Branch: MAIN
CVS Tags: epic5-0_0_1, epic4-1_2_5, epic4-1_2_4, epic4-1_2_3, 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.7: +1 -1 lines
Diff to previous 1.7
* 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.2.2.2 / (view) - annotate - [select for diffs] , Mon Mar 24 17:53:00 2003 UTC (5 years, 6 months ago) by wd
Branch: wd-devel
Changes since 1.2.2.1: +3 -1 lines
Diff to previous 1.2.2.1 to branch point 1.2 to next main 1.3
Another merge.

Revision 1.7 / (view) - annotate - [select for diffs] , Sun Mar 23 02:48:33 2003 UTC (5 years, 6 months ago) by jnelson
Branch: MAIN
CVS Tags: epic4-1_1_11
Changes since 1.6: +1 -1 lines
Diff to previous 1.6
* 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.6 / (view) - annotate - [select for diffs] , Fri Mar 21 07:46:58 2003 UTC (5 years, 6 months ago) by jnelson
Branch: MAIN
Changes since 1.5: +2 -0 lines
Diff to previous 1.5
* Add extra slop for logically attributed denormalized display strings
* Const-ify a few Timevals, just for good measure.
* Don't hardcode use of AF_INET in dcc.c, rather use a global variable for it.
* Use "global_family" var to pass hint what socket fam to use.  AF_INET for now.
* Add extra sanity check just in case window->screen goes NULL in status redraw
* Fix several benign compile-time issues.
* Reword a few previous entries to fit onto one line.

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

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

Revision 1.4 / (view) - annotate - [select for diffs] , Mon Dec 23 15:11:26 2002 UTC (5 years, 9 months ago) by jnelson
Branch: MAIN
CVS Tags: epic4-1_1_9, epic4-1_1_8
Changes since 1.3: +1 -5 lines
Diff to previous 1.3
* 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.3 / (view) - annotate - [select for diffs] , Thu Dec 19 03:22:58 2002 UTC (5 years, 9 months ago) by jnelson
Branch: MAIN
Changes since 1.2: +1 -0 lines
Diff to previous 1.2
* 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.2 / (view) - annotate - [select for diffs] , Fri Jan 25 21:57:09 2002 UTC (6 years, 8 months ago) by crazyed
Branch: MAIN
CVS Tags: epic4-1_1_7, epic4-1_1_6, epic4-1_1_5, epic4-1_1_4, epic4-1_1_3
Branch point for: wd-devel
Changes since 1.1: +7 -0 lines
Diff to previous 1.1
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.1.1.1 / (view) - annotate - [select for diffs] (vendor branch) , Tue Dec 5 00:11:57 2000 UTC (7 years, 10 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, 10 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