chiark / gitweb /
client.c: new disorder_client_af reveals connectivity type
authorRichard Kettlewell <rjk@greenend.org.uk>
Sun, 10 Nov 2013 13:57:26 +0000 (13:57 +0000)
committerRichard Kettlewell <rjk@terraraq.org.uk>
Sun, 10 Nov 2013 14:04:18 +0000 (14:04 +0000)
lib/client.c
lib/client.h

index 55cfe1c838002147e0382a6eac42c0e5a8a5f0cf..09e542693b9e5fb7376106138d3f504c197eedf3 100644 (file)
@@ -66,6 +66,8 @@ struct disorder_client {
   int verbose;
   /** @brief Last error string */
   const char *last;
+  /** @brief Address family */
+  int family;
 };
 
 /** @brief Create a new client
@@ -80,9 +82,15 @@ disorder_client *disorder_new(int verbose) {
   disorder_client *c = xmalloc(sizeof (struct disorder_client));
 
   c->verbose = verbose;
+  c->family = -1;
   return c;
 }
 
+/** @brief Return the address family used by this client */
+int disorder_client_af(disorder_client *c) {
+  return c->family;
+}
+
 /** @brief Read a response line
  * @param c Client
  * @param rp Where to store response, or NULL (UTF-8)
@@ -407,6 +415,7 @@ int disorder_connect_generic(struct config *conf,
     disorder_error(errno, "error calling socket");
     return -1;
   }
+  c->family = sa->sa_family;
   if(connect(fd, sa, salen) < 0) {
     byte_xasprintf((char **)&c->last, "connect: %s", strerror(errno));
     disorder_error(errno, "error calling connect");
index 2513a89e382d756f4e8b1e1bf8c174d19ee521bd..c7964d6d75e74efcbd8363d3be92006cfcb70ac8 100644 (file)
@@ -39,6 +39,7 @@ struct kvp;
 struct sink;
 
 disorder_client *disorder_new(int verbose);
+int disorder_client_af(disorder_client *c);
 int disorder_connect(disorder_client *c);
 int disorder_connect_user(disorder_client *c,
                          const char *username,