Date: Tue, 20 Apr 2021 12:28:59 -0400 From: Paul Procacci <pprocacci@gmail.com> To: Arthur Chance <freebsd@qeng-ho.org> Cc: byrnejb@harte-lyne.ca, FreeBSD Questions <freebsd-questions@freebsd.org> Subject: Re: socat / ghostscript questions Message-ID: <CAFbbPujhces0tL3HcioAs2o2C550BMTVVkg3=wB26M6ijJCOjw@mail.gmail.com> In-Reply-To: <2ea846ea-65ad-e9ea-9400-2708271039f4@qeng-ho.org> References: <a57616c8b3cb377786621d3410355793.squirrel@webmail.harte-lyne.ca> <CAFbbPugodkPJm1mcGDuVO1kMVrhnWbwazA4vxrQnE0eijeLO3A@mail.gmail.com> <2ea846ea-65ad-e9ea-9400-2708271039f4@qeng-ho.org>
next in thread | previous in thread | raw e-mail | index | archive | help
I tested the N flag and it resulted in some sort of stack trace; I didn't go into it that deeply and may have been easy to fix. /shrug On Tue, Apr 20, 2021 at 12:23 PM Arthur Chance <freebsd@qeng-ho.org> wrote: > On 20/04/2021 17:17, Paul Procacci wrote: > > The hang is most likely because an EOF doesn't get trasmitted over the > wire. > > Adding a timeout I believe should fix the problem. > > > > nc -w 1 [addr] [port] < filename.txt > > Better to use the -N flag. > > -N shutdown(2) the network socket after EOF on the input. Some > servers require this to finish their work. > > > > > On Tue, Apr 20, 2021 at 11:51 AM James B. Byrne via freebsd-questions < > > freebsd-questions@freebsd.org> wrote: > > > >> I am trying to produce pdf files using socat and ghostscript. I have > this > >> command for socat: > >> > >> socat TCP4-LISTEN:9100,bind=192.168.216.41,fork,reuseaddr SYSTEM:'gs > >> -dQUIET > >> -dNOPROMPT -dBATCH -sDEVICE=pdfwrite -sOutputFile=/tmp/\"$(date > >> -Iseconds)\".pdf -' > >> > >> > >> Which I try to send a text file to using cat and nc: > >> > >> cat sshpipe3.txt | nc 192.168.216.41 9100 > >> > >> > >> What happens is that the cat/nc pipe hangs. This is probably an > artifact > >> of > >> how nc works but I need to check that is so. When I terminate nc with > >> <ctrl>-c > >> the socat gs instance reports an error: > >> > >> GPL Ghostscript 9.52: Unrecoverable error, exit code 1 > >> 2021/04/20 11:32:51 socat[67296] E write(6, 0x800adf000, 128): Broken > pipe > >> > >> This produces an empty file named like > /tmp/2021-04-20T11:13:20-04:00.pdf. > >> > >> I am no doubt missing the obvious here so I have a few naive questions: > >> > >> 1. Is it possible to terminate the sending process without causing GS to > >> issue > >> an error? > >> > >> 2. Would printing from another host to that socat instance result in the > >> same > >> broken pipe error? > >> > >> 3. Why are the files that gs creates empty? > >> > >> 4. How do I send a text file to the socat instance so that it is > converted > >> to a > >> pdf document? > >> > > > > > > -- > Lebowskisort, aka dudesort, an O(1) sorting algorithm: > > "Man, the array is cool as it is. Let's go bowling." > -- __________________ :(){ :|:& };:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAFbbPujhces0tL3HcioAs2o2C550BMTVVkg3=wB26M6ijJCOjw>