- Segmented into sections based on rfc
- Added a few new constants from RFC2812
- `RPL_BOUNCE` (`005`) is a numeric response to note as it has key-value pairs associated with it
- Parse all messages into a `Message` array (`SList`)
- If a PING is found then we put it aside and check if we have one and then reply
- The PING is removed and all normal messages remain and then get EVenty events triggered for them for `IRCEvent`
- Set default `fakeLag` to `1`
- Added `getFakeLag()` and `setFakeLag()`
Client
- Added `getConnInfo()` to return the client's associated `ConnectionInfo`
Sender
- Use the fakelag configured by user
- Updated `command(Message)` to use `sendMessage(Message)`
- Updated the `PongSignal` event handler to use `sendMessage(Message)` when sending the pong back
- Make `quit()` use the new `sendMessage(Message)`
- Disabled old `sendMessage(string)`
- Updated `joinChannel(string)` to use `sendMessage(Message)`
- Added TODO relating to implementing `joinChannels(string[])`
- `leaveChannel(string[])` now uses the new `sendMessage(Message)`
- `leaveChannel(string)` now uses the new `sendMessage(Message)`
- Fixed compilation error by adding missing `encodeMessage(string)` call
- If the encoded message (CRLF included) is over 512 bytes then throw an exception
Exceptions
- Added new `ErrorType` enum member
- Fixed a possible bug whereby the `Receiver` and `Sender` may exit on start as they get to their `client.running` read before the main thread gets to setting `running = true`
- Removed unused import
- Added comment for future work
- Fixed typo
Receiver
- Added commented out code for future work
Sender
- Added commented out code for future work
- On call to `rq(byte[])` by the `Client` thread wake up the `Receiver` thread
- Added a TODO about the first call to `notifyAll()`
- Added a `wait()` call
- Removed `yield()` calls
Sender
- On call to `sq(byte[])` by the `Client` thread wake up the `Sender` thread
- Added a TODO about the first call to `notifyAll()`
- Added a `wait()` call
- Removed `yield()` calls
Client
- Ensure we wake up the `Receiver` and `Sender` threads such that they don't hang on their calls to `wait()`
- Added a TODO comment