From bff68cbf176225dd3c2d100533c7582bfb373a27 Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Sun, 19 May 2024 23:13:37 +0900 Subject: [PATCH] mruby-socket (inet_ntop): refactor addrinfo loop --- mrbgems/mruby-socket/src/socket.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/mrbgems/mruby-socket/src/socket.c b/mrbgems/mruby-socket/src/socket.c index c940cfc92..412d17c43 100644 --- a/mrbgems/mruby-socket/src/socket.c +++ b/mrbgems/mruby-socket/src/socket.c @@ -80,23 +80,19 @@ static const char *inet_ntop(int af, const void *src, char *dst, socklen_t cnt) static int inet_pton(int af, const char *src, void *dst) { struct addrinfo hints = {0}; - struct addrinfo *res, *ressave; - hints.ai_family = af; + struct addrinfo *res; if (getaddrinfo(src, NULL, &hints, &res) != 0) { printf("Couldn't resolve host %s\n", src); return -1; } - ressave = res; - - while (res) { - memcpy(dst, res->ai_addr, res->ai_addrlen); - res = res->ai_next; + for (struct addrinfo *r; r; r = r->ai_next) { + memcpy(dst, r->ai_addr, r->ai_addrlen); } - freeaddrinfo(ressave); + freeaddrinfo(res); return 0; }