Skip to content

Thopterek/ft_irc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

121 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

IRC Server working with reference irssi client

done by myself (@Thopterek), @Rexbrainz and @cuhlig42, below you can see the basic usage showcase

showcase

Following rules required in 42 school with sweet additions from us

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

DCC

Project required to follow the IRC protocol, allowing us to create a working server.

Handling multiple connections at the same time, without blocking sockets

Handling 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
talk
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
ft_irc
Used reference

RFC 2813, talking about the IRC server protocol

RFC 2812, describing the IRC client protocol

NASA-GB-871913, taking the good practices for safety critical code, keep server running at all costs

Great general introduction to the project

More modern take on client protocol, with some proper updates

I would love to add here the irssi documentation but sadly its bad.

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

IF you are going to choose the irssi go for the source code, and good luck!.

About

IRC server with NASA gb-871913 requirements

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors