So this is the basic structure for a typical pull request. Basically write up a brief description for the general idea behind the PR, and give a small summary of new features and modifications.
If you have questions about the code, you can comment directly on it. Take a look over, and if all is well, approve of the PR so it can be merged in. If you believe it requires changes, you can disapprove and state your reason why.
Also if you are using the Zenhub extension, connect the PR to the issue it corresponds to.
Description:
PR adding basic structure and minimal functionality to the server to handle incoming TCP connections. Incoming connections spawn new threads with their own send/receive loop. Eventually we can decide on a basic communication protocol, and begin implementing client/server functions to handle these messages.
This PR adds the following features:
Basic implementation for ClientConnection class, representing individual Client/Server connections. Will eventually handle the main send/receive loop per each client
Basic implementation for ConnectionManager class, implementing multithreaded listen/accept loop, blocking execution until accept() returns a socket. Once accept() returns a valid socket file descriptor, that socket is copied via instantiation of a new ClientConnection, which is then stored in a vector representing active connections.
Makes modifications to:
Adds logging to SignalManager class, including SIGPIPE for signals trapped after trying to send() on a broken/closed socket.
Exposes SignalManager and ConnectionManager from the Server class so all classes that reference the server that instantiated them have access to public methods from other component classes.
Small modifications to Logger class, fixing small bug with termination on calls to Logger::fatal().
So this is the basic structure for a typical pull request. Basically write up a brief description for the general idea behind the PR, and give a small summary of new features and modifications.
If you have questions about the code, you can comment directly on it. Take a look over, and if all is well, approve of the PR so it can be merged in. If you believe it requires changes, you can disapprove and state your reason why.
Also if you are using the Zenhub extension, connect the PR to the issue it corresponds to.
Description:
PR adding basic structure and minimal functionality to the server to handle incoming TCP connections. Incoming connections spawn new threads with their own send/receive loop. Eventually we can decide on a basic communication protocol, and begin implementing client/server functions to handle these messages.
This PR adds the following features:
ClientConnection
class, representing individual Client/Server connections. Will eventually handle the main send/receive loop per each clientConnectionManager
class, implementing multithreaded listen/accept loop, blocking execution untilaccept()
returns a socket. Onceaccept()
returns a valid socket file descriptor, that socket is copied via instantiation of a newClientConnection
, which is then stored in a vector representing active connections.Makes modifications to:
SignalManager
class, includingSIGPIPE
for signals trapped after trying tosend()
on a broken/closed socket.SignalManager
andConnectionManager
from theServer
class so all classes that reference the server that instantiated them have access to public methods from other component classes.Logger
class, fixing small bug with termination on calls toLogger::fatal()
.