1
0
mirror of https://github.com/unrealircd/unrealircd.git synced 2026-06-27 01:36:37 +02:00
Commit Graph

176 Commits

Author SHA1 Message Date
Bram Matthys 7d4b7c2fed Get rid of stricmp/strnicmp (use strcasecmp/strncasecmp) 2019-09-09 16:13:32 +02:00
Bram Matthys 9636f83a2b Always assume POSIX signals (on non-Windows, that is). 2019-09-09 16:08:18 +02:00
Bram Matthys 05af50d1fc Remove some HPUX stuff. We don't support or test this so leaving
this in the source gives a false impression. Also some ULTRIX
stuff (from 1995???).
2019-09-09 15:53:44 +02:00
Bram Matthys 1183e88077 Remove old SunOS / Solaris / AIX code.
And some other outdated things for non-POSIX systems...
2019-09-09 15:46:19 +02:00
Bram Matthys d434cf948b Get rid of bcmp/bcopy/bzero. 2019-09-09 14:41:40 +02:00
Bram Matthys d357ef8957 More config.h cleanups. Lower kill chase time limit from 90 to 30
which seems more reasonable to me.
2019-08-24 19:57:40 +02:00
Bram Matthys 153e38be10 Get rid of "max sendq" ./Config question, which actually was only
setting the default class::sendq that pretty much everyone overrides
in class (isn't this even required? ;D).
Rename to DEFAULT_SENDQ since we have DEFAULT_RECVQ too.
2019-08-24 19:50:39 +02:00
Bram Matthys d19b4e70ad Remove old and broken option SHOW_INVISIBLE_LUSERS 2019-08-24 19:45:26 +02:00
Bram Matthys d06715d9ee REMOTEINC_SPECIALCACHE is no longer optional 2019-08-24 19:41:14 +02:00
Bram Matthys 9e02ca2b3c More FORMAT_STRING() checking, get rid of old (non-)USE_VARARGS stuff.
Fix some more bugs (type differences) when compiling in DEBUGMODE.
2019-08-24 19:37:25 +02:00
Bram Matthys 2a7fc8042d Add new moddata types: MODDATA_LOCALVAR and MODDATA_GLOBALVAR. Untested.
Code using it will soon follow (and then it will be tested :D)
2019-06-28 18:35:37 +02:00
Bram Matthys 5ebd096f16 Initial implementation of message-tags from May 5, 2019.
This also includes buffer modifications to have a larger read buffer
and IRCv3 implementations (partial or not) for:
labeled-response, msgid, server-time, batch and account-tag.

As said, it is the initial and partial implementation.
There are still various FIXME's and TODO's, the API of various
functions may still change (actually that is true for the next
months, even) and some stuff is currently in the core that will
be moved to modules.
2019-05-12 13:46:44 +02:00
Bram Matthys 5c30d1af6d * Badword blocks now use PCRE2 if using regex at all (rare,
usually the fast badwords system is used instead)
* Code deduplication in src/modules/{chanmodes,usermodes}/censor.c
  to src/match.c -- which may be moved later again to efuncs.
* Add --without-tre:
  This means USE_TRE will be enabled by default right now
  but if using --without-tre it will be undef'ed. This so we
  can prepare for the TRE phase-out in 2020.
* Remove include/badwords.h, put contents in include/struct.h
2019-04-05 18:19:23 +02:00
Bram Matthys 6d3a98653e The maximum number of clients (MAXCONNECTIONS) no longer defaults to 1024.
The new question in ./Config now defaults to 'auto' (both for new installs
and for upgrades). You can still specify a manual limit but it is no longer
recommended.
A MAXCONNECTIONS of 'auto' means - at present - that UnrealIRCd will try
to set a limit of 8192. This is quite a bump from the original 1024.
On systems where this is not possible we will simply use the highest amount
possible, such as 4096 on many systems, or 1024.
In fact, we now no longer error when MAXCONNECTIONS is higher than the
'ulimit -n' limit but will adjust ourselves to the limit.
Only if the effective limit is below 100 we will print out a fatal error
since running in such a scenario is highly discouraged.
The reason for this change is that nowadays with drone attacks we may need
to be able to handle more concurrent sockets. Also, many Linux distro's
have a default setting of unlimited or 4096 nowadays, out of the box.

For people packaging UnrealIRCd (not end-users):
The ./configure --with-fd-setsize=xx option was removed and the
optional(!!) --with-maxconnections=xx option has been added.
We recommend you NOT to pass this option. Not passing it means that
the previously mentioned 'auto' mode will be used, which is likely
best for most users.

Module coders:
Although it is unlikely you accessed the 'MAXCLIENTS' variable,
if you did, it is now called 'maxclients' (lowercase) since it is
adjusted at runtime and no longer a macro.
2019-03-25 15:43:26 +01:00
Bram Matthys 4490b8744e Use HAVE_RLIMIT instead of FORCE_CORE. And get rid of error message. 2019-03-24 15:50:56 +01:00
Bram Matthys 9f4296d648 New set::anti-flood::max-concurrent-conversations which configures the
maximum number of conversations a user can have with other users at the
same time. Until now this was hardcoded at limiting /MSG and /INVITE to
20 different users in a 15 second period. The new default is 10 users,
which serves as a protection measure against spambots.
See https://www.unrealircd.org/docs/Set_block#maxcc for more details.
2019-02-04 09:52:08 +01:00
Bram Matthys 7d68ea0570 Update default ciphers, or actually only the ones not providing PFS, by
preferring AES-256 over AES-128 (in contrast to the Mozilla "intermediate"
profile which prefers AES-128). Again, this only affects non-PFS cases, as
all modern clients with PFS already had CHACHA20 and AES-256 negotiated.
The portion of non-PFS clients should only be few percent, if any.
I was actually considering removing non-PFS ciphersuites but it seems a bit
early to do so, at least not without more research on affected clients.
2019-01-11 09:19:44 +01:00
Bram Matthys a7af69b887 Use same ciphersuite as decided earlier. 2018-09-21 09:11:09 +02:00
Bram Matthys fb0148a44a New set::ssl::options::ciphersuites option for TLSv1.3.
Since OpenSSL decided not to use the regular ciphers but make this a
separate option, we now make this a separate option as well.
So there is ::ciphers for <=TLSv1.2 and ::ciphersuites for TLSv1.3
More documentation will follow.
Patch from 'i' in https://bugs.unrealircd.org/view.php?id=5149
2018-09-20 20:14:18 +02:00
Bram Matthys 04b3dd24f8 Set default ECDH(E) curves to be X25519:secp521r1:secp384r1:prime256v1 with
the following remarks:
* We only set these curves if SSL_CTX_set1_curves_list() is available
  (OpenSSL 1.0.2 or later, LibreSSL 2.5.1 or later)
* The X25519 curve is only added if it is available (OpenSSL 1.1.0+)
2018-04-27 20:08:47 +02:00
Bram Matthys 52a7478bd0 Comment it out like this so we can use -D 2017-10-23 16:37:00 +02:00
Bram Matthys 0fd265349a Remove HOSTILENAME config.h option since running without it is
and has never been supported.
2017-10-07 09:33:48 +02:00
Bram Matthys 3d38adff4f Rename config.h setting CLIENT_FLOOD to DEFAULT_RECVQ since that is what
it is. You should simply set a class::recvq instead of changing this
in config.h.
2017-10-07 09:29:47 +02:00
Bram Matthys 885e474211 Removed option in config.h to disable NO_FLOOD_AWAY. You can already
tweak or disable this via set::anti-flood::away-flood.
2017-10-07 09:25:45 +02:00
Bram Matthys 1a80309314 Remove strange include/config.h option called CMDLINE_CONFIG which
would allow you to use -f even if the IRCd is suid or sgid.
This is not anything we or you ever want to permit since this is
a major security problem. This setting is now gone. I doubt
anyone used it.
2017-10-07 09:22:32 +02:00
Bram Matthys 08496ec47b Remove various #define's from config.h that don't actually do anything
(or are incorrectly documented).
2017-10-07 09:19:14 +02:00
Bram Matthys 7a33a2c019 Move CONNECTTIMEOUT to set::handshake-timeout and clarify the setting
at https://www.unrealircd.org/docs/Set_block#set::handshake-timeout
Requested by marco500 in #5011.
2017-10-07 08:45:48 +02:00
Bram Matthys d6acbf63b0 Move MAXUNKNOWNCONNECTIONSPERIP to set::max-unknown-connections-per-ip.
Rarely tweaked setting, but for those who need it it's easier in the conf.
Requested by marco500 (#5011). For documentation of this setting see:
https://www.unrealircd.org/docs/Set_block#set::max-unknown-connections-per-ip
2017-10-07 08:15:52 +02:00
Bram Matthys a21222a672 Bump MODDATA_MAX_CLIENT from 8 to 12 and move MODDATA_MAX_* to include/config.h 2017-09-06 16:29:48 +02:00
Bram Matthys edb144d570 Update cipher suite to include TLSv1.3 ciphers.
This so upcoming UnrealIRCd version will work with TLSv1.3 whenever it
becomes an official standard and is included in OpenSSL/LibreSSL.
(Verified to work with openssl git master branch)
2017-09-06 16:09:22 +02:00
Bram Matthys 7b092f7aeb Verify certificate when submitting bug report. 2017-06-19 16:28:50 +02:00
Bram Matthys 01687486f0 Bump MAXCONNECTIONS for Windows. Due to FD number assignments this
value needs to be much higher than the number of clients the IRCd
should be able to hold. The new value is 10k which should allow
at least 1-2k clients.
2017-05-12 17:12:18 +02:00
Bram Matthys 64b5d89a98 Remove support for CHROOTDIR, IRC_USER and IRC_GROUP as these caused too much
code clutter and was broken anyway (especially CHROOTDIR)...
For a CHROOTDIR replacement we suggest using AppArmor, SELinux, FreeBSD jails, ..
For a IRC_USER/IRC_GROUP replacement you can use start-stop-daemon or similar.
2016-09-29 20:12:28 +02:00
Bram Matthys b4306842b2 Remove SOCALLEDSMARTBANNING config.h option which nobody uses anyway (for good reasons) 2016-09-29 19:01:48 +02:00
Bram Matthys f71b173f07 Turn DEBUG_IOENGINE off by default (and move to include/config.h) 2016-09-17 10:06:33 +02:00
Daniel Tan b2a00948a3 config.h: Minor typo fix 2016-05-11 16:01:37 +08:00
Bram Matthys 06b07e30dc Bump version to 4.0.0-rc6 2015-12-16 13:27:33 +01:00
Bram Matthys fd40bed05f Remove #define EXPERIMENTAL. I'm sure I'll forget about this later otherwise.. 2015-12-13 09:28:31 +01:00
Bram Matthys 9ba9d65c7e Add GCC typechecking: we now validate HookAdd... calls, making sure the function (pointer) is as it should. This to avoid crashes and weird behavior in case of a mismatch.
This resulted in 5-10 changes in the existing code where parameters were off.
Hopefully I didn't make too many mistakes when writing the hook prototypes as it was a tedious job.
An (unintentional) benefit of this new system is that you can see the hook prototypes in include/modules.h like:
/* Hook prototypes */
int hooktype_local_quit(aClient *sptr, char *comment);
....
Though, the wiki is likely a better place: https://www.unrealircd.org/docs/Dev:Hook_API
2015-09-21 11:52:00 +02:00
Bram Matthys ef341b1f6d Link to servers faster after boot. Check links for re-linking more often. Allow connfreq of 5 seconds. Set default to 15. Get rid of HANGONGOODLINK/HANGONRETRYDELAY stuff. 2015-07-14 15:23:28 +02:00
Bram Matthys 6facc2173e 1) If there is no client data, still run main loop a bit more often than once per 1-2secs.
2) Call DNS routines more often, not just once per second.
2) Slightly lower the DNS timeout, max 2500 + 5000 = 7500ms now. Previously was 3000 + 6000 = 9000ms.
2015-06-27 09:50:52 +02:00
Bram Matthys e5ec2a6487 Rename macro DATADIR -> PERMDATADIR. Windows SDK's.. just freaking amazing.... 2015-06-26 16:50:36 +02:00
Bram Matthys e76d2fc3c5 ircd.tune should go in data/. debug.log in logs/. Update ./unrealircd failed to start message 2015-06-20 10:49:14 +02:00
Bram Matthys 5e94fc9c72 Move to new directory structure, require 'make install'. (Not complete. Work in progress!) 2015-06-19 13:59:08 +02:00
Bram Matthys 58bd3cf60b Preparations for #4356 (experimental / on-going):
* add general matching framework (aMatch type, unreal_match_xxx functions)
* change spamfilter { } block syntax
* add support for simple wildcard matching (non-regex, just '?' and '*')
This is the initial commit so the new lib is not in yet, 'regex' is not
functional (but 'posix' and 'simple' are working), linking has not been
fully tested and no warnings are printed yet. IOTW: work in progress!
2015-05-30 21:11:11 +02:00
Bram Matthys bd65916b5a more cleanups for AUTHENABLE_* 2015-05-23 09:15:24 +02:00
Bram Matthys 20e9da6dff When users connect they will receive a message telling them this IRC Server
software is experimental and that they should report any bugs or problems
on http://bugs.unrealircd.org/
2014-07-22 14:08:05 +02:00
Bram Matthys 101d2dd6a3 Big 3.4.x commit containing bug fixes and enhancements. Modularizing
user & channel modes. Fixing Windows build. Etc..
2014-05-11 20:56:02 +02:00
William Pitcock afdf5d780a - Replace ircsprintf() with bounds-checking ircsnprintf(), patch from FalconKirtaran. (#4208) 2013-05-21 06:26:52 +00:00
William Pitcock 85ff3dd136 - Remove JOIN_INSTEAD_OF_SJOIN_ON_REMOTEJOIN config.h option. 2013-05-19 22:19:12 +00:00