Skip to content

Latest commit

 

History

History
46 lines (44 loc) · 1.82 KB

TODO.org

File metadata and controls

46 lines (44 loc) · 1.82 KB

add connection to pool of connections on connecting with the server

handle ping-ing the client to check if it’s alive

Spawn alongside handler in crier_server. If the client does not respond in time, send a call over to the remove_client function in crier_user_store.

figure out a way to kill connections when they don’t respond

handle incoming pings from client

parsing input to IRC standards

create a module for interpreting input

migrate error logs to lager

store user record

check if nick/username is taken before assigning

Shouldn’t be too hard, just make sure response is `[]` from a selection query before setting the nick.

send appropriate error codes

Refer to table at the bottom of this doc

find a way to get the address of the server and hostname of the user

Perhaps an environment variable?

send post-reg messages to client if username and nick are set

write tests

Use CommonTest, seems to work best (and easiest)

move non-store related business out of crier_user_store

write module doc for all modules

Short description of what module does

add short description of each complicated function

handle joining a channel

SYNTAX:
:<nick>!~<username>@<host> JOIN #<channel>

host=name of server for us

show NAMES list when joining

implement names command

handle PRIVMSG

handle leaving a channel

handle nick-change

handle kicking (banning will be skipped for simplicities sake)

handle user modes (operator, mod..)

use regex for handling IRC messages parsing

Current system is plain stupid, but it works for now ;)

address 2sec lag when messages queue up

Notes

IRC response codes https://www.alien.net.au/irc/irc2numerics.html