shared: varlink_server_contains_socket()

This commit is contained in:
Ivan Kruglov
2025-05-13 01:55:15 -07:00
parent e739395f13
commit c7728d2b46
2 changed files with 20 additions and 0 deletions
+18
View File
@@ -2,6 +2,7 @@
#include "log.h"
#include "parse-util.h"
#include "socket-util.h"
#include "varlink-internal.h"
#include "varlink-serialize.h"
@@ -84,3 +85,20 @@ int varlink_server_deserialize_one(sd_varlink_server *s, const char *value, FDSe
LIST_PREPEND(sockets, s->sockets, TAKE_PTR(ss));
return 0;
}
bool varlink_server_contains_socket(sd_varlink_server *s, const char *address) {
int r;
assert(s);
assert(address);
LIST_FOREACH(sockets, ss, s->sockets) {
r = socket_address_equal_unix(ss->address, address);
if (r < 0)
log_debug_errno(r, "Failed to compare '%s' and '%s', ignoring: %m", ss->address, address);
if (r > 0)
return true;
}
return false;
}
+2
View File
@@ -9,3 +9,5 @@
int varlink_server_serialize(sd_varlink_server *s, FILE *f, FDSet *fds);
int varlink_server_deserialize_one(sd_varlink_server *s, const char *value, FDSet *fds);
bool varlink_server_contains_socket(sd_varlink_server *s, const char *address);