From: Ivan Kruglov Date: Mon, 12 May 2025 11:17:38 +0000 (-0700) Subject: socket-util: socket_address_equal_unix() X-Git-Tag: v258-rc1~636^2~4 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=e739395f13f4512a658e486e1145c4c8fcab860a;p=thirdparty%2Fsystemd.git socket-util: socket_address_equal_unix() --- diff --git a/src/basic/socket-util.c b/src/basic/socket-util.c index 5e6195e108e..2c003106c9f 100644 --- a/src/basic/socket-util.c +++ b/src/basic/socket-util.c @@ -1797,6 +1797,24 @@ int socket_address_parse_unix(SocketAddress *ret_address, const char *s) { return 0; } +int socket_address_equal_unix(const char *a, const char *b) { + SocketAddress socket_a, socket_b; + int r; + + assert(a); + assert(b); + + r = socket_address_parse_unix(&socket_a, a); + if (r < 0) + return r; + + r = socket_address_parse_unix(&socket_b, b); + if (r < 0) + return r; + + return sockaddr_equal(&socket_a.sockaddr, &socket_b.sockaddr); +} + int vsock_parse_port(const char *s, unsigned *ret) { int r; diff --git a/src/basic/socket-util.h b/src/basic/socket-util.h index e9671c38333..830b48e435f 100644 --- a/src/basic/socket-util.h +++ b/src/basic/socket-util.h @@ -342,6 +342,7 @@ int vsock_parse_cid(const char *s, unsigned *ret); * protocol mismatch. */ int socket_address_parse_unix(SocketAddress *ret_address, const char *s); int socket_address_parse_vsock(SocketAddress *ret_address, const char *s); +int socket_address_equal_unix(const char *a, const char *b); /* libc's SOMAXCONN is defined to 128 or 4096 (at least on glibc). But actually, the value can be much * larger. In our codebase we want to set it to the max usually, since nowadays socket memory is properly