summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Lamparter <equinox@opensourcerouting.org>2013-01-16 01:28:36 +0100
committerDavid Lamparter <equinox@opensourcerouting.org>2013-01-16 01:45:57 +0100
commita6694fe8a89b957216f548938cc31602df04d495 (patch)
treecfa46c9261215f8fa6bc991fbc335e99da196ea9
parentca3ccd8748434719e4670ce812d1310013fad518 (diff)
Revert "bgpd: flock() dump files (BZ#742)"
This reverts commit b07458a055493dd37cb955ae90f11ae8bc334d3a. On second thought, the right way to do this is with rename(), not by introducing a lock that can potentially even stall bgpd. Reported-by: Christian Franke <chris@opensourcerouting.org> Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
-rw-r--r--bgpd/bgp_dump.c40
1 files changed, 5 insertions, 35 deletions
diff --git a/bgpd/bgp_dump.c b/bgpd/bgp_dump.c
index 77548601..edb725a9 100644
--- a/bgpd/bgp_dump.c
+++ b/bgpd/bgp_dump.c
@@ -95,7 +95,6 @@ static FILE *
bgp_dump_open_file (struct bgp_dump *bgp_dump)
{
int ret;
- int fd;
time_t clock;
struct tm *tm;
char fullpath[MAXPATHLEN];
@@ -132,16 +131,6 @@ bgp_dump_open_file (struct bgp_dump *bgp_dump)
umask(oldumask);
return NULL;
}
- else
- {
- fd = fileno(bgp_dump->fp);
- ret = flock( fd, LOCK_EX );
- if (ret != 0)
- {
- zlog_warn ("bgp_dump_open_file: Unable to flock() file %s: %s", realpath, strerror (errno));
- }
- }
-
umask(oldumask);
return bgp_dump->fp;
@@ -206,7 +195,6 @@ bgp_dump_set_size (struct stream *s, int type)
static void
bgp_dump_routes_index_table(struct bgp *bgp)
{
- int ret;
struct peer *peer;
struct listnode *node;
uint16_t peerno = 0;
@@ -278,11 +266,7 @@ bgp_dump_routes_index_table(struct bgp *bgp)
bgp_dump_set_size(obuf, MSG_TABLE_DUMP_V2);
- ret = fwrite (STREAM_DATA (obuf), stream_get_endp (obuf), 1, bgp_dump_routes.fp);
- if (ret != 1)
- {
- zlog_warn ("bgp_dump_routes_index_table: fwrite returned %d, expected 1: %s", ret, strerror (errno));
- }
+ fwrite (STREAM_DATA (obuf), stream_get_endp (obuf), 1, bgp_dump_routes.fp);
fflush (bgp_dump_routes.fp);
}
@@ -291,7 +275,6 @@ bgp_dump_routes_index_table(struct bgp *bgp)
static unsigned int
bgp_dump_routes_func (int afi, int first_run, unsigned int seq)
{
- int ret;
struct stream *obuf;
struct bgp_info *info;
struct bgp_node *rn;
@@ -390,11 +373,8 @@ bgp_dump_routes_func (int afi, int first_run, unsigned int seq)
seq++;
bgp_dump_set_size(obuf, MSG_TABLE_DUMP_V2);
- ret = fwrite (STREAM_DATA (obuf), stream_get_endp (obuf), 1, bgp_dump_routes.fp);
- if (ret != 1)
- {
- zlog_warn ("bgp_dump_routes_func: fwrite returned %d, expected 1: %s", ret, strerror (errno));
- }
+ fwrite (STREAM_DATA (obuf), stream_get_endp (obuf), 1, bgp_dump_routes.fp);
+
}
fflush (bgp_dump_routes.fp);
@@ -484,7 +464,6 @@ bgp_dump_common (struct stream *obuf, struct peer *peer, int forceas4)
void
bgp_dump_state (struct peer *peer, int status_old, int status_new)
{
- int ret;
struct stream *obuf;
/* If dump file pointer is disabled return immediately. */
@@ -505,11 +484,7 @@ bgp_dump_state (struct peer *peer, int status_old, int status_new)
bgp_dump_set_size (obuf, MSG_PROTOCOL_BGP4MP);
/* Write to the stream. */
- ret = fwrite (STREAM_DATA (obuf), stream_get_endp (obuf), 1, bgp_dump_all.fp);
- if (ret != 1)
- {
- zlog_warn ("bgp_dump_state: fwrite returned %d, expected 1: %s", ret, strerror (errno));
- }
+ fwrite (STREAM_DATA (obuf), stream_get_endp (obuf), 1, bgp_dump_all.fp);
fflush (bgp_dump_all.fp);
}
@@ -517,7 +492,6 @@ static void
bgp_dump_packet_func (struct bgp_dump *bgp_dump, struct peer *peer,
struct stream *packet)
{
- int ret;
struct stream *obuf;
/* If dump file pointer is disabled return immediately. */
@@ -546,11 +520,7 @@ bgp_dump_packet_func (struct bgp_dump *bgp_dump, struct peer *peer,
bgp_dump_set_size (obuf, MSG_PROTOCOL_BGP4MP);
/* Write to the stream. */
- ret = fwrite (STREAM_DATA (obuf), stream_get_endp (obuf), 1, bgp_dump->fp);
- if (ret != 1)
- {
- zlog_warn ("bgp_dump_packet_func: fwrite returned %d, expected 1: %s", ret, strerror (errno));
- }
+ fwrite (STREAM_DATA (obuf), stream_get_endp (obuf), 1, bgp_dump->fp);
fflush (bgp_dump->fp);
}