diff options
author | Lennart Poettering <lennart@poettering.net> | 2008-06-25 01:48:23 +0200 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2008-06-25 01:48:23 +0200 |
commit | 38d9db9575547ac9354944bd307db752e37601f6 (patch) | |
tree | 0d6ff35fe4fd88868be4e4ebb5512261e87e6a37 /src/multi.c | |
parent | 409210f5b12b64f9cef06275bb5954ec8a261731 (diff) |
filter out recursive 'multi' invocations and duplicate entries in the backend list
Diffstat (limited to 'src/multi.c')
-rw-r--r-- | src/multi.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/multi.c b/src/multi.c index e7db7f1..f6448d6 100644 --- a/src/multi.c +++ b/src/multi.c @@ -47,6 +47,13 @@ static int add_backend(struct private *p, const char *name) { ca_assert(p); ca_assert(b); + if (ca_streq(name, "multi")) + return CA_ERROR_NOTAVAILABLE; + + for (b = p->backends; b; b = b->next) + if (ca_streq(b->context->driver, name)) + return CA_ERROR_NOTAVAILABLE; + if (!(b = ca_new0(struct backend, 1))) return CA_ERROR_OOM; |