X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=lib%2Fjsonrpc.c;h=705cef77ab09ea2184dfa8e546d13baf9b24abbc;hb=9d7c56431990fc56a1b26dd32c1e7a8d9258345f;hp=fb20bc585663b16e0496eb8693ec27843c555701;hpb=c18ea70d06e980dc768166881c5aeac0b3491561;p=sliver-openvswitch.git diff --git a/lib/jsonrpc.c b/lib/jsonrpc.c index fb20bc585..705cef77a 100644 --- a/lib/jsonrpc.c +++ b/lib/jsonrpc.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2009, 2010 Nicira Networks. + * Copyright (c) 2009, 2010, 2011 Nicira Networks. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -293,7 +293,7 @@ void jsonrpc_recv_wait(struct jsonrpc *rpc) { if (rpc->status || rpc->received || !byteq_is_empty(&rpc->input)) { - poll_immediate_wake(); + (poll_immediate_wake)(rpc->name); } else { stream_recv_wait(rpc->stream); } @@ -876,6 +876,8 @@ jsonrpc_session_get_backlog(const struct jsonrpc_session *s) return s->rpc ? jsonrpc_get_backlog(s->rpc) : 0; } +/* Always returns a pointer to a valid C string, assuming 's' was initialized + * correctly. */ const char * jsonrpc_session_get_name(const struct jsonrpc_session *s) { @@ -947,6 +949,19 @@ jsonrpc_session_get_seqno(const struct jsonrpc_session *s) return s->seqno; } +int +jsonrpc_session_get_status(const struct jsonrpc_session *s) +{ + return s && s->rpc ? jsonrpc_get_status(s->rpc) : 0; +} + +void +jsonrpc_session_get_reconnect_stats(const struct jsonrpc_session *s, + struct reconnect_stats *stats) +{ + reconnect_get_stats(s->reconnect, time_msec(), stats); +} + void jsonrpc_session_force_reconnect(struct jsonrpc_session *s) {