forked from bip/bip
1
0
Fork 0
Commit Graph

201 Commits

Author SHA1 Message Date
Loïc Gomez 76c9ee11de
Handle CAP requests from clients, reply with no capabilities
Some clients require the server to handle CAP requests (IRCv3).
This adds basic support for CAP requests during the authentication
phase, sending no capabilities on CAP LS or CAP LIST, and CAP NAK
with all requested capabilities listed on CAP REQ.

This will be a base for adding capabilities later.

Signed-off-by: Loïc Gomez <bip@animanova.fr>
2024-03-20 22:07:43 +09:00
Loïc Gomez d19099eb3c
Log unhandled IRC errors as LOG_INFO in bip.log
This will allow for user feedback in main bip.log when an IRC error
occurs, like:
- 401 ERR_NOSUCHNICK
- 404 ERR_CANNOTSENDTOCHAN
- 432 ERR_ERRONEUSNICKNAME

These should not be logged as LOG_ERROR as they are not bip errors but
usually on the end user instead.

Signed-off-by: Loïc Gomez <bip@animanova.fr>
2024-02-18 23:45:12 +01:00
Pierre-Louis Bonicoli f2fd1824ca
Format the whole code using clang-format 2022-03-10 14:21:01 +01:00
Loïc Gomez e04f97c78f
ignore some issues related to array_get
ignore "passing argument X of .... with different width due to prototype"
2022-03-10 14:20:55 +01:00
Loïc Gomez ee6ee0bd34
irc_cli_part set cname to proper const char * 2022-03-10 14:20:49 +01:00
Loïc Gomez edf78eadb1
sanitize: pragmas for our code 2022-03-10 14:20:46 +01:00
Loïc Gomez efb79b1e80
sanitize: a bit evolved size_t cast for get_str_elem 2022-03-10 14:20:43 +01:00
Loïc Gomez dbf8ccd4de
sanitize: more NULL pointer failsafes 2022-03-10 14:20:35 +01:00
Loïc Gomez f379eb35d2
sanitize: oidentd handler fixes 2022-03-10 14:20:29 +01:00
Loïc Gomez 368149575d
sanitize: null writes, write errors, oversized int,
and set incoming_end to size_t
2022-03-10 14:20:23 +01:00
Loïc Gomez af590f83b7
lag shouldn't be allowed to go negative 2022-03-10 14:20:17 +01:00
Loïc Gomez 62fd77dc17
l_clientc should not be allowed to go negative 2022-03-10 14:20:15 +01:00
Loïc Gomez dd5343b710
use proper types, safe casts (mostly size_t) 2022-03-10 14:20:12 +01:00
Loïc Gomez 94fe272018
handle more config errors, use char not int:1 2022-03-10 14:20:06 +01:00
Loïc Gomez 2a5e7b6f7b
sanitize: add trivial casts to types
and add missing default cases
2022-03-10 14:19:57 +01:00
Loïc Gomez e694dae31c
functions without parameters: add missing void 2022-03-10 14:19:51 +01:00
Loïc Gomez dc43d75d1f
Add SASL authentication support (EXTERNAL, PLAIN) 2022-03-10 14:19:19 +01:00
Pierre-Louis Bonicoli 3d732651bc
Improve wording in error message 2021-10-07 18:10:28 +02:00
Pierre-Louis Bonicoli e6547b8a48
Fix a typo (s/LOGING/LOGGING/) 2021-10-07 18:10:25 +02:00
Adam Williamson 92819d87ea
Fix stringop-truncation error (thanks DJ Delorie)
See https://bugzilla.redhat.com/show_bug.cgi?id=1799189. bip build fails
on current Fedora Rawhide GCC and glibc. DJ Delorie says "The warning is
correct; the code is copying up to the NUL on purpose, then copying the
NUL in a separate command.  Not sure why." Tom Hughes suggests this as
the fix.
2020-05-18 03:28:44 +02:00
Arnaud Cornet c9cc64f2e1 Be more consistent when freeing incomplete clients.
Cleanup IRC_TYPE_TRUST_CLIENT clients from the connecting client list
the same way as IRC_TYPE_LOGING_CLIENT.
2018-12-25 10:13:54 -05:00
Arnaud Cornet 60122ef160 Unbind clients of type IRC_TYPE_TRUST_CLIENT.
The clients connection was nulled in irc_closed, but the clients were
not removed from the link, which caused a segfault on successful
connection.

https://projects.duckcorp.org/issues/637
2018-12-17 22:33:19 -05:00
Arnaud Cornet 012b21a68b Remove OIDENTD build options.
Instead support a runtime option.
Note that existing oidentd users will have to add write_oidentd = true
in their config to keep existing behavior.
2018-11-18 15:07:16 -05:00
Arnaud Cornet 27f1cf988b Simplify autotools configuration. 2018-11-18 09:10:16 -05:00
Pierre-Louis Bonicoli ab8e5eece1 Add cipher specifications setting
Allow to configure cipher specifications for the listening bip
connection and for each outgoing IRC connection.

Closes #301
2016-11-07 11:25:37 +01:00
Pierre-Louis Bonicoli 148b38a953 Prefixes and usermodes were inverted 2015-09-11 11:31:37 +02:00
Pierre-Louis Bonicoli 209b9a7cd7 Add missing terminating null byte
Reported by Trou, thanks to him !
Closes #477
2015-09-11 11:31:32 +02:00
Pierre-Louis Bonicoli 4eec084452 Allow to configure the delay before a reconnection
Initial patch submitted by Romain Gayon, thanks to him !
2014-12-11 18:19:11 +01:00
Pierre-Louis Bonicoli 73483ff088 Handle PREFIX defined in ISUPPORT
ISUPPORT is a de facto standard extension to IRC.
Available prefixes and usermodes are handled at the connection
level (link_level struct).
2014-12-11 16:50:18 +01:00
Pierre-Louis Bonicoli e88d7da760 Handle CHANMODES defined in ISUPPORT
ISUPPORT is a de facto standard extension to IRC.
chanmodes are handled at the connection level (link_level struct).
2014-12-11 16:50:17 +01:00
Pierre-Louis Bonicoli fda9fccb85 Handle unlikely case: "CAPAB" present twice
If "CAPAB" element were present twice, a wrong element would be removed.
2014-12-11 16:50:17 +01:00
Pierre-Louis Bonicoli db27168c76 Avoid unnecessary test
The first element is "005", it cannot be "CAPAB".
2014-12-11 16:50:05 +01:00
Pierre-Louis Bonicoli f7ace64abe Remove dead links from the list of all links
Fix segfault that occurs when bip admin users use:
/BIP DEL_CONN <connection name>
/BIP ADD_CONN <connection name> <network>

Closes #325
2014-12-11 16:40:28 +01:00
Pierre-Louis Bonicoli e0b63528f2 Channel modes: 'Type B' flags always have a value
even when removed.
Refs #345
2014-09-04 10:32:04 +02:00
Pierre-Louis Bonicoli d2fa844960 Channel mode: handle flags 'f' and 'j'
Closes #345
2014-09-04 10:32:00 +02:00
Pierre-Louis Bonicoli 222a33cb84 Buffer Overflow: check against the implicit size of select() arrays
Reported by Julien Tinnes (Fix #269)
exit is called when the listening socket can not be created
2012-01-23 22:38:59 +01:00
Arnaud Fontaine a46b8bd2c2 Fix GCC warnings. 2011-10-24 23:44:43 +02:00
Arnaud Fontaine 0da434d126 Fix GCC warnings. 2011-10-04 00:30:07 +02:00
Nathan Phillip Brink 7e1c80a65a Use 'make dist' instead of 'git archive' to create a release or snapshot tarball. 2011-09-14 06:28:14 +02:00
Pierre-Louis Bonicoli b2dde370d6 Improve 'trust ok' command
if a client send "TRUST OK" to bip and all connexions are already trusted,
reply "No untrusted certificates." instead of "Unknown command"
2011-05-23 04:01:27 +02:00
Pierre-Louis Bonicoli 81b8ed48cf Fix build errors on armel
sys/user.h on armel has a conflicting definition of 'struct user'.
This patch renames bip's structure to avoid the conflict.
Thanks to Philipp Kern and Dann Frazier !
2011-01-15 18:13:26 +01:00
Arnaud Cornet 7fb0823167 cp 2010-09-12 17:32:55 +01:00
Arnaud Cornet 4822364c0f Fix for null pointer deference
CVE-2010-3071
2010-09-12 16:52:00 +01:00
Zach Wily 4d3ee53e7b RFC 1459 specifies that the PONG message may have 1 or 2 parameters. 2010-04-07 22:12:26 +01:00
Arnaud Cornet f995c1f537 try to mitigate freenode antiflood throttling 2010-02-17 12:34:57 +00:00
Arnaud Cornet 92365874d4 Revert "Fix antiflood. Fixes freenode kicking us out."
This reverts commit 639e929021.
2010-02-17 12:32:22 +00:00
Arnaud Cornet 5c3f22d8a8 Revert "Unbraindead"
This reverts commit b21c658b8c.
2010-02-17 12:32:15 +00:00
Arnaud Cornet b21c658b8c Unbraindead 2010-02-17 12:00:55 +00:00
Arnaud Cornet 5b26dac489 More lose MODE command handling 2010-02-17 10:55:09 +00:00
Arnaud Cornet 639e929021 Fix antiflood. Fixes freenode kicking us out. 2010-02-15 14:06:50 +00:00