1
0
mirror of https://github.com/unrealircd/unrealircd.git synced 2026-06-30 20:26:38 +02:00
Commit Graph

2799 Commits

Author SHA1 Message Date
Bram Matthys 17c97c8442 - Fixed notices to opers about server delinks not being broadcasted to all
other servers if they were on SSL links. Reported by chotaire (#0003957).
2010-09-19 14:10:43 +00:00
binki 1a01e725c7 - Add the m_nopost module written by syzop and compile it into
commands.so. This module was written to help IRCd maintainers deal
  with some sort of ``XPS'' attack in which javascript-initiated HTTP
  POST form submissions were able to act as dummy IRC bots. These
  simple bots were the cause of much spam. (#3893)
- Add a modules section to the documentation. This was created to put
  all documentation specific to the m_post module in one, easy to find
  place. The documentation on m_post is likely incomplete, however.
2010-09-15 16:22:25 +00:00
Bram Matthys b83f096e48 - 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).
2010-09-08 11:07:22 +00:00
binki 9643607334 - Fix segfault by checking if RESTRICT_USERMODES is NULL in the code for bug #3329. 2010-08-25 04:36:28 +00:00
binki c144008217 - Fix /msg IRC WHOIS response for persons with secure connections. (#3947) 2010-08-24 16:46:29 +00:00
Bram Matthys 9a5c536cce hm :) 2010-08-20 12:16:40 +00:00
Bram Matthys da48cfc039 *** empty log message *** 2010-08-20 12:15:27 +00:00
binki 36c0bdde2e - Remove snomasks upon deopering when it seems like the user shouldn't have snomasks. (#3329) 2010-08-20 11:15:22 +00:00
binki 9f823be20b - Warn users against running UnrealIRCd as root without setting IRC_USER. (#3053 reported by Stealth) 2010-08-20 11:10:00 +00:00
binki d46bdd4841 - Update .cvsignore for Mac OSX's *.dSYM files. 2010-08-17 16:50:42 +00:00
binki e473fbc44c - Actually initialize m_starttls when it's included into commands.so. 2010-08-16 17:00:42 +00:00
Bram Matthys 6dcb276f8d - 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...)
2010-08-16 09:31:04 +00:00
binki 2d10ab189d - IPv6 clones detection support (#2321). allow::ipv6-clone-mask determines the number of bits used when comparing two IPv6 addresses to determine if allow::maxperip is exceeded. This allows an admin to recognize that most IPv6 blocks are allocated to individuals, who might each get a /64 IPv6 block. set::default-ipv6-clone-mask defaults to 64 and provides default value for the allow blocks. 2010-08-15 04:44:16 +00:00
Bram Matthys 75d4fecb4b ..This is actually an update of earlier code from CVS, but now it works ok:..
- Added support for "stacked" extbans. Put simply this allows extban combinations
  such as ~q:~c:#test to only silence users on #test, for example. This feature
  is enabled by default, but can be disabled during ./Config -advanced.
  This feature was suggested by Shining Phoenix (#0003193), was then coded
  by aquanight for U3.3, and later on backported and partially redone by Syzop.
  Module coders:
  In an extban ~x:~y:something where we call ~x the 1st, and ~y the 2nd extban:
  Since stacked extbans only makes sense where the 1st one is an action
  extended ban like ~q/~n/~j, most modules won't have to be changed, as
  their extban never gets extended (just like ~c:~q: makes no sense).
  However, you may still want to indicate in some cases that the extban your
  module introduces also shouldn't be used as 2nd extban.
  For example with a textban extban ~T it makes no sense to have ~n:~T.
  The module can indicate this by setting EXTBOPT_NOSTACKCHILD in
  the ExtbanInfo struct used by ExtbanAdd().
  For completeness I note that action modifier extbans are indicated by
  EXTBOPT_ACTMODIFIER. However, note that we currently assume all such
  extbans use the extban_is_ok_nuh_extban and extban_conv_param_nuh_or_extban
  functions. If you don't use these and use EXTBOPT_ACTMODIFIER, then things
  will go wrong with regards to stack-counting.
  Module coders should also note that stacked extbans are not available if
  DISABLE_STACKED_EXTBANS is defined.
- Added extended ban ~R:<nick>, which only matches if <nick> is a registered
  user (has identified to services). This is really only useful in ban
  exemptions, like: +e ~R:Nick would allow Nick to go through all bans if he
  has identified to NickServ. This is often safer than using +e n!u@h.
- Added Extended Invex. This is very much like extended bans, in fact it
  supports some of the same flags. Syntax: +I ~character:mask
  Currently supported are: ~c (channel), ~r (realname) and ~R (registered).
  This can be useful when setting a channel invite only (+i) and then
  setting invite exceptions such as +I ~c:#chan (or even ~c:+#chan), while
  still being able to ban users.
  Because action modifiers (~q/~n/~j) make no sense here, extended invex
  stacking (+I ~a:~b:c) makes no sense either, and is not supported.
  Suggested by DanPMK (#0002817), parts based on patch from ohnobinki.
  Module coders: set EXTBOPT_INVEX in the ExtbanInfo struct used by
  ExtbanAdd() to indicate that your extban may also be used in +I.
- Invex (+I) now always checks cloaked hosts as well. Just like with bans,
  it checks them also when the user is not currently cloaked (eg: did -x, or
  is currently using some VHOST).
- Fixed client desynch caused by (un)banning, reported by Sephiroth (#2837).
2010-08-14 18:27:19 +00:00
binki 94c2b58366 - Fix a few compiler warnings with some double-casting and another const. (#3939) 2010-08-03 23:57:44 +00:00
binki a1d076367e - Fix src/Makefile's lack of depencencies for module.c, related to #3938. 2010-08-03 17:06:05 +00:00
binki 46668768cf - Add an extban of the schema +b ~j:*diff | less@* which _only_ prevents a user from joining a channel. 2010-07-22 12:32:06 +00:00
Bram Matthys c514288a0a - Fixed some odd behavior with SVSMODE and +z/-z, reported by TehRes (#0003498), fixed a strange SVSMODE +d <non-number> bug where it would act as a +x too. 2010-07-14 18:54:38 +00:00
binki d09b68a942 - Prevent stacked bans (like +b ~q:~q:~n:~c:#chanel) from crashing unrealircd due to over-recycling a static buffer. Discovered by syzop. 2010-07-13 14:24:08 +00:00
binki 4cc0244c58 - Remove remaining nameser.h references from Makfiles. 2010-07-12 01:25:14 +00:00
binki d421282cf5 - Remove include/nameser.h and reference to nameser.h from s_bsd.c. The associated functionality has been provided by c-ares for a long time. 2010-07-10 13:52:52 +00:00
binki 649818d4ad - Fix references to motd and friends in src/win32. 2010-07-09 17:46:38 +00:00
binki ac81a9cd9a - Fix references in src/win32 to aMotd to now be to aMotdFile. 2010-07-09 17:25:33 +00:00
binki 7dbf154d04 - Move configure.ac to the project's root.
- Separate m4 macros into *.m4 files (it is much easier to run aclocal now).
- Remove unused DOMAINNAME macro and --with-hostname= options as the DOMAINNAME macro isn't used anywheres and its use shouldn't be encouraged.
- autogen.sh to bootstrap the buildsystem. We now maintain setup.h with autoheader.
- --disable-blah now does the opposite of --enable-blah. The same for --with-blah and --without-blah. (This makes Gentoo users happier).
2010-07-08 02:51:43 +00:00
binki 2a6a4b31ff - Fixed a few trivial compilation warnings. 2010-06-29 03:00:34 +00:00
binki 11d84d8534 - Replaced some coders@lists.unrealircd.org references with bugs.unrealircd.org.
- Update/add some .cvsignore files.
2010-06-21 21:57:42 +00:00
Bram Matthys 1e5e60d635 - Fixed race condition / reference count issue where an outgoing server connect
would cause the IRCd to crash. Reported by Monk (#0003913).
2010-06-21 12:27:45 +00:00
binki 8ee34484b4 - When removing a SHUN, check if users who were blocked by this SHUN are still blocked by another SHUN. Previously, if multiple shuns covered a single user, removing one of these shuns would mark the user as un-SHUN-ed. (#0003906) 2010-06-20 06:28:38 +00:00
binki aa0c706bff - Handle bad flags in set::ssl::options better (#0003896). 2010-06-19 22:00:05 +00:00
binki 9faa5a6d2b - Fix files::shortmotd to by accepted by unrealircd like the docs say it is.
- Fix remote includes download handling which I broke for remote includes ;-).
- Recursively add more consts.
2010-06-17 02:41:43 +00:00
binki d7835d959e - Fix typo 2010-06-16 14:14:08 +00:00
binki 06e807130c - Added error message for unknown directives in the "files" block
- Remote MOTD support. Not adequately tested. Required restructuring of the asynchronous download callback and handler.
- Added some consts throughout url.c, etc.
- Fix segfault where the an include directive specifies a URL and cURL follows redirects, resulting in a different resultant URL. The remote includes code would look for the an include block using the resultant URL and assume that it would be found. The new code searches differently, has new checks, and ignores the resultant URL.
- Removed duplicated m_motd() and friends that were both in modules and s_serv.c. The copies in s_serv.c (core) were overriding the in-module functions.
2010-06-16 05:44:15 +00:00
binki fc1e848a2a - Throw out old USE_POLL code which 1. has no buildsystem support and 2. has comments which claim it doesn't work.
- Removed extraneous apostrophe from a module loader error message.
2010-06-15 02:37:50 +00:00
binki 9e64a0121c - More strict sockhost (hostmask) checking in m_nick.c:_register_user(). Fixed some bad string handling as well. See comments in bug (#0003907). 2010-05-28 21:31:36 +00:00
binki f1ec26a07c - Partially fixed bug where IPv4 addresses were randomly mishandled by the cgiirc code, resulting in the sockhost/hostmask being set to something like ::ffff:127.0.0.1, which confused the s2s protocol. Reported by tabrisnet (#0003907). Also, reject incorrectly formed hostnames from WEBIRC command. 2010-05-28 04:30:22 +00:00
Bram Matthys 625102cacd - Fixed bug in CVS where the ban exempt (+e) handling was reversed: if a
non-matching +e was present, one could walk through bans. Reported by
  tabrisnet (#0003909). Bug was caused by chained/stacked extbans.
2010-05-24 12:01:07 +00:00
Bram Matthys ab7957a6a8 docs: credit changes (permanent), the rest: interim credit changes -- needs to be finalized before 3.2.9 release, as always... 2010-05-17 10:01:08 +00:00
binki 9f6492169b - SVSMODE now triggers HOOKTYPE_UMODE_CHANGE and HOOKTYPE_REMOTE_CHANMODE. 2010-05-17 02:41:43 +00:00
binki 1f89c2f6df Removed ugly ``files {} got initialized!'' message. 2010-05-15 21:23:29 +00:00
binki 38b7350f7c Remove m_addline from commands.so 2010-05-15 21:17:57 +00:00
binki 046eb67100 - Fix -DDEFAULT_PERMISSIONS=0 support. Previously, support.c:unreal_copyfile() would create files with no permissions, breaking loadmodule. (#0003905) 2010-05-05 23:59:27 +00:00
binki c0790e90de - Remove the Compile as hub/leaf'' concept as I'm quite sure this doesn't actually do anything (#0003891) 2010-05-05 22:39:18 +00:00
Bram Matthys 8e26c4b540 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).
2010-04-25 19:14:55 +00:00
Bram Matthys b245850fb0 update donators. 2010-03-08 16:24:22 +00:00
Bram Matthys e47baea5da - Made '/REHASH -motd' really rehash *all* MOTD, OPERMOTD, BOTMOTD and RULES
files. Reported by bitmaster (#0003894).
2010-03-03 13:56:28 +00:00
Bram Matthys a41384b37f - Removed old dgets() and crc32 function (code cleanup) 2010-02-13 13:09:46 +00:00
Bram Matthys ef745b3423 - We now no longer treat \ (backslash) in *MOTD and RULES files as special.
Previously this caused some really odd behavior. Backslashes are now
  treated as-is, so no special escaping is necessary. Reported by DelGurth
  (#0003002).
- Removed old dgets() function
2010-02-13 13:07:19 +00:00
Bram Matthys 9259ddee06 - Added set::uhnames setting which can be used to disable uhnames by setting
it to 'no', the default is 'yes' (on). Requested by Robin (#0003885) as
  UHNAMES may increase the time of the nick list being loaded from 1 to 4
  seconds when joining several channels with more than 1000 users. As this
  problem is only present on some networks, we keep UHNAMES enabled by
  default.
2010-01-12 18:30:36 +00:00
Bram Matthys 7ad6dcd977 - 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.
2010-01-04 13:11:03 +00:00
Bram Matthys dddc8f07e4 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; };
2010-01-01 19:49:06 +00:00