/ft_irc

Simple IRC Server based on the last rfc

Primary LanguageC++Apache License 2.0Apache-2.0

shiba

ShibRC

Simple IRC Server based on the RFC (mainly 2812) written in C++.

ShibRC does not support server-server communication and is best used with irssi (or any client that send packets terminated with \r\n).

Connect

⚠️ Our URL to connect has changed, it's now: shibrc.fr ⚠️

If you'd like to try our server without having to build it you can connect to our public server shibrc.fr using the password password with the following commands :

  • First install a client, here we'll use irssi since it is the one we chose to do the project with :
sudo apt install irssi
  • Or install with brew if you are at 42 :
brew install irssi
  • Then simply connect to the server using this command :
irssi -c shibrc.fr -w password

For less typing you could do /SERVER ADD -network shibrc shibrc.fr 6667 password inside of irssi and then you can simply connect to our server by doing irssi -c shibrc.

As you may have noticed the oper_password specified in the config file doesn't work on our server shibrc.fr in order to avoid abuse, if you'd like to try our operator commands and permissions you can simply build the server locally.

Run

Do make and then run :

./ircserv <port> <password>

Or you could also do make run which directly starts the server on the port 6667 and with the password password.

makerun

You can modify the config file default.config to your convinience as well as the files.

If you'd like to see what packets we received and send you can use make debug make sure that you did a make clean before.

makedebug

Finally we added a bot, to run it go inside the bot folder and do make and then provide the needed arguments or simply do make run, the bot will create / join the #bot channel and you will be able to use the commands from there by using the prefix !. The bot handles a few commands such as :

help
flip
roll
nick
quit

Handled commands

This following list of commands are handled on our server, since most of them were not asked by the subject there is certain masks and parameters we may have ommited for our convinience, some commands might not be perfect aswell so if you find any issues feel free to let us know :

- INVITE
- JOIN
- KICK
- LIST
- NAMES
- PART
- TOPIC
- MODE
- NICK
- OPER
- QUIT
- USER
- KILL
- PING
- PONG
- AWAY
- ISON
- USERHOST
- USERS (handled but disabled)
- WALLOPS
- NOTICE
- PRIVMSG
- ADMIN
- INFO
- LUSERS
- MOTD
- TIME
- VERSION
- WHO
- WHOIS
- WHOWAS

Handled modes :

The following list of modes are handled by the server, yet again there may be omitted functionnality or errors :

USER MODES :
- a : away
- i : invisible
- w : wallops
- r : restricted
- o : operator

CHANNEL MODES :
for users :
    - O : channel creator
    - o : channel operator
    - v : voice
for channels :
    - i : invite only
    - m : moderated
    - n : outside privmsg disabled
    - p : private
    - t : topic locked
    - k : key locked
    - l : user limit

if you need a detailed description of each mode click HERE

DOCS

we recommend following the 281x versions instead as they not experimental

MADE WITH LOVE BY :


Alexandre Hallaine (ahallain)

Intra 42

Assxios (droge)

Intra 42

Nimon77 (nsimon)

Intra 42