fixed first round of bugs

This commit is contained in:
Simon Hafner 2015-05-02 08:04:17 +05:00
commit 7dfa93d3c0

View file

@ -133,7 +133,6 @@ proc returnEPC(socket: var Socket, uid: string, s: SexpNode, return_symbol = "re
let response = $convertSexp([newSSymbol(return_symbol), [uid, s]]) let response = $convertSexp([newSSymbol(return_symbol), [uid, s]])
socket.send(toHex(len(response), 6)) socket.send(toHex(len(response), 6))
socket.send(response) socket.send(response)
socket.close()
proc nextFreePort(server: Socket, host: string, start = 30000): int = proc nextFreePort(server: Socket, host: string, start = 30000): int =
result = start result = start
@ -235,9 +234,9 @@ proc serve() =
var messageBuffer = "" var messageBuffer = ""
if client.recv(messageBuffer, size) != 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
let messageType = message[0].getSymbol message = parseSexp($messageBuffer)
let body = message[1] messageType = message[0].getSymbol
try: try:
case messageType: case messageType:
of "call": of "call":
@ -246,9 +245,9 @@ proc serve() =
results.add(s) results.add(s)
let let
uid = body[0].getStr uid = message[1].getStr
cmd = parseIdeCmd(body[1].getStr) cmd = parseIdeCmd(message[2].getStr)
args = body[2] args = message[3]
executeEPC(cmd, args) executeEPC(cmd, args)
returnEPC(client, uid, sexp(results)) returnEPC(client, uid, sexp(results))
of "return": of "return":
@ -259,11 +258,11 @@ proc serve() =
stderr.writeln("recieved epc error: " & $messageBuffer) stderr.writeln("recieved epc error: " & $messageBuffer)
raise newException(IOError, "epc error") raise newException(IOError, "epc error")
of "methods": of "methods":
returnEPC(client, body[0].getStr, listEPC()) returnEPC(client, message[1].getStr, listEPC())
else: else:
raise newException(EUnexpectedCommand, "unexpected call: " & messageType) raise newException(EUnexpectedCommand, "unexpected call: " & messageType)
except: except:
returnEPC(client, body[0].getStr, sexp(getCurrentExceptionMsg()), "return-error") returnEPC(client, message[1].getStr, sexp(getCurrentException().getStackTrace()), "return-error")
proc mainCommand = proc mainCommand =
registerPass verbosePass registerPass verbosePass