2
0
mirror of https://github.com/flotwig/spoofident synced 2025-08-22 01:57:44 +00:00

Fixing hanging issue and removing whitespace (woo)

This commit is contained in:
Zach Bloomquist 2014-06-16 16:59:10 -04:00
parent af254e5a78
commit a1c73a0697

View File

@ -1,16 +1,26 @@
from os import setuid,setgid,path
from json import load
from time import time
from select import select
import socket
import select
def handleIdent(fd):
data=fd.recv(1024).strip()
begin=time()
fd.setblocking(0)
data=''
while time()-begin<1:
try:
data=fd.recv(1024).strip()
if data: break
except:
pass
ports=data.split(',',2)
ports=map(validPort,ports)
if len(ports)<2 or (not ports[0] or not ports[1]):
fd.send('0,0 : ERROR : INVALID-PORT')
if not data:
fd.send('0,0:ERROR:UNKNOWN-ERROR\r\n')
elif len(ports)<2 or (not ports[0] or not ports[1]):
fd.send('0,0:ERROR:INVALID-PORT\r\n')
else:
fd.send(data + ' : USERID : '+settings['os']+' : '+settings['user'])
fd.send('\r\n')
fd.send(str(ports[0])+','+str(ports[1])+':USERID:'+settings['os']+':'+settings['user']+'\r\n')
fd.close()
def validPort(port):
try:
@ -32,14 +42,16 @@ if __name__ == '__main__':
servers.append(socket.socket(socket.AF_INET6,socket.SOCK_STREAM))
else:
servers.append(socket.socket(socket.AF_INET,socket.SOCK_STREAM))
print(str(pair[0])+'and'+str(pair[1]))
servers[-1].bind((pair[0], pair[1]))
servers[-1].listen(5)
servers[-1].setblocking(0)
setgid(settings['setgid'])
setuid(settings['setuid'])
while True:
inready,outready,excready=select.select(servers,[],[])
inready,outready,excready=select(servers,[],[])
for ready in inready:
client,addr=ready.accept()
handleIdent(client)
if ready in servers:
client,addr=ready.accept()
inready.append(client)
else:
handleIdent(ready)