Coder Social home page Coder Social logo

alexandre-hallaine / ft_irc Goto Github PK

View Code? Open in Web Editor NEW
21.0 2.0 2.0 436 KB

Simple IRC Server based on the last rfc

License: Apache License 2.0

Makefile 3.80% C++ 96.02% Dockerfile 0.19%
ft irc 42 42born2code 42projects 42cursus ft-irc irc-server irc-protocol

ft_irc's Introduction

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

ft_irc's People

Contributors

alexandre-hallaine avatar assxios avatar nimon77 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

nimon77 xunalopak

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.