1
0
mirror of https://github.com/unrealircd/unrealircd.git synced 2026-07-02 13:53:13 +02:00
Commit Graph

128 Commits

Author SHA1 Message Date
Bram Matthys eb171c8e22 Add strtolower(). Note: we already hade strtolower_safe(). 2021-08-13 12:22:49 +02:00
Bram Matthys ca3c91ca17 Newlog: channel.c, send.c, support.c, windows/gui.c 2021-08-11 17:12:11 +02:00
Bram Matthys f1023b6653 Fix compile warnings with gcc 2021-08-09 13:43:36 +02:00
Bram Matthys 05aeba9ba9 Get rid of Debug(()) function calls. I never use it anyway. 2021-07-12 18:54:38 +02:00
Bram Matthys ff84f17f72 Move strtolower_safe() from antirandom to support.c 2021-05-15 15:38:57 +02:00
Bram Matthys dde3e0ccb2 Add unrealdb and secrets API. Documentation and more information will
follow in later commits.
2021-05-03 15:07:10 +02:00
Bram Matthys 1f47cc7824 Support for dated log files such as log "ircd.%Y-%m-%d.log" { }
Suggested by Amiga600 in https://bugs.unrealircd.org/view.php?id=5784

This also fixes a bug with log::maxsize on Windows (cannot overwrite
existing file with .old).

It simplifies the logging code a little and makes it a tad more readable.

And it adds an unreal_strftime() function to make things easy.
2021-03-08 10:37:28 +01:00
Bram Matthys 8d7e25e50e Make get_file_time() and get_file_size() available via h.h.
And move those 2 functions plus file_exists() to misc.c.
2020-11-16 18:21:27 +01:00
Bram Matthys dfa83aa6e5 Add module manager. See https://www.unrealircd.org/docs/Module_manager
Also update release notes and some unrelated changes.
BIG commits. Lots of work. Requires more testing.
2019-11-01 12:57:12 +01:00
Bram Matthys 24c60fd85e Fix some doxygen tags (eg @notes to @note) 2019-10-26 09:33:09 +02:00
Bram Matthys e9ab8fd45e Document all functions in src/support.c
And replace atime(str) with config_checkval(str, CFG_TIME)
2019-10-25 19:30:50 +02:00
Bram Matthys e2158e3608 Fix possible lack of string termination (NUL) in buildvarstring() 2019-10-17 21:01:55 +02:00
Bram Matthys cc36b34f93 Remove unnecessary (void) casts everywhere.
Only use (void) for system/library calls that you want to ignore
explicitly, eg (void)close, if the return value is irrelevant.
2019-10-14 08:23:30 +02:00
Bram Matthys 394168c288 Style fixes: "char* " -> "char *" etc. 2019-10-11 12:23:45 +02:00
Bram Matthys 1d0fa3278f Protect against flawed S2S traffic: more checks for bad base64
encoded IP addresses.
2019-10-11 11:16:16 +02:00
Bram Matthys de87b439b7 Update memory allocation routines. Step 1 of X. 2019-09-14 16:52:53 +02:00
Bram Matthys 7c6358024c Add 'natural order' string comparison to core: strnatcmp and strnatcasecmp
extern int strnatcmp(char const *a, char const *b);
extern int strnatcasecmp(char const *a, char const *b);
This will be handy for version comparisons. For example they will
return -1 (=lower) for things like ("1.4.9", "1.4.10"), unlike strcmp.

Also, some loosely related spelling fixes elsewhere.
2019-09-14 08:12:47 +02:00
Bram Matthys ec2fdb82e0 Get rid of configure check for strerror() 2019-09-09 17:45:24 +02:00
Bram Matthys 80bc15c6d3 Apparently our strtoken() is special, don't bother then. Still, get rid of
the configure check.
2019-09-09 17:32:59 +02:00
Bram Matthys 1cdbbe043f Make strtoken() use strtok_r / strtok_s.
And get rid of the config check, as strtoken() never existed anyway.
2019-09-09 17:19:25 +02:00
Bram Matthys 078cfa88ea Get rid of configure check for strtok()
[skip ci]
2019-09-09 16:58:44 +02:00
Bram Matthys 36cb2226cc Get rid of checking inet_pton/net_ntop. Should be available on IPv6-capable
operating systems. And we require IPv6-capable since UnrealIRCd 4 already,
so.. ;)
2019-09-09 16:51:31 +02:00
Bram Matthys 8d453ffc40 Get rid of index() and some useless casts 2019-09-09 14:54:49 +02:00
Bram Matthys d434cf948b Get rid of bcmp/bcopy/bzero. 2019-09-09 14:41:40 +02:00
Bram Matthys 6ead10f42d Windows: build with /WX (equivalent to -Werror) and turn on
/analyze again. Not sure how long I can bear that last one though
as now compilation takes about 15 minutes rather than a few.
2019-08-25 14:03:11 +02:00
Bram Matthys 8484511296 Make Windows build compile without warnings with /W3
Disable these warnings, though:
C4267: downgrade of size_t to int and such. pointless...
C4101: unreferenced local variable
C4018: signed/unsigned mismatch
C4244: implicit conversions with "possible loss of data".
       there are 75+ of them and they are likely all harmless
       and/or intentional (usually plain obvious too)
C4996: fixme! warnings about deprecated functions, currently only for GetVersion..
2019-08-25 13:00:31 +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 d8f080de67 Drop support for systems without snprintf() and vsnprintf()
Those are in POSIX.1-2001. Even Windows has them nowadays...
"Our" implementation doesn't even work properly under Win64.
2019-08-22 16:41:39 +02:00
Bram Matthys ded4a65a60 u_int16_t -> uint16_t and u_int32_t -> uint32_t, remove typedefs for
these types and others, that should no longer be needed thanks to
stdint.h.
2019-06-26 17:06:46 +02:00
Bram Matthys 7161f33311 Code cleanup: make src/*.c use the generic #include "unrealircd.h" file
(with only a few exceptions)
Now, we'll find out later if Windows still compiles, I guess ;)
2019-06-22 21:18:08 +02:00
Bram Matthys f9b589d0c6 Remove almost 1000 lines, all functions that are (now) unused.
Also, drop support for snomasks to non-ircops (TODO: more)
2019-06-22 19:32:11 +02:00
Bram Matthys 7542cdeaca Cleanup of m_tkl part 1. New tkl_chartotype (the reverse of tkl_typetochar).
Move stripcrlf() to core instead of at 3 places, rename calls of iCstrip()
to that. Hopefully I didn't break anything.. :D
2019-06-15 16:56:34 +02:00
Bram Matthys 67d691fce9 * New set::outdated-tls-policy which describes what to do with clients
that use outdated SSL/TLS protocols (eg: TLSv1.0) and ciphers.
  The default settings are to warn in all cases: users connecting,
  opers /OPER'ing up and servers linking in. The user will see a message
  telling them to upgrade their IRC client.
  This should help with migrating such users since in the future, say one
  or two years from now, we would want to change the default to only allow
  TSLv1.2+ with ciphers that provide Forward Secrecy. Instead of rejecting
  clients without any error message, this provides a way to warn them and
  give them some time to upgrade their outdated IRC client.
  https://www.unrealircd.org/docs/Set_block#set::outdated-tls-policy
2019-01-12 11:08:18 +01:00
Bram Matthys bb4758f321 Add strldup() and safestrldup(), reducing ridiculous amount of code in
m_pass and m_topic.c when duplicating strings with a length limit.
+/* strldup(str,max) copies a string and ensures the new buffer
+ * is at most 'max' size, including nul byte. The syntax is pretty
+ * much identical to strlcpy() except that the buffer is newly
+ * allocated.
+ * If you wonder why not use strndup() instead?
+ * I feel that mixing code with strlcpy() and strndup() would be
+ * rather confusing since strlcpy() assumes buffer size including
+ * the nul byte and strndup() assumes without the nul byte and
+ * will write one character extra. Hence this strldup(). -- Syzop
+ */
2018-04-22 15:40:21 +02:00
Bram Matthys d5d446c38d More code cleanups to get rid of useless casts and other useless
structures such as:
-       lp->value.cp = (char *)MyMalloc(strlen(mask) + 1);
-       (void)strcpy(lp->value.cp, mask);
+       lp->value.cp = strdup(mask);
2018-04-22 14:28:22 +02:00
Bram Matthys 658cbf04da Compile fixes for Ubuntu 16 LTS (gcc 5.4.x?) 2016-12-14 18:42:12 +01:00
Bram Matthys 7aaf14c138 Show PCRE2 version on ./unrealircd start and in /VERSION on IRC if oper. 2016-09-30 15:42:19 +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 820344f49f Fix crash on Windows upon bind error (eg: incorrect link::outgoing::bind-ip) 2016-04-04 13:23:15 +02:00
Bram Matthys 34b9797ffc Add buildvarstring() function and make blacklist module support %ip and %server variables in reason field. Suggested by blank (#4507). 2015-12-28 19:03:05 +01:00
Bram Matthys 00d0822320 Don't crash on invalid IP from authenticated server link (eg: faulty services). (#4444) 2015-11-02 14:42:23 +01:00
Bram Matthys c12d05182e Fix remote includes cache not working. Reported by Eman (#4409). 2015-09-07 12:14:15 +02:00
Bram Matthys fa87577918 and some more. 2015-07-28 22:14:58 +02:00
Bram Matthys ea7a080154 remove more unused functions 2015-07-28 21:44:32 +02:00
Bram Matthys 58b864edd5 Re-do CIDR and at the same time all the user matching stuff. Introducing match_user(mask, acptr, options): this should be used everywhere rather than the many DIY routines everywhere that create a nick!user@host and then run a match() on it.
The match_user() function is not been fully tested yet, at this point I'm happy we can compile again.
2015-07-28 13:26:03 +02:00
Bram Matthys c06dc9a142 Get rid of #ifdef CLEAN_COMPILE, along with some other shit 2015-07-16 17:22:51 +02:00
Bram Matthys dd3993008c small unlikely memleaks. and cptr->port being set to a random value (caused few weeks ago).. but we don't ever read it so not terribly important. 2015-07-16 17:13:57 +02:00
Bram Matthys 9bd211d46e Fix some ununitialized stuff 2015-07-16 10:56:46 +02:00
Bram Matthys 68ba94c136 Make './unreal backtrace' work again. Hmmm. 2015-07-12 18:07:10 +02:00
Travis McArthur 3b98eac4a9 Remove unnecessary gotos 2015-05-31 21:46:32 -04:00