tree checksum vpatch file split hunks

all signers: lobbes asciilifeform bvt diana_coman

antecedents: sept_fixes.kv

press order:

logotron_genesis.kvasciilifeform diana_coman
multsel_and_datefix.kvasciilifeform diana_coman
raw_line_export.kvasciilifeform diana_coman
rle_errata.kvasciilifeform diana_coman
irssi2tmsr.kvasciilifeform diana_coman
uniturds_etc.kvasciilifeform diana_coman
line_wraps.kvasciilifeform diana_coman
znc2tmsr_etc.kvasciilifeform diana_coman lobbes
uptimefix_bye_cache.kvasciilifeform diana_coman lobbes
raw_line_fix.kvasciilifeform diana_coman lobbes
irssi_format.kvasciilifeform diana_coman
sept_fixes.kvasciilifeform diana_coman
active_disconnect_r3.kvasciilifeform bvt diana_coman

patch:

- 4F46CCC238FF725712306588453E7A1CE18E29D69ED1589988E1E276DC7A6D0F1F0DE31A86C47D08541E68150B83C55177499FA4C704453AC8C4EDF372495DAA
+ 821D10B9C27ED198B61373776B0A45BC7F9BF6E8896C070C358AD7A68AF1B3B0A5FB4E7768A32AF1E8A470E48476EA881BC3E3F2E39862B5BC0DB14E649395F9
logotron/MANIFEST.TXT
(10 . 3)(10 . 4)
5 594463 raw_line_fix lobbes "Fix to raw line export in reader.py to remove semi-colon from right side of nick on action lines"
6 595435 irssi_format diana_coman "Updates the irssi2tmsr converter to work on out-of-the-box irssi format. Updated README file too with example of format."
7 596907 sept_fixes asciilifeform "Several small improvements to bot and reader."
8 597604 active_disconnect bvt "Close current connection before opening a new one. Disable Nagle's algorithm. s/Listen/Receive/."
- 7980970A1D40B7A348A8FED795896D0CFA4568E3B4464768A0EA118EFDE16645BCDF2E934BA1ED42BC1D7708BCCB9EF28F0645C13CBDC80754D00D8DD47A6729
+ EDA2C9E8930F8207A7588763084768F494B4CAD89C6CCCEC07E9C7412AE8CE238A07B970A7F937048B7CAE1F5D7D92CF67ED88E9802A7694CE0CB274D9A81DD3
logotron/bot.py
(14 . 7)(14 . 7)
13 ##############################################################################
14
15 # Version. If changing this program, always set this to same # as in MANIFEST
16 Ver = 596907
17 Ver = 597604
18
19 ##############################################################################
20
(129 . 15)(129 . 32)
22 # Used to compute 'uptime'
23 time_last_conn = datetime.now()
24
25 # Init socket:
26 sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
27
28 # Set keepalive:
29 sock.setsockopt(socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1)
30 # Socket will be here:
31 sock = None;
32
33 # Initially we are not connected to anything
34 connected = False
35
36 def init_socket():
37 global sock
38 sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
39
40 # Disable Nagle's algorithm for transmit operations
41 sock.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1)
42 # Disable Nagle's algorithm for receive operation, Linux-only
43 try:
44 sock.setsockopt(socket.IPPROTO_TCP, socket.TCP_QUICKACK, 1)
45 except Exception as e:
46 logging.warning(e)
47
48 connected = False
49
50 def deinit_socket():
51 global connected
52 global sock
53 sock.close()
54 connected = False
55
56 # Connect to given host:port; return whether connected
57 def connect(host, port):
58 logging.info("Connecting to %s:%s" % (host, port))
(176 . 7)(193 . 7)
60 sock.send(message.encode("utf-8"))
61 except (socket.timeout, socket.error) as e:
62 logging.warning("Socket could not send! Disconnecting.")
63 connected = False
64 deinit_socket()
65 return False
66 except Exception as e:
67 logging.exception(e)
(227 . 6)(244 . 10)
69 def irc():
70 global connected
71 global time_last_conn
72 global sock
73
74 # Initialize a socket
75 init_socket()
76
77 # Connect to one among the specified servers, in given priority :
78 while not connected:
(254 . 20)(275 . 20)
80 try:
81 data = sock.recv(Buf_Size)
82 except socket.timeout as e:
83 logging.debug("Listen timed out")
84 logging.debug("Receive timed out")
85 continue
86 except socket.error as e:
87 logging.warning("Listen socket error, disconnecting.")
88 connected = False
89 logging.warning("Receive socket error, disconnecting.")
90 deinit_socket()
91 continue
92 except Exception as e:
93 logging.exception(e)
94 connected = False
95 deinit_socket()
96 continue
97 else:
98 if len(data) == 0:
99 logging.warning("Listen socket closed, disconnecting.")
100 connected = False
101 logging.warning("Receive socket closed, disconnecting.")
102 deinit_socket()
103 continue
104 try:
105 try: