data = ''
has_error=False
did_syn=False
+ con_closed=False
while True:
print 'waiting for data'
done = False
data += d
if d == '\n':
done = True
+ if data == '':
+ print 'invalid data received!'
+ break
print 'received: {}'.format(data)
if data == 'RES':
print 'resetting the SUT...'
- sender.sendReset()
+ #sender.sendReset()
sender = Sender(serverIP="127.0.0.1", networkInterface="lo", isLocal=True, serverPort=serverPort, waitTime=1, isVerbose=0)
data = ''
has_error = False
did_syn = False
+ con_closed = False
continue
elif has_error:
response = 'ERR'
+ elif con_closed:
+ response = 'Closed'
elif data == 'SYN' and not did_syn:
seqnr = 100
print 'S: {}'.format(seqnr)
seqnr += 1
print 'RP: {}'.format(seqnr)
response = sender.sendInput("RP", seqnr, 0)
+ if response[0] == 'T':
+ response = 'Reset'
elif data == 'FIN':
response = 'Timeout'
if sender.lastSeqReceived != None:
seqnr += 1
print 'F: {}'.format(seqnr)
response = sender.sendInput("FA", seqnr, sender.lastSeqReceived + 1)
+ if response[0] == 'A':
+ con_closed = True
+ else:
+ response = 'Timeout'
else:
print 'INVALID INPUT!: {}'.format(repr(data))
break
if response == 'Timeout':
data = 'ERR'
has_error = True
+ elif response == 'Reset':
+ data = 'Reset'
+ did_syn = False
+ elif response == 'Closed':
+ data = 'Closed'
elif response[0] == 'A':
data = 'ACK'
elif response[0] == 'PA':
data = 'SYN-ACK'
else:
data = 'ERR'
+ has_error = True
print 'RESPONSE: '+data
conn.send('{}\n'.format(data))