Commit graph

3478 commits

Author SHA1 Message Date
William Pitcock
5abeae60b8 libratbox: implement rb_linebuf_putprefix() which joins a format string to a static string 2016-02-20 15:12:13 -06:00
William Pitcock
33085472a2 msgbuf: make msgbuf_unparse_prefix() public 2016-02-20 14:46:09 -06:00
William Pitcock
c678fbc08b ircd: remove broken USE_IODEBUG_HOOKS knob and related code 2016-02-20 12:02:49 -06:00
William Pitcock
8f64d32533 msgbuf: implement msgbuf_vunparse_fmt() and friends 2016-02-20 11:38:00 -06:00
William Pitcock
691adddd0e msgbuf: handle me.name properly 2016-02-20 11:23:44 -06:00
William Pitcock
4a13e3f1da msgbuf: add some message building code 2016-02-20 11:21:12 -06:00
William Pitcock
d84acbceca newconf: move SSL/TLS deprecation message from ERROR severity to WARNING severity 2016-02-19 17:11:25 -06:00
William Pitcock
7baa37a9ef msg: remove last vestiges of the fakelag system. charybdis has never supported fakelag. 2016-02-19 16:43:39 -06:00
William Pitcock
e742a9e9e7 Merge pull request #149 from anarcat/reproducible
make build reproducible
2016-02-16 00:01:57 -06:00
Antoine Beaupré
a393a68a0e make build reproducible
we do this by removing the uname usage everywhere: it is not actually
used at runtime at all.

we keep the timestamp, because it is actually used in user_welcome()
but allow it to be overriden.

ideally, that timestamp would be completely removed, but I am not sure
what to put in its place, or if it would break some mysterious RFC (or
client!) if we remove that announcement.
2016-02-16 00:37:20 -05:00
William Pitcock
0fc6e6891a Merge pull request #147 from anarcat/extra-clean
add missing files to the clean target
2016-02-15 23:07:03 -06:00
Antoine Beaupré
4354228c72 add missing files to the clean target
without those, make; make clean is not idempotent
2016-02-15 22:24:48 -05:00
William Pitcock
d670fe5271 msgbuf: msgbuf_append_tag(): add support for attaching a specific capability bit 2016-02-13 00:19:23 -06:00
William Pitcock
b4993fe8c3 msgbuf: pull in s_assert 2016-02-12 12:12:30 -06:00
William Pitcock
920e4849f1 msgbuf: fix AFP() macro 2016-02-12 11:56:15 -06:00
William Pitcock
9d5170247e msgbuf: attach capabilities mask to each tag for sending
this will be used with a bloom filter to speed up the 1-to-many case
2016-02-11 19:50:47 -06:00
William Pitcock
7b20f46ed3 Merge pull request #146 from lp0/fix-sqlite-unixRandomness-read-20160211
bandb: sqlite3: check read() return value
2016-02-11 16:13:34 -06:00
William Pitcock
5f8919a9c3 Merge pull request #145 from lp0/fix-ssld-fmt-warnings-20160211
ssld: fix format string warnings for statistics
2016-02-11 16:13:20 -06:00
Simon Arlott
20b940a99c
bandb: sqlite3: check read() return value 2016-02-11 22:08:37 +00:00
Simon Arlott
26b83fa09d
ssld: fix format string warnings for statistics
Cast the uint64_t format arguments to unsigned long long as
that's what the format string specifies.
2016-02-11 21:58:44 +00:00
William Pitcock
08006c16f8 msgbuf: do a better job of handling gotchas with parsing tags 2016-02-10 21:16:28 -06:00
William Pitcock
c84003aeb5 ssld: we use uint8_t for IPC buffers, not char 2016-02-10 21:03:09 -06:00
William Pitcock
a1125230f3 libratbox: time_t can be 64-bit, so use labs() 2016-02-10 21:02:56 -06:00
William Pitcock
ca45daba73 extensions: add m_echotags extension to echo back your tags in NOTICE form 2016-02-10 21:00:27 -06:00
William Pitcock
428ca87b01 modules: chase MsgBuf API change 2016-02-10 20:54:17 -06:00
William Pitcock
760bafdac3 extensions: update for API change 2016-02-10 20:14:22 -06:00
William Pitcock
4a84a763cd ircd: change MessageHandler to include a MsgBuf pointer at the front for tag access 2016-02-10 20:13:44 -06:00
Simon Arlott
8ace0906ad libratbox: event: continually adjust ish event times
When events are scheduled to run at a random +/- 1/3rd of the specified
frequency it can vary considerably for the longer timers (particularly
try_connections), so adjust the frequency to a different random interval
of the original frequency every time the event runs.
2016-02-10 19:03:31 -06:00
Simon Arlott
eb1b303d56 ircd: support restarting ssld processes
Add REHASH SSLD (admins only) that starts new sslds and marks the
existing ones as inactive until all their clients disconnect.

Very useful whenever the SSL library has a vulnerability because
new connections can use a new version of the library without
disconnecting existing clients/servers.

Add STATS S (admins only) to list ssld processes, status, and client
count.
2016-02-10 19:03:30 -06:00
William Pitcock
dea27a087c Merge pull request #144 from lp0/handle-which_ssld_failure-start_ssld_connect-accept-20160210
ircd: Handle which_ssld failure
2016-02-10 18:54:05 -06:00
Simon Arlott
5e270e7d89
ircd: Handle which_ssld failure
It's possible for which_ssld to fail and return NULL, handle this in
start_ssld_connect and start_ssld_accept by returning NULL. The NULL
return value is already handled in all calls to start_ssld_accept,
so handle this for start_ssld_connect by reporting an error connecting.

Handle it in start_zlib_session by exiting the client.
2016-02-10 22:45:38 +00:00
Simon Arlott
b9ff4868a9
ircd: add missing rb_free in start_zlib_session 2016-02-10 22:45:35 +00:00
William Pitcock
6d01fdc791 Merge pull request #137 from lp0/fix-ssld-change_connid-20160207
ssld: change_connid may be called with an unknown ID
2016-02-10 15:54:43 -06:00
William Pitcock
45d128bc10 Merge pull request #142 from lp0/fix-random_socket-20160210
authd: fix link failure in random_socket
2016-02-10 15:53:27 -06:00
Simon Arlott
3f6cbacc41
authd: fix link failure in random_socket
The random_socket function isn't used, and the code can only be
compiled if the function is optimised away (because it's static
and unused) otherwise it will fail to link when "ipv4_addr" and
"ipv6_addr" are not found.

Fix this by modifying ipv4_addr and ipv6_addr so that they're not
external variables.
2016-02-10 21:29:41 +00:00
Simon Arlott
7beaee5239
ssld: change_connid may be called with an unknown ID
If change_connid is called with an unknown ID, conn will be
NULL, check this with an assert and then respond by reporting
the new ID as closed instead of dereferencing a NULL pointer.
2016-02-10 21:22:50 +00:00
William Pitcock
1579e155b1 parse: further cleanups 2016-02-10 10:25:16 -06:00
William Pitcock
20dd3725b8 parse: fix aliases 2016-02-10 10:09:42 -06:00
William Pitcock
269dd686b3 msgbuf: improve parse logic 2016-02-10 00:46:32 -06:00
William Pitcock
4d03595da4 parse: utilise MsgBuf to simplify message parsing 2016-02-10 00:22:37 -06:00
William Pitcock
a8e69f5dfc msgbuf: implement msgbuf_parse() 2016-02-10 00:08:58 -06:00
William Pitcock
88b427b61d msgbuf: add lowlevel interface for building MsgBuf objects 2016-02-09 23:19:13 -06:00
William Pitcock
b830b64106 include: add msgbuf.h for future msgbuf api 2016-02-09 23:08:35 -06:00
William Pitcock
de50a480af Remove unused .depend files. 2016-02-09 23:08:35 -06:00
William Pitcock
5512416070 Merge pull request #140 from viatsko/remove-snprintf
Remove libratbox's snprintf.c, update related ircd code
2016-02-09 21:58:07 -06:00
Valerii Iatsko
5203cba5ce Remove libratbox's snprintf.c, update related ircd code 2016-02-10 02:25:32 +01:00
Valerii Iatsko
e44504ebf1 Add .travis.yml 2016-02-10 00:00:30 +01:00
William Pitcock
55d5f7970a ircd: various memory leak fixes from pull requests 2016-02-09 10:53:24 -06:00
Simon Arlott
87c44482d0 ircd: chmode: Avoid referencing beyond the end of the flags_list array in set_channel_mode
We're setting flags to flags_list[3] at the end of the loop, but the
array only has 3 elements. Unless the compiler optimises this away
(because flags will not be used again) we're accessing memory beyond
the end of the array.

With gcc-4.9:
chmode.c: In function 'set_channel_mode':
chmode.c:1548:54: warning: iteration 2u invokes undefined behavior [-Waggressive-loop-optimizations]
  for(j = 0, flags = flags_list[0]; j < 3; j++, flags = flags_list[j])
                                                      ^
chmode.c:1548:2: note: containing loop
  for(j = 0, flags = flags_list[0]; j < 3; j++, flags = flags_list[j])

Explicitly set "flags = flags_list[j]" at the start of each loop
iteration, which will avoid referencing off the end of the array.
2016-02-09 10:41:37 -06:00
Simon Arlott
41aed6bbf7 libratbox: define UINT16_MAX
UINT16_MAX may not be defined on some ancient hosts (FreeBSD 4.8)

It's used by libratbox/src/tools.c
2016-02-09 10:41:37 -06:00