Florent Le Coz
4582f10797
Bump master version to 2.0~dev
2014-07-12 14:30:27 +02:00
Florent Le Coz
812f99ba70
Merge branch 'v1'
2014-07-12 14:29:59 +02:00
Florent Le Coz
b578aebc03
Release version 1.0
2014-07-12 14:17:23 +02:00
Florent Le Coz
fa74493c40
Add a CHANGELOG file describing a general view of 1.0 features
2014-07-12 14:17:02 +02:00
Florent Le Coz
8c34576ea0
Move some members of TCPSocketHandler into the SocketHandler class
2014-07-03 03:31:50 +02:00
Florent Le Coz
04d999168a
Add a level of inheritance above SocketHandler
...
SocketHandler has been renamed to TCPSocketHandler
SocketHandler is now a simple interface with a few methods, used only by
Poller.
This way we can inherite from the new SocketHandler class, to handle other
types of sockets, and still make them manageable by the poller without any
change in the Poller class.
2014-07-02 03:01:09 +02:00
Florent Le Coz
b0ae8c66e3
Also remove that from the spec file
2014-06-30 02:45:15 +02:00
Florent Le Coz
d64626648e
Remove biboumi_logdir from the spec file
2014-06-30 01:41:04 +02:00
Florent Le Coz
eb76171aa0
Run the test_suite in the spec %check section
2014-06-30 01:40:26 +02:00
Florent Le Coz
cec9fed1f4
Fix a typo
2014-06-30 01:33:45 +02:00
Florent Le Coz
735ae278f3
Enable assert() even in release mode, in the test_suite
2014-06-30 01:27:41 +02:00
Florent Le Coz
7fcc77f52e
Provide a spec file to build a Fedora RPM
2014-06-30 01:11:11 +02:00
Florent Le Coz
01c1ea14f7
Use systemd-daemon logging prefix if available
2014-06-30 01:04:03 +02:00
Florent Le Coz
e01e34db22
Provide an example unit file for systemd
2014-06-30 01:04:02 +02:00
Florent Le Coz
5a43ac9a0d
Provide an example configuration file
2014-06-30 01:04:02 +02:00
Florent Le Coz
70ebbae15e
Regularly send a notification for the systemd watchdog
2014-06-30 01:03:07 +02:00
Florent Le Coz
a165e59240
Fix some cmake issues
...
fix #2551
2014-06-30 01:02:59 +02:00
Florent Le Coz
48ed47207c
Add missing <string> include in timed_events.hpp
...
fix #2552
2014-06-28 18:38:50 +02:00
Florent Le Coz
6f181acc65
Fix ad-hoc “disconnect user” command. Do not add the <error/> on success
2014-06-25 15:36:06 +02:00
Florent Le Coz
524f7925c4
Add some details in the INSTALL file
2014-06-25 01:02:03 +02:00
Florent Le Coz
2cf64e10b5
Provide a make dist target
2014-06-24 17:48:31 +02:00
Florent Le Coz
39175e1ad6
Little documentation update
2014-06-24 13:56:44 +02:00
Florent Le Coz
a2d55e4bea
Rename cmake target test->test_suite for cmake 3.0
...
See CMP0037
2014-06-23 01:00:21 +02:00
Florent Le Coz
7b785cf552
Delete the timeout event using the correct socket number, instead of -1
...
Was causing the event to not be removed in case of connection failure, which
lead to a dangling timed event named “timeout-1”, which was called later, by
some other SocketHandler for which even the socket creation failed (so, its
socket is -1), with a pointer to the previous SocketHandler which has
disappeared for a long time: segmentation fault etc.
2014-06-22 23:56:51 +02:00
Florent Le Coz
545ab11ff3
Support version request to IRC users
2014-06-20 11:51:49 +02:00
Florent Le Coz
b747f2825c
Respond to IQ version on the gateway, a server or a chan with biboumi version
...
ref #2455
2014-06-20 10:45:42 +02:00
Florent Le Coz
aaf7177413
Write the software version, including the git hash, in config.h using cmake
2014-06-20 10:45:38 +02:00
Florent Le Coz
2117838cf9
Return a proper iq when the IRC server responds to our kick
...
A result or an error, depending on the type of message
2014-06-19 22:22:29 +02:00
Florent Le Coz
26ffc8fe12
Implement a way to add callbacks, waiting for an IRC event to return an iq
2014-06-19 22:21:49 +02:00
Florent Le Coz
a705b9af7b
Remove a duplicate “connection closed” message
2014-06-19 01:10:13 +02:00
Florent Le Coz
77fe8b89a3
Make the Botan rng, credential_manager etc be static
...
This actually makes the session_manager be useful, and saves a few octets of
memory for the other ones
2014-06-19 01:04:40 +02:00
Florent Le Coz
386ac4186a
Document the new way to send private messages
2014-06-18 22:55:18 +02:00
Florent Le Coz
04de62a4e0
Messages to room participants are forwarded to the IRC user
...
For example, both JID #chan%server@biboumi/Toto and toto!server@biboumi are
equivalent, except that if you send a message to the first one, subsequent
messages coming from the user toto will come from that same JID. This is
done to be consistent for the XMPP user, and respond from the same JID than
the 'to' of the first message.
fix #2468
2014-06-18 22:42:58 +02:00
Florent Le Coz
56eb5df28a
Mini comment fix
2014-06-18 18:46:41 +02:00
Florent Le Coz
9757c2c695
includes from cmake BINARY_DIR should be included before considering SOURCE_DIR
2014-06-18 11:45:09 +02:00
Florent Le Coz
6cbaa2c669
Document the encryption, and a few documentation issues are fixed
2014-06-13 01:46:12 +02:00
Florent Le Coz
7c1a38999c
Rewrite the whole IID usage
...
IRC users and channels are now distinguished by the separator used in the
IID (% or !).
ref #2468
2014-06-11 02:37:11 +02:00
Florent Le Coz
6210a9d50b
Add an <error/> element when the provided form is wrong, in two ad-hoc commands
2014-06-11 01:00:02 +02:00
Florent Le Coz
5d1a567ea5
Handle the 'cancel' ad-hoc action, and return an error for unsupported actions
...
ref #2521
2014-06-11 00:49:42 +02:00
Florent Le Coz
3ea029dd98
Remove inactive ad-hoc sessions after a given time
...
ref #2521
2014-06-11 00:49:39 +02:00
Florent Le Coz
1604320a23
Make the XMPP component port configurable
...
fix #2541
2014-06-08 23:30:17 +02:00
Florent Le Coz
8b30e312bb
Add a TimedEvent to cancel the connection to a server after 5 seconds
2014-06-08 15:13:08 +02:00
Florent Le Coz
349dc06e91
Silence warnings coming from Botan headers
2014-06-08 13:03:05 +02:00
Florent Le Coz
800d7df9aa
Properly search for libbotan even in a botan-1.11 subdirectory
2014-06-08 12:59:50 +02:00
Florent Le Coz
2d5e2fdcf6
Give two supported compilers, as examples
2014-06-08 05:15:17 +02:00
Florent Le Coz
198b0fa6da
Document the new optional libbotan dependency
2014-06-08 05:14:55 +02:00
Florent Le Coz
23f32ba39e
Implement TLS support using Botan
...
For now, it tries two TLS ports and then connects to the non-tls port. In
the future we would like the user to be able to configure that.
fix #2435
2014-06-08 05:07:54 +02:00
Florent Le Coz
fa07130991
Little doc fix
2014-06-06 02:15:35 +02:00
Florent Le Coz
be6265544a
Make the destructor of the SocketHandler class protected non-virtual
2014-06-05 02:24:03 +02:00
Florent Le Coz
1706a92f0c
Update the documentation
2014-06-03 02:11:29 +02:00
Florent Le Coz
c530fb9156
Do not send an item-not-found presence from an invalid JID
2014-05-31 17:24:18 +02:00
Florent Le Coz
4a9beff74d
Remove some unused function parameters names
2014-05-31 17:10:22 +02:00
Florent Le Coz
a593d806dd
Document the admin configuration option
2014-05-31 17:08:49 +02:00
Florent Le Coz
4e27298b3a
Add an ad-hoc command to disconnect some users
2014-05-31 17:06:36 +02:00
Florent Le Coz
f5b61f0feb
Add the libuuid dependency to the INSTALL file
2014-05-30 16:16:18 +02:00
Florent Le Coz
c2311b2893
Send (every 240s) a PING command to all connected irc servers
...
fix #2452
2014-05-30 16:08:23 +02:00
Florent Le Coz
5c9d2c23ba
TimedEventsManager is now a singleton
2014-05-30 15:51:43 +02:00
Florent Le Coz
5cca518c2d
Timed events can have a name, and can be canceled based on their name
2014-05-30 15:42:01 +02:00
Florent Le Coz
a63faf6fa9
Use libuuid to generate unique IDs for iq and adhoc sessions
2014-05-30 13:39:00 +02:00
Florent Le Coz
8eb9e535a3
Use pkg-config first to find libraries
2014-05-30 13:15:13 +02:00
Florent Le Coz
86c6f36fae
Add missing files (for adhoc command support)
2014-05-30 04:03:36 +02:00
Florent Le Coz
d33a3b7d35
XmlNode::get_children, to get a list of matching children instead of the first
2014-05-30 04:00:29 +02:00
Florent Le Coz
6bde78b574
XmlNode’s copy constructor now recursively copies the children nodes as well
2014-05-30 04:00:23 +02:00
Florent Le Coz
eb9a201870
Implement the support for adhoc commands
...
We have two basic example commands. But it’s not entirely finished because
there are some error checks that we don’t do.
ref #2521
2014-05-30 03:58:17 +02:00
Florent Le Coz
1c93afc9a7
Change the way the namespaces are handled in the XmlNode class
2014-05-28 17:40:45 +02:00
Florent Le Coz
a350caf6e0
Move the logging + config test on first position
2014-05-28 17:40:45 +02:00
Florent Le Coz
d9d30dd782
Use a timed event to force the exit 2 seconds after an exit signal is received
...
fix #2469
2014-05-28 17:31:28 +02:00
Florent Le Coz
5999e6e0c3
Introduce the timed events
2014-05-28 17:31:28 +02:00
Florent Le Coz
e033b6a3ae
On connection in-progress, save the whole addrinfo struct, not just ai_addr
2014-05-28 02:03:36 +02:00
Florent Le Coz
6c2d03da4e
Send an error presence when the connection to the IRC server fails
2014-05-28 01:27:41 +02:00
Florent Le Coz
7b31bea75b
Only close/unmanage the socket if we are connected/connecting
...
Since the socket is now only created and managed whenever the connection is
being established, we only close the socket and if it was created (we use -1
to denote the fact that is not yet created, or has been closed) and we only
unmanage the socket if it is effectively managed.
fix #2529
2014-05-27 23:47:45 +02:00
Florent Le Coz
34739728f9
Fix a by-one error in the CHANTYPES parsing
2014-05-27 02:35:39 +02:00
Florent Le Coz
aea923bcb9
Use the CHANTYPES values to differentiate channel or user notices
...
It also happens to fix #2517 because this used to create buggy channels
named "auth" and stuf like that.
2014-05-27 02:30:11 +02:00
Florent Le Coz
796af0531e
Add support for CHANTYPES isupport element, to know the prefixes of channels
2014-05-27 02:17:58 +02:00
Florent Le Coz
23e8e32f84
Support IPv6 connections
...
fix #2522
2014-05-27 01:06:45 +02:00
Florent Le Coz
5507adbe94
SocketHandlers own the poller and add themself into it only when the socket is created
...
We want to call socket() with the parameters provided by getaddrinfo, so we
can’t addd the fd into the poller immediately. We need to wait the
connection attempt, and then the SocketHandler can call add_socket_handler
itself, if the connection succeeds, or is in progress.
2014-05-27 01:01:44 +02:00
Florent Le Coz
6b0ffb5fc2
If both write and read events are available on a socket, only do the read
...
Because the read handler may discover that the connection has been closed,
and then remove the socket from the poller. It that case it is no longer
valid to try to call the write handler (which may try to reconnect, but
since that socket is no longer managed, this is not OK).
2014-05-26 22:27:43 +02:00
Florent Le Coz
7fb0b671bb
Also do that cut of message on \n for private messages, and handle /me
2014-05-25 17:50:03 +02:00
Florent Le Coz
01cd6eb516
Split the messages on \n when sending them back to the XMPP user
2014-05-25 17:49:58 +02:00
Florent Le Coz
df765faab9
Only call get_last_child() if the node has children
...
Explain that the behaviour is otherwise undefined, in the comment.
2014-05-15 00:47:20 +02:00
Florent Le Coz
7c7da2cedb
"Chat message" is not the same as "any kind of message"
2014-05-15 00:32:31 +02:00
Florent Le Coz
bafde1af9f
Stanza:get_name() only returns the name of the tag, without the namespace
2014-05-15 00:32:31 +02:00
Florent Le Coz
12c8b1ae0b
Disconnect the user from all its IRC servers whenever he returns an error
...
fix #2524
2014-05-15 00:32:31 +02:00
Florent Le Coz
712b7bdfdf
Correctly handle the usage of ! as a IRC user mode indicator
...
Since “!” is also the separator between the nickname and the user hostname,
having “!” as the user mode (e.g. !nick!~some@host.bla ) would cause the nick
to be empty. Now we skip it if it is a valid user mode indicator.
2014-05-14 21:48:38 +02:00
Florent Le Coz
634e7cf125
mini reorder
2014-05-11 03:37:07 +02:00
Florent Le Coz
23db31cff1
[cmake] Do not print useless messages when an optional lib is not found
2014-05-11 03:36:42 +02:00
Florent Le Coz
579ca4bdb6
Forward iq version results to IRC
2014-05-07 02:02:47 +02:00
Florent Le Coz
04fe15a1e7
Correctly do the error handling when we receive an iq
2014-05-06 23:07:30 +02:00
Florent Le Coz
5ec05cb0ed
Forward CTCP version request to XMPP
2014-05-06 22:50:37 +02:00
Florent Le Coz
f35db5ceba
Implement next_id() to
2014-05-06 22:39:09 +02:00
Florent Le Coz
18b27793de
Use epoll on linux by default, poll otherwise
2014-04-30 02:30:19 +02:00
Florent Le Coz
dd552b1e34
Link with systemd instead of systemd-daemon
2014-04-30 02:03:24 +02:00
Florent Le Coz
28d244631d
Add missing std::string_literals
2014-04-29 23:51:32 +02:00
Florent Le Coz
65f219594d
Fix a little indentation
2014-04-29 21:56:05 +02:00
Florent Le Coz
f6e6b8905b
Use C++14 string_literals
2014-04-29 21:50:13 +02:00
Florent Le Coz
594bac1e84
Remove binary.hpp and use the c++14 feature 0b
2014-04-28 19:44:09 +02:00
Florent Le Coz
c6059e5a21
Upgrade to C++14
2014-04-28 18:46:25 +02:00
Florent Le Coz
ae41c5dee4
Include the xhtml-im element in private messages too
2014-04-25 00:53:59 +02:00
Florent Le Coz
4e61b0d57e
The author name from messages from the server are now nicely formated
2014-04-25 00:53:08 +02:00
Florent Le Coz
77a84fd2d9
NOTICE from channels are displayed in the channel, with a green "[notice]"
2014-04-25 00:35:57 +02:00