On Fri, Jan 22, 2016 at 1:59 AM, Liran Schour <lir...@il.ibm.com> wrote:
> Andy Zhou <az...@ovn.org> wrote on 22/01/2016 05:27:56 AM: > > > On Sat, Jan 16, 2016 at 12:16 AM, Liran Schour <lir...@il.ibm.com> > wrote: > > That will be used later to issue "monitor_cond_change" commands. > > > > this commit message is not very helpful. > > > > Will add a more comprehensive commit message. > > > Signed-off-by: Liran Schour <lir...@il.ibm.com> > > --- > > lib/ovsdb-idl.c | 19 ++++++++++++++----- > > lib/ovsdb-idl.h | 1 + > > 2 files changed, 15 insertions(+), 5 deletions(-) > > > > diff --git a/lib/ovsdb-idl.c b/lib/ovsdb-idl.c > > index 18d4b8b..1b8731e 100644 > > --- a/lib/ovsdb-idl.c > > +++ b/lib/ovsdb-idl.c > > @@ -86,6 +86,7 @@ enum ovsdb_idl_state { > > struct ovsdb_idl { > > const struct ovsdb_idl_class *class; > > struct jsonrpc_session *session; > > + struct uuid uuid; > > Why not just store uuid is "char *" form? > > Struct uuid is being used in all other places in the code. Why to do it > differently here? > Not a big deal. Either way should be fine. > > > struct shash table_by_name; > > struct ovsdb_idl_table *tables; /* Contains "struct > > ovsdb_idl_table *"s.*/ > > unsigned int change_seqno; > > @@ -267,6 +268,7 @@ ovsdb_idl_create(const char *remote, const > > struct ovsdb_idl_class *class, > > idl->schema = NULL; > > > > hmap_init(&idl->outstanding_txns); > > + uuid_generate(&idl->uuid); > > > > return idl; > > } > > @@ -378,7 +380,7 @@ ovsdb_idl_run(struct ovsdb_idl *idl) > > && !strcmp(msg->method, "update2") > > && msg->params->type == JSON_ARRAY > > && msg->params->u.array.n == 2 > > - && msg->params->u.array.elems[0]->type == JSON_NULL) { > > + && msg->params->u.array.elems[0]->type == JSON_STRING) { > > /* Database contents changed. */ > > ovsdb_idl_parse_update(idl, msg->params->u.array.elems[1], > > OVSDB_UPDATE2); > > @@ -423,8 +425,8 @@ ovsdb_idl_run(struct ovsdb_idl *idl) > > } else if (msg->type == JSONRPC_NOTIFY > > && !strcmp(msg->method, "update") > > && msg->params->type == JSON_ARRAY > > - && msg->params->u.array.n == 2 > > - && msg->params->u.array.elems[0]->type == JSON_NULL) { > > + && msg->params->u.array.n == 2 > > + && msg->params->u.array.elems[0]->type == > JSON_STRING) { > > /* Database contents changed. */ > > ovsdb_idl_parse_update(idl, msg->params->u.array.elems[1], > > OVSDB_UPDATE); > > @@ -478,7 +480,11 @@ ovsdb_idl_wait(struct ovsdb_idl *idl) > > jsonrpc_session_wait(idl->session); > > jsonrpc_session_recv_wait(idl->session); > > } > > - > > +/* Returns the id of the monitor session. */ > > +const struct uuid * ovsdb_idl_get_monitor_id(const struct ovsdb_idl > *idl) > > +{ > > + return &idl->uuid; > > +} > > > > Is this function being used? > > > > No, it is a leftover from previous versions of the code. Will remove that. > > > /* Returns a "sequence number" that represents the state of 'idl'. > When > > * ovsdb_idl_run() changes the database, the sequence number changes. > The > > * initial fetch of the entire contents of the remote database is > > considered to > > @@ -935,6 +941,7 @@ ovsdb_idl_send_monitor_request__(struct ovsdb_idl > *idl, > > struct shash *schema; > > struct json *monitor_requests; > > struct jsonrpc_msg *msg; > > + char uuid[UUID_LEN + 1]; > > size_t i; > > > > schema = parse_schema(idl->schema); > > @@ -986,10 +993,12 @@ ovsdb_idl_send_monitor_request__(struct ovsdb_idl > *idl, > > free_schema(schema); > > > > json_destroy(idl->request_id); > > + > > + snprintf(uuid, sizeof uuid, UUID_FMT, UUID_ARGS(&idl->uuid)); > > msg = jsonrpc_create_request( > > method, > > json_array_create_3(json_string_create(idl->class->database), > > - json_null_create(), monitor_requests), > > + json_string_create(uuid), > monitor_requests), > > &idl->request_id); > > jsonrpc_session_send(idl->session, msg); > > } > > diff --git a/lib/ovsdb-idl.h b/lib/ovsdb-idl.h > > index 136c38c..1cbaf35 100644 > > --- a/lib/ovsdb-idl.h > > +++ b/lib/ovsdb-idl.h > > @@ -60,6 +60,7 @@ void ovsdb_idl_set_lock(struct ovsdb_idl *, const > > char *lock_name); > > bool ovsdb_idl_has_lock(const struct ovsdb_idl *); > > bool ovsdb_idl_is_lock_contended(const struct ovsdb_idl *); > > > > +const struct uuid * ovsdb_idl_get_monitor_id(const struct ovsdb_idl > *); > > unsigned int ovsdb_idl_get_seqno(const struct ovsdb_idl *); > > bool ovsdb_idl_has_ever_connected(const struct ovsdb_idl *); > > void ovsdb_idl_enable_reconnect(struct ovsdb_idl *); > > -- > > 2.1.4 > > > > > > _______________________________________________ > > dev mailing list > > dev@openvswitch.org > > http://openvswitch.org/mailman/listinfo/dev > > _______________________________________________ > dev mailing list > dev@openvswitch.org > http://openvswitch.org/mailman/listinfo/dev > _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev