X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=vswitchd%2Fovs-brcompatd.c;h=bf571d743a11465ff7a8b4719f8b3f3056e57a74;hb=bfc96d9b50ae119fcbf39a9511bd9f662e7ad390;hp=70921f21491bff5bb604019a29972144480bc353;hpb=149f577a25508779b756515be1f1bdcefa3710fa;p=openvswitch diff --git a/vswitchd/ovs-brcompatd.c b/vswitchd/ovs-brcompatd.c index 70921f21..bf571d74 100644 --- a/vswitchd/ovs-brcompatd.c +++ b/vswitchd/ovs-brcompatd.c @@ -479,6 +479,8 @@ del_port(const struct ovsrec_bridge *br, const char *port_name) } ovsrec_bridge_set_ports(br, ports, n); free(ports); + + ovsrec_port_delete(port_rec); } } @@ -507,6 +509,9 @@ del_bridge(const struct ovsrec_open_vswitch *ovs, const char *br_name) ovsrec_open_vswitch_set_bridges(ovs, bridges, n); free(bridges); + /* Delete the bridge itself. */ + ovsrec_bridge_delete(br); + VLOG_INFO("delbr %s: success", br_name); return 0; @@ -756,7 +761,7 @@ handle_fdb_query_cmd(const struct ovsrec_open_vswitch *ovs, struct netdev *netdev; error = netdev_open_default(iface_name, &netdev); - if (netdev) { + if (!error) { if (!netdev_get_etheraddr(netdev, mac->addr)) { n_local_macs++; } @@ -1144,6 +1149,7 @@ main(int argc, char *argv[]) struct ovsdb_idl *idl; int retval; + proctitle_init(argc, argv); set_program_name(argv[0]); time_init(); vlog_init(); @@ -1153,13 +1159,14 @@ main(int argc, char *argv[]) remote = parse_options(argc, argv); signal(SIGPIPE, SIG_IGN); process_init(); + ovsrec_init(); die_if_already_running(); daemonize_start(); retval = unixctl_server_create(NULL, &unixctl); if (retval) { - ovs_fatal(retval, "could not listen for vlog connections"); + exit(EXIT_FAILURE); } if (brc_open(&brc_sock)) { @@ -1223,7 +1230,6 @@ main(int argc, char *argv[]) ovsdb_idl_txn_wait(txn); poll_block(); } - ovsdb_idl_txn_destroy(txn); switch (status) { case TXN_INCOMPLETE: @@ -1239,16 +1245,19 @@ main(int argc, char *argv[]) case TXN_TRY_AGAIN: /* xxx Handle this better! */ - printf("xxx We need to try again!\n"); + VLOG_ERR("OVSDB transaction needs retry"); break; case TXN_ERROR: - /* xxx Is this what we want to do? */ - ovs_fatal(0, "transaction error"); - + /* xxx Handle this better! */ + VLOG_ERR("OVSDB transaction failed: %s", + ovsdb_idl_txn_get_error(txn)); + break; + default: NOT_REACHED(); } + ovsdb_idl_txn_destroy(txn); nl_sock_wait(brc_sock, POLLIN); ovsdb_idl_wait(idl);