summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/pqueue.c8
-rw-r--r--lib/pqueue.h1
-rw-r--r--lib/privs.c1
-rw-r--r--lib/zclient.c32
4 files changed, 32 insertions, 10 deletions
diff --git a/lib/pqueue.c b/lib/pqueue.c
index 0f870564da..fa502b462a 100644
--- a/lib/pqueue.c
+++ b/lib/pqueue.c
@@ -188,3 +188,11 @@ pqueue_remove_at (int index, struct pqueue *queue)
trickle_down (index, queue);
}
}
+
+void
+pqueue_remove (void *data, struct pqueue *queue)
+{
+ for (int i = 0; i < queue->size; i++)
+ if (queue->array[i] == data)
+ pqueue_remove_at (i, queue);
+}
diff --git a/lib/pqueue.h b/lib/pqueue.h
index 8bb6961d86..b39fb92ee9 100644
--- a/lib/pqueue.h
+++ b/lib/pqueue.h
@@ -39,6 +39,7 @@ extern void pqueue_delete (struct pqueue *queue);
extern void pqueue_enqueue (void *data, struct pqueue *queue);
extern void *pqueue_dequeue (struct pqueue *queue);
extern void pqueue_remove_at (int index, struct pqueue *queue);
+extern void pqueue_remove (void *data, struct pqueue *queue);
extern void trickle_down (int index, struct pqueue *queue);
extern void trickle_up (int index, struct pqueue *queue);
diff --git a/lib/privs.c b/lib/privs.c
index decd4bb7db..767ab667e7 100644
--- a/lib/privs.c
+++ b/lib/privs.c
@@ -769,6 +769,7 @@ zprivs_init(struct zebra_privs_t *zprivs)
}
}
+ zprivs_state.zsuid = geteuid(); /* initial uid */
/* add groups only if we changed uid - otherwise skip */
if ((ngroups) && (zprivs_state.zsuid != zprivs_state.zuid))
{
diff --git a/lib/zclient.c b/lib/zclient.c
index 71b95ae7db..d2a5186315 100644
--- a/lib/zclient.c
+++ b/lib/zclient.c
@@ -1486,7 +1486,9 @@ lm_label_manager_connect (struct zclient *zclient)
vrf_id_t vrf_id;
u_int16_t cmd;
- zlog_debug ("Connecting to Label Manager");
+ if (zclient_debug)
+ zlog_debug ("Connecting to Label Manager");
+
if (zclient->sock < 0)
return -1;
@@ -1518,7 +1520,8 @@ lm_label_manager_connect (struct zclient *zclient)
zclient->sock = -1;
return -1;
}
- zlog_debug ("%s: Label manager connect request (%d bytes) sent", __func__, ret);
+ if (zclient_debug)
+ zlog_debug ("%s: Label manager connect request (%d bytes) sent", __func__, ret);
/* read response */
s = zclient->ibuf;
@@ -1532,8 +1535,9 @@ lm_label_manager_connect (struct zclient *zclient)
}
/* result */
result = stream_getc(s);
- zlog_debug ("%s: Label Manager connect response (%d bytes) received, result %u",
- __func__, size, result);
+ if (zclient_debug)
+ zlog_debug ("%s: Label Manager connect response (%d bytes) received, result %u",
+ __func__, size, result);
return (int)result;
}
@@ -1564,7 +1568,9 @@ lm_get_label_chunk (struct zclient *zclient, u_char keep, uint32_t chunk_size,
u_int16_t cmd;
u_char response_keep;
- zlog_debug ("Getting Label Chunk");
+ if (zclient_debug)
+ zlog_debug ("Getting Label Chunk");
+
if (zclient->sock < 0)
return -1;
@@ -1594,7 +1600,8 @@ lm_get_label_chunk (struct zclient *zclient, u_char keep, uint32_t chunk_size,
zclient->sock = -1;
return -1;
}
- zlog_debug ("%s: Label chunk request (%d bytes) sent", __func__, ret);
+ if (zclient_debug)
+ zlog_debug ("%s: Label chunk request (%d bytes) sent", __func__, ret);
/* read response */
s = zclient->ibuf;
@@ -1606,7 +1613,9 @@ lm_get_label_chunk (struct zclient *zclient, u_char keep, uint32_t chunk_size,
zlog_err ("%s: Invalid Get Label Chunk Message Reply Header", __func__);
return -1;
}
- zlog_debug ("%s: Label chunk response (%d bytes) received", __func__, size);
+ if (zclient_debug)
+ zlog_debug ("%s: Label chunk response (%d bytes) received", __func__, size);
+
/* keep */
response_keep = stream_getc(s);
/* start and end labels */
@@ -1627,8 +1636,9 @@ lm_get_label_chunk (struct zclient *zclient, u_char keep, uint32_t chunk_size,
return -1;
}
- zlog_debug ("Label Chunk assign: %u - %u (%u) ",
- *start, *end, response_keep);
+ if (zclient_debug)
+ zlog_debug ("Label Chunk assign: %u - %u (%u) ",
+ *start, *end, response_keep);
return 0;
}
@@ -1647,7 +1657,9 @@ lm_release_label_chunk (struct zclient *zclient, uint32_t start, uint32_t end)
int ret;
struct stream *s;
- zlog_debug ("Releasing Label Chunk");
+ if (zclient_debug)
+ zlog_debug ("Releasing Label Chunk");
+
if (zclient->sock < 0)
return -1;