shared: varlink_server_contains_socket()
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user