jesopo
|
4babce5357
|
Only fill throttle when buffer is empty
|
2019-07-22 13:14:07 +01:00 |
|
jesopo
|
3afbe5fd82
|
threading.Lock() around any access to _write_buffer
|
2019-07-04 06:56:05 +01:00 |
|
jesopo
|
133ff1c0f6
|
only count "\n"s (not "\r\n") that hit the wire, incase \r\n gets cut in half
|
2019-06-17 18:23:38 +01:00 |
|
jesopo
|
09fbbae5e3
|
"send" event on SentLines should be run on the main thread
|
2019-06-07 11:05:43 +01:00 |
|
jesopo
|
1f1b63ea6d
|
Checking if we should enable write buffer should be in _fill_throttle()
|
2019-06-07 08:02:22 +01:00 |
|
jesopo
|
a1ebe8035e
|
Split read/write/process in to 3 different threads
|
2019-06-06 17:05:44 +01:00 |
|
jesopo
|
8dbae6a5e9
|
Give SentLine (and preproc.send events) a new event object, to track events
related to a line after it is sent
|
2019-06-04 17:51:20 +01:00 |
|
jesopo
|
4a4d0a37d7
|
Only return definitely-writen lines from IRCSocket._send, refactor in prep for
lines that request to be sent 'immediately'
|
2019-06-04 14:28:35 +01:00 |
|
jesopo
|
20c027fd0b
|
check if we should enable write throttling before writing, clear _recent_sends
when we turn on throttling and only "turn on" throttling once
|
2019-06-01 22:28:57 +01:00 |
|
jesopo
|
dc284bab4a
|
Only enable write throttling when _write_buffer is empty
closes #59
|
2019-05-31 15:49:34 +01:00 |
|
jesopo
|
f2cf86b8c0
|
More explicitly require throttle_done() only for _queued_lines
|
2019-05-31 15:32:55 +01:00 |
|
jesopo
|
5b780672a8
|
Enable TCP keepalives
|
2019-05-27 07:58:24 +01:00 |
|
jesopo
|
a3a2c1e5a4
|
Store IRCSocket connect_time, show bytes read/write per second in stats.py
|
2019-05-24 17:32:59 +01:00 |
|
jesopo
|
ab1074cf4d
|
Remove mention of ipv4 - detect address family automatically
|
2019-05-21 10:11:09 +01:00 |
|
jesopo
|
105351d6f3
|
Add a timestamp to recent_sends for EACH line sent
|
2019-05-18 19:08:34 +01:00 |
|
jesopo
|
1b7a8bc896
|
Log content of lines that need fallback encoding
|
2019-03-06 17:19:37 +00:00 |
|
jesopo
|
c842c459f4
|
Specifically only catch UnicodeDecodeError in IRCSocket.read
|
2019-03-06 17:02:58 +00:00 |
|
jesopo
|
11c4d70156
|
add IRCServer.clear_send_buffer() to clear queued lines
|
2019-03-05 11:35:24 +00:00 |
|
jesopo
|
8d55319f56
|
Rename IRCLine.Line to IRCLine.SentLine, for clarity
|
2019-02-24 08:25:12 +00:00 |
|
jesopo
|
8c94bcf6ca
|
Move utils.irc.IRCParsedLine to IRCLine.ParsedLine, improve truncation
mechanism, don't convert sent line from ParsedLine to text to ParsedLine for
line_handler handling
|
2019-02-23 21:33:04 +00:00 |
|
jesopo
|
e343bf3e6a
|
Check throttle space when queueing more data not whether there's no queued data
|
2019-02-20 16:52:45 +00:00 |
|
jesopo
|
b37a50ed7a
|
IRCServer should handle ping_sent, not IRCSocket
|
2019-02-11 21:23:52 +00:00 |
|
jesopo
|
a8d9365442
|
last_read/last_send is now handled by IRCSocket.py
|
2019-02-11 20:49:53 +00:00 |
|
jesopo
|
6c6f1f9c2b
|
socket.getpeername() can return more than 2 values (IRCSocket)
|
2019-02-11 20:34:15 +00:00 |
|
jesopo
|
137d5b1a58
|
connected status is now tracked by IRCSockets
|
2019-02-11 20:34:02 +00:00 |
|
jesopo
|
48fe6b7391
|
Add IRCSocket.connected_ip to hold on to the IP address we connected to (e.g.
so we know which IP we picked from a round robin DNS)
|
2019-02-11 16:10:23 +00:00 |
|
jesopo
|
9b44b6cd13
|
Shift socket.socket related logic to IRCSocket.py
|
2019-02-11 10:00:41 +00:00 |
|