-
Notifications
You must be signed in to change notification settings - Fork 0
/
GopherListen.py
35 lines (32 loc) · 1016 Bytes
/
GopherListen.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import SocketServer
import NNTPComm
import socket
NEWSSERVER='pi.complete.org'
SERVERIP='127.0.0.1'
PORT=1178
class GopherRequest(SocketServer.BaseRequestHandler):
def handle(self):
print 'In handle'
sock = self.request
sf = sock.makefile("r+")
req = sf.readline().strip().split("\t")[0][1:].split("/")
ntc = NNTPComm.Server((SERVERIP, PORT), NEWSSERVER, sf)
print "'%d'" % len(req)
print req
if (len(req) == 1 and req[0]):
ngs = NNTPComm.Group(ntc, req[0])
ngs.sendgrouplist()
elif len(req) == 2 and req[1]:
ngs = NNTPComm.Group(ntc, req[0])
art = ngs.getmessage(req[1])
art.display()
else:
ntc.sendnglist()
print 'Handle: after if'
sock.close()
sf.close()
print 'Handle: after close'
def Listen():
server = SocketServer.TCPServer(('', PORT), GopherRequest)
server.allow_reuse_address = 0
server.serve_forever()