Execute socket loop on run socket function

Ported code from main function to a client function for clearing the main loop.
more_events
Alvaro Neira Ayuso 2019-12-12 18:03:11 +01:00 committed by Alvaro Neira Ayuso
parent ebd640a9c5
commit 9eabc7f9a8
2 changed files with 21 additions and 19 deletions

20
main.py
View File

@ -12,25 +12,7 @@ def main():
client = ogClient(ip, int(port))
client.connect()
while 1:
sock = client.get_socket()
state = client.get_state()
if state == State.CONNECTING:
readset = [ sock ]
writeset = [ sock ]
else:
readset = [ sock ]
writeset = [ ]
readable, writable, exception = select.select(readset, writeset, [ ])
if state == State.CONNECTING and sock in writable:
client.connect2()
elif state == State.RECEIVING and sock in readable:
client.receive()
else:
print "bad state" + str(state)
client.run()
if __name__ == "__main__":
main()

View File

@ -93,3 +93,23 @@ class ogClient:
self.data = ""
self.content_len = 0
self.trailer = False
def run(self):
while 1:
sock = self.get_socket()
state = self.get_state()
if state == State.CONNECTING:
readset = [ sock ]
writeset = [ sock ]
else:
readset = [ sock ]
writeset = [ ]
readable, writable, exception = select.select(readset, writeset, [ ])
if state == State.CONNECTING and sock in writable:
self.connect2()
elif state == State.RECEIVING and sock in readable:
self.receive()
else:
print "bad state" + str(state)