Ich habe ein paar Probleme zu verstehen rfc4978.
Wie ich es verstehe, ist alles komprimiert, nachdem der Server OK
einschließlich der Befehlsnamen zurückgibt. Jedoch scheint es, dass ich mehrere Dinge falsch verstanden habe (weil [Gmail]/sfgs
nicht umbenannt wird und offensichtlich die Datei nicht gesendet wird).Wie man mit OpenSSL imap-Komprimierung mit IMAP-Server in der Shell sprechen?
$ cat deflatecommands /dev/stdin | socat - OPENSSL:imap.googlemail.com:993,compress=none
* CAPABILITY IMAP4rev1 UNSELECT IDLE NAMESPACE QUOTA ID XLIST CHILDREN X-GM-EXT-1 UIDPLUS COMPRESS=DEFLATE ENABLE MOVE CONDSTORE ESEARCH UTF8=ACCEPT APPENDLIMIT=35882577 LIST-EXTENDED LIST-STATUS
a001 OK [email protected] authenticated (Success)
a002 OK Success
2016/04/28 21:47:03 socat[16204.25769803872] E SSL_write(): Broken pipe
wo deflatecommands enthält:
a001 LOGIN myus.tyer mypassord
a002 COMPRESS DEFLATE
xÚK400VrõsôuUPŠvÏMÌ̉Õ/NK/[email protected]‰— Ô)
, die gibt unkomprimiert:
a001 LOGIN myus.tyer mypassord
a002 COMPRESS DEFLATE
a003 RENAME "[Gmail]/sfgs" "[Gmail]/xxxxxxxxxxx"
Natürlich deflatecommands
verwendet crfl
Zeilenende in beiden unkomprimierten und komprimierten Teilen. deflatecommands
mit erstellt:
$ openssl zlib a003 > a003.zlib
$ cat a001 a002 a003.zlib > defaltecommands
Eine letzte Sache wegen der Geschwindigkeit meiner Verbindung, nichts wird gesendet, bevor "a002 OK Success" wenn auf dem Bildschirm gedruckt wird. – user2284570
Ich bin mir nicht sicher, ob das funktioniert. Alle drei Befehle werden in einem Paket gesendet, aber der Server wird wahrscheinlich den Eingabepuffer leeren, wenn die Komprimierung aktiviert wird. Sie werden wahrscheinlich eine Pause zwischen der Komprimierung und dem komprimierten Befehl benötigen. Wenn im komprimierten Teil ein CRLF vorhanden ist, ist dies ebenfalls ein Problem. Sie müssen die Datei im Binärmodus bearbeiten und sicherstellen, dass kein Klartext CRLF vorhanden ist. – Max
@Max: Es gibt kein unkomprimiertes ᴄʀʟꜰ in 'a003.zlib'. Und wieder werden keine komprimierten Bytes gesendet, bevor GImap "OK erfolgreich" zurückgegeben hat. – user2284570