[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