commit f1285b65d59119b71c7c4f98dddcf2d6969922be
parent 15340585cb82677623c6b680c7b6f26040e044cd
Author: Louis Burda <quent.burda@gmail.com>
Date: Tue, 11 May 2021 00:34:07 +0200
made docker setup more stable + small fixes
Diffstat:
3 files changed, 12 insertions(+), 5 deletions(-)
diff --git a/service/entrypoint.sh b/service/entrypoint.sh
@@ -6,5 +6,8 @@ chown -R service:service "/data/"
export RESULTDIR="/data"
-servicecmd='socat TCP-LISTEN:9000,fork,reuseaddr EXEC:"/service/printdoc",raw,pty,echo=0,stderr'
-exec su -s /bin/sh -c "$servicecmd" service
+servicecmd='socat -T30 -s TCP-LISTEN:9000,reuseaddr,fork,end-close EXEC:"/service/printdoc",raw,pty,echo=0,stderr'
+
+while [ 1 ]; do
+ su -s /bin/sh -c "$servicecmd" service
+done
diff --git a/service/src/printdoc.c b/service/src/printdoc.c
@@ -241,7 +241,8 @@ main()
if (exit || !*linebuf) break;
if (*linebuf == '\n') continue;
- linebuf[strlen(linebuf) - 1] = '\0';
+ if (linebuf[strlen(linebuf) - 1] == '\n')
+ linebuf[strlen(linebuf) - 1] = '\0';
cp = strchr(linebuf, ' ');
arg = cp ? cp + 1 : NULL;
diff --git a/service/src/stlfile.c b/service/src/stlfile.c
@@ -254,10 +254,13 @@ parse_file(struct parseinfo *info, char *buf, size_t len)
const char *tmp;
char *bp;
- if (len < 7) return FAIL;
-
if (info->valid) free_info(info);
+ if (len < 7) {
+ fprintf(stderr, "File too small!\n");
+ return FAIL;
+ }
+
for (bp = buf; strchr(wsset, *bp); bp++);
/* check bin vs ascii with first keyword */