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

1585 Commits

Author SHA1 Message Date
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
autoupdate 58151df3b7 Automatic weekly version update: 201032 2010-08-08 23:00:02 +00:00
binki 0a34af8720 - Define intptr_t in win32's setup.h. (#3939) 2010-08-04 00:03:40 +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
autoupdate eb1f41bd9c Automatic weekly version update: 201031 2010-08-01 23:00:03 +00:00
autoupdate 27c437c953 Automatic weekly version update: 201030 2010-07-25 23:00:02 +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 85904c2277 - Fix the detection for curl-without-c-ares a little (#0003940). ** fun.. autoconf 2.61** 2010-07-22 09:59:36 +00:00
binki 7a3bf15558 - Now define _SOLARIS, USE_LIBCURL, and ZIP_LINKS in setup.h instead of the Makefiles. This means better automatic rebuilds if the latter settings change. 2010-07-20 16:09:10 +00:00
autoupdate 48b76358f4 Automatic weekly version update: 201029 2010-07-18 23:00:03 +00:00
binki 4eff1e8493 - Remove extraneous `I' from configure.ac, run ./autogen.sh. (#3930) 2010-07-15 21:33:54 +00:00
autoupdate 4238fff401 Automatic weekly version update: 201028 2010-07-11 23:00:02 +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 bd636c4e6d - Attempt to make up for Windows not having mode_t and not complying to POSIX. 2010-07-09 15:40:58 +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
autoupdate 5cf8ee21a0 Automatic weekly version update: 201027 2010-07-04 23:00:03 +00:00
autoupdate c3ea2568b2 Automatic weekly version update: 201026 2010-06-27 23:00:02 +00:00
binki 7fdd8cce96 - Fixed desynchronized prototype. 2010-06-26 04:36:56 +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
autoupdate 2980fe011f Automatic weekly version update: 201025 2010-06-20 23:00:02 +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
Bram Matthys 6e34938c59 - Forgot to commit the REMOTEINC_SPECIALCACHE stuff to config.h which means
it wasn't actually enabled until now...
2010-06-16 11:47:42 +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
autoupdate 5cf1dc144a Automatic weekly version update: 201024 2010-06-13 23:00:02 +00:00
autoupdate 304e3ad0d4 Automatic weekly version update: 201023 2010-06-06 23:00:03 +00:00
autoupdate 6ab3862520 Automatic weekly version update: 201022 2010-05-30 23:00:02 +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
autoupdate a4fc53fc3a Automatic weekly version update: 201021 2010-05-23 23:00:03 +00:00
autoupdate fe33820f02 Automatic weekly version update: 201020 2010-05-16 23:00:11 +00:00
autoupdate 80c21aac2e Automatic weekly version update: 201019 2010-05-09 23:00:08 +00:00
autoupdate 0c939fa194 Automatic weekly version update: 201018 2010-05-02 23:00:10 +00:00
autoupdate 24d0463d4c Automatic weekly version update: 201017 2010-04-25 23:00:15 +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
autoupdate cd3dd80c54 Automatic weekly version update: 201016 2010-04-18 23:00:17 +00:00
autoupdate e3be08d5d1 Automatic weekly version update: 201014 2010-04-04 23:00:21 +00:00
autoupdate 84a19ab091 Automatic weekly version update: 201013 2010-03-28 23:00:16 +00:00
autoupdate e422f24d52 Automatic weekly version update: 201012 2010-03-22 00:00:10 +00:00
autoupdate a7ea2f49b3 Automatic weekly version update: 201011 2010-03-15 00:00:04 +00:00
autoupdate 86d8796b77 Automatic weekly version update: 201010 2010-03-08 00:00:12 +00:00
autoupdate 982e5a82c0 Automatic weekly version update: 201009 2010-03-01 12:14:53 +00:00
Bram Matthys 1af446e5a3 clarify UNREAL_VERSION_TIME: the week # is ISO week. 2010-03-01 12:08:38 +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 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
autoupdate 080a2d6810 Automatic weekly version update: 200952 2009-12-28 05:00:05 +00:00
autoupdate 75685b1684 Automatic weekly version update: 200951 2009-12-21 05:00:03 +00:00
autoupdate 086d464c8a Automatic weekly version update: 200950 2009-12-14 05:00:03 +00:00
autoupdate 8b637e344b Automatic weekly version update: 200949 2009-12-07 05:00:04 +00:00
Bram Matthys f5d9a87f08 - Use RPL_STARTTLS/ERR_STARTTLS numerics 2009-12-06 16:59:15 +00:00
Bram Matthys 5a0a71de03 - 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()
2009-12-06 16:52:52 +00:00