Commit Graph

496 Commits

Author SHA1 Message Date
Loïc Gomez f1214dbfb5
Update base64 lib to latest version
* be as close as possible to the original code (except for extra
   src/b64/utils sub-directory)
 * use new base64_encode_no_lf() function with no line returns
 * fix irc_server_sasl_authenticate(): add missing free(raw_str)
 * add a lastsync status file in src/b64 for tracking

Signed-off-by: Loïc Gomez <bip@animanova.fr>
2024-02-19 15:24:03 +09:00
Loïc Gomez 662bc9baf1
Move utils/base64 to b64 dedicated directory
Signed-off-by: Loïc Gomez <bip@animanova.fr>
2024-02-19 15:23:57 +09:00
Pierre-Louis Bonicoli 8c3e51c559
update base64 files: resync from the src project
The allocated buffer size was slightly overestimated due to unused line
feeds taken in account.

I kept the differences with the original project as small as possible in
order to make the next synchronization easy.
2024-02-19 14:31:13 +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
Loïc Gomez 99a1244e46
Allow a user to /BIP JUMP [-f] [other_conn] (within their list).
This can be useful when a connection is very slow to reconnect and the
user wants to force an immediate reconnection.

Also:
- fix message when JUMPing on some already reconnecting link
- add find_link() method
- add reconnect timer info if any (else display 0s)
- add -f flag to reset reconnect timer

Signed-off-by: Loïc Gomez <bip@animanova.fr>
2024-02-18 23:39:27 +09:00
Loïc Gomez edd460a8fa
Set default recon_timer (and step) to 30s
Waiting 2 minutes on the first disconnect is depressing.
With this the maximum of 10min wait time is reached after 20 attempts
instead of the current 5 attempts.

Signed-off-by: Loïc Gomez <bip@animanova.fr>
2024-02-18 00:07:41 +01:00
Loïc Gomez 4cd5bdb381
Set default backlog_lines = 0 (fixes Debian bug #818374)
This would have defaults move to backlog_always=false / log=true /
backlog_lines=0, which should not cause much trouble as backlog will
be reset after being displayed.

Also, it is doubtfuk anyone would be keeping the default of 10 for
backlog as it is pretty much an undesirable configuration.

We need to annouce this change as important though, so users having
log = false are aware memory usage could increase if they don't set
it manually to another value.

Signed-off-by: Loïc Gomez <bip@animanova.fr>
2024-02-17 03:29:45 +01:00
Pierre-Louis Bonicoli f2fd1824ca
Format the whole code using clang-format 2022-03-10 14:21:01 +01:00
Loïc Gomez 8d9658ca43
Build lexer in a separate unit without AM_CFLAGS 2022-03-10 14:20:58 +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 26d347dec6
sanitize: fix const char * being used as non-const 2022-03-10 14:20:52 +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 79d9be4e71
sanitize: ftell/fseek & len/file_offset type fixes 2022-03-10 14:20:41 +01:00
Loïc Gomez dbf8ccd4de
sanitize: more NULL pointer failsafes 2022-03-10 14:20:35 +01:00
Loïc Gomez f54775fe92
sanitize: ignore warnings related to external libs 2022-03-10 14:20:32 +01:00
Loïc Gomez f379eb35d2
sanitize: oidentd handler fixes 2022-03-10 14:20:29 +01:00
Loïc Gomez ce4cf8b6a0
sanitize: add bip_clock_gettime util function 2022-03-10 14:20:26 +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 b990a071b3
sanitize: fix pid/pidfile handling 2022-03-10 14:20:20 +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 fbfae37d65
sanitize: configuration parsing 2022-03-10 14:20:03 +01:00
Loïc Gomez 9d6394679f
sanitize: check return value 2022-03-10 14:20:00 +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 26d34bafab
sanitize: add bipmkpw_fatal & fix bipmkpw warnings 2022-03-10 14:19:46 +01:00
Loïc Gomez fe108e390f
Add secure / strict CFLAGS
Ref: https://airbus-seclab.github.io/c-compiler-security/#gcc-tldr
2022-03-10 14:19:40 +01:00
Loïc Gomez 34b3c4b0c3
Move /BIP to bip_strcat{,f}_fit memccpy wrapper
instead of snprintf.
2022-03-10 14:19:28 +01:00
Loïc Gomez 399a104d1e
fix /bip user info command 2022-03-10 14:19:22 +01:00
Loïc Gomez dc43d75d1f
Add SASL authentication support (EXTERNAL, PLAIN) 2022-03-10 14:19:19 +01:00
Pierre-Louis Bonicoli 462c1036fc
Fix spelling errors found by Lintian 2021-10-17 12:19:39 +02:00
Thomas Vigouroux 2c7b8aa155
Allow customizing the timestamp format 2021-10-08 11:50:17 +02: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 0044826084 Don't unbind succesful trusting clients twice.
Complements commit 60122ef160.
2018-12-24 16:58:59 -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
Pierre-Louis Bonicoli 814d54c676
use strftime instead of snprintf wherever possible 2018-12-12 03:02:21 +01:00
Pierre-Louis Bonicoli a86b73ab03
reuse AM_CFLAGS wherever needed 2018-12-12 02:09:10 +01:00
Arnaud Cornet e5005cea34 Cleanup the network properly when we fail to load. 2018-12-11 19:46:38 -05:00
Arnaud Cornet 16f2be6ac2 Give up loading invalid configurations.
Bip does not know how to deal with a network with no server. Simply
prevent loading such bad configs.
Fixes: https://projects.duckcorp.org/issues/611
2018-12-11 19:37:36 -05:00
Pierre-Louis Bonicoli 09053fc5f0
CFLAGS: use -W{all,extra,error} by default again 2018-12-11 11:12:08 +01:00
Arnaud Cornet 65406960aa Merge remote-tracking branch 'origin/master' 2018-12-09 20:05:40 -05:00
Arnaud Cornet df5508eed0 Deal more gracefully with long home directories.
This is a better fix for:
https://projects.duckcorp.org/issues/636
2018-12-09 19:52:46 -05:00
Arnaud Cornet 87192685f5 Fix gcc-8 warning.
Change weird use of strncpy where we know we will truncate and use an
extra byte copy instead.
2018-12-09 19:40:36 -05:00