mirror of
https://github.com/systemd/systemd.git
synced 2025-03-21 02:50:18 +03:00
pidref: take more fields into account in pidref_compare_func()
This commit is contained in:
parent
2ad187fb68
commit
09b3390529
@ -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);
|
||||
|
Loading…
x
Reference in New Issue
Block a user