aboutsummaryrefslogtreecommitdiff
path: root/src/kike.c
Commit message (Collapse)AuthorAgeFilesLines
* kike: remember to send back AWAY messagesPřemysl Janouch2014-08-041-0/+2
|
* kike: shuffle things aroundPřemysl Janouch2014-08-041-163/+170
| | | | No functional change, I hope.
* kike: stuffPřemysl Janouch2014-08-041-102/+682
| | | | Implemented a lot of the channel stuff and other stuff as well.
* kike: don't disclose secret channels in LUSERSPřemysl Janouch2014-08-031-1/+17
|
* kike: implement LISTPřemysl Janouch2014-08-031-0/+53
|
* kike: implement USERHOSTPřemysl Janouch2014-08-021-13/+47
|
* kike: update the poller properlyPřemysl Janouch2014-08-021-19/+24
| | | | Now we can send PRIVMSG's between users and all that jazz.
* kike: implement PRIVMSG to userPřemysl Janouch2014-08-021-0/+32
|
* kike: implement clean shutdownPřemysl Janouch2014-08-021-8/+25
|
* kike: implement connection limitPřemysl Janouch2014-08-021-21/+36
| | | | Somehow I'm not sure whether this thing is useful in any sense.
* kike: implement the ping-pong and QUITPřemysl Janouch2014-08-021-10/+135
|
* kike: add a `ping_interval' config. valuePřemysl Janouch2014-08-021-3/+25
|
* Fix some compiler warningsPřemysl Janouch2014-07-191-4/+4
| | | | | | `-Weverything' seems to have found a few problems. Also enabled clang sanitizers by default.
* Add a LIST_HEADER macroPřemysl Janouch2014-07-181-5/+2
| | | | | | To save us from specifying the `next' and `prev' pointers all the time. It's not perfect, just a tiny bit better.
* CleanupPřemysl Janouch2014-07-181-9/+1
|
* Implement TIME, VERSION, MOTD, LUSERSPřemysl Janouch2014-07-171-6/+72
|
* Fix the ERR_NOTREGISTERED messagePřemysl Janouch2014-07-171-1/+1
|
* Send LUSERS output upon registrationPřemysl Janouch2014-07-171-1/+45
|
* Fix handling of multiple NICK's before a USERPřemysl Janouch2014-07-171-5/+5
| | | | | We have to release the old nickname _first_, so that we can register the same one again (albeit with a slight race condition).
* Send the user's mode after registrationPřemysl Janouch2014-07-171-2/+30
|
* Return `struct error' from irc_initialize_ssl()Přemysl Janouch2014-07-171-14/+12
|
* Implement daemonizationPřemysl Janouch2014-07-161-5/+36
| | | | Now we're a real daemon, yay.
* Revise usage of print_{error,fatal}()Přemysl Janouch2014-07-161-13/+5
| | | | | | Let's limit print_fatal() to unexpected conditions. Also added exit_fatal() to save a few lines of code.
* Only print the first OpenSSL errorPřemysl Janouch2014-07-161-4/+6
| | | | Otherwise TLS autodetection and TLS communication itself seem to work, yay!
* str_map::key_cmp -> str_map::key_xfrmPřemysl Janouch2014-07-161-3/+3
| | | | | | It seemed to be almost too easy to be true, and it actually was. Now it should work.
* First bugfixesPřemysl Janouch2014-07-161-7/+9
| | | | Now we can at least successfully register.
* Rip out error codesPřemysl Janouch2014-07-161-24/+11
| | | | | | | | | | | | | | | 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.
* Make it possible to route messages to syslogPřemysl Janouch2014-07-151-1/+5
|
* Resolve paths relative to XDG config. pathsPřemysl Janouch2014-07-141-31/+35
| | | | This should make the programs an awful lot less painful to set up.
* Rename `struct connection' to `struct client'Přemysl Janouch2014-07-141-148/+144
| | | | | It is shorter and makes more sense. Also replaced "conn" with "c" to keep it even more concise, and thus clearer.
* Implement client registrationPřemysl Janouch2014-07-141-80/+381
| | | | | 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).
* Don't forget that channels have usersPřemysl Janouch2014-07-141-3/+28
|
* Miscellaneous little thingsPřemysl Janouch2014-07-141-10/+11
|
* Put a prolog at the top of configuration filesPřemysl Janouch2014-07-131-12/+21
| | | | Later I'm going to put in there some more information about the format etc.
* Load X/Open message catalogsPřemysl Janouch2014-07-131-1/+26
| | | | | | | This is going to enable making changes to ERR and RPL messages without modifying the source code. Localized messages could be interesting. :)
* Load an MOTD on startPřemysl Janouch2014-07-131-0/+36
|
* Apparently it's the "realname"Přemysl Janouch2014-07-131-2/+2
|
* Initialize the server namePřemysl Janouch2014-07-131-0/+45
|
* Only compile regex's oncePřemysl Janouch2014-07-131-14/+31
|
* Add a few token validation functionsPřemysl Janouch2014-07-131-0/+87
|
* Implement irc_try_write()Přemysl Janouch2014-07-121-1/+21
|
* Rename connection_abort() to connection_kill()Přemysl Janouch2014-07-121-8/+8
|
* Implement irc_try_read()Přemysl Janouch2014-07-121-2/+31
|
* Fix connection abortionPřemysl Janouch2014-07-121-7/+8
|
* Move `SSL_CTX *' into `struct server_context'Přemysl Janouch2014-07-121-52/+85
| | | | | It didn't make much sense to parse the configuration values and load the SSL keys on each connection.
* WIP: add a stub IRC daemon named `kike'Přemysl Janouch2014-07-121-0/+796
As it is going to share a great lot of functionality with ZyklonB, I have decided to extract the common parts into `common.c' and make the two subprojects include this file. The Single Compile Unit concept has proven valuable (sub-second compile times, dead code warnings, almost no need for function declarations, whole-program optimizations), and the sources aren't that long so far anyway. I am probably going to add CMake support later but so far it's not a priority. This project is meant to be portable and freely relocatable (ie. no hardcoded paths if I can avoid it).