CVS log for epic4/include/ircaux.h

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

Request diff between arbitrary revisions


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

Revision 1.61 / (view) - annotate - [select for diffs] , Wed Nov 10 03:20:35 2004 UTC (3 years, 8 months ago) by jnelson
Branch: MAIN
CVS Tags: epic4-2_8, epic4-2_6, epic4-2_4, epic4-2_2, epic4-2_1_3, epic4-2_1_2, epic4-2_10, HEAD
Changes since 1.60: +2 -4 lines
Diff to previous 1.60
* Fix space-related panic.  See UPDATES for all the gruesome details.
* Add ALT_CHAR to the list of things that can be mangled.

Revision 1.60 / (view) - annotate - [select for diffs] , Thu Jan 8 20:14:57 2004 UTC (4 years, 7 months ago) by jnelson
Branch: MAIN
CVS Tags: epic4-2_1_1, epic4-2_0, epic4-1_2_9, epic4-1_2_8, epic4-1_2_7
Changes since 1.59: +2 -1 lines
Diff to previous 1.59
* Fix bug with nicks ending with \ in the 353 numeric which has trailing space
* Auto-close DCC's that can't send handshakes due to family mismatch.

Revision 1.59 / (view) - annotate - [select for diffs] , Fri Nov 7 03:55:57 2003 UTC (4 years, 9 months ago) by jnelson
Branch: MAIN
CVS Tags: epic4-1_2_6, 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
Changes since 1.58: +3 -3 lines
Diff to previous 1.58
From previous commit...
* Fix urldecode
* /lastlog -msgs 3 is obliged to skip back 3 msgs, not just 3 lastlog entries.
* Fix warnings in gailib.h

From this commit...
* Fix some const correctness issues
* Make message_to() take an (int) and not (unsigned) so we can pass in -1.
* Fix some arglist regression tests to reflect new extractw semantics.
* Fix uninitialized variable in ok_to_output() that caused panics.

Revision 1.58 / (view) - annotate - [select for diffs] , Tue Oct 28 05:53:57 2003 UTC (4 years, 9 months ago) by jnelson
Branch: MAIN
CVS Tags: epic4-1_1_14
Changes since 1.57: +3 -1 lines
Diff to previous 1.57
* Add /set wserv_type, either "xterm" or "screen".
* Add malloc_strcat_word_c, add a single word to word list, with "" support
* Convert a bunch of stuff to use malloc_strcat_word_c to honor ""s right.
* GC a bunch of unused code.

Revision 1.57 / (view) - annotate - [select for diffs] , Fri Jul 18 00:36:34 2003 UTC (5 years ago) by jnelson
Branch: MAIN
CVS Tags: epic4-1_1_13
Changes since 1.56: +5 -5 lines
Diff to previous 1.56
* Fix time functions to take (const Timeval) if they don't change the arg.
* Create a special handler for /squit to avoid sending QUIT * to server.
* Protect some IPv6 stuff i added recently to dcc with #ifdef INET6.  Ooops.
* Hack up $repeat(<num><space><space>) so it works again. ugh.
* Hack up /set <variable><space><space> so it works again.  ugh.
* Dont allow /timer -repeat -1 0 because that busy-loops.
* Add shell of $windowctl() which will be filled in going forward.

Revision 1.56 / (view) - annotate - [select for diffs] , Tue Jul 15 00:26:03 2003 UTC (5 years ago) by jnelson
Branch: MAIN
Changes since 1.55: +2 -1 lines
Diff to previous 1.55
Commit #555:
* Add #define MINIMUM_CLOCK_INTERVAL and MINIMUM_MAIL_INTERVAL in config.h
* Add #define DEFAULT_CLOCK_INTERVAL and DEFAULT_MAIL_INTERVAL in config.h
* Add reset_system_timers(), do_update_clock(), and set_cpu_saver_after()
* Add time_to_next_interval(), general form of time_to_next_minute().
* Add get_clock() and reset_clock() to replace update_clock().
* Make remove_timer() an extern function so i can delete timers. ;-)
* Add /SET CLOCK_INTERVAL and /SET MAIL_INTERVAL
* Make $T use the static clock.
* Reorganize system timers 1 and 2 into four timers:
* - CPU SAVER timer, checks for idleness, to turn on cpu saver
* - CLOCK timer, updates the status bar clock periodically
* - MAIL timer, checks for new mail periodically
* - NOTIFY timer, checks for others on irc periodically
* The above three honor "cpu saver" mode.
* Nix the old "do_every_minute" timer.
* Reorganize the clock generation stuff into "reset_*_clock" functions
* Generate the clock statically; only update it from the CLOCK timer
* Add reset_system_timers() which regenerates all four system timers.
* Don't set system timers in main, call reset_system_timers() instead.
* Don't enforce "notify interval" in do_notify(), handle that in NOTIFY timer.
* Comment stuff in words.c

Revision 1.55 / (view) - annotate - [select for diffs] , Thu Jul 10 22:56:01 2003 UTC (5 years ago) by jnelson
Branch: MAIN
Changes since 1.54: +15 -4 lines
Diff to previous 1.54
Commit 551 -- second to last commit for this project -- the big one!
* Roll in the new universal_next_arg_count() and attendant macros.
* Comment out some deprecated function decls in ircaux.h
* Do another round of make depends.
* Modify alias arglist code to use the new universal_next_arg_count() stuff
* Convert dequote() to dequoter().
* Convert new_new_next_arg() into new_new_next_arg_count().
* Comment out deprecated functions in ircaux.c -- will be deleted later.

Revision 1.54 / (view) - annotate - [select for diffs] , Thu Jul 10 12:08:56 2003 UTC (5 years, 1 month ago) by jnelson
Branch: MAIN
Changes since 1.53: +8 -6 lines
Diff to previous 1.53
Overhaul of malloced string handling functions:
* Convert m_[s]c3cat[_s]() to malloc_strcat_wordlist_c()
* Nix m_e3cat(), m_s3cat(), m_s3cat_s(), m_3cat()
* Nix m_ec3cat(), m_sc3cat(), m_sc3cat_s(), m_c3cat().
* Convert m_dupchar() to malloc_dupchar().
* Convert m_strndup() to malloc_strndup().
* Make malloc_strcpy/malloc_strcat/malloc_strcat2/malloc_strcat_wordlist macros
* Convert m_2dup() to malloc_strdup2().
* Convert m_3cat() to malloc_strcat2[_c]().
* Convert m_3dup() to malloc_strdup3().
* Convert m_ec3cat() to malloc_strcat2_c()
* Use strlcat_c() in $repeat() instead of strlcpy(). whee!
* Sanity check first arg to $regcomp(), to avoid crashes.
* Don't pass NULL to bsearch(), even if 'nmem' is 0 [$remws()]
* Nix the original malloc_strcpy (supplanted by malloc_strcpy_c)
* Comment out all the deprecated functions

Revision 1.53 / (view) - annotate - [select for diffs] , Wed Jul 9 20:10:24 2003 UTC (5 years, 1 month ago) by jnelson
Branch: MAIN
Changes since 1.52: +1 -2 lines
Diff to previous 1.52
Convert m_strdup() to malloc_strdup().

Revision 1.52 / (view) - annotate - [select for diffs] , Wed Jul 9 13:43:50 2003 UTC (5 years, 1 month ago) by jnelson
Branch: MAIN
Changes since 1.51: +18 -1 lines
Diff to previous 1.51
* Add some new functions to ircaux.c for malloced string handling
* Fix some const correctness issues.

Revision 1.51 / (view) - annotate - [select for diffs] , Wed Jul 9 13:28:57 2003 UTC (5 years, 1 month ago) by jnelson
Branch: MAIN
Changes since 1.50: +1 -2 lines
Diff to previous 1.50
Fix some stragglers and GC unused m_sprintf() function.
Fix $serverwin() which was doing a bogus check on server refnums.

Revision 1.50 / (view) - annotate - [select for diffs] , Tue Jul 8 21:36:51 2003 UTC (5 years, 1 month ago) by jnelson
Branch: MAIN
Changes since 1.49: +14 -112 lines
Diff to previous 1.49
Commit 541
* Move #define CTCP_* into ctcp.h
* Add /xdebug extractw_debug
* Move #define LOCAL_COPY and SAFE into irc_std.h
* Create compat.h, move all the compat.c decls into there (from ircaux.h)
* Create network.h, move all the network.c decls into there (from ircaux.h)
* Create words.h, move all the words.c decls into there (from ircaux.h)
* Include "compat.h" and "network.h" in ircaux.h
* Do another round of make depends
* Rename 'search' to 'search_for'.
* Fix the metric clock hooking /on timer too much.
* Revamp words.c, to support passing word quoter (' or ") as an argument.

Revision 1.49 / (view) - annotate - [select for diffs] , Mon Jul 7 21:10:56 2003 UTC (5 years, 1 month ago) by jnelson
Branch: MAIN
Changes since 1.48: +8 -1 lines
Diff to previous 1.48
Metric clock support!

Revision 1.48 / (view) - annotate - [select for diffs] , Mon Jun 30 03:14:01 2003 UTC (5 years, 1 month ago) by jnelson
Branch: MAIN
Changes since 1.47: +6 -2 lines
Diff to previous 1.47
Commit 527
New ignore implementation.  I will document all this stuff tomorrow.
As it stands, I've tested this for several days and all seems well.
Of course let me know if you see any problems.

Revision 1.47 / (view) - annotate - [select for diffs] , Sat Jun 28 17:40:37 2003 UTC (5 years, 1 month ago) by jnelson
Branch: MAIN
Changes since 1.46: +2 -2 lines
Diff to previous 1.46
It is better to use (ssize_t) instead of (int) when refering to string lengths.

Revision 1.46 / (view) - annotate - [select for diffs] , Fri May 30 18:58:10 2003 UTC (5 years, 2 months ago) by jnelson
Branch: MAIN
CVS Tags: epic4-1_1_12
Changes since 1.45: +3 -3 lines
Diff to previous 1.45
Commit 519
* Change m_strcat_ues_c to take a (char *) "unescape" param and not (int)
* Rename m_strcat_ues_c to malloc_strcat_ues_c
* Rewrite malloc_strcat_ues_c to support new semantics.
* Make sure not to pass 0 to alloca() in ctcp checks
* Initialize (DCC)->server [found by valgrind]
* Change 'expand_alias' so 'unescape' is (char *) and not (int)
* Add extra sanity checks in mangle_line against buffer overruns
* Fix window_channel() to use new malloc_strcat_ues() arguments.

Revision 1.45 / (view) - annotate - [select for diffs] , Fri May 9 03:29:52 2003 UTC (5 years, 3 months ago) by jnelson
Branch: MAIN
Changes since 1.44: +18 -18 lines
Diff to previous 1.44
* 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.44 / (view) - annotate - [select for diffs] , Fri May 2 19:22:25 2003 UTC (5 years, 3 months ago) by jnelson
Branch: MAIN
Changes since 1.43: +2 -1 lines
Diff to previous 1.43
Commit 509:
* Move /DCC from commands.c to dcc.c
* Nix the "dcc deadlist" crap.  Handle deleted dcc's more sensibly now.
* Add a "dequote" internal function that removes "s in extended words.
* Add "QWORDS" as new arglist type, for quoted-words with "s left in.
* Add "arglist" regression test.
* Fix strlcpy() in compat.c so it doesn't walk off end of string.
* Implement more sensible "locking" mechanism for dcc's
* Nix the nominally unimplemented "encrypt" feature for dcc
* Create "dcc_create" to create dcc entry
* Remove "creation" functionality from "dcc_searchlist"
* Nix global variables 'filesize' and 'global_family' now unneeded.
* Change order around of arguments to "dcc_searchlist".
* Rename "dcc_opened" to "dcc_connected" since that is what it does.
* Add "dcc_garbage_collect" which looks for dcc's that need removal.
* Add "get_dcc_by_filedesc" and "get_dcc_by_refnum" to look up dcc's
* Add "lock_dcc" and "unlock_dcc" to prevent dcc's from being GC'd.
* Double check that all output that occurs in dcc.c goes to LOG_DCC
* Use dcc_open in dcc_raw_listen() instead of doing the network stuff directly.
* Allow "booster ctcp" to be sent for dcc chat re-offerings.
* Reorganize register_dcc_offer() so it doesn't create dcc until all is well.
* Reorganize process_outgoing_file() into sub-functions.
* Don't call "dcc_dead" or "dcc_check" in main io() looper.
* Fix new_next_arg_count() to use real_move_to_abs_word() to emulate $1 usage

Revision 1.43 / (view) - annotate - [select for diffs] , Thu Apr 24 20:49:24 2003 UTC (5 years, 3 months ago) by jnelson
Branch: MAIN
Changes since 1.42: +4 -11 lines
Diff to previous 1.42
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.42 / (view) - annotate - [select for diffs] , Sat Mar 29 08:10:22 2003 UTC (5 years, 4 months ago) by jnelson
Branch: MAIN
Changes since 1.41: +2 -2 lines
Diff to previous 1.41
* New /set, /SET SWITCH_CHANNELS_BETWEEN_WINDOWS
* C language issues (const correctness, integer size correctness)
* Revamp channel structure to hold window refnum and not window pointer
* Add "current channel counter" to channel structure.
* Determine "current channel" by election.
* Garbage collect a lot of now unnecessary code.
* Add get_echannel_by_refnum(), returns window's "elected" current channel
* Add internal function is_waiting_for_channel()
* Add internal function move_waiting_channel()
* Add internal function get_winref_by_bound_channel()
* Add internal function get_bound_channel_by_refnum()
* Convert uses of get_channel_by_refnum() to get_echannel_by_refnum()
* Fix $winbound() to work when given a window refnum
* Fix valgrind issue with $regcomp()
* Remove sanity checks from traverse_all_channels(); handled elsewhere now
* Change traverse_all_channels() with "this server" or "not this server" arg
* Nuke (Window *)->current_channel.  Handled by channels now.  HUZZAH!
* Implement /ON SWITCH_WINDOWS again.

Revision 1.35.2.2 / (view) - annotate - [select for diffs] , Mon Mar 24 17:53:00 2003 UTC (5 years, 4 months ago) by wd
Branch: wd-devel
Changes since 1.35.2.1: +3 -3 lines
Diff to previous 1.35.2.1 to branch point 1.35 to next main 1.36
Another merge.

Revision 1.41 / (view) - annotate - [select for diffs] , Mon Mar 24 09:20:29 2003 UTC (5 years, 4 months ago) by jnelson
Branch: MAIN
CVS Tags: epic4-1_1_11
Changes since 1.40: +2 -2 lines
Diff to previous 1.40
Whooo!  I'm on a roll!  Commit #487

* Add /timer -delete_for_window <winref> to delete window's timer.
* Enhance my_strerror() to take an EPIC Network Error and an errno.
* Enhance Getaddrinfo() to use AF_UNIX path as 'path' not 'host'.
* Confirmed that $match("\\[s s1 "s *"\\]" "s s") works like it should now.
* Store a "current window priority" number in each window.
* Add get_winref_by_servref() returns highest "priority" window for a server
* Have /defer track server, use server's "current window" (per above)
* I'd like to have other things use this, like maybe /xeval -s.

Revision 1.40 / (view) - annotate - [select for diffs] , Sun Mar 23 19:44:17 2003 UTC (5 years, 4 months ago) by jnelson
Branch: MAIN
Changes since 1.39: +2 -2 lines
Diff to previous 1.39
* Explicitly set "mask" to 0 in cs_alist_hash(), so it is initialized
* Change type() to typecmd() to avoid name conflicts.
* Change 'dot' to 'dotlocl' to avoid name conflicts.
* Change 'op' to 'reduce' to avoid name conflicts.
* Fix a typo in the error message from /window kill.
* Add a panic to detect larne's recent bug that I fixed, just in case.
* Constify the "path" argument to uzfopen().
* Make sure return value of strlen() is assigned to a 'size_t' not an 'int'.
* Split load() into load() and load1(), load1() reads a file opened by load().
* Now load() is "interpretation-free", and load1() can be replaced.
* Fix various minor compile-time issues.
* Change %P status line expando to give more useful information.

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

Revision 1.39 / (view) - annotate - [select for diffs] , Thu Feb 20 17:10:07 2003 UTC (5 years, 5 months ago) by crazyed
Branch: MAIN
Changes since 1.38: +2 -2 lines
Diff to previous 1.38
* Updated $wordtoindex() to obey "/xdebug extractw".

Revision 1.38 / (view) - annotate - [select for diffs] , Thu Jan 9 01:10:56 2003 UTC (5 years, 7 months ago) by crazyed
Branch: MAIN
Changes since 1.37: +6 -4 lines
Diff to previous 1.37
* Altered the default FLOATING_POINT_PRECISION from 6 to 16 which fixes a
  math bug.
* Melded a count argument into next_args and new_next args to cause a
  specific number of words to be returned.
* Rewrote the /alias xxx (args) form of /alias to avoid using extractw and
  to use *next_args_count instead.
* Tuned the call.xtrace alias in debug.irc.
* Extended $is_on() in guh to allow and return multiple arguments.
* Added $is_off() as a compliment to $is_on().
* Made a minor philosophical change to the way flood detection works:  A
  message is not counted as a flood if it is the first message in a flood.
  The most important impact of this is that rate calculations are more
  accurate.

Revision 1.37 / (view) - annotate - [select for diffs] , Mon Dec 30 13:23:46 2002 UTC (5 years, 7 months ago) by crazyed
Branch: MAIN
Changes since 1.36: +2 -1 lines
Diff to previous 1.36
Documented /exec features.

Note:  The -line* switches for the %proc mode are new and haven't been
       commited yet.

Revision 1.36 / (view) - annotate - [select for diffs] , Wed Dec 11 19:20:23 2002 UTC (5 years, 7 months ago) by crazyed
Branch: MAIN
CVS Tags: epic4-1_1_9, epic4-1_1_8, epic4-1_1_10
Changes since 1.35: +10 -1 lines
Diff to previous 1.35
* 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.

Revision 1.35 / (view) - annotate - [select for diffs] , Tue Nov 12 00:28:11 2002 UTC (5 years, 8 months ago) by jnelson
Branch: MAIN
Branch point for: wd-devel
Changes since 1.34: +2 -2 lines
Diff to previous 1.34
* Implement top-of-minute handling in a system timer
* Eliminate top-of-minute handling from io().
* Eliminate CPU_SAVER stuff for the time being.
* Change time_to_next_minute() to return a (double) not (Timeval)

Revision 1.34 / (view) - annotate - [select for diffs] , Fri Nov 8 23:36:12 2002 UTC (5 years, 9 months ago) by jnelson
Branch: MAIN
Changes since 1.33: +2 -2 lines
Diff to previous 1.33
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.

Revision 1.33 / (view) - annotate - [select for diffs] , Thu Oct 24 21:28:07 2002 UTC (5 years, 9 months ago) by jnelson
Branch: MAIN
Changes since 1.32: +7 -1 lines
Diff to previous 1.32
* 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.

Revision 1.32 / (view) - annotate - [select for diffs] , Tue Oct 22 22:18:44 2002 UTC (5 years, 9 months ago) by jnelson
Branch: MAIN
Changes since 1.31: +2 -1 lines
Diff to previous 1.31
* 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!

Revision 1.31 / (view) - annotate - [select for diffs] , Fri Oct 18 20:10:22 2002 UTC (5 years, 9 months ago) by jnelson
Branch: MAIN
Changes since 1.30: +5 -3 lines
Diff to previous 1.30
* Change expand_twiddle(), path_search() to take results as params, int retval
* Add normalize_filename(), to do job expand_twiddle() used to do.
* Add isdir(), just because
* Change /CD, /LOAD, /SAVE, /DCC SEND, /DCC GET, to use normalize_filename.
* Change /DCC RESUME, $open(), $which(), $unlink() to use normalize_filename.
* Change $rename(), $rmdir(), $fexist(), $fsize() to use normalize_filename.
* Change $glob(), $globi(), $mkdir(), $chmod() to use normalize_filename.
* Change $ftime(), $randread(), and uzfopen() to use normalize_filename.
* Change /LOG, /SET LOGFILE, servers file to use normalize_filename.
* Fix /LOG so maximum number of targets per log is a compile time #define.
* Revamp expand_twiddle() and uzfopen().
* Fix uzfopen() to look for 'bunzip2' in addition to 'bunzip'.
* Fix bug with /QUEUE -delete
* Remove unused variable in window_scroll().

Revision 1.30 / (view) - annotate - [select for diffs] , Sun Sep 1 17:27:52 2002 UTC (5 years, 11 months ago) by jnelson
Branch: MAIN
Changes since 1.29: +2 -2 lines
Diff to previous 1.29
* Fix expand_twiddle to take a (const char *)
* Fix do_log and set_log_file to take a (const char *)
* Remove a couple of no-ops in keys.c
* Revamp do_log into two parts; open_log and close_log; do_log now a wrapper.
* Fix a string that had a newline in it. spotted by Szabolcs Rumi.

Revision 1.29 / (view) - annotate - [select for diffs] , Fri Jun 21 22:37:31 2002 UTC (6 years, 1 month ago) by crazyed
Branch: MAIN
CVS Tags: epic4-1_1_7, epic4-1_1_6
Changes since 1.28: +5 -3 lines
Diff to previous 1.28
* Merged in another /fe fix I was brewing.
* Altered new_next_arg to not truncate the arguments list if the argument
  taken happened to be empty.  This fixes bugs with /fe and $shift() where
  the list has "" arguments.
* Gave malloc_strcat and m_strcat_ues a clue variable and used it within
  the variable expansion routines so that expanding works in liner time.
   * I am a little bothered by this.  The _correct_ thing to do is to put
     the clue variables into the malloc data for the strings themselves
     like perl does.
* Moved the base structure for 1cmd in command queues from last.qcmd. to
  1cmd.
* Added command completion to tabkey.ce.

Revision 1.28 / (view) - annotate - [select for diffs] , Sun Jun 16 03:09:57 2002 UTC (6 years, 1 month ago) by jnelson
Branch: MAIN
Changes since 1.27: +3 -2 lines
Diff to previous 1.27
* Add Getnameinfo(), front end to getnameinfo() takes GNI_INTEGER for DCC use
* Fix inet_ntostr() to use Getnameinfo() instead of getnameinfo() directly.
* Fix inet_ntostr() to return int for success/failure, not hostname.
* Fix the DCC handshake generator to use inet_ntostr().
* Fix callers of inet_ntostr() to handle integer return values.

Revision 1.27 / (view) - annotate - [select for diffs] , Thu Jun 6 12:13:43 2002 UTC (6 years, 2 months ago) by jnelson
Branch: MAIN
Changes since 1.26: +7 -1 lines
Diff to previous 1.26
* Allow $listen() to take a family argument, like $connect().
* Add some V6 macros in ircaux.h, modeled after V4 macros.
* Add a "family" member to the dcc structure.  Default to AF_INET for now.
* Start fetching ports by calling inet_ntostr() instead of peeking directly
  -- into the sockaddr.  This yields protocol independance.
* Fix bug where $listen() or /dcc send w/o a virtual host caused NULL deref.

Revision 1.26 / (view) - annotate - [select for diffs] , Sun Jun 2 05:25:09 2002 UTC (6 years, 2 months ago) by jnelson
Branch: MAIN
Changes since 1.25: +2 -5 lines
Diff to previous 1.25
Remove the second argument to inet_ntostr(), [socklen_t of the first argument]
because the socket length of the first argument can be inferred directly
from the first argument and passing in the length is totaly unecessary.

Changes to callers of inet_ntostr() per above change.

Change connectory() to call Getaddrinfo() directly and to iterate over all
of the returned addresses until it finds one it likes.  This change permits
epic to automatically detect/support IPv4 and IPv6 server connections without
user intervention.

make Getaddrinfo(), Freeaddrinfo(), socklen(), Accept(), and Connect()
all static functions.

Revision 1.25 / (view) - annotate - [select for diffs] , Wed May 29 03:15:32 2002 UTC (6 years, 2 months ago) by crazyed
Branch: MAIN
Changes since 1.24: +2 -1 lines
Diff to previous 1.24
* Fix for an SSL problem where SSL fails to negotiate.  It will bail to
  non-encrytion in this case now.
* Fix for splitw() which is used by $uniq() and other functions where some
  of the elements could be null pointers due to its use of new_next arg.
  This would cause qsort() to coredump.  Switched to safe_new_next_arg
  which seems to have a performance penalty of about 4%.
* Added an "OTHER" flag to $stripcrap() and the mangle settings, which
  catches all characters that other flags don't.  It isn't included in
  the ALL flag.

Revision 1.24 / (view) - annotate - [select for diffs] , Tue May 28 22:10:20 2002 UTC (6 years, 2 months ago) by jnelson
Branch: MAIN
Changes since 1.23: +1 -4 lines
Diff to previous 1.23
Remove the (now) obsolete decl of inet_aton() in ircaux.h. Reported by genok.

Revision 1.23 / (view) - annotate - [select for diffs] , Mon May 27 14:13:00 2002 UTC (6 years, 2 months ago) by jnelson
Branch: MAIN
Changes since 1.22: +5 -5 lines
Diff to previous 1.22
Fix some function names that I didn't like after sleeping on them.
Add extra argument to inet_ntostr() which is passed to getaddrinfo().

Revision 1.22 / (view) - annotate - [select for diffs] , Mon May 27 03:03:20 2002 UTC (6 years, 2 months ago) by jnelson
Branch: MAIN
Changes since 1.21: +5 -4 lines
Diff to previous 1.21
OK.  So i had some inspiration and decided not to go to bed.  Vastly
simplify the conversions between sockaddr/host/p-addr to sockaddr/host/p-addr.
More simplifications yet to come.  IPv6 support is roughly about 50% done now.

Revision 1.21 / (view) - annotate - [select for diffs] , Mon May 27 01:43:35 2002 UTC (6 years, 2 months ago) by jnelson
Branch: MAIN
Changes since 1.20: +6 -5 lines
Diff to previous 1.20
Huge major commit #1 in the great IPv6 support addition...
Rather than include all of the changes here, read KNOWNBUGS changes.

Revision 1.20 / (view) - annotate - [select for diffs] , Thu May 9 05:48:52 2002 UTC (6 years, 3 months ago) by jnelson
Branch: MAIN
CVS Tags: epic4-1_1_5, epic4-1_1_4
Changes since 1.19: +2 -1 lines
Diff to previous 1.19
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.

Revision 1.19 / (view) - annotate - [select for diffs] , Thu May 9 04:50:07 2002 UTC (6 years, 3 months ago) by jnelson
Branch: MAIN
Changes since 1.18: +9 -1 lines
Diff to previous 1.18
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.

Revision 1.18 / (view) - annotate - [select for diffs] , Tue May 7 05:12:06 2002 UTC (6 years, 3 months ago) by jnelson
Branch: MAIN
Changes since 1.17: +4 -4 lines
Diff to previous 1.17
Fix those three annoying functions in network.c that use static local
variables, making them non-reentrant and fraught with peril.  Now they
require you pass in space to put the results.

Revision 1.17 / (view) - annotate - [select for diffs] , Mon May 6 23:05:45 2002 UTC (6 years, 3 months ago) by jnelson
Branch: MAIN
Changes since 1.16: +9 -7 lines
Diff to previous 1.16
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!

Revision 1.16 / (view) - annotate - [select for diffs] , Mon Apr 29 01:18:20 2002 UTC (6 years, 3 months ago) by jnelson
Branch: MAIN
Changes since 1.15: +2 -2 lines
Diff to previous 1.15
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!

Revision 1.15 / (view) - annotate - [select for diffs] , Sun Apr 28 04:22:16 2002 UTC (6 years, 3 months ago) by jnelson
Branch: MAIN
Changes since 1.14: +3 -3 lines
Diff to previous 1.14
Yet another swath of changes in The Great IPv4 Cleanup.  This time I
took a broad hatchet to the resolver-assistant functions in network.c.
Using modern techniques really increases readability and makes it look
less like a hack.  Making good progress!

Revision 1.14 / (view) - annotate - [select for diffs] , Fri Apr 26 19:59:39 2002 UTC (6 years, 3 months ago) by jnelson
Branch: MAIN
Changes since 1.13: +2 -1 lines
Diff to previous 1.13
Next round of in_addr/u_short -> sockaddr_in conversions, along with some
other minor details.  As far as i know, this shouldn't break anything,
but I don't promise that.  Save your old binary first!
If anything is really bad, let me know.  I'll fix it ASAP.

Revision 1.13 / (view) - annotate - [select for diffs] , Mon Apr 1 18:57:00 2002 UTC (6 years, 4 months ago) by jnelson
Branch: MAIN
Changes since 1.12: +8 -1 lines
Diff to previous 1.12
Comment the danger of using LOCAL_COPY in a function call argument list.
Since this is only a comment change, commit_id is not incremented.

Revision 1.12 / (view) - annotate - [select for diffs] , Thu Feb 14 16:33:25 2002 UTC (6 years, 5 months ago) by jnelson
Branch: MAIN
CVS Tags: epic4-1_1_3
Changes since 1.11: +2 -1 lines
Diff to previous 1.11
This is my first go at supporting embedded colons in server specs.
You can use double-quoted words now in your server spec.  Man, I Hope
this doesn't break anything (famous last words).  Here's an example:
	/server /tmp/.ircd/6667::"tmp:pass":hop:groovy

Would add "/tmp/.ircd/6667" as a server, with the group "groovy" using
the nickname "hop" and the password "tmp:pass", all without the double
quotes, of course.  Using double-quotes to surround arguments like this
will protect colons inside from being mistaken.  I would like to support
backslashed colons at some point, but since backslshes are perfectly legal
nickname characters, I can't see a way to do this without hackery. :/

I added a "findchar" function in ircaux.c to find the next instance of
a character that isn't backslashed.

Revision 1.11 / (view) - annotate - [select for diffs] , Thu Jan 31 21:47:29 2002 UTC (6 years, 6 months ago) by crazyed
Branch: MAIN
Changes since 1.10: +3 -2 lines
Diff to previous 1.10
Thanks to wd for this patch, which:

* Breaks part of figure_out_address() off into figure_out_domain().
* Fixes /ignore and $mask() such that they don't munge the given address
  inappropriately.

I have compared $mask() behaviour with previous versions to confirm that
it works, which would tend to imply that the main guts are all working,
but nevertheless, figure_out_address seems to be particularly delicate so
there may be problems.

Revision 1.10 / (view) - annotate - [select for diffs] , Thu Jan 10 02:26:30 2002 UTC (6 years, 6 months ago) by crazyed
Branch: MAIN
Changes since 1.9: +2 -2 lines
Diff to previous 1.9
* 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.

Revision 1.9 / (view) - annotate - [select for diffs] , Tue Nov 20 16:33:34 2001 UTC (6 years, 8 months ago) by crazyed
Branch: MAIN
Changes since 1.8: +2 -1 lines
Diff to previous 1.8
This does precisely nothing at this point except, perhaps cause
compilation to fail. It is necessary for external encryption, to come
later. It adds exec_pipe which forks a sub process with a given list
of args, feeds it a given input on stdin and returns stdout as one big
string.

Revision 1.8 / (view) - annotate - [select for diffs] , Fri Nov 16 06:42:28 2001 UTC (6 years, 8 months ago) by crazyed
Branch: MAIN
Changes since 1.7: +2 -1 lines
Diff to previous 1.7
Hurried patch.  This rolls back the $read() patch for now.

Revision 1.7 / (view) - annotate - [select for diffs] , Mon Nov 12 21:46:45 2001 UTC (6 years, 8 months ago) by jnelson
Branch: MAIN
Changes since 1.6: +5 -2 lines
Diff to previous 1.6
The beginning of the migration away from 'time_t's towards 'struct timeval's.
This first round of support is very rough and may have some issues, which
I will be happy to fix (or you can fix them yourself if you want), but it is
more proof-of-concept work for now.  I don't expect that I will migrate
*everything* to struct timeval, just the important stuff.  I have not made
any serious attempt to optimize this yet and please don't jump the gun and
start optimizing this until I've got the bugs settled out.  Thanks. =)

Oh yes, I almost forgot the good part -- /timer now has highly accurate
sub-second timer resolution.  This means you can do /timer 0.82 echo test
and it will go off in exactly 0.82 seconds.  No more "approximate" timers!

The traditional restrictions about timer execution (timers do not go off
while another timer is executing, and while you are /wait'ing) still apply.

Revision 1.6 / (view) - annotate - [select for diffs] , Tue Oct 2 16:53:34 2001 UTC (6 years, 10 months ago) by crazyed
Branch: MAIN
CVS Tags: epic4-1_1_1
Changes since 1.5: +2 -2 lines
Diff to previous 1.5
* Miscelaneous 3cat updates.
* History expansion copies the history buffer verbatim now.
  * Bugfix:  /!0 would not retrieve the first command entered.
  * Bugfix:  Negative numbers not found would be display the
    incorrect number in the error message.  eg:  /!-4444
* Alterations to remove_trailing_spaces interface.
* $igetrmatches() was defined, but inaccessible.

Revision 1.5 / (view) - annotate - [select for diffs] , Wed Sep 26 17:32:03 2001 UTC (6 years, 10 months ago) by jnelson
Branch: MAIN
Changes since 1.4: +3 -2 lines
Diff to previous 1.4
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.

Revision 1.4 / (view) - annotate - [select for diffs] , Mon Sep 24 15:49:08 2001 UTC (6 years, 10 months ago) by crazyed
Branch: MAIN
Changes since 1.3: +12 -7 lines
Diff to previous 1.3
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.

Revision 1.3 / (view) - annotate - [select for diffs] , Wed Mar 7 18:03:23 2001 UTC (7 years, 5 months ago) by jnelson
Branch: MAIN
CVS Tags: epic4-1_0_1, epic4-1_0, epic4-0_9_17, epic4-0_10_0, epic-test-tag2, epic-test-tag
Changes since 1.2: +3 -1 lines
Diff to previous 1.2
Add the /for <var> in (<list>) {<commands>} command
Add the /for <var> from <min> to <max> {<commands>} command
Implement "break_args" that breaks argument lists to commands to an array.
Implement "skip_spaces" which skips leading spaces in a string.
This is commit #46, isn't it?

Revision 1.2 / (view) - annotate - [select for diffs] , Sat Jan 20 00:36:30 2001 UTC (7 years, 6 months ago) by jnelson
Branch: MAIN
CVS Tags: epic4-0_9_16
Changes since 1.1: +2 -1 lines
Diff to previous 1.1
Implement the "delayed free" queue, a dynamically sized holding area for
pointers passed to new_free() that will be free()d whenever we are about to
return to the main() function.  This obviates the "pointer on the stack"
crashes, at the expense of not being able to have crashes tell us when we
have a pointer on the stack. ;-)

Revision 1.1.1.1 / (view) - annotate - [select for diffs] (vendor branch) , Tue Dec 5 00:11:57 2000 UTC (7 years, 8 months ago) by jnelson
Branch: epicsol
CVS Tags: start, epic4_0_9_15, epic4-0_9_15, epic4-0_9_14
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, 8 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