Skip to content

Commit 82cd674

Browse files
committed
Put 'id' in top-level return value, not its error value. Make work for old (ev_loop/ev_unloop) and new (ev_run/ev_break) versions of libev.
1 parent 338bb6f commit 82cd674

File tree

1 file changed

+14
-3
lines changed

1 file changed

+14
-3
lines changed

src/jsonrpc-c.c

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,8 @@ static int send_error(struct jrpc_connection * conn, int code, char* message,
4444
cJSON *error_root = cJSON_CreateObject();
4545
cJSON_AddNumberToObject(error_root, "code", code);
4646
cJSON_AddStringToObject(error_root, "message", message);
47-
cJSON_AddItemToObject(error_root, "id", id);
4847
cJSON_AddItemToObject(result_root, "error", error_root);
48+
cJSON_AddItemToObject(result_root, "id", id);
4949
char * str_result = cJSON_Print(result_root);
5050
return_value = send_response(conn, str_result);
5151
free(str_result);
@@ -316,12 +316,23 @@ static int __jrpc_server_start(struct jrpc_server *server) {
316316
return 0;
317317
}
318318

319+
// Make the code work with both the old (ev_loop/ev_unloop)
320+
// and new (ev_run/ev_break) versions of libev.
321+
#ifdef EVUNLOOP_ALL
322+
#define EV_RUN ev_loop
323+
#define EV_BREAK ev_unloop
324+
#define EVBREAK_ALL EVUNLOOP_ALL
325+
#else
326+
#define EV_RUN ev_run
327+
#define EV_BREAK ev_break
328+
#endif
329+
319330
void jrpc_server_run(struct jrpc_server *server){
320-
ev_run(server->loop, 0);
331+
EV_RUN(server->loop, 0);
321332
}
322333

323334
int jrpc_server_stop(struct jrpc_server *server) {
324-
ev_break(server->loop, EVBREAK_ALL);
335+
EV_BREAK(server->loop, EVBREAK_ALL);
325336
return 0;
326337
}
327338

0 commit comments

Comments
 (0)