mirror of
https://github.com/morgan9e/systemd
synced 2026-04-14 08:25:20 +09:00
pidref: take more fields into account in pidref_compare_func()
This commit is contained in:
@@ -462,7 +462,31 @@ void pidref_hash_func(const PidRef *pidref, struct siphash *state) {
|
||||
}
|
||||
|
||||
int pidref_compare_func(const PidRef *a, const PidRef *b) {
|
||||
return CMP(a->pid, b->pid);
|
||||
int r;
|
||||
|
||||
assert(a);
|
||||
assert(b);
|
||||
|
||||
r = CMP(pidref_is_set(a), pidref_is_set(b));
|
||||
if (r != 0)
|
||||
return r;
|
||||
|
||||
r = CMP(pidref_is_automatic(a), pidref_is_automatic(b));
|
||||
if (r != 0)
|
||||
return r;
|
||||
|
||||
r = CMP(pidref_is_remote(a), pidref_is_remote(b));
|
||||
if (r != 0)
|
||||
return r;
|
||||
|
||||
r = CMP(a->pid, b->pid);
|
||||
if (r != 0)
|
||||
return r;
|
||||
|
||||
if (a->fd_id != 0 && b->fd_id != 0)
|
||||
return CMP(a->fd_id, b->fd_id);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
DEFINE_HASH_OPS(pidref_hash_ops, PidRef, pidref_hash_func, pidref_compare_func);
|
||||
|
||||
Reference in New Issue
Block a user