aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2016-10-19 10:47:41 +0200
committerHarald Welte <laforge@gnumonks.org>2016-10-19 10:55:25 +0200
commit2ac78497ddb0320f8b6c3f38f1acd0a0b70dcf00 (patch)
treed946e51ac497a1596f2f12d53fde540772ba9d6a
parentdf7a306df5a1cb41ad42c303001f24a06f28458e (diff)
e1_recorder: propagate errors to main, where we exit() in case of failing to open file
-rw-r--r--src/e1_recorder.c7
-rw-r--r--src/storage.c4
2 files changed, 9 insertions, 2 deletions
diff --git a/src/e1_recorder.c b/src/e1_recorder.c
index b0ae044..11ec93e 100644
--- a/src/e1_recorder.c
+++ b/src/e1_recorder.c
@@ -32,10 +32,15 @@ void e1ts_raw_recv(struct e1inp_ts *ts, struct msgb *msg)
{
struct e1_recorder_line *rline = &g_recorder.line[ts->line->num];
enum osmo_e1cap_capture_mode cap_mode = ts2cap_mode(ts);
+ int rc;
/* FIXME: special processing of TFP and PGSL */
- e1frame_store(ts, msg, cap_mode);
+ rc = e1frame_store(ts, msg, cap_mode);
+ if (rc < 0) {
+ LOGP(DMAIN, LOGL_FATAL, "Error writing E1/T1 frame to disk\n");
+ exit(1);
+ }
if (rline->mirror.enabled) {
struct e1inp_line *other_line =
diff --git a/src/storage.c b/src/storage.c
index d18f8cd..0a926e4 100644
--- a/src/storage.c
+++ b/src/storage.c
@@ -83,7 +83,9 @@ int e1frame_store(struct e1inp_ts *ts, struct msgb *msg, enum osmo_e1cap_capture
h->capture_mode = mode;
h->flags = 0;
- storage_reopen_if_needed();
+ rc = storage_reopen_if_needed();
+ if (rc < 0)
+ return rc;
rc = writev(g_out_fd, iov, ARRAY_SIZE(iov));
if (rc < 0)