summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/main.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/main.c b/src/main.c
index a9fba30..85f2969 100644
--- a/src/main.c
+++ b/src/main.c
@@ -241,6 +241,17 @@ static int tip_client_get_payload(struct tip_client *cli)
return 1;
}
+static int delete_file(const char *filename)
+{
+ if (unlink(filename) < 0) {
+ syslog(LOG_ERR, "cannot delete file %s: %s",
+ filename, strerror(errno));
+ return -1;
+ }
+
+ return 0;
+}
+
static int tip_client_head_hdr(struct tip_client *cli)
{
char *ptr;
@@ -277,6 +288,7 @@ static int tip_client_head_hdr(struct tip_client *cli)
if (fallocate(cli->fd, 0, 0, cli->content_len) < 0) {
syslog(LOG_ERR, "failed to allocate room for file %s: %s",
filename, strerror(errno));
+ delete_file(filename);
return -1;
}