-
Notifications
You must be signed in to change notification settings - Fork 1
Home
chanhpar edited this page Feb 25, 2023
·
1 revision
-
subject requirements
- MUST NOT handle server-server communication
- authenticate, set nickname, username
- join(JOIN), leave(PART) channel
- send, recv msg
- private msg
- operator & related cmds
- file transfer
- bot
-
nickname
- maximum 9 character
- unique
-
operator (chanop)
- SQUIT, CONNECT, KILL
- KICK, MODE, INVITE, TOPIC : chanop-only commands
-
channel
- created implicitly, removed when no user left
- begins with '&' or '#', maximum 200 character
- '&': local to the created server. only clients in that server can join
- '#': known to all servers
- must not contain ' ', '^G' (ASCII 7), and ','
- try to join
- non-existing-channel -> create and become a operator
- existing-channel -> depends on channel mode
- channel limit per user : maximum 10 (recommended)
-
messages
- maximum 512 characters (including CRLF)
- 'prefix' (optional), 'command', 'params' (up to 15)
- prefix, command, params separated by one or more ' '(ASCII 32)
- prefix is indicated by single ':' (ASCII 58).
- first character of the message
- no gap between colon and the prefix
- prefix indicate true origin(?) of the messages
- client's only valid prefix = registered nickname associated with them
- server must ignore invalid msg with prefix
- command must be valid-IRC-command or 3-digit-number-in-ASCII-text
- params -> either 'middle' or 'trailing'
- trailing is for allowing SPACE within params
- messages are ALWAYS line terminated with CRLF.
- cannot apear in param but might change later
- NUL is not allowed within messages
- extended prefix - client - server only
-
numeric replies
- not allowed to originate from client. if so, ignored by server
- 'sender-prefix', 'three-digit-numeric', 'target'
-
IRC concepts
- For one-to-one communication, server sends messages to only one direction. i.e. directly to the client using shortest path
- For one-to-many communication,
- to group: only servers with related users get messages. that server send messages to each clients
- to host/server mask: when sending to lots of users. "the messages are only setn to locations where users are, in a fashion similar to that of channels."
- For one-to-all: broadcast messages. sent to every client, server. can cause large traffic
- no client - client
- client to server: commands that result change of state info.
- server - server : won't be implemented
misc 1. {}| are lowercase equivalents of the []\