k4be
55a5574a4b
Merge branch 'unreal60_dev' into unreal60_dev+watch
2021-08-06 15:23:37 +02:00
Bram Matthys
3c7112469b
Drop 2nd argument to find_channel which was always NULL everywhere anyway.
2021-08-05 17:02:39 +02:00
Bram Matthys
6bad375ad7
Rename channel->chname to channel->name.
2021-08-05 16:34:45 +02:00
k4be
bcbcc10b9d
Move watch code from core to module
2021-07-19 18:16:28 +02:00
Bram Matthys
fb8c7a5a75
Fix weird behavior for users in pre-connect stage, eg showing
...
up in WHOIS. Reported by armyn and Valware.
2021-06-15 20:26:12 +02:00
Bram Matthys
f494707a47
Doxygen: document list_for_each_entry with examples and
...
add 'channels' to the page as well.
2020-11-23 10:25:49 +01:00
Bram Matthys
10e01aee0a
Doxygen U5 API docs: document find functions and send API
...
See https://www.unrealircd.org/api/5/
And more specific: https://www.unrealircd.org/api/5/modules.html
2020-11-23 08:55:45 +01:00
Bram Matthys
c369551721
Commit first 40% of Hook API Documentation in doxygen.
...
The remaining 60% consists of placeholders at the moment.
Note: if you are running git then don't try to live-reload these
changes, ircd must restart.
2020-11-08 16:16:59 +01:00
Bram Matthys
d482760c6f
Fix warning about EventAdd with 2msec value.
...
Reported by ivanp in https://bugs.unrealircd.org/view.php?id=5540
This cleans things up a bit as well (remove duplicate code).
2020-01-26 10:22:28 +01:00
Bram Matthys
24c60fd85e
Fix some doxygen tags (eg @notes to @note)
2019-10-26 09:33:09 +02:00
Bram Matthys
798f502875
Mass change (at least this one could be fully automated): 'chptr' -> 'channel'
...
to be consistent with the 'sptr' -> 'client' rename earlier.
2019-10-05 08:49:10 +02:00
Bram Matthys
3a64077f51
Use 'client' everywhere (if there is no confusion) instead of 'sptr' or 'cptr'.
...
This so I - and others - don't constantly have to wonder whether the client
is called sptr, cptr or acptr in a simple routine.
Insane --> 212 files changed, 6814 insertions(+), 6945 deletions(-)
Couldn't just mass-replace of course since there are places where there
are multiple clients involved. So had to check each function.
Also renamed some 'acptr' to 'target' and such.
I will write a page with new style rules later.. but in short if there is
only 1 client involved it will now be called 'client'.
2019-10-04 15:25:35 +02:00
Bram Matthys
5b8f393a8f
* EventAdd() changed the order of parameters and expects every_msec now
...
which specifies the time in milliseconds rather than seconds. This
allows for additional precision, or at least multiple calls per second.
The minimum allowed every_msec value is 100 at this time.
The prototype is now: EventAdd(Module *module, char *name,
vFP event, void *data, long every_msec, int count);
2019-09-22 15:05:00 +02:00
Bram Matthys
b24fe0f336
Just in case someone uses a set::anti-flood::connection-flood of X:1...
2019-09-18 19:37:08 +02:00
Bram Matthys
41f2b5f884
Fix some more numerics with incorrect arguments in U5: WATCH and failed
...
to JOIN reasons, such as when banned.
2019-09-17 18:53:35 +02:00
Bram Matthys
9fc1e758ab
Mass change of dst = strdup(str) to safe_strdup(dst,str) but with a manual
...
audit since 'dst' must now be initialized memory.
There's still a raw_strdup() if you insist.
This is step 2 of X of memory allocation changes
2019-09-14 16:58:01 +02:00
Bram Matthys
de87b439b7
Update memory allocation routines. Step 1 of X.
2019-09-14 16:52:53 +02:00
Bram Matthys
bf2c5110db
IsPerson() -> IsUser(), MyClient() -> MyUser(), etc.
...
This so we have a few simple concepts:
Client: this can be a user, server, or something unknown yet
Then the type of clients:
User: this is a user, someone with a nick name.
Server: this is a server
Etc.
2019-09-11 17:43:17 +02:00
Bram Matthys
fcf0ff4e3c
Document client statuses (cptr->status) and some more renames.
2019-09-11 16:52:11 +02:00
Bram Matthys
2a5ea10453
Lots of changes again. Most notable: Cmdoverride -> CommandOverride,
...
including things like CallCmdoverride() to CallCommandOverride().
Type changes like aTKline -> TKL and many more (in particular
aSomething to Something etc. such as aWatch to Watch) but these are
less used by 3rd party module coders.
2019-09-11 10:20:00 +02:00
Bram Matthys
23116d344a
Give structs the same name as the typedefs. Rename aClient to Client,
...
aChannel to Channel, and some more. Third party module coders will
love this. But.. it makes things more logical and the doxygen output
will look more clean and logical as well.
(More changes will follow)
2019-09-11 09:48:00 +02:00
Bram Matthys
d434cf948b
Get rid of bcmp/bcopy/bzero.
2019-09-09 14:41:40 +02:00
Bram Matthys
0c4502bf79
Define and use SIPHASH_KEY_LENGTH rather than some magic value.
2019-09-08 14:15:23 +02:00
Bram Matthys
7ff78b4cf6
Make config test for except ban::type. Also use 'connect-flood'
...
rather than throttling, since that's the term we use everywhere
in our documentation and for config options.
2019-09-02 20:14:48 +02:00
Bram Matthys
58618bf2b6
Add support for ban exceptions, via /ELINE and via the config file.
...
Still need to fix some FIXME/TODO items and things haven't been
fully tested yet, so server sync issues or crashes are still possible.
Release notes will be updated another day as well..
2019-09-01 20:49:14 +02:00
Bram Matthys
e8f336622a
u_int64_t -> uint64_t
2019-06-26 17:03:07 +02:00
Bram Matthys
709c84fff9
Remove stupid hash table layer for channels that only eats 256k+ extra
...
memory and causes unnecessary slowdown. Stupid ->hits and ->links.
And get rid of "return (xyz)", must be "return xyz" :D
2019-06-26 16:56:17 +02:00
Bram Matthys
f1b0b6b76e
Make throttling code (connect-flood) use SipHash and increase the
...
hash table size from 1019 to 8192 to have fewer collisions.
2019-06-26 16:46:28 +02:00
Bram Matthys
eafd929e24
Update DNS code to use SipHash
2019-06-26 14:08:03 +02:00
Bram Matthys
703be7eb29
Move some functions from parse.c to hash.c and add documentation
...
for various functions, such as find_person, find_client, etc.
2019-06-26 13:57:06 +02:00
Bram Matthys
f6eac29592
hash_nick_name -> hash_client_name, hash_find_nickserver -> hash_find_nickatserver
...
Both were confusing :)
2019-06-26 13:45:55 +02:00
Bram Matthys
d5b643ceee
Rewrite hash table code to use SipHash (more to follow)
2019-06-26 13:24:02 +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
ca9b04a0fa
Module API: EventAddEx() -> EventAdd()
2019-06-12 19:09:33 +02:00
Bram Matthys
c27bb26abc
sendnumeric() - stage 1
2019-05-22 10:43:07 +02:00
Bram Matthys
6990b7d9a6
Mass-replace MyMalloc with MyMallocEx, even if it's unnecessary.
...
Replace century-old custom functions with C standard funcs,
such as AllocCpy -> strdup.
2018-04-22 14:55:07 +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
4c2323e1a3
Now at the right place..
2015-12-16 11:22:58 +01:00
Bram Matthys
b9a3e54eb7
Fix memory leak (~12 bytes per connect)
2015-12-16 11:13:36 +01:00
Bram Matthys
b072a80638
get rid of local->ip stuff in throttle
2015-07-28 17:47:40 +02:00
Bram Matthys
80147b2914
Make throttling code work on aClient * structs. Other code may change later (makes it easier).
2015-07-28 14:05:41 +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
13fffa4e1a
split all the local client stuff to acptr->local. makes it a lot easier to catch bugs.
...
If the IRCd crashes then it's likely not by this change but rather an existing issue that was previously gone unnoticed.
2015-07-19 12:48:18 +02:00
Bram Matthys
252538272e
Reduce nick@server complexity in m_message and (similarly) make hash_find_nickserver() easier and more tolerant, also accepts just 'nick' in addition to 'nick@server'
2015-07-16 18:09:26 +02:00
William Pitcock
751306f3e3
- refactor exit_client()
2013-05-24 20:44:20 +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
b02069f944
- Generate UIDs for local clients.
2013-05-20 22:00:24 +00:00
Bram Matthys
61cfb5ac3e
- Windows: Fix strange linking bug. Outgoing connects from a Windows
...
IRCd caused a garbled SERVER protocol message, causing 'cannot find
server' errors and killing of users. Reported by Sunkat (#4183 ).
2013-04-04 23:07:04 +02:00
William Pitcock
f9a78be185
- Remove WebTV code, part 1. ( #3948 )
2013-01-14 03:21:42 -06:00
William Pitcock
3653d0148d
- Clean up some old debug notices.
2012-12-01 23:32:28 -06:00