Looks good, thanks. Ethan
On Tue, Jul 3, 2012 at 2:48 PM, Ben Pfaff <b...@nicira.com> wrote: > The logic in do_dump_flows__() went to some trouble to open an OpenFlow > connection and set the correct protocol, but then it allowed > dump_stats_transaction() to create and use a completely different OpenFlow > connection that hadn't been prepared that way. This commit fixes the > problem. > > I don't think that there is a real bug here because currently the set of > protocols doesn't influence flow stats replies. But that could change in > the future. > > Signed-off-by: Ben Pfaff <b...@nicira.com> > --- > utilities/ovs-ofctl.c | 15 +++++++++++---- > 1 files changed, 11 insertions(+), 4 deletions(-) > > diff --git a/utilities/ovs-ofctl.c b/utilities/ovs-ofctl.c > index dbc46cd..2375762 100644 > --- a/utilities/ovs-ofctl.c > +++ b/utilities/ovs-ofctl.c > @@ -377,14 +377,12 @@ dump_trivial_transaction(const char *vconn_name, > uint8_t request_type) > } > > static void > -dump_stats_transaction(const char *vconn_name, struct ofpbuf *request) > +dump_stats_transaction__(struct vconn *vconn, struct ofpbuf *request) > { > ovs_be32 send_xid = ((struct ofp_header *) request->data)->xid; > ovs_be16 stats_type = ((struct ofp_stats_msg *) request->data)->type; > - struct vconn *vconn; > bool done = false; > > - open_vconn(vconn_name, &vconn); > send_openflow_buffer(vconn, request); > while (!done) { > ovs_be32 recv_xid; > @@ -414,6 +412,15 @@ dump_stats_transaction(const char *vconn_name, struct > ofpbuf *request) > } > ofpbuf_delete(reply); > } > +} > + > +static void > +dump_stats_transaction(const char *vconn_name, struct ofpbuf *request) > +{ > + struct vconn *vconn; > + > + open_vconn(vconn_name, &vconn); > + dump_stats_transaction__(vconn, request); > vconn_close(vconn); > } > > @@ -777,7 +784,7 @@ do_dump_flows__(int argc, char *argv[], bool aggregate) > protocol = open_vconn(argv[1], &vconn); > protocol = set_protocol_for_flow_dump(vconn, protocol, usable_protocols); > request = ofputil_encode_flow_stats_request(&fsr, protocol); > - dump_stats_transaction(argv[1], request); > + dump_stats_transaction__(vconn, request); > vconn_close(vconn); > } > > -- > 1.7.2.5 > > _______________________________________________ > dev mailing list > dev@openvswitch.org > http://openvswitch.org/mailman/listinfo/dev _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev