]> jfr.im git - erebus.git/blobdiff - bot.py
misc fixes
[erebus.git] / bot.py
diff --git a/bot.py b/bot.py
index 578caf2165e2cd974d0665fbbfd790e17af07b04..08c812872cb731372383f5480db50e85d7b8eaf8 100644 (file)
--- 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