diff options
author | Vo Trung Chi <Chi.VoTrung@vn.bosch.com> | 2019-07-30 14:00:11 +0700 |
---|---|---|
committer | Saya Sugiura <39760799+ssugiura@users.noreply.github.com> | 2019-09-03 10:45:44 +0900 |
commit | b934db4b865a71ceebcfa0c63149576f3c2a5ecd (patch) | |
tree | 6dc9865b8dedef9c25c9614c8ff730c3c35cbb8e | |
parent | 01a1935ec1e2ebf0601a6ff55ac957c92d6cbfa5 (diff) | |
download | DLT-daemon-b934db4b865a71ceebcfa0c63149576f3c2a5ecd.tar.gz |
dlt-daemon: fix bug binding invalid ipv6 address as default
The default INADDR_ANY is used ("0.0.0.0") as before.
But it's invalid when DLT_USE_IPv6 flag ON.
Signed-off-by: Vo Trung Chi <Chi.VoTrung@vn.bosch.com>
-rw-r--r-- | src/daemon/dlt_daemon_socket.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/daemon/dlt_daemon_socket.c b/src/daemon/dlt_daemon_socket.c index 2e4f9ea..03c6788 100644 --- a/src/daemon/dlt_daemon_socket.c +++ b/src/daemon/dlt_daemon_socket.c @@ -60,7 +60,7 @@ int dlt_daemon_socket_open(int *sock, unsigned int servPort, char *ip) { int yes = 1; - int ret_inet_pton = 0; + int ret_inet_pton = 1; #ifdef DLT_USE_IPv6 @@ -96,7 +96,10 @@ int dlt_daemon_socket_open(int *sock, unsigned int servPort, char *ip) memset(&forced_addr, 0, sizeof(forced_addr)); forced_addr.sin6_family = AF_INET6; forced_addr.sin6_port = htons(servPort); - ret_inet_pton = inet_pton(AF_INET6, ip, &forced_addr.sin6_addr); + if (0 == strcmp(ip, "0.0.0.0")) + forced_addr.sin6_addr = in6addr_any; + else + ret_inet_pton = inet_pton(AF_INET6, ip, &forced_addr.sin6_addr); #else struct sockaddr_in forced_addr; memset(&forced_addr, 0, sizeof(forced_addr)); |