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
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
3d732651bc
Improve wording in error message
2021-10-07 18:10:28 +02:00
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