X-Git-Url: https://jfr.im/git/erebus.git/blobdiff_plain/1e8c1c89631ab6062ffdfc5853d1db8d425c2960..68dff4aa28dc38d341c65b3f9a055d395f9fb5c7:/bot.py?ds=sidebyside diff --git a/bot.py b/bot.py index 578caf2..08c8128 100644 --- a/bot.py +++ b/bot.py @@ -4,7 +4,7 @@ # Erebus IRC bot - Author: John Runyon # "Bot" and "BotConnection" classes (handling a specific "arm") -import socket, sys, time, threading, os, random +import socket, sys, time, threading, os, random, struct from collections import deque if sys.version_info.major < 3: @@ -494,6 +494,9 @@ class BotConnection(object): def connect(self): self.socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + self.socket.setsockopt(socket.SOL_TCP, socket.TCP_NODELAY, 1) # Does Python make SOL_TCP portable? Who knows, it's not documented, and it appears to come from the _socket C lib. + self.socket.setsockopt(socket.SOL_SOCKET, socket.SO_LINGER, struct.pack('ii', 0, 0)) + self.socket.setsockopt(socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1) self.socket.bind((self.bind, 0)) self.socket.connect((self.server, self.port)) return True