treewide: Remove trailing whitespace
[sliver-openvswitch.git] / ofproto / discovery.c
index ae36b4d..d7189fc 100644 (file)
@@ -18,6 +18,7 @@
 #include "discovery.h"
 #include <errno.h>
 #include <inttypes.h>
+#include <sys/socket.h>
 #include <net/if.h>
 #include <regex.h>
 #include <stdlib.h>
 #include "packets.h"
 #include "status.h"
 #include "stream-ssl.h"
-
-#define THIS_MODULE VLM_discovery
 #include "vlog.h"
 
+VLOG_DEFINE_THIS_MODULE(discovery)
+
 struct discovery {
+    char *dpif_name;
     char *re;
     bool update_resolv_conf;
     regex_t *regex;
@@ -58,7 +60,7 @@ discovery_status_cb(struct status_reply *sr, void *d_)
     if (d->dhcp) {
         status_reply_put(sr, "state=%s", dhclient_get_state(d->dhcp));
         status_reply_put(sr, "state-elapsed=%u",
-                         dhclient_get_state_elapsed(d->dhcp)); 
+                         dhclient_get_state_elapsed(d->dhcp));
         if (dhclient_is_bound(d->dhcp)) {
             uint32_t ip = dhclient_get_ip(d->dhcp);
             uint32_t netmask = dhclient_get_netmask(d->dhcp);
@@ -104,6 +106,8 @@ discovery_create(const char *re, bool update_resolv_conf,
 
     d = xzalloc(sizeof *d);
 
+    d->dpif_name = xstrdup(dpif_base_name(dpif));
+
     /* Controller regular expression. */
     error = discovery_set_accept_controller_re(d, re);
     if (error) {
@@ -115,13 +119,15 @@ discovery_create(const char *re, bool update_resolv_conf,
     error = dpif_port_get_name(dpif, ODPP_LOCAL,
                                local_name, sizeof local_name);
     if (error) {
-        VLOG_ERR("failed to query datapath local port: %s", strerror(error));
+        VLOG_ERR("%s: failed to query datapath local port: %s",
+                 d->dpif_name, strerror(error));
         goto error_regfree;
     }
     error = dhclient_create(local_name, modify_dhcp_request,
                             validate_dhcp_offer, d, &d->dhcp);
     if (error) {
-        VLOG_ERR("failed to initialize DHCP client: %s", strerror(error));
+        VLOG_ERR("%s: failed to initialize DHCP client: %s",
+                 d->dpif_name, strerror(error));
         goto error_regfree;
     }
     dhclient_set_max_timeout(d->dhcp, 3);
@@ -137,6 +143,7 @@ error_regfree:
     regfree(d->regex);
     free(d->regex);
 error_free:
+    free(d->dpif_name);
     free(d);
     *discoveryp = 0;
     return error;
@@ -151,10 +158,17 @@ discovery_destroy(struct discovery *d)
         free(d->regex);
         dhclient_destroy(d->dhcp);
         switch_status_unregister(d->ss_cat);
+        free(d->dpif_name);
         free(d);
     }
 }
 
+bool
+discovery_get_update_resolv_conf(const struct discovery *d)
+{
+    return d->update_resolv_conf;
+}
+
 void
 discovery_set_update_resolv_conf(struct discovery *d,
                                  bool update_resolv_conf)
@@ -162,6 +176,12 @@ discovery_set_update_resolv_conf(struct discovery *d,
     d->update_resolv_conf = update_resolv_conf;
 }
 
+const char *
+discovery_get_accept_controller_re(const struct discovery *d)
+{
+    return d->re;
+}
+
 int
 discovery_set_accept_controller_re(struct discovery *d, const char *re_)
 {
@@ -177,7 +197,7 @@ discovery_set_accept_controller_re(struct discovery *d, const char *re_)
         size_t length = regerror(error, regex, NULL, 0);
         char *buffer = xmalloc(length);
         regerror(error, regex, buffer, length);
-        VLOG_WARN("%s: %s", re, buffer);
+        VLOG_WARN("%s: %s: %s", d->dpif_name, re, buffer);
         free(regex);
         free(re);
         return EINVAL;
@@ -198,7 +218,7 @@ void
 discovery_question_connectivity(struct discovery *d)
 {
     if (d->dhcp) {
-        dhclient_force_renew(d->dhcp, 15); 
+        dhclient_force_renew(d->dhcp, 15);
     }
 }
 
@@ -223,12 +243,14 @@ discovery_run(struct discovery *d, char **controller_name)
     if (dhclient_is_bound(d->dhcp)) {
         *controller_name = dhcp_msg_get_string(dhclient_get_config(d->dhcp),
                                                DHCP_CODE_OFP_CONTROLLER_VCONN);
-        VLOG_INFO("%s: discovered controller", *controller_name);
+        VLOG_INFO("%s: discovered controller %s",
+                  d->dpif_name, *controller_name);
         d->n_changes++;
     } else {
         *controller_name = NULL;
         if (d->n_changes) {
-            VLOG_INFO("discovered controller no longer available");
+            VLOG_INFO("%s: discovered controller no longer available",
+                      d->dpif_name);
             d->n_changes++;
         }
     }
@@ -239,7 +261,7 @@ void
 discovery_wait(struct discovery *d)
 {
     if (d->dhcp) {
-        dhclient_wait(d->dhcp); 
+        dhclient_wait(d->dhcp);
     }
 }
 
@@ -258,13 +280,14 @@ validate_dhcp_offer(const struct dhcp_msg *msg, void *d_)
 
     vconn_name = dhcp_msg_get_string(msg, DHCP_CODE_OFP_CONTROLLER_VCONN);
     if (!vconn_name) {
-        VLOG_WARN_RL(&rl, "rejecting DHCP offer missing controller vconn");
+        VLOG_WARN_RL(&rl, "%s: rejecting DHCP offer missing controller vconn",
+                     d->dpif_name);
         return false;
     }
     accept = !regexec(d->regex, vconn_name, 0, NULL, 0);
     if (!accept) {
-        VLOG_WARN_RL(&rl, "rejecting controller vconn that fails to match %s",
-                     d->re);
+        VLOG_WARN_RL(&rl, "%s: rejecting controller vconn that fails to "
+                     "match %s", d->dpif_name, d->re);
     }
     free(vconn_name);
     return accept;