Commit Graph

475 Commits

Author SHA1 Message Date
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 3291fd5c7a Update the README 2014-08-04 00:33:06 +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 e8ddf5e58c coin: wrap an if statement 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 16852048ed Don't forward messages while !irc_ready 2014-08-01 00:42:17 +02:00
Přemysl Eric Janouch a4e18d306e Fix plugin autoload
I was trying to be too smart about holding up IRC messages coming from
plugins while the bot is disconnected.
2014-08-01 00:29:17 +02:00
Přemysl Eric Janouch 2b90aa097e ZyklonB: fix the `print' plugin command 2014-07-31 23:09:48 +02:00
Přemysl Eric Janouch 8ece6a4f64 script: fix parse_word()
With the `c > ' '` requirement we can't have an assertion for length in there.
2014-07-31 23:07:37 +02:00
Přemysl Eric Janouch 8fde2e72aa script: improvements
- fixed cons
 - added missing arithmetic operators
 - added min/max/xor/all?/any?/nip/curry/reverse/over
 - added a few functional tests
2014-07-31 22:56:18 +02:00
Přemysl Eric Janouch 2735756dbd script: add length 2014-07-31 02:45:04 +02:00
Přemysl Eric Janouch ba3f4e620c script: add uncons/first/rest/>/>=/<=/!=/join 2014-07-31 02:34:02 +02:00
Přemysl Eric Janouch f62dbe9546 script: fix call/dip, add fold/each/unit/cons/cat 2014-07-31 01:17:09 +02:00
Přemysl Eric Janouch 053359aaf1 Fix the `youtube' plugin
I hadn't read the docs throughly.
2014-07-30 23:17:31 +02:00
Přemysl Eric Janouch 154163ea0a Add an experimental `script' plugin
Basically reimplemented the macro language from libxntd.

Lots of work to be done yet, even if we keep it as a stand-alone TCC plugin.
2014-07-30 21:03:15 +02:00
Přemysl Eric Janouch 25f981e0b1 Didn't intend to commit the API key, too 2014-07-25 00:15:52 +02:00
Přemysl Eric Janouch 6f065351d3 Added a `youtube' plugin
Written for Python 3, it just shows info about random YouTube links.
2014-07-25 00:12:37 +02:00
Přemysl Eric Janouch c2ddcc937e Some fixes for the `coin' plugin
Hey, I'm pretty new to Tcl, leave me alone.
2014-07-24 00:33:29 +02:00
Přemysl Eric Janouch 9d0a276f93 Port the `coin' plugin from VitaminA 2014-07-24 00:01:00 +02:00
Přemysl Eric Janouch 4bc674a559 Update the README 2014-07-21 05:10:25 +02:00
Přemysl Eric Janouch a87be6dfd2 Fix two Clang static analyzer issues
Overflowing memory allocations should crash or exit anyway.
2014-07-19 22:35:12 +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 c419946729 Cleanup
No functional changes.
2014-07-16 00:54:23 +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