From c04005bbd5a1e2cbef630600cd229b8a6b49bf14 Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Tue, 30 Jan 2018 15:37:40 +0000 Subject: [PATCH] python: Raise IndexError when adding the same network twice Signed-off-by: Michael Tremer --- src/network.c | 2 +- src/python/writer.c | 11 +++++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/network.c b/src/network.c index 4f29714..3d38612 100644 --- a/src/network.c +++ b/src/network.c @@ -511,7 +511,7 @@ LOC_EXPORT int loc_network_tree_add_network(struct loc_network_tree* tree, struc // Check if node has not been set before if (node->network) { DEBUG(tree->ctx, "There is already a network at this path\n"); - return 1; + return -EBUSY; } // Point node to the network diff --git a/src/python/writer.c b/src/python/writer.c index e0c37b6..a15f77e 100644 --- a/src/python/writer.c +++ b/src/python/writer.c @@ -128,8 +128,15 @@ static PyObject* Writer_add_network(WriterObject* self, PyObject* args) { // Create network object int r = loc_writer_add_network(self->writer, &network, string); if (r) { - if (r == -EINVAL) - PyErr_SetString(PyExc_ValueError, "Invalid network"); + switch (r) { + case -EINVAL: + PyErr_SetString(PyExc_ValueError, "Invalid network"); + break; + + case -EBUSY: + PyErr_SetString(PyExc_IndexError, "A network already exists here"); + break; + } return NULL; } -- 2.39.2