Skip to content

💻↔️💻 Go back to the past and raise the IRC network!

Notifications You must be signed in to change notification settings

zkerriga/irc-server

Repository files navigation

irc-server

💻↔️💻 Go back to the past and raise the IRC network!

Objective of program:

The purpose of writing the program was to create server-server and client-server interactions within the IRC-protocols (RFC 1459, 2810, 2811, 2812, 2813, and 7194), using only C++98, STL, algorithm and cryptographic libraries.

Prepare:

  1. Clone the repository with the --recursive flag (this will allow you to immediately pull up the used libraries)
  2. Compile the program: make
  3. Specify the KeyFile and CrtFile parameters in the ircserv.conf configuration file in the SSL section (these files must be generated and contain certificates) or use make certs to generate the files automatically.

Usage:

Start the server!

./ircserv [host:port_network:password_network] <port> <password>

To get detailed information about the parameters, just use ./ircserv.

Now you can connect to the server via a third-party client (for example: irssi), via a third-party server (for example: ngircd), by running current server on a different port (extended startup arguments), or simply using the nc -c localhost <port>.

To connect as a server:

PASS pass 0210-IRC+ ngIRCd| P
SERVER test.net :info about server

To connect as a client:

PASS pass
NICK MySuperNick
USER MyUsername ModeOrServer MyInfo :My real Name

To see how the server works, you can simply use the command make net_3_setup_users. The Makefile will start and connect three servers, and connect three different clients to each server. Then you can simply enter commands and watch them being processed! Unfortunately, this rule requires an installed iterm.

Commands:

The server is able to process the following list of commands:

PASS, MOTD, STATS, NOTICE, NAMES, INVITE, PRIVMSG, TRACE, LINKS, INFO, LIST, KICK, ADMIN, TOPIC, PART, MODE, VERSION, NJOIN, NICK, OPER, PONG, SQUIT, QUIT, SERVER, CONNECT, TIME, USER.

Some commands don't implement all the functionality described in the protocols, but provide the main work.

Team:

During the development process, we used the Scrum system. And used tools such as the Kanban board and pair programming.

About

💻↔️💻 Go back to the past and raise the IRC network!

Topics

Resources

Stars

Watchers

Forks

Contributors 3

  •  
  •  
  •