From: Wouter Wijngaards Date: Tue, 20 Nov 2018 12:28:09 +0000 (+0000) Subject: - Removed compile warnings in pythonmod sockaddr routines. X-Git-Tag: release-1.8.2rc1~29 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=7acf6a4a66dcdcfdbf8b80c1b19c32ca961edd0d;p=thirdparty%2Funbound.git - Removed compile warnings in pythonmod sockaddr routines. git-svn-id: file:///svn/unbound/trunk@4963 be551aaa-1e26-0410-a405-d3ace91eadb9 --- diff --git a/doc/Changelog b/doc/Changelog index ad30fb054..d02f00a61 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -4,6 +4,7 @@ - Add patch from Jan Vcelak for pythonmod, add sockaddr_storage getters, add support for query callbacks, allow raw address access via comm_reply and update API documentation. + - Removed compile warnings in pythonmod sockaddr routines. 19 November 2018: Wouter - Support SO_REUSEPORT_LB in FreeBSD 12 with the so-reuseport: yes diff --git a/pythonmod/interface.i b/pythonmod/interface.i index 6bb2b9edb..68e0975aa 100644 --- a/pythonmod/interface.i +++ b/pythonmod/interface.i @@ -464,17 +464,20 @@ struct sockaddr_storage {}; } PyObject *_sockaddr_storage_addr(const struct sockaddr_storage *ss) { + const struct sockaddr *sa; + size_t sa_len; + char name[NI_MAXHOST] = {0}; + if (ss == NULL) { return Py_None; } - const struct sockaddr *sa = (struct sockaddr *)ss; - size_t sa_len = _sockaddr_storage_len(ss); + sa = (struct sockaddr *)ss; + sa_len = _sockaddr_storage_len(ss); if (sa_len == 0) { return Py_None; } - char name[NI_MAXHOST] = {0}; if (getnameinfo(sa, sa_len, name, sizeof(name), NULL, 0, NI_NUMERICHOST) != 0) { return Py_None; } @@ -483,11 +486,13 @@ struct sockaddr_storage {}; } PyObject *_sockaddr_storage_raw_addr(const struct sockaddr_storage *ss) { + size_t sa_len; + if (ss == NULL) { return Py_None; } - size_t sa_len = _sockaddr_storage_len(ss); + sa_len = _sockaddr_storage_len(ss); if (sa_len == 0) { return Py_None; } @@ -531,20 +536,24 @@ struct sockaddr_storage {}; } PyObject *_sockaddr_storage_flowinfo(const struct sockaddr_storage *ss) { + const struct sockaddr_in6 *sa6; + if (ss == NULL || ss->ss_family != AF_INET6) { return Py_None; } - const struct sockaddr_in6 *sa6 = (struct sockaddr_in6 *)ss; + sa6 = (struct sockaddr_in6 *)ss; return PyInt_FromLong(ntohl(sa6->sin6_flowinfo)); } PyObject *_sockaddr_storage_scope_id(const struct sockaddr_storage *ss) { + const struct sockaddr_in6 *sa6; + if (ss == NULL || ss->ss_family != AF_INET6) { return Py_None; } - const struct sockaddr_in6 *sa6 = (struct sockaddr_in6 *)ss; + sa6 = (struct sockaddr_in6 *)ss; return PyInt_FromLong(ntohl(sa6->sin6_scope_id)); } %}