/chirc

Primary LanguageC++

This repository provides the basic source code necessary to get started on the
chirc project. It also includes several automated tests for students to verify
the correctness of their implementation.

Please see http://chi.cs.uchicago.edu/chirc/ for a specification of the chirc
project, including specific assignments, instructions on how to build the
project, and on how to run the tests.

CMSC 23320 - Foundations of Computer Networks
https://uchicago-cs.github.io/cmsc23320/
https://uchicago-cs.github.io/cmsc23320/projects/project1_tips.html



http://chi.cs.uchicago.edu/chirc/

Installing, Building, and Running chirc
http://chi.cs.uchicago.edu/chirc/installing.html

Assignment 1: Basic Message Processing
http://chi.cs.uchicago.edu/chirc/assignment1.html


#exec


brew install cmake

cd ~/5Circle/chirc
cmake -B build/

cd build
make VERBOSE=1

./chirc -o foobar
nc 127.0.0.1 6667 foobar


http://chi.cs.uchicago.edu/chirc/testing.html

pip3 install Click
pip3 install pytest

cd build
make assignment-1


cd ../tests
python3 -m pytest


# check this out

https://github.com/uchicago-cs/cmsc23320/blob/master/samples/chirc
https://github.com/uchicago-cs/cmsc23320/tree/master/samples/sockets


# Concepts that needs to consider

## Dones

• Only 1 poll() or select()
• fcntl(fd, F_SETFL, O_NONBLOCK); <- use this just after setting socket options because it is just like fd setting
• use fd key instead of id key, then you can get max fd just with rbegin(), but keep id as a property


## Need to do





• c++ sigint handling: sigint
• string parsing: nick




user


saavc^D
\n





reply.hpp





#define RPL_LISTSTART "021"


reply(int cs, int errcode, params)

reply.cfg

021 = If there are no channels available <nick> to return, only the end reply MUST b

outMessages[cs].append()

outMessages[cs]