| Commit message (Expand) | Author | Age | Files | Lines |
| * | Various fixes, more info later. | Bram Matthys | 2013-11-20 | 1 | -11/+18 |
| * | This one is better, and actually compiles ;) | Bram Matthys | 2013-05-10 | 1 | -5/+3 |
| * | Fix strange issue where linking didn't work because UnrealIRCd would•••bind to (for example) the loopback interface before connecting to the
remote server.
In addition to that, we now don't bind() at all when bind-ip is not
present or is set to "*".
| Bram Matthys | 2013-05-10 | 1 | -9/+11 |
| * | - Windows: Fix strange linking bug. Outgoing connects from a Windows••• IRCd caused a garbled SERVER protocol message, causing 'cannot find
server' errors and killing of users. Reported by Sunkat (#4183).
| Bram Matthys | 2013-04-04 | 1 | -1/+0 |
| * | - Pull in poll(2) stuff before any other ircd include files. (#4155)••• This allows us to successfully build on systems where pulling in poll.h
pollutes the code with a broken form of ctypes.h due to a few reasons, not
limited to, but including, usage of non-namespaced macros which clash with
our own.
| William Pitcock | 2013-01-14 | 1 | -10/+15 |
| * | - Fix bug caused by new I/O engine (both with and without USE_POLL):••• queued data on the receive queue (eg: due to fake lag) was not processed
unless we got new data from the client.
Now, better document this. Also, avoid calling dbuf_put with 0 length.
| Bram Matthys | 2012-05-02 | 1 | -24/+19 |
| * | - Poll I/O engine: get_client_by_pollfd() may return -1 when there's a race••• condition. Don't abort, instead just skip those clients.
This fixes a crash I had on /SQUIT.
| Bram Matthys | 2012-03-26 | 1 | -2/+1 |
| * | last change to poll patch for the day.. fixing my own fix ;) | Bram Matthys | 2012-02-26 | 1 | -6/+10 |
| * | make c-ares use 100% poll. and make sure we never deal with negative fds. | Bram Matthys | 2012-02-26 | 1 | -7/+51 |
| * | Some more changes and fixes regarding poll patch:•••* use get_client_by_pollfd() function instead of pollfd_to_client[]
directly, so we can easily find and debug any mistakes.
* add some commenting
* add extra debugging and core dumping if fd or slot values are out of bounds
* fix race condition in read_authports() where send_authports() 2 lines up
could have closed the socket, resulting in a read from fd -1.
NOTE: I've updated the select (non-poll) code as well, should be harmless.
| Bram Matthys | 2012-02-26 | 1 | -20/+44 |
| * | regarding poll patch:•••* move all (re-)initalization to reset_pollfd(), i'm
much more comfortable with that as it aids debugging a lot.
* add parenthesis.
update my own fd check code for poll support
| Bram Matthys | 2012-02-26 | 1 | -14/+25 |
| * | - Added patch from Adam for poll() support (#1245). | Bram Matthys | 2012-02-26 | 1 | -21/+222 |
| * | - Make the accept code check if the fd is within bounds instead of relying••• on OpenFiles to be correct. This fixes a crash when f.e. 3rd party modules
have files open but don't increase OpenFiles. Might also fix a curl crash,
though nobody ever reported one.
| Bram Matthys | 2012-02-26 | 1 | -1/+12 |
| * | - Module coders: Added HOOKTYPE_HANDSHAKE which is called before the client••• handshake, IOTW: as soon as the connection is established. This can be
used to do things prior to accepting any commands, such as sending some text.
| Bram Matthys | 2011-04-03 | 1 | -0/+2 |
| * | - Fixed another compile problem on QNX, reported by chotaire (#3955 too).•••- Fixed incorrect messages regarding clock going backwards on QNX 6 and
later, reported by chotaire (#0003956).
| Bram Matthys | 2010-09-08 | 1 | -1/+2 |
| * | - Get rid of any setsockopt(IPV6_V6ONLY) errors in ircd.log (#3944).•••(oh and yeah I removed the prototype of our_crc32 which is totally unrelated...)
| Bram Matthys | 2010-08-16 | 1 | -3/+1 |
| * | - Remove include/nameser.h and reference to nameser.h from s_bsd.c. The assoc... | binki | 2010-07-10 | 1 | -6/+0 |
| * | - Throw out old USE_POLL code which 1. has no buildsystem support and 2. has ...•••- Removed extraneous apostrophe from a module loader error message.
| binki | 2010-06-15 | 1 | -467/+0 |
| * | - Partially fixed bug where IPv4 addresses were randomly mishandled by the cg... | binki | 2010-05-28 | 1 | -1/+1 |
| * | linking bug & ipv6 thing (the latter is completely untested):•••- IPv6: it seems some recent Linux dists decided to make IPv6 sockets
IPv6-only, instead of accepting both IPv4&IPv6 on them like until now.
FreeBSD (and other *BSD's) already did that move a few years back,
requiring server admins to sysctl.
We now make use of a new option to explicitly disable "IPv6-only".
This should work fine on Linux.
Whether it provides a complete solution for FreeBSD, I don't know, testing
is welcome! In theory setting net.inet6.ip6.v6only to 0 should no longer
be needed, but you might still need to enable ipv6_ipv4mapping.
- Fix stupid issue where current CVS would no longer link TO an earlier
Unreal server (eg: outgoing connect to a 3.2.8 hub). Reported by ohnobinki
(#0003901).
| Bram Matthys | 2010-04-25 | 1 | -6/+26 |
| * | - Fixed a /RESTART issue on Linux: Unreal did not properly close all file-••• descriptors. Because of this, Unreal did not restart properly as you would
get an "Address already in use" error. This only seemed to happen when
logging to syslog.
- Fixed a similar issue with syslog (and debugmode) and closing fd's as well:
the first port we listened on would not open up, ircd did not log any error.
| Bram Matthys | 2010-01-04 | 1 | -0/+6 |
| * | PROTOCTL EAUTH/SERVERS/new linking protocol:•••- Server protocol: added PROTOCTL EATH=servername, which allows us to
authenticate the server very early in the handshake process. That way,
certain commands and PROTOCTL tokens can 'trust' the server.
See doc/technical/protoctl.txt for details.
- Server protocol: between new Unreal servers we now do the handshake a
little bit different, so it waits with sending the SERVER command until
the first PROTOCTL is received. Needed for next.
- Server protocol: added PROTOCTL SERVERS=1,2,3,4,etc by which a server can
inform the other server which servers (server numeric, actually) it has
linked. See doc/technical/protoctl.txt and next for details.
- When our server was trying to link to some server, and at the same time
another server was also trying to link with us, this would lead to a
server collision: the server would link (twice) ok at first, but then a
second later or so both would quit with 'Server Exists' with quite some
mess as a result. This isn't unique to Unreal, btw.
This happened more often when you had a low connfreq in your link blocks
(aka: quick reconnects), or had multiple hubs on autoconnect (with same
connfreq), or when you (re)started all servers at the same time.
This should now be solved by a new server handshake design, which detects
this race condition and solves it by closing one of the two (or more)
connections to avoid the issue.
This also means that it should now be safe to have multiple hubs with low
connfreq's (eg: 10s) without risking that your network falls apart.
This new server handshake (protocol updates, etc) was actually quite some
work, especially for something that only happened sporadically. I felt it
was needed though, because (re)linking stability is extremely important.
This new feature/design/fix requires extensive testing.
This feature can be disabled by: set { new-linking-protocol 0; };
| Bram Matthys | 2010-01-01 | 1 | -3/+7 |
| * | - Added support for STARTTLS. This allows users to switch to SSL without••• having to use a special SSL-only port, they can simply switch to SSL on
any port. This is currently only supported by few clients (such as KVIrc 4).
This functionality can be disabled by setting set::ssl::options::no-starttls,
for example if you don't want to offer SSL to your users and only want it
to be used for server to server links.
Naturally, the IRCd must be compiled with SSL support for STARTTLS to work.
- Fixed SSL_ERROR_WANT_READ in IRCd_ssl_write()
| Bram Matthys | 2009-12-06 | 1 | -4/+11 |
| * | - Applied patch from ohnobinki (#0003863) which makes run-time configuration••• of files (tune, pid, motd) possible.
| Bram Matthys | 2009-11-22 | 1 | -3/+3 |
| * | - Don't do show-connect-info on servers-only ports | Bram Matthys | 2009-04-22 | 1 | -3/+3 |
| * | - Added documentation for set::spamfilter::slowdetect-warn,••• set::spamfilter::slowdetect-fatal, set::ssl::server-cipher-list,
set::ssl::renegotiate-bytes, set::ssl::renegotiate-timeout,
set::watch-away-notification and ./unreal gencloak. Reported by Bock
(#0003764).
- set::ssl::renegotiate-bytes: fix when specifying a value such as 10m.
- './unreal gencloak' now actually works
- Fix typo in user mode q notice, reported by Strawberry_Kittens and others
(#0003761).
- Possible fix for MAC OS X compile problem - UNCONFIRMED.
| Bram Matthys | 2009-01-03 | 1 | -1/+1 |
| * | - Fixed crash which could happen when rehashing while linking to a server,••• this could be #0003689 reported by Monk.
| Bram Matthys | 2008-12-27 | 1 | -0/+6 |
| * | - Added another Mac OS X hack, such as one that should help against••• 'error setting max fd's to 9223372036854775807' which prevents the ircd
from booting up. Reported by btcentral and Bock. This hack might not be
totally correct though ;).
| Bram Matthys | 2008-08-08 | 1 | -0/+3 |
| * | HOOKTYPE_RAWPACKET_IN: not very useful, it's not meant for packet manipulatio... | Bram Matthys | 2008-02-23 | 1 | -0/+7 |
| * | - #0002533 reported by Dodge_Ram, patched by WolfSage, regarding notices••• not being sent when /*line and /shun are used to request stats
| stskeeps | 2007-06-14 | 1 | -9/+15 |
| * | #if defined(DEBUGMODE) && !defined(_WIN32) | Bram Matthys | 2006-11-05 | 1 | -2/+2 |
| * | - Fixed small memory leak in resolver (~40 bytes when connecting to a server)•••- Made Unreal use the original name in case of a CNAME, instead of the forwarded name,
reported by jerrcsnet (#0003054).
- The "looking up your hostname" message was always sent, regardless of show-connect-info.
| Bram Matthys | 2006-09-06 | 1 | -1/+1 |
| * | - (multiple?) IPv6 listen blocks could cause a crash in config parser. Report...••• (#0002868).
| Bram Matthys | 2006-05-04 | 1 | -2/+2 |
| * | - c-ares (currently, a forked off version) enhancements:••• - '/quote dns i' now shows the nameserver settings (which is taken from /etc/resolv.conf
on *NIX, and from the registry on Windows)
- We no longer depend on a C++ compiler (was useless c-ares dependency caused by libtool)
- '/REHASH -dns' now rereads the resolver data from resolv.conf/registry, no IRCd restart
needed anymore. It's currently kinda experimental however, but I *think* it will work ok.
Unfortunately the above features required some ugly hacks if curl was enabled, so if you
use curl (Remote includes), feel free to test on your OS (Linux, but especially FreeBSD
and the other *NIXes) to see if things still compile (make clean; ./Config && make).
| Bram Matthys | 2006-04-11 | 1 | -1/+1 |
| * | - Fixed CHROOTDIR compilation problem, reported by toshio (#0002854).•••- Improved CHROOTDIR documentation in include/config.h
- Added error if CHROOTDIR is defined but IRC_UID isn't (in include/config.h).
| Bram Matthys | 2006-04-09 | 1 | -0/+2 |
| * | - Removed some odd code causing a 'my port is' message to appear in (f.e.) sy...••• by rsc (#0002853).
| Bram Matthys | 2006-04-09 | 1 | -11/+0 |
| * | - Fixed (serious) bug in CGI:IRC code, IP's were often not right, reported by... | Bram Matthys | 2006-02-16 | 1 | -1/+4 |
| * | - Added CGI:IRC host spoofing support. This means you can mark specific CGI:I...••• "trusted" and the IRCd will show the users' _real_ host/ip everywhere on IRC, instead of the
_CGI:IRC-gateway_ host/ip.
To do so you must set 'realhost_as_password' to 1 in your cgiirc.conf. And add the
CGI:IRC gateway(s) you fully trust to set::cgiirc::hosts.
| Bram Matthys | 2006-02-14 | 1 | -0/+2 |
| * | - When set::options-show-connect-notice was enabled the "*** Looking up your ...••• message was not being shown (all others were). Reported by fbi (#0002820).
| Bram Matthys | 2006-02-14 | 1 | -0/+2 |
| * | - Fixed localhost crash (if no dns record for 127.0.0.1), reported by Trocotr... | Bram Matthys | 2006-01-26 | 1 | -2/+5 |
| * | - Fixed some more memleaks, thanks to valgrind. | Bram Matthys | 2006-01-15 | 1 | -0/+1 |
| * | - Fixed serious flood of notices to opers if link::options::dnscache was pres...••• Reported by firstof9.
| Bram Matthys | 2005-11-15 | 1 | -1/+1 |
| * | - Fixed SSL + new resolver problem, would cause an "interesting flood" of mes...••• Reported by Trocotronic (#0002659).
- Fixed a problem with entries in the hosts file (such as, usually, localhost), this would
cause an unresolved host and a 30s delay for the user, even though resolving succeeded.
| Bram Matthys | 2005-10-11 | 1 | -3/+20 |
| * | - Removed all old resolver code and switched over to c-ares (+our caching rou...••• This should get rid of some annoying untracable (and usually rare) crashbugs in the
old resolver. Besides that, it makes things look more clean and understandable.
This should be the fix for the following bugids (all the same issue): #2499, #2551, #2558,
#2559, #2603, #2642, #2502, #2501, #2618, #2616.
Feedback and testing is very much welcomed (syzop@unrealircd.com).
| Bram Matthys | 2005-10-10 | 1 | -144/+44 |
| * | - Fixed ~c not working properly with * and ?'s in channel names.. Now you jus...••• escape them like in all bans (eg: to ban #* you need to +b ~c:#\*). As an additional
bonus, real wildcards are now accepted and processed (eg: +b ~c:#*sex*, just don't
forget to specify the #). Reported by PhantasyX (#2605).
- Sidenote on above: ~c:*chan* is not supported (use ~c:#*chan* instead) because it would
cause "hidden bans", therefore it now prints a message (which is useful anyway), but
does accept such remote bans. In 3.2.5 or so we could enable support for it, it's
not that important though... ;)
- Added ifdefs for mass closing of file descriptors on start, can now be disabled by
adding -DNOCLOSEFD as a compile option. Useful for valgrind w/--db-attach=yes, mpatrol,
and some other debugging tools (not useful for anyone normally running a server).
- Fixed a read-after-free: sptr->serv->aconf was freed but not NULL'ed in exit_client,
causing close_connection to read from it (when deciding on doing a quick reconnect).
Could have caused a crash, although nobody ever reported one...
- Removed useless strncpyzt with dest==src.
| Bram Matthys | 2005-08-19 | 1 | -1/+11 |
| * | - Renamed some calls from report_error() to report_baderror() since otherwise...••• hardly ever seen (unless you have +s +j set). For example a bad link::bind-ip only caused
"Couldn't connect to xxxxxx" without any meaningful error message. Additionally, errors
sent to report_baderror() are now logged.
^^ way too long description for a small tweak :p
| Bram Matthys | 2004-11-17 | 1 | -6/+7 |
| * | Added documentation for set::options::fail-oper-warn, Removed an extra ) in t... | codemastr | 2004-11-13 | 1 | -5/+4 |
| * | - IPv6: Fixed hostnames in link::hostname not working, reported by Jasmin (#0... | Bram Matthys | 2004-10-07 | 1 | -3/+4 |
| * | - Fixed "quickly-rehashing + autoconnect linkblocks = crash"-bug. This involv...••• multiple reference count bugs, one related to sptr->serv->conf, and another one related
to sptr->serv->class. Both caused problems when someone did a /rehash when a server
was in the process of connecting (so it might also happen when connfreq was hit and you
did a /rehash). Original bug was reported by sh0 (#0001872).
| Bram Matthys | 2004-06-25 | 1 | -0/+3 |
| * | - Fixed '/stats P' negative usercount bug (#0001691). | Bram Matthys | 2004-06-25 | 1 | -0/+1 |