summaryrefslogtreecommitdiff
path: root/src/shared/hashmap.c
diff options
context:
space:
mode:
authorLukas Nykryn <lnykryn@redhat.com>2012-08-13 13:58:01 +0200
committerLennart Poettering <lennart@poettering.net>2012-08-14 14:46:03 +0200
commit96342de68d0d6de71a062d984dafd2a0905ed9fe (patch)
treeadbeb686c6c3c2bfd5a1c8768555575acb4850a2 /src/shared/hashmap.c
parentd98cc1f29fbf31ccc500d6e20c29b636b9af7e0f (diff)
service: add options RestartPreventExitStatus and SuccessExitStatus
In some cases, like wrong configuration, restarting after error does not help, so administrator can specify statuses by RestartPreventExitStatus which will not cause restart of a service. Sometimes you have non-standart exit status, so this can be specified by SuccessfulExitStatus.
Diffstat (limited to 'src/shared/hashmap.c')
-rw-r--r--src/shared/hashmap.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/shared/hashmap.c b/src/shared/hashmap.c
index e2395d4d42..be37a3659d 100644
--- a/src/shared/hashmap.c
+++ b/src/shared/hashmap.c
@@ -378,6 +378,21 @@ void* hashmap_get(Hashmap *h, const void *key) {
return e->value;
}
+bool hashmap_contains(Hashmap *h, const void *key) {
+ unsigned hash;
+ struct hashmap_entry *e;
+
+ if (!h)
+ return false;
+
+ hash = h->hash_func(key) % NBUCKETS;
+
+ if (!(e = hash_scan(h, hash, key)))
+ return false;
+
+ return true;
+}
+
void* hashmap_remove(Hashmap *h, const void *key) {
struct hashmap_entry *e;
unsigned hash;