enowars5-service-stldoctor

STL-Analyzing A/D Service for ENOWARS5 in 2021
git clone https://git.sinitax.com/sinitax/enowars5-service-stldoctor
Log | Files | Refs | README | LICENSE | sfeed.txt

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:
Mservice/entrypoint.sh | 7+++++--
Mservice/src/printdoc.c | 3++-
Mservice/src/stlfile.c | 7+++++--
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 */