1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189
|
S
+ = Added a feature
- = Fixed a bug
* = Changed something
^ = Hmm...
Friday 03-02-01
+ Documentation updates
+ Added the man page that karl sent.. oh long time ago.
It still needs a little work.
... Released 0.99.12
Lots more work can be done...
Wednesday 02-28-01
+ Added support for UnReal IRCD '*' and '^' channel
user modes.
^ Tried to change conn id allocation, so that it would use
any holes in the sequence instead of always incrementing. Couldn't
think of a way right now to do it w/o eventually walking the whole
list of conns at some point. In fact, many times. Will look into this
later.
Saturday 02-24-01
* Changed auto-detach crap. There is now just one
set 'enable-auto-detach' variable. You must /quote
ezb quit.
Tuesday 01-30-01
+ Added anti-idle thingy for detached connections
* Revised some of the timer code
* Admin needs password now to reattach
Sunday 01-14-01
- Fixed unused parameter warnings on some compilers
Saturday 01-13-01
+ Added further handlers for POLLERR/POLLHUP. I'm not sure this
will totally cure the poll() infinite loop problems though.
- oops, select()-based socket code was crashing.
- fixed that..
- 0.99.11 released
Sunday 12-24-00
- Applied Karl's mdidentd return code fix patch
Thursday 11-23-00
+ Added select() implementation for pollsocket system. In some ways it
is actually cleaner. How stable is it.. we will see.
+ Added --use-select option to configure to force use of select() for
socket code
^ Found an exploit against 0.85.2 involving a buffer overflow in the
nickname storage. Recent versions are not affected, because a limit
on nickname length is enforced, rather than a flat out my_strdup
on the whole string obtained from the user.
* Increased listen() backlog to 20.
+ Now sends ERROR string after being killed and detaching.
Tuesday 10-31-00
- Fixed null pointer dereferences in timer code.
- Released 0.99.10
Friday 10-13-00
- Fixed random permissions occurring on pid file (added fchmod call)
Thursday 10-12-00
^ Released 0.99.9
Monday 10-09-00
- Fixed compile issues under RedHat 7/GCC 2.9x
Sunday 09-10-00
^ Welp, a month hiatus isn't very productive but time has been
against me lately. But here goes..
* Outgoing DCC Proxying now done with real sender ip being used
^ dccpipe constructor assumes ip and port are in host order. is this
the right thing?
Wednesday 08-09-00
* Changed timer system from itimer based to a simple system
that adjust the poll() wait time so we get the right checks
done very 30 seconds.
* alarm() is back for DNS timeouts (still doesn't do jack
on glibc(?) tho)
Sunday 08-06-00
^ ... tested again finally and it works. Gotta decide what to do
tho.
* Cleaned up some old cruft in conn.cpp.
Wednesday 08-02-00
^ Well, incoming DCC Proxying seemed to work. Outgoing didn't.
Found that we never called bind() when connecting to sender.
^ Well I was wrong. Bind() is not needed at all. Just need to know
where we're connecting to do. And that is where the problem lies..
Turns out mIRC is setting its local host to global ip by /whois'ing
itself and not using LAN Ip. This is reflected in the CTCP DCC commands,
from where we extract the senders ip and port.
* Fixed several possible crashes in dcc.cpp. Call close_all() and you must
exit.
^ Handling of POLLERR & POLLHUP: poor. It seems to occur on connect errors,
and we can apparently do a recv_test() to find out why.
* Wrote a handler for this in dcc.cpp: However, a recv_test() would also be
nice
^ Noticed DCC being killed in 5 seconds due to time out: recheck timer code.
Something is screwy somewhere.
^ Need to decide on DCC proxying, if to use the real IP address of the
sender or the one he provides in CTCP DCC? The latter would give users more
flexibility... not sure what do to
^ After realizing the true problem behind the proxy issue, i tested again and...
Tuesday 08-01-00
^ Hmm... odd DCC Proxying issues. A basic test from my lan failed. I don't
know if its this new code, or if the code was originally fucked.
100% CPU usage in one stage of the process. Investigating........
Saturday 07-29-00
+ Half assed solution for DCC time outs.
^ This timer system is not the best thing. It works
for now and I'll leave it in. A better solution is to
control the timeout value for the poll() call to make sure
that every 30 seconds we do the needed checks.
Right now I want to make a release. It's been way too long.
+ Fixed a bug in list_iter postfix increment/decrement.
Basically wouldn't work if there was no previous or next item.
* Removed unnecessary "dumping logs" message.
^ Released 0.99.8
Friday 07-28-00
+ further documentation updates (config files)
* Now using set/getitimer for all timer needs
+ New timer code in server.cpp; alarm_handler() sets
flags which are checked by check_timers()
^ Well, alarm() interferes with itimers. So I got rid of all
alarm() calls...
and also I noticed alarm() has never really interrupted
DNS lookups on glibc
In any case, an alarm is delivered every 30 seconds so the
DNS lookup will be interrupted eventually.
Wednesday 07-26-00
+ Added the checks for poll() and #errors about not having it
- Fixed potential null pointer de-reference in conn:kill()
- Fixed another null pointer dereference for 'write' command
* Moved conn::msg_xxxx cruft to messages.h
^ Tested several DCC events and combinations. Seems to work
fine, MD5Sums check out.
Tuesday 07-25-00
+ Added the auto-away thing to detach.
+ Updated the documentation in README. Documenting all the
config options is what remains. Need to check sample.conf..
Monday 07-24-00
* Changed logfile searching and sending to unlimited.
* Storing results in conn::loglist of type obj_set<char> *
^ Should I make an string list class or something.. to
use in managing the locked logfile list as well as
the search result list.. Maybe later.
+ Wrote pollsocket::compress() -- it could be better though..
- Fixed being able to set log options w/o specifing c,p or a.
* Changed several simple member functions to have a const property.
^ pollsocket::~pollsocket(): num_pfds is decreased in some cases but
sizeof allocated memory remains the same.. investigate!
Sunday 07-23-00
+ Added "auto-connect-server" option to connect automagically
upon registration.
* Moved conn command handler to its own function to facilitate
new auto-connect-server option.
* gettok() call to obtain value for do_set_command() now uses
get_rest argument.
* Eliminated conn::get_client()
Replacement is conn::addr(); data to be stored permanently in
user.fulladdr and not recalculated everytime.
(id: %d) syntax becomes obsolete under above system
- Fixed incorrect use of htons() in many places. Should have used
ntohs() when decoding sin.sin_port. Didn't seem to matter on i386
machines though.
* Redid detach/reattach ruleset issue. Store result of
getsockname(client->fd) port and user's ip in a local_saddr and
|