/irc_server

irc server

Primary LanguageC++

addf11fd-0006-46cb-9fbf-1ef573c451de.webm

🖥 IRC server

  • Based on RFC1459 protocol.
  • Compatible with IRC clients who follow the same protocol (i.e.: irssi, Textual, etc.)
  • Includes most of the commands and modes of users and operators.

🛠 Features

Types of user by privileges:

  • Normal user
  • Channel voiced users: able to send messages to the channel when "m" mode is enabled
  • Channel operators: all privileges in a channel

Available commands

Channel operations Possible usages
JOIN JOIN #channel
JOIN #channel,#channel2
JOIN #channel key
TOPIC TOPIC #channel
TOPIC #channel :New topic
NAMES NAMES #channel,#channel2,#channel3
LIST LIST #a,#b,#c
KICK KICK #channel user
PRIVMSG PRIVMSG user :hello
PRIVMSG #channel :hello
NOTICE NOTICE user :hello
NOTICE #channel :hello
WHO WHO user
WHOIS WHOIS user
PART PART #channel
PART 0
QUIT QUIT

Channel modes

Channel mode Possible usages Description
o MODE #channel +o user
MODE #channel -o user
give/take channel operator privileges
v MODE #channel +v user
MODE #channel -v user
give/take the ability to speak on a moderated channel
i MODE #channel +i
MODE #channel -i
invite-only channel flag
t MODE #channel +t
MODE #channel -t
topic settable by channel operator only
n MODE #channel +n
MODE #channel -n
no messages to channel from clients on the outside
m MODE #channel +m
MODE #channel -m
moderated channel (only voiced users can send messages to the channel)
l MODE #channel +l 10
MODE #channel -l
set the user limit to channel
k MODE #channel +k key
MODE #channel -k
set a channel key (password)

âš¡ Usage

  1. Compile by typing make
  2. Choose a port and a pass and run the server ./ircserv port pass [-log], i.e.: ./ircserv 66667 1234

📘 Documentation