[sage] BSD printf
Dirk Wetter
dirk.wetter at guug.de
Thu Oct 11 12:01:08 CEST 2018
Moin,
danke nochmal für die Antworten....
Ich frage nochmal anderes herum: Gibt es dann irgendwas, was
systemübergreifend Hexcodierte Strings in Binärformat
wandelt analog dem Bash-internen printf:
printf -- "\x16\x03\x01\x02\x00\x01\x00\x01\xfc\x03" | xxd
00000000: 1603 0102 0001 0001 fc03 ..........
aber kein zeilenbasierten Stdout-Buffer hat wie das bash-interne printf
oder echo?
Anforderung sind:
* systemübergreifend (BSD, Linux, OS X, WSL),
* müsste im OS eigentlich dabei sein.
Wer sich da einlesen möchte: https://github.com/drwetter/testssl.sh/issues/1130
VG, Dirk
On 26.09.18 08:57, Dirk Wetter wrote:
>
> Hi,
>
> ich habe da ein kleines Problem. Wie einige vielleicht
> wissen, habe ich da ein FOSS-Projekt namens testssl.sh.
>
> Eine Kernfunktion sind Sockets. Das Projekt ist abseits
> ein paar weniger Unix-Tools drumherum in bash -- der kleinste
> gemeinsamste Nenner für BSDs (inkl. OS X), WSL, Cygwin etc.
>
> Auch die Sockets sind in bash programiert über /dev/tcp/*.
> Das klappt sogar recht gut.
>
> Leider nur hat das bash interne printf, womit die
> Bytes in die Sockets gesendet werden, das Problem,
> dass es bei jedem "\x0a" ein write flush macht wird, und
> das ein neues Netzpaket wird -- mit dem Resultat, dass
> TCP-Fragmentierung auftritt.
>
> Eine elegante Lösung wäre ein externes printf zu benutzen.
> Das klappt für Linux, da es genauso funktioniert wie das
> bash-Interne, also:
>
> /usr/bin/printf -- "\x16\x03\x01\x02\x00\x01\x00\x01\xfc\x03" | xxd
> --> 0000000: 1603 0102 0001 0001 fc03 ..........
>
> aber leider nicht für BSD, hier FreeBSD:
>
> -->
> 00000000: 7831 3678 3033 7830 3178 3032 7830 3078 x16x03x01x02x00x
> 00000010: 3031 7830 3078 3031 7866 6378 3033 01x00x01xfcx03
>
> Frage: geht das mit dem FreeBSD printf überhaupt? Solaris sollte
> ein ähnliches, externes printf haben IIRC.
>
>
> VG, Dirk
>
>
>
>
> _______________________________________________
> SAGE mailing list
> SAGE at guug.de
> https://lists.guug.de/cgi-bin/mailman/listinfo/sage
>
More information about the SAGE
mailing list