Commit Graph

70 Commits

Author SHA1 Message Date
Přemysl Eric Janouch 23cd9521d4 kike: shuffle things around
Pseudorandomly.  There are more than one way the program could be laid out.
Some of them make more sense than others.
2014-08-09 23:51:27 +02:00
Přemysl Eric Janouch 9927956104 kike: fix leaking of channels 2014-08-09 23:20:21 +02:00
Přemysl Eric Janouch 266626584d kike: fix `struct channel_user'
Storing the nickname instead of a reference to `struct client' didn't play well
with nickname changes.  The client needs to be unlinked from any channels before
his object can be deleted, anyway.
2014-08-09 23:10:35 +02:00
Přemysl Eric Janouch 9d86d81851 kike: hackplement channel MODE changes 2014-08-09 22:43:18 +02:00
Přemysl Eric Janouch 8645f12f9f kike: fix checking against channel masks 2014-08-09 22:42:26 +02:00
Přemysl Eric Janouch e9491ca85b kike: implement a useless ADMIN command 2014-08-09 03:58:37 +02:00
Přemysl Eric Janouch 4b3af280fa kike: channel user limit is also secret 2014-08-09 01:36:21 +02:00
Přemysl Eric Janouch a7ba1eb15f kike: preparation for multiple listening sockets
It should be only a matter of modifying irc_setup_listen_fds() now.
2014-08-09 00:14:14 +02:00
Přemysl Eric Janouch e3010f2d6d kike: fix fingerprint generation and checking 2014-08-08 22:24:34 +02:00
Přemysl Eric Janouch 38887df202 kike: fix client unregistration 2014-08-08 02:34:46 +02:00
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