Commit Graph

60 Commits

Author SHA1 Message Date
Přemysl Eric Janouch 34967973aa kike: implement SSL client cert. auth. 2014-08-08 02:34:45 +02:00
Přemysl Eric Janouch 6382ecb016 kike: allow changing user mode 2014-08-08 02:34:45 +02:00
Přemysl Eric Janouch f53fa42ac3 kike: implement DIE and KILL 2014-08-08 02:34:41 +02:00
Přemysl Eric Janouch c00ca0d29a kike: also tell about +b, +e and +I in 004 2014-08-08 01:29:56 +02:00
Přemysl Eric Janouch 5ed4e632a3 kike: don't send channel messages back 2014-08-05 23:26:30 +02:00
Přemysl Eric Janouch eab2d1765a kike: implement the WHOIS command
The code is starting to stink a bit, refactor imminent.
2014-08-05 23:15:06 +02:00
Přemysl Eric Janouch ad7d17d2d8 kike: implement the ISON command 2014-08-05 23:10:59 +02:00
Přemysl Eric Janouch cf700a5a86 kike: users also match their servers 2014-08-05 23:09:36 +02:00
Přemysl Eric Janouch 68303ed788 kike: fix wildcard matching
It wasn't IRC case-insensitive.
2014-08-05 23:08:29 +02:00
Přemysl Eric Janouch 9b2b3844e2 kike: set the OpenSSL's session ID context
Fixes handshake failure on session reuse attempts.
2014-08-05 21:15:24 +02:00
Přemysl Eric Janouch 08b93c3a71 kike: implement the KICK command 2014-08-05 01:38:49 +02:00
Přemysl Eric Janouch c386592d70 kike: implement NOTICE 2014-08-05 01:04:21 +02:00
Přemysl Eric Janouch 17fdf0d4bf kike: fix the NAMES reply upon JOIN'ing
Now Pidgin seems to be relatively happy with our server.
2014-08-04 23:53:25 +02:00
Přemysl Eric Janouch ca72259b12 kike: implement the WHO command 2014-08-04 23:52:49 +02:00
Přemysl Eric Janouch 3b69dfb583 kike: remember to send back AWAY messages 2014-08-04 08:17:34 +02:00
Přemysl Eric Janouch a5953147c3 kike: shuffle things around
No functional change, I hope.
2014-08-04 01:50:25 +02:00
Přemysl Eric Janouch 9bfdc741fe kike: stuff
Implemented a lot of the channel stuff and other stuff as well.
2014-08-04 01:24:10 +02:00
Přemysl Eric Janouch 884c434947 kike: don't disclose secret channels in LUSERS 2014-08-03 02:14:15 +02:00
Přemysl Eric Janouch 96f4b81182 kike: implement LIST 2014-08-03 00:57:25 +02:00
Přemysl Eric Janouch 97f35bedfd kike: implement USERHOST 2014-08-02 23:00:51 +02:00
Přemysl Eric Janouch 559bedad65 kike: update the poller properly
Now we can send PRIVMSG's between users and all that jazz.
2014-08-02 21:33:55 +02:00
Přemysl Eric Janouch 5e6def5bb0 kike: implement PRIVMSG to user 2014-08-02 21:33:55 +02:00
Přemysl Eric Janouch facd810548 kike: implement clean shutdown 2014-08-02 21:33:55 +02:00
Přemysl Eric Janouch 5bedd3918c kike: implement connection limit
Somehow I'm not sure whether this thing is useful in any sense.
2014-08-02 21:33:49 +02:00
Přemysl Eric Janouch 2fe3c7ed45 kike: implement the ping-pong and QUIT 2014-08-02 21:32:26 +02:00
Přemysl Eric Janouch 9720e30c8b kike: add a `ping_interval' config. value 2014-08-02 20:36:40 +02:00
Přemysl Eric Janouch 027333e56a Fix some compiler warnings
`-Weverything' seems to have found a few problems.

Also enabled clang sanitizers by default.
2014-07-19 17:44:49 +02:00
Přemysl Eric Janouch 43d34d2473 Add a LIST_HEADER macro
To save us from specifying the `next' and `prev' pointers all the time.

It's not perfect, just a tiny bit better.
2014-07-18 19:51:15 +02:00
Přemysl Eric Janouch 353230b18b Cleanup 2014-07-18 01:03:21 +02:00
Přemysl Eric Janouch b2a4d38e8c Implement TIME, VERSION, MOTD, LUSERS 2014-07-17 23:51:34 +02:00
Přemysl Eric Janouch 86e3ae951e Fix the ERR_NOTREGISTERED message 2014-07-17 23:48:38 +02:00
Přemysl Eric Janouch 057a01e2e5 Send LUSERS output upon registration 2014-07-17 23:48:38 +02:00
Přemysl Eric Janouch 081b9f6bd2 Fix handling of multiple NICK's before a USER
We have to release the old nickname _first_, so that we can register the
same one again (albeit with a slight race condition).
2014-07-17 23:48:38 +02:00
Přemysl Eric Janouch b1780e3efb Send the user's mode after registration 2014-07-17 23:48:38 +02:00
Přemysl Eric Janouch 531b1c71bf Return `struct error' from irc_initialize_ssl() 2014-07-17 08:43:21 +02:00
Přemysl Eric Janouch a508f85bea Implement daemonization
Now we're a real daemon, yay.
2014-07-16 23:56:42 +02:00
Přemysl Eric Janouch 1842fa90dd Revise usage of print_{error,fatal}()
Let's limit print_fatal() to unexpected conditions.

Also added exit_fatal() to save a few lines of code.
2014-07-16 23:56:42 +02:00
Přemysl Eric Janouch e00d2079b5 Only print the first OpenSSL error
Otherwise TLS autodetection and TLS communication itself seem to work, yay!
2014-07-16 23:56:09 +02:00
Přemysl Eric Janouch d28b722489 str_map::key_cmp -> str_map::key_xfrm
It seemed to be almost too easy to be true, and it actually was.

Now it should work.
2014-07-16 21:23:30 +02:00
Přemysl Eric Janouch 996e0912c2 First bugfixes
Now we can at least successfully register.
2014-07-16 00:57:55 +02:00
Přemysl Eric Janouch 2921eed702 Rip out error codes
As it turns out, they're rather annoying to maintain, and we don't even need
them.  They also clutter the code unnecessarily in their current form.

If it ever comes to having to have them, let's make another version of
error_set(), maybe error_set_with_code(), that makes it possible to also set
an integer within `struct error'.

The only problem with the above solution is when we aggregate errors from
multiple functions (be it by calling one after another, or through nesting of
functions that may return an error).

But let's care about that when the time comes for it.
2014-07-16 00:53:59 +02:00
Přemysl Eric Janouch a2a979ea2e Make it possible to route messages to syslog 2014-07-15 22:23:53 +02:00
Přemysl Eric Janouch 18cb2941f3 Resolve paths relative to XDG config. paths
This should make the programs an awful lot less painful to set up.
2014-07-14 22:15:56 +02:00
Přemysl Eric Janouch b0cf09fb4c Rename `struct connection' to `struct client'
It is shorter and makes more sense.  Also replaced "conn" with "c"
to keep it even more concise, and thus clearer.
2014-07-14 22:15:56 +02:00
Přemysl Eric Janouch b58ee27362 Implement client registration
And shuffle around some functions so that they form logical blocks (at least
I've tried; it's not that easy when you try to avoid forward declarations).
2014-07-14 02:38:56 +02:00
Přemysl Eric Janouch 3206c86430 Don't forget that channels have users 2014-07-14 00:36:16 +02:00
Přemysl Eric Janouch d40d34b4ca Miscellaneous little things 2014-07-14 00:14:37 +02:00
Přemysl Eric Janouch 586ccd4e87 Put a prolog at the top of configuration files
Later I'm going to put in there some more information about the format etc.
2014-07-13 23:50:44 +02:00
Přemysl Eric Janouch f52fab9448 Load X/Open message catalogs
This is going to enable making changes to ERR and RPL messages without
modifying the source code.

Localized messages could be interesting. :)
2014-07-13 23:47:29 +02:00
Přemysl Eric Janouch aaedbf93f1 Load an MOTD on start 2014-07-13 21:27:38 +02:00