CVS log for epic5/include/defs.h.in |
![]() |
Request diff between arbitrary revisions
* Add support for /ignore'ing a server (for undernet) * Add --without-wserv flag to configure (see UPDATES) * Add checks in configure for posix-like job control * Add support so no job control -> no wserv support.
* 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.
* Roll forward portability changes from epic4-2.10 (larne) * This also includes term.h -> termx.h -- Make sure you rerun configure!
* Make /xecho -w -1 go to the current window, for compat with epic4 (rb Black) * Make the /server list show the vhost you're using. * /LOADing an executable file results in a warning and not an error. * Fix input line so it doesn't display hidden contents after ^L (rb wjr) * Add a $strptime() function, but I still need a strptime() compat version. * Add $ignorectl(SUSPEND) and $ignorectl(UNSUSPEND) to turn off ignores.
* Everything below is from fusion (Alexander Grotewohl) * If libarchive is present, support zip/tar files in /load and $open() * Create a new "epic load file" data type that wraps FILE or libarchive. * Extend uzfopen() to use the new "epic load file" data type. * Extend the loader to honor the new "epic load file" data type * Extend $open() [read only for now] to honor the epic load file data type * Not all operations are supported on zip files. * Add new function $fix_width() returns string with a guaranteed printable len * End of things contributed by fusion (Alexander Grotewohl)
--- 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.
Add code to do threaded stdout (from larne)
* Fix finite()/isfinite() madness. * Look for clock_gettime() in -lrt for ubuntu. * Automatic reconnect from nullie. yay! * Change /xecho -v to always output to current window if it's visible. * Fix /on's with arglists, so lower serial nums don't corrupt $*. [rb nullie] * Fix memory leak with $url(en|de)code() [rb nullie] * Change /server - so it calls disconnect() directly * Fix const correctness problems with sha2.c
* Rework configure mojo for perl, ruby, tcl to autogrok compile stuff. * Run make depend again. * Update the DCC "last time" value regularly.
* Ruby support. yay! * Add a /tcl command, just for laughs. Same as perl.
* Check for <ndbm.h> in configure, don't do DBM if it is absent. * $dbmctl() always no-ops, returns empty string if dbm not available. * Add 'd' to $info(o) if DBM support is included * Add a check for solaris cc, moxy up the CFLAGS for larne. * Fix compile breakage if both tparm() and base64() are missing. doh. * Fail when maximum number of levels have been added. * Note a few places the window refnum is changed.
* Include <stddef.h> if we can, for no particular reason... * Nix now unused mangle_line(). yay! * Use (intptr_t) instead of (intmax_t) to treat pointers as integers... * Try to handle failures from the dns helpers with more grace.
Fix build on freebsd-5. I hope this works on freebsd-4 again. (*gulp*)
Add configure glop for intmax_t for c90 systems. Will start using later.
Add support from larne for solaris ports, which I modified up a bit, so if there are any problems, blame me, and not him!
* Check for arc4random() in configure, don't use compat.c version if possible. * GC "fill_it_out" code which has been deactive for a while. * Fix translation casting error for zlonix * Allow current_package() to return NULL, handle that as special case. * Refactor the startup loading stuff * Move a couple of loads out of basical and into global.
* 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
* 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.
Let us never speak of this commit again.
Wrapper for atoll() for freebsd-stable and stuff.
Unconditionally do (long long) integer math in the new math parser if your system supports (long long). I suppose on some systems this will make math slower, but that seems like a small price to pay for having integers that will actually support IP addresses! $info(o) will inclue the letter 'l' if the host client is working with 64 bit integers in the new math parser. Please note that the old math parser has not changed, and still only supports 32 bit integers, and that won't change for backwards compatability. If you really really really need 64 bit integers, think about changing to the new math parser.
Fix it so you can compile on systems without (intptr_t) again.
Include <stdint.h> and <inttypes.h> if they exist.
Add support for clock_gettime() which is the posix version of gettimeofday().
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.
Another merge.
Fix various specious warnings from gcc, also, don't test for "sun_len" in configure; use "sa_len" test for that.
Yikes. Merged to become consistent with HEAD. Sorry for all the commits, I'll be quiet again soon. :) -wd
Fix compile errors in configure.in. These were my fault.
* Added functions $asciiq() $chrq() $exec() $timerctl() $tcl() $winline() and $floodinfo(). * Altered the two argument version of $read() to ctcp quote the strings it returns. * Added sets FLOOD_RATE_PER and FLOOD_MASKUSER. * Altered the "accept" mode of the dcc_raw and dcc_connect hooks to refer to the local port instead of the remote port. * Added a "-closein %proc" switch to /exec. * Altered the arg list mode of /alias to use extractw instead of next_arg. * Added the documented "words" argument to the above. * Tuned autoget, mudirc, tabkey.ce and commandqueues. * Altered /pretend to not chop the string. * Set about rewriting the flood detection and then decided that it's better off being a script. * Moved the function macros to their own file (functions.h) and replaced all the copies that are strewn throughout the source with an #include. The exception is array.c which broke when I tried it. * Moved the ctcp enquoting/dequoting functions to ircaux.c. * Added some command/function ordering checks to funcs/regress, and a check for all the functions that are undocumented. * Rewrote function chanmodetype() so that it doesn't have all those flakey buffering things. Hopefully it's readable now. The significant change is that if a mode character appears twice in CHANMODES, the first one is returned instead of the last. * Added EPIC::call() in the perl routines and an equivalent under tcl. this is designed to call a $function() directly, but it isn't really that fast, so I might rip them out again. * The /wait internals used to store a few other settings, which were taken out, so I put them back. * Fixed a few problems with normalize_filename() around the place. * Fixed a bug with /timer in which it would never show the timers after a callback.
* Add checks/workaround for linux's broken realpath(). Bleh. * Add arc4random stuff to compat.c -- will be used later! * Fix $realpath() to use normalize_filename() so it gets realpath() fix. * Add $serverctl(SET <refnum> PRIMARY) to set primary server. User beware!
* #include <unistd.h> for configure check for sys_siglist[] for netbsd.
Check for getaddrinfo() and getnameinfo() in configure otherwise we can't do ipv6 lookups. doh!
Ooops. forgot to commit defs.h.in
Add GAILIB, a bsd licensed getaddrinfo/getnameinfo implementation for ipv4 only systems. This was lifted from ruby, who lifted it from WIDE. Add #ifdef's as necessary to compile on non-ipv6 systems.
Lots more work on the ipv6 front. Remove the last of the vestiges of the old historical address handlers (inet_ntop/inet_pton/inet_aton/inet_ntoa). Now everything, and I mean EVERYTHING goes through inet_strton and inet_ntostr which are just fancy front ends to getaddrinfo() and getnameinfo(). Quite a bit of EPIC is already family-independent, but there is still some left to be clubbed into submission. The project to add support for IPv6 is now about 75% complete! Perversely enough, the only thing stopping DCC from being essentially 100% IPv6 capable is the inability to send an IPv6 hostname through a handshake without breaking the standard...
Huge major commit #1 in the great IPv6 support addition... Rather than include all of the changes here, read KNOWNBUGS changes.
Fixes inspired by first wave of testers 1) Fix casts to inet_anytop() 2) Fix configure to check for socklen_t, default to 'int'.
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!
Check (struct sockaddr) for sa_len, and use this as a hint as to whether sockaddrs have a "length" field in them. I will phase out the (now obsolete) check for HAVE_SUN_LEN in configure, once i'm comfortable that checking for HAVE_SA_LEN is sufficient. Whack up the (struct sockaddr_storage) to honor the HAVE_SA_LEN value probed by configure, as requested by Q (Kurt R.). Regen configure. This brings the ssl stuff into play from CE's last commit.
Drums... Drums... Drums... Drums in the deep...
Have 'configure' check for the worthiness of SNDLOWAT setsockopt option so that the linux users stop griping to me that they don't like to see the error message that linux's braindamage causes.
Rebuilt the configure script after applying SSL patch.
Applied the SSL patch from ay-ar. Details are in README.SSL. This works well at this point, but there may be teething problems.
Add compat functions for setenv() and unsetenv(). Unfortunately, if your system lacks these functions, setting environment variables causes a memory leak, and you just plain flat out can't unset environment variables. These are defects in the API (or in the OS, whichever one you prefer to blame) and do not represent bugs in EPIC.
More complete support for random local ports; /set random_local_ports now cooperates with /setenv EPIC_USE_HIGHPORTS=1, and it works on freebsd, openbsd, and linux, such as it is.
Re-run through autoconf to pick up -g -O instead of -g -O2.
Two patches applied, aka, the string and perl patches.
The perl patch adds perl support via three perl functions.
The string patch:
* Rewrites new_realloc to more closely resemble new_realloc in its
interface, and in that it calls realloc directly.
* Adds an argument to the 3cat functions that permits it to seek
directly to the end of the string. Designed to improve performance.
* Alters a few things to use the above.
* Tunes a few other string functions in ircaux.c.
* Rewrites $uniq() for performance reasons.
* Removes the part of $jot() that preallocates the string. I feel a
little guilty about this somehow though it seems to have absolutely
no effect on performance anymore.
Initial import into CVS
Initial revision
| CVS Admin |
Powered by ViewCVS 0.9.2 |