X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~mdw/git/disorder/blobdiff_plain/80fb0bd9ad2e970944fe1bd20922319592bfd994..96af1d7e02ac1734b562d07a03c4d7a53abafb3c:/lib/client.c?ds=inline diff --git a/lib/client.c b/lib/client.c index 55cfe1c..09e5426 100644 --- a/lib/client.c +++ b/lib/client.c @@ -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");