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

81 Commits

Author SHA1 Message Date
Bram Matthys 707575bc32 Resolve a number of todo items, most by simply removing them :D 2021-09-25 16:54:29 +02:00
Bram Matthys 4a4d069f11 Get rid of ignore for -Wformat-nonliteral in two entire files,
now it is only in 5 functions in entire UnrealIRCd. Acceptable.
2021-09-25 15:16:45 +02:00
Bram Matthys 847f2fc384 Remove is_ip_valid() as we already have is_valid_ip(), and update
the doxygen docs a bit for that function.
2021-09-25 08:17:47 +02:00
Bram Matthys b94707a51b Change (or delete) old sendto_ops() calls. Function is now gone. 2021-09-23 19:14:10 +02:00
Bram Matthys fcf020b99e It's raining consts... 2021-09-11 09:56:22 +02:00
Bram Matthys 4c2aeab75e Windows compile fixes 2021-08-28 16:35:37 +02:00
k4be 9a8889f161 Remove a static variable that was never read 2021-08-22 21:25:06 +02:00
Bram Matthys 5b90fd0c0d Get rid of old MOTD downloading code and several USE_LIBCURL defines
that are no longer needed.
2021-08-21 14:13:24 +02:00
Bram Matthys edfd0d434f Newlog: convert remaining sendto_ops_and_log() 2021-08-11 19:09:07 +02:00
Bram Matthys 9333d4b264 Newlog: fdlist.c, socket.c 2021-08-11 16:48:26 +02:00
Bram Matthys a4d9ef3947 Get rid of some shorts. Sorry... i hate these :D.
Also get rid of some unused stats struct members.
2021-08-10 14:07:54 +02:00
Bram Matthys 641d514853 Move traffic stats from client->local->sendM/sendK/receiveM/receiveK/sendB/receiveB
into a client->local->traffic struct.
2021-08-10 13:22:59 +02:00
Bram Matthys 420eb2ffb6 Rename client->serv to client->server: this is set if the client is a server,
just like client->user is set if the client is a user.

Rename client->srvptr to client->uplink: this is the uplink that the client
is connected to. If the client is a user then it is set to the server that
the client is connected to, if the client is a server then it is set to the
server that the server is connected to (the.. tadah.. uplink).
For local clients it is always set to &me.
2021-08-10 12:52:46 +02:00
Bram Matthys 90a01ed7f9 Rename client->local->lasttime to client->local->last_msg_received
(Last time any message was received, i.e. the socket was read)
2021-08-10 12:40:07 +02:00
Bram Matthys 73f8976a3a Rename client->local->firsttime to client->local->creationtime
(Time user was created (connected on IRC))
2021-08-10 12:38:07 +02:00
Bram Matthys 4dbc2ac860 Rename client->local->since to client->local->fake_lag, since it is used
for fake lag calculations only (well, except for 1 corner case).

As said, modules should use the new function:
void add_fake_lag(Client *client, long msec)
2021-08-10 12:26:19 +02:00
Bram Matthys 532a9becda Massive renames of SSL/TLS and SSL to TLS. People should know the term by now :D 2021-08-10 09:07:32 +02:00
Bram Matthys bc9525528c Get rid of report_error() and report_baderror() now that the last
function call has been replaced with unreal_log().
2021-08-09 12:20:13 +02:00
Bram Matthys 2d8ae5d43a Move some functions from src/socket.c, that don't belong there,
to src/serv.c and src/misc.c
2021-08-09 12:13:30 +02:00
Bram Matthys 3a9975713a Move connect_server() from src/socket.c to src/modules/server.c (efunc) 2021-08-09 12:10:24 +02:00
Bram Matthys 5b44baab1f ULOG_WARN -> ULOG_WARNING. Better be consistent. This was the only
ULOG_* level that used an abbreviated term.
2021-08-06 08:50:45 +02:00
k4be 15ac841aea Do not show "Read error" quit message on regularly closed connections 2021-07-19 16:53:05 +02:00
Bram Matthys d7fcc90014 Change lost_server_link() prototype and log errors properly for both TLS and non-TLS.
Not really satisfied with the way the TLS socket error is logged yet, but ok..
2021-07-14 14:13:02 +02:00
Bram Matthys 49fe200243 unreal_log(), connect_server and report_error() / report_baderror():
* Converted 90% of the socket and linking errors to use unreal_log()
* Add log_data_socket_error(fd) and $socket_error
* This also makes connect_server() 'void' and removes all of the error
  reporting from the callers (there was 3x code duplication due to that)
* Don't use report_error and report_baderror anymore in socket.c
* More to follow...
2021-07-14 13:33:18 +02:00
Bram Matthys 1068960b9a We now compile with -Wformat-nonliteral by default.
This adds __attribute__((format(printf,X,Y))) to several functions.
It also adds checking only for the non-literal case to some functions
such as unreal_log/unreal_do_log.

This so we can more easily detect format string issues. Especially now with
the recoding of the logger and with possible future mistakes in this area
in UnrealIRCd 6 itself or in third party modules.

The check is currently disabled in these files, which are TODO items:
* src/send.c: still much work to do
* src/socket.c: due to report_error and report_baderror().
  I want to get rid of these functions and integrate them
  in the new logger anyway.
* src/serv.c: only disable for hunt_server()
2021-07-14 11:15:49 +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 022ed9ae71 Remove explicit setting of send/receive buffer as modern OSs don't
need this and it slows things down for servers.

For clients it's not much of an issue, since traffic rates are low.

However, for server-to-server links it is an entirely different matter.
It is (only) noticeable if you have lots of traffic, such as when there
is a lot to sync while linking two servers, and especially when the two
servers are geographically further apart.
Tested with 100,000 G-lines on both sides being synced (20MB traffic):
* 20ms RTT (same country/state): speed up of x3
* 200ms RTT (transpacific): speed up of x6
2021-03-14 16:04:43 +01:00
Bram Matthys 06d90a9d46 Behave better when multiple HOOKTYPE_RAWPACKET_IN modules are active.
If a module returns 0 ("UnrealIRCd please do not process this packet")
then don't call the next module in line (also because that one might
then change the return value to something different, which is bad).
2021-02-10 14:24:17 +01:00
Bram Matthys 7a4832d337 Fix missing ERROR when using a @label, reported by k4be.
This had to do with the queued packet (in the labeled-response module)
not being sent because the client was freed before the
post packet hook was called.
2020-05-11 19:18:41 +02:00
Bram Matthys f437593b8d Rewrite and expand notices+logging with regards to server linking / lost link.
When connecting, use slightly different wording (and use it consistently):
"Trying to activate link with server xyz"

When the connection is lost before synced:
"Unable to link with server xyz"

When the connection is lost after fully synced (eg: minutes later):
"Lost server link to xyz"

Important small changes (other than text):
* Log ERRORs from remote servers to the log (previously only shown to ircops)
* Some link errors could have been previously suppressed due to
  old code assuming other parts of the code would send or log the error
  (this would be the case for an error when calling SSL/TLS write functions)
* More?
2020-04-13 13:36:58 +02:00
Bram Matthys b4fb4568fc Possibly fix a hang issue. Reported by westor. 2020-01-02 12:46:37 +01:00
Bram Matthys 24c60fd85e Fix some doxygen tags (eg @notes to @note) 2019-10-26 09:33:09 +02:00
Bram Matthys cb4d2f9cf0 Get rid of set::new-linking-protocol and __PANGPANG__ stuff for
compatibility with old 3.2.x servers.
2019-10-25 10:58:04 +02:00
Bram Matthys 00aee86b66 Clean up and document all functions in src/socket.c. Also,
remove calls to and the finish_auth() function, which did nothing.
2019-10-25 10:51:18 +02:00
Bram Matthys 599f83cbd4 Move some #define's out of the way, some re-indenting, .. 2019-10-25 09:47:52 +02:00
Bram Matthys 13b5ccda4f Merge bsd.c into socket.c (delete src/bsd.c). 2019-10-25 09:38:27 +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 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 2df5326615 Overhaul of all client flag macros (mass renaming, always use getters/setters/checkers) 2019-09-11 16:00:47 +02:00
Bram Matthys 792709bf4f Move cptr->fd to cptr->local->fd. This may cause some crashes while
the rest of the code is audited / checked ;)
2019-09-11 14:21:07 +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 09cf485d6c Mass rename of "ssl" to "tls" everywhere. Including conf/ssl to
conf/tls. If you are upgrading then conf/ssl will be renamed to
conf/tls and a symlink will be added (so certbot etc won't fail).
This is part 1...
2019-08-12 14:26:31 +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 dd2af3b31c Enable additional compiler warnings. Update code to conform to these
new standards, possible to compile with -Werror with them.
2019-03-27 09:03:30 +01:00
Bram Matthys fd73739847 Handle SSL_ERROR_WANT_READ in a better way. 2019-03-10 15:00:45 +01:00
Bram Matthys 03b74f6163 Include string.h / silence warnings. 2016-12-30 15:30:59 +01:00
Bram Matthys 54f30886d2 Fix server linking (outgoing) not working after IPv4/IPv6 split a week ago. 2015-08-09 16:12:38 +02:00
Bram Matthys fa87577918 and some more. 2015-07-28 22:14:58 +02:00
Bram Matthys 47ec1da3f5 Remove unused functions 2015-07-28 21:42:40 +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