epc waits on recv, not on accept

This commit is contained in:
Simon Hafner 2015-04-27 20:06:17 +05:00
commit 39378823ae

View file

@ -205,17 +205,18 @@ proc serve() =
var inp = "".TaintedString var inp = "".TaintedString
server.listen() server.listen()
echo(port) echo(port)
var client = newSocket()
# Wait for connection
accept(server, client)
while true: while true:
var client = newSocket()
accept(server, client)
var sizeHex = "" var sizeHex = ""
if client.recv(sizeHex, 6, 1000) != 6: if client.recv(sizeHex, 6) != 6:
raise newException(ValueError, "didn't get all the hexbytes") raise newException(ValueError, "didn't get all the hexbytes")
var size = 0 var size = 0
if parseHex(sizeHex, size) == 0: if parseHex(sizeHex, size) == 0:
raise newException(ValueError, "invalid size hex: " & $sizeHex) raise newException(ValueError, "invalid size hex: " & $sizeHex)
var messageBuffer = "" var messageBuffer = ""
if client.recv(messageBuffer, size, 3000) != size: if client.recv(messageBuffer, size) != size:
raise newException(ValueError, "didn't get all the bytes") raise newException(ValueError, "didn't get all the bytes")
let message = parseSexp($messageBuffer) let message = parseSexp($messageBuffer)
let messageType = message[0].getSymbol let messageType = message[0].getSymbol