From: Ben Pfaff Date: Mon, 11 Jan 2010 21:06:42 +0000 (-0800) Subject: jsonrpc: Check RPC status after trying to send, not before. X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f3d00a23ad9537df1e8852595d7c3737782e014c;p=openvswitch jsonrpc: Check RPC status after trying to send, not before. This usually prevented JSON-RPC over SSL from working. Reported-by: Jeremy Stribling --- diff --git a/lib/jsonrpc.c b/lib/jsonrpc.c index aeb1dd82..f648f6b1 100644 --- a/lib/jsonrpc.c +++ b/lib/jsonrpc.c @@ -278,12 +278,14 @@ jsonrpc_send_block(struct jsonrpc *rpc, struct jsonrpc_msg *msg) return error; } - while (!queue_is_empty(&rpc->output) && !rpc->status) { + for (;;) { jsonrpc_run(rpc); + if (queue_is_empty(&rpc->output) || rpc->status) { + return rpc->status; + } jsonrpc_wait(rpc); poll_block(); } - return rpc->status; } int