Skip to content

Rexbrainz/ft_irc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

An IRC Server with irssi as its reference client

Done by @Rexbrainz, @Thopterek, and @cuhlig.

Following rules required in 42 school

We also made a bonus that uses the DCC protocol used by irssi, allowing bot to transfer chosen files and act as client.

Following the IRC protocol, we were able to create our IRC server, which handles the following:

Handles multiple connections at the same time, without blocking sockets

Handles various IRC commands per the subject and bonus

  • PASS / USER / NICK: to register the user with all of the informations
  • PRIVMSG: allowing for private message and group chats
  • Operations related to channels and its operators:
    • JOIN: allowing to create (first person) or join existing channel
    • INVITE: inviting another user to channel
    • TOPIC: changing the channel descritption
    • KICK: ban a connected client from a channel
    • MODE, with varius sub modes setting (prefix +) and removing them (prefix -):
      • i: channels is set to invite only
      • t: allowing non operators to change topic
      • k: using the password to join the channel
      • o: give operator privilage to another user (usage of MODE)
      • l: limiting the number of clients on channel
  • Bot that handles the file transfer and gets all needed information for DCC
  • Setting up environment through docker with irssi for ease of use.
Makefile instructions
  • make: to compile the server
    • ./ircserv port-number-to-be-used-by-server server-password-required-to-connect
  • make bot: to compile the bot
    • ./ircbot, and then go through shown instructions to set it up:
      • choosing the name for the bot and channel he will create
      • file to transfer or txt file which content you want to receive in private message
      • description that will help understand to other users what they receive
  • make irssi-docker: to start the docker with installed irssi
    • make new-term: using running docker to create new terminals with irssi
  • make clean-docker / make fcleanbot / make fclean: to cleanup after use
Used reference

RFC 2813, talking about the IRC server protocol

RFC 2812, describing the IRC client protocol

More modern take on client protocol, with some proper updates

If you would like to make this project or similiar choose your reference client wisely.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •