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
Bram Matthys
d4271a0c72
Fix for when DEFAULT_PERMISSIONS is set to 0.
2014-05-19 09:58:57 +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
ff2b229663
- fix type-punning in decode_ip(). ( #4205 )
2013-05-24 23:21:17 +00:00
William Pitcock
afdf5d780a
- Replace ircsprintf() with bounds-checking ircsnprintf(), patch from FalconKirtaran. ( #4208 )
2013-05-21 06:26:52 +00:00
William Pitcock
6085877aa7
- Remove TS2ts() and %B usage in formatter strings. Patch from FalconKirtaran ( #4197 , #4198 ).
2013-05-19 08:36:49 +00:00
William Pitcock
cd52331cd0
- Kill IPV6_COMPRESSED.
2013-01-14 06:34:01 -06:00
Bram Matthys
4c30008313
- Windows: fix MOTD file always showing a date of 1/1/1970, reported
...
by maxarturo (#4102 ).
2012-10-16 11:33:27 +02:00