louiz’
6d5d7eff68
Directly use Botan::byte instead of char, to avoid an unnecessary cast
2016-10-27 01:15:26 +02:00
louiz’
021f025cb0
Refactor the sha1 digest into its own function, and do not use sprintf
2016-10-26 21:19:53 +02:00
louiz’
aa4255224e
Optimize tcp_socket::on_send by using vector::erase() only once per call
2016-10-20 20:08:29 +02:00
louiz’
ce06c25e93
Very little optimization by using a simpler scope_guard when possible
...
The version with the vector, that can be disabled etc, is “very” slow, so we
use unique_ptr when we don’t need to disable it, and when it only contains
one function
2016-10-20 19:32:20 +02:00
louiz’
827a1eedf8
On EINPROGRESS, we need to also check for read events (because openBSD lies)
...
“It is possible to select(2) or poll(2) for completion by selecting the
socket for writing”
Yeah, sure, “writing”…
2016-10-12 21:00:05 +02:00
louiz’
5f2e4820df
Fix an off-by-one issue in the POLL code
2016-10-12 21:00:05 +02:00
louiz’
c54f28d29d
Conditionally use strptime if we don’t have std::get_time
2016-10-11 21:00:56 +02:00
louiz’
dfc0793ef2
Include a private and no-copy nodes in private <message/> to avoid carbon duplication
2016-10-11 00:43:46 +02:00
louiz’
548e4ad473
Parse the timezone myself, instead of using the broken strptime
...
See
https://lab.louiz.org/louiz/biboumi/issues/3215
https://github.com/andikleen/glibc/blob/master/time/strptime_l.c#L746-L747
for why strptime() sucks
We use std::get_time now, to parse the date and time. And we parse the
timezone by hand.
fix #3215
2016-10-11 00:20:43 +02:00
louiz’
8ac8d2b242
Correctly set status="110" in the presence for the target of a kick
2016-10-07 23:28:40 +02:00
louiz’
954d271d50
Fix the argument of strerror after bind()
...
fix coverity CID 134470
2016-10-06 22:28:25 +02:00
louiz’
92c99bb9dd
Remove a branch that execute identical code in both cases
...
fix coverity CID 134469
2016-10-06 22:28:25 +02:00
louiz’
1d197ff26c
Respond to muc#traffic requests
...
fix #3069
2016-10-04 19:32:45 +02:00
louiz’
45aebb8d8a
Avoid an exception due to some bad logic in the DNS resolution mechanic
...
fix #3207
2016-10-03 21:12:16 +02:00
louiz’
b29225601a
Fix some compilation warning/errors that appear on FreeBSD
2016-10-03 17:58:16 +02:00
louiz’
e5b392ece8
Fix parse_datetime by always using a 'z' as the timezone
...
Because some plateform accept Z and z, but some only accept z…
2016-10-03 17:58:16 +02:00
louiz’
76a8189b46
Implement result-set-management for LIST queries
...
ref #2948
2016-10-03 01:08:48 +02:00
louiz’
265b5df61b
Re-add the ad-hoc command the was removed by mistake in the previous commit
...
Thank you, e2e tests
2016-09-29 23:10:41 +02:00
louiz’
ee4cf5dc2d
Add AdhocCommandHandlers::add_command to simplify the usage of this class
...
And make things a little bit clearer
2016-09-29 20:53:40 +02:00
louiz’
363a0bf02c
Look for uuid/uuid.h instead of just uuid.h
...
Avoids a conflict between /usr/include/uuid.h and
/usr/local/include/uuid/uuid.h on freebsd
2016-09-29 20:11:35 +02:00
louiz’
985da8f2b2
Remove unused code in sha1 module
2016-09-28 20:14:41 +02:00
louiz’
aaa2ca670a
Fix the parse_datetime by using %Z instead of %z
...
If anybody knows why fedora accepts both, but it only works with %z on
debian, please tell me.
2016-09-17 00:34:28 +02:00
louiz’
3047bd41b2
MAM results can be filtered by start and end dates
2016-09-04 22:58:38 +02:00
louiz’
1140db3b88
Add parse_datetime
2016-08-31 01:58:13 +02:00
louiz’
2a4905df01
Fix to_string(time_t) and write a unit test for it
2016-08-31 01:17:45 +02:00
louiz’
9727f4cf00
Add the missing includes back
2016-08-29 19:20:27 +02:00
louiz’
7536a1b3f3
Respond to MAM requests on a channel JID
...
At the moment, result-set-management is not implemented, the whole history
(well, at most 1024 messages) is returned.
2016-08-28 22:42:50 +02:00
louiz’
b59fc2a834
Use Z instead of z in the timestamp format
2016-08-23 20:52:37 +02:00
louiz’
a195939cda
Don't use put_time() because it’s not in gcc 4.9, in shitty-debian “stable”
...
Use strftime instead
2016-08-23 20:48:39 +02:00
louiz’
5e59cc517f
Add missing ctime include
2016-08-22 20:25:41 +02:00
louiz’
e13d3fdf4d
Move get_first_non_empty to louloulibs/utils
2016-08-22 21:29:22 +02:00
louiz’
d1626c929f
When joining a channel, send the most recent history found in the database
2016-08-22 00:44:17 +02:00
louiz’
0d1e0629e7
Fix the timeout test, now that we don't wait 1ms too much everytime
2016-07-28 10:47:44 +02:00
louiz’
5c78692fcd
Do not add 1ms to the timeout of our poller
...
Can’t remember why I did this, but that must be a stupid reason. Everything
must work even with a timeout of 0.
2016-07-28 10:35:12 +02:00
louiz’
11a1c0cc99
Always remove all the DNS sockets on an c-ares event
...
Because c-ares may close one of its socket, even if it’s not the one that
has the event. Otherwise we may not know when a socket has been removed from
our poller (automatically, when close()ed) and this leads to bugs.
2016-07-28 10:34:01 +02:00
louiz’
de0eff6e94
Revert "Don’t use unique_ptr to store dns socket handlers"
...
This reverts commit 5328d0806f .
2016-07-27 10:04:15 +02:00
louiz’
db503b23e8
Use log_error instead of cerr
2016-07-24 20:03:34 +02:00
louiz’
fa42d0c178
Bring back DNSSocketHandler's destructor
2016-07-12 11:25:38 +02:00
louiz’
5328d0806f
Don’t use unique_ptr to store dns socket handlers
2016-07-12 11:15:42 +02:00
louiz’
9fb2e116c4
Move reload.*pp from louloulibs to src
2016-07-12 01:15:34 +02:00
louiz’
4c1b9abe7e
Properly catch and handle database errors
...
Do not use a singleton for the database.
fix #3203
2016-07-12 00:31:57 +02:00
louiz’
81f8f45b37
Replace all include guards by #pragma once
...
It’s $CURRENT_YEAR
2016-07-04 17:53:53 +02:00
louiz’
b2e7edeea8
Properly set the “from” of the ping results to the correct full JID
2016-06-24 11:23:01 +02:00
louiz’
9206f4723b
Fix a bug in cut()
2016-06-23 22:40:53 +02:00
louiz’
4b1c580bb9
cut messages at 512 bytes, taking into account the UTF-8 codepoints
...
ref #3067
2016-06-15 15:50:45 +02:00
louiz’
6235fb2d03
Add get_next_codepoint_size
2016-06-15 00:38:43 +02:00
louiz’
80d0c19c5a
Refactor, test and improve the way we cut too-long messages for IRC
2016-06-14 20:14:36 +02:00
louiz’
19bca5c2f2
Add a missing return bool in Config
2016-06-14 20:08:55 +02:00
louiz’
46ff73662c
Clean the Config module, use static things instead of a stupid singleton
2016-06-14 03:02:36 +02:00
louiz’
5a2e611617
Show off, with some variadic templates, for the logger module
2016-06-13 20:46:30 +02:00