summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordefanor <defanor@uberspace.net>2022-01-10 16:32:02 +0300
committerdefanor <defanor@uberspace.net>2022-01-10 16:32:02 +0300
commit7893dabd6ff65a7d69ecc586e6bbab2688505239 (patch)
tree3fe576a94034814fbdf758ea66dab7289655c13e
parente815865399bd6c72cff74c7ca485d40abacc693e (diff)
Check in rexmpp_tcp_connected whether DNS records are resolved
They may not be if an IP address is used instead of a hostname.
-rw-r--r--src/rexmpp_tcp.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/rexmpp_tcp.c b/src/rexmpp_tcp.c
index 13e6e81..3022182 100644
--- a/src/rexmpp_tcp.c
+++ b/src/rexmpp_tcp.c
@@ -89,9 +89,9 @@ rexmpp_tcp_connected (rexmpp_tcp_conn_t *conn, int fd) {
struct sockaddr sa;
socklen_t sa_len = sizeof(sa);
getsockname(fd, &sa, &sa_len);
- if (sa.sa_family == AF_INET) {
+ if (sa.sa_family == AF_INET && conn->resolved_v4 != NULL) {
conn->dns_secure = conn->resolved_v4->secure;
- } else {
+ } else if (sa.sa_family == AF_INET6 && conn->resolved_v6 != NULL) {
conn->dns_secure = conn->resolved_v6->secure;
}
conn->fd = fd;