Discussion:
curl Absonderlichkeit
(zu alt für eine Antwort)
Gregor Kofler
2018-10-13 22:20:55 UTC
Permalink
Das Update-Skript von mailcow-dockerized enthält folgenden curl Aufruf

$ echo $(curl -#L https://www.servercow.de/docker-compose/latest.php)

was

(korrekt) 1.22.0

liefert.

Das klappt am lokalen Rechner und auf einem meiner Server. Auf einem
zweiten Server liefert

$ echo $(curl -#L https://www.servercow.de/docker-compose/latest.php)

22.0.1

Es handelt sich um identische Ubuntu 18.04er Installationen mit
identischem curl.

$ curl -V

curl 7.58.0 (x86_64-pc-linux-gnu) libcurl/7.58.0 OpenSSL/1.1.0h
zlib/1.2.11 libidn2/2.0.4 libpsl/0.19.1 (+libidn2/2.0.4) nghttp2/1.30.0
librtmp/2.3
Release-Date: 2018-01-24
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps
pop3 pop3s rtmp rtsp smb smbs smtp smtps telnet tftp
Features: AsynchDNS IDN IPv6 Largefile GSS-API Kerberos SPNEGO NTLM
NTLM_WB SSL libz TLS-SRP HTTP2 UnixSockets HTTPS-proxy PSL

Auch ein

$ wget https://www.servercow.de/docker-compose/latest.php
$ cat latest.php

liefert mir

22.0.1

Was versteh ich da nicht?

Gregor
Kay Martinen
2018-10-14 16:31:21 UTC
Permalink
Post by Gregor Kofler
Das Update-Skript von mailcow-dockerized enthält folgenden curl Aufruf
$ echo $(curl -#L https://www.servercow.de/docker-compose/latest.php)
(korrekt) 1.22.0
Das klappt am lokalen Rechner und auf einem meiner Server. Auf einem
zweiten Server liefert
$ echo $(curl -#L https://www.servercow.de/docker-compose/latest.php)
22.0.1
Was versteh ich da nicht?
Ich verstehe leider nicht mal WAS du da genau raus finden willst. Es
kann doch wohl nicht sein das du die Versionsnummer einer lokal
installierten Software durch den Aufruf einer Webseite raus finden
willst. Wie maximal Bescheuert ist denn so ein Vorgang bitte.

Ich hab mit Docker noch nichts am Hut gehabt, es war mir bisher immer
suspekt. Falls obiges da normal ist ändert das auch nichts daran. :-)

Es fällt mir nur auf das beide Angaben exakt die gleichen Ziffern in
Anzahl und menge enthalten - nur in anderer Sortierung.

Kay
--
Sent via SN (Eisfair-1)
Gregor Kofler
2018-10-14 18:15:11 UTC
Permalink
Post by Kay Martinen
Post by Gregor Kofler
Das Update-Skript von mailcow-dockerized enthält folgenden curl Aufruf
$ echo $(curl -#L https://www.servercow.de/docker-compose/latest.php)
(korrekt) 1.22.0
Das klappt am lokalen Rechner und auf einem meiner Server. Auf einem
zweiten Server liefert
$ echo $(curl -#L https://www.servercow.de/docker-compose/latest.php)
22.0.1
Was versteh ich da nicht?
Ich verstehe leider nicht mal WAS du da genau raus finden willst. Es
kann doch wohl nicht sein das du die Versionsnummer einer lokal
installierten Software durch den Aufruf einer Webseite raus finden
willst. Wie maximal Bescheuert ist denn so ein Vorgang bitte.
Es ist das Update-Skript von mailcow-dockerized. Per Website wird die
präferierte docker-compose Version angeführt und mit der lokal
installierten verglichen. Es gibt in weiterer Folge natürlich keine
Version 22.0.1 und das Update Skript endet in Hilflosigkeit.
Post by Kay Martinen
Ich hab mit Docker noch nichts am Hut gehabt, es war mir bisher immer
suspekt. Falls obiges da normal ist ändert das auch nichts daran. :-)
Das aber nix mit Docker zu tun.
Post by Kay Martinen
Es fällt mir nur auf das beide Angaben exakt die gleichen Ziffern in
Anzahl und menge enthalten - nur in anderer Sortierung.
Ja, das ist mir auch... aufgefallen.
Ich reformuliere meine Frage: Vorschläge, wo man nach einer Ursache
suchen kann? Vielleicht könnte das ja auch andernorts reinscheissen.

Gregor
n***@efbe.prima.de
2018-10-14 19:51:07 UTC
Permalink
Post by Gregor Kofler
Das Update-Skript von mailcow-dockerized enthält folgenden curl Aufruf
$ echo $(curl -#L https://www.servercow.de/docker-compose/latest.php)
(korrekt) 1.22.0
Das klappt am lokalen Rechner und auf einem meiner Server. Auf einem
zweiten Server liefert
$ echo $(curl -#L https://www.servercow.de/docker-compose/latest.php)
22.0.1
Was versteh ich da nicht?
Wenn ich verdrehte Werte sehe, kommt mir little / big endian in den
Sinn. Vielleicht auch eine Schnapsidee...

Frank
Arno Welzel
2018-10-14 22:25:17 UTC
Permalink
Post by n***@efbe.prima.de
Post by Gregor Kofler
Das Update-Skript von mailcow-dockerized enthält folgenden curl Aufruf
$ echo $(curl -#L https://www.servercow.de/docker-compose/latest.php)
(korrekt) 1.22.0
Das klappt am lokalen Rechner und auf einem meiner Server. Auf einem
zweiten Server liefert
$ echo $(curl -#L https://www.servercow.de/docker-compose/latest.php)
22.0.1
Was versteh ich da nicht?
Wenn ich verdrehte Werte sehe, kommt mir little / big endian in den
Sinn. Vielleicht auch eine Schnapsidee...
JFTR:

<https://www.servercow.de/docker-compose/latest.php> liefert hier auch

1.22.0

Warum es offenbar woanders auch mal "22.0.1" ausspuckt, ist mir auch
nicht bekannt. Vielleicht abhängig vom anfragenden User-Agent etc..
--
Arno Welzel
https://arnowelzel.de
Stefan Reuther
2018-10-15 17:14:36 UTC
Permalink
Hi,
Post by Gregor Kofler
Das klappt am lokalen Rechner und auf einem meiner Server. Auf einem
zweiten Server liefert
$ echo $(curl -#L https://www.servercow.de/docker-compose/latest.php)
22.0.1
Was liefert denn einfach nur

curl https://www.servercow.de/docker-compose/latest.php

ohne das überflüssige 'echo' drumherum? Und wozu gibst du die Optionen
an? '-L' ("follow redirects") könnte ich ja noch verstehen, aber '-#'
ist ziemlich überflüssig.

Bei mir kommt in allen Fällen '1.22.0' raus.

Ansonsten kannst du 'curl' mit '-vvv' dazu bewegen, mitzuprotokollieren,
was er als Anfrage an den Server sendet und als Antwort zurückbekommt.
Post by Gregor Kofler
$ wget https://www.servercow.de/docker-compose/latest.php
$ cat latest.php
liefert mir
22.0.1
Ich würde dann als erstes mal die Datei auf abgefahrene Unicode-Zeichen
untersuchen.

Bei mir ok:

$ od -tx1 latest.php
0000000 31 2e 32 32 2e 30
0000006


Stefan
Gregor Kofler
2018-10-16 08:21:12 UTC
Permalink
Am 2018-10-15 um 19:14 schrieb Stefan Reuther:> Hi,
Post by Stefan Reuther
Post by Gregor Kofler
Das klappt am lokalen Rechner und auf einem meiner Server. Auf einem
zweiten Server liefert
$ echo $(curl -#L https://www.servercow.de/docker-compose/latest.php)
22.0.1
Was liefert denn einfach nur
curl https://www.servercow.de/docker-compose/latest.php
22.0.1
Post by Stefan Reuther
ohne das überflüssige 'echo' drumherum? Und wozu gibst du die Optionen
an? '-L' ("follow redirects") könnte ich ja noch verstehen, aber '-#'
ist ziemlich überflüssig.
Rührt wohl aus der Verwendung innerhalb des Skripts her.
Post by Stefan Reuther
Bei mir kommt in allen Fällen '1.22.0' raus.
Ansonsten kannst du 'curl' mit '-vvv' dazu bewegen, mitzuprotokollieren,
was er als Anfrage an den Server sendet und als Antwort zurückbekommt.
* Trying 2a00:f820:417::4...
* TCP_NODELAY set
* Connected to www.servercow.de (2a00:f820:417::4) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
* CAfile: /etc/ssl/certs/ca-certificates.crt
CApath: /etc/ssl/certs
* TLSv1.2 (OUT), TLS handshake, Client hello (1):
* TLSv1.2 (IN), TLS handshake, Server hello (2):
* TLSv1.2 (IN), TLS handshake, Certificate (11):
* TLSv1.2 (IN), TLS handshake, Server key exchange (12):
* TLSv1.2 (IN), TLS handshake, Server finished (14):
* TLSv1.2 (OUT), TLS handshake, Client key exchange (16):
* TLSv1.2 (OUT), TLS change cipher, Client hello (1):
* TLSv1.2 (OUT), TLS handshake, Finished (20):
* TLSv1.2 (IN), TLS handshake, Finished (20):
* SSL connection using TLSv1.2 / ECDHE-RSA-AES256-GCM-SHA384
* ALPN, server did not agree to a protocol
* Server certificate:
* subject: OU=Domain Control Validated; OU=PositiveSSL Wildcard;
CN=*.servercow.de
* start date: Jun 23 00:00:00 2018 GMT
* expire date: Sep 24 23:59:59 2020 GMT
* subjectAltName: host "www.servercow.de" matched cert's "*.servercow.de"
* issuer: C=GB; ST=Greater Manchester; L=Salford; O=COMODO CA Limited;
CN=COMODO RSA Domain Validation Secure Server CA
* SSL certificate verify ok.> GET /docker-compose/latest.php HTTP/1.1
Post by Stefan Reuther
Host: www.servercow.de
User-Agent: curl/7.58.0
Accept: */*
< HTTP/1.1 200 OK
< Date: Tue, 16 Oct 2018 08:13:25 GMT
< Server: Apache
< Content-Length: 6
< Content-Type: text/html; charset=UTF-8
<
* Connection #0 to host www.servercow.de left intact
22.0.1

Zum Vergleich vom anderen Server:

* Trying 2a00:f820:417::4...
* TCP_NODELAY set
* Connected to www.servercow.de (2a00:f820:417::4) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
* CAfile: /etc/ssl/certs/ca-certificates.crt
CApath: /etc/ssl/certs
* TLSv1.2 (OUT), TLS handshake, Client hello (1):
* TLSv1.2 (IN), TLS handshake, Server hello (2):
* TLSv1.2 (IN), TLS handshake, Certificate (11):
* TLSv1.2 (IN), TLS handshake, Server key exchange (12):
* TLSv1.2 (IN), TLS handshake, Server finished (14):
* TLSv1.2 (OUT), TLS handshake, Client key exchange (16):
* TLSv1.2 (OUT), TLS change cipher, Client hello (1):
* TLSv1.2 (OUT), TLS handshake, Finished (20):
* TLSv1.2 (IN), TLS handshake, Finished (20):
* SSL connection using TLSv1.2 / ECDHE-RSA-AES256-GCM-SHA384
* ALPN, server did not agree to a protocol
* Server certificate:
* subject: OU=Domain Control Validated; OU=PositiveSSL Wildcard;
CN=*.servercow.de
* start date: Jun 23 00:00:00 2018 GMT
* expire date: Sep 24 23:59:59 2020 GMT
* subjectAltName: host "www.servercow.de" matched cert's "*.servercow.de"
* issuer: C=GB; ST=Greater Manchester; L=Salford; O=COMODO CA Limited;
CN=COMODO RSA Domain Validation Secure Server CA
* SSL certificate verify ok.> GET /docker-compose/latest.php HTTP/1.1
Post by Stefan Reuther
Host: www.servercow.de
User-Agent: curl/7.58.0
Accept: */*
< HTTP/1.1 200 OK
< Date: Tue, 16 Oct 2018 08:14:07 GMT
< Server: Apache
< Content-Length: 6
< Content-Type: text/html; charset=UTF-8
<
* Connection #0 to host www.servercow.de left intact
1.22.0
Post by Stefan Reuther
Post by Gregor Kofler
$ wget https://www.servercow.de/docker-compose/latest.php
$ cat latest.php
liefert mir
22.0.1
Ich würde dann als erstes mal die Datei auf abgefahrene Unicode-Zeichen
untersuchen.
$ od -tx1 latest.php
0000000 31 2e 32 32 2e 30
0000006
Content-Length ist 6, also werden sich da keine abgefahrenen
Unicode-Zeichen verstecken.

Sicherheitshalber:

0000000 32 32 2e 30 2e 31
0000006


Gregor
Gregor Kofler
2018-10-17 16:12:00 UTC
Permalink
Post by Gregor Kofler
Das Update-Skript von mailcow-dockerized enthält folgenden curl Aufruf
$ echo $(curl -#L https://www.servercow.de/docker-compose/latest.php)
was
(korrekt) 1.22.0
liefert.
Das klappt am lokalen Rechner und auf einem meiner Server. Auf einem
zweiten Server liefert
$ echo $(curl -#L https://www.servercow.de/docker-compose/latest.php)
22.0.1
Es handelt sich um identische Ubuntu 18.04er Installationen mit
identischem curl.
Gelöst:

"Your IP was in a range we used for managed setups where we return other
values for a dc wrapper. Strange."
Arno Welzel
2018-10-17 17:48:34 UTC
Permalink
Gregor Kofler:

[https://www.servercow.de/docker-compose/latest.php liefert manchmal
"22.0.1" statt "1.22.0"]
Post by Gregor Kofler
"Your IP was in a range we used for managed setups where we return other
values for a dc wrapper. Strange."
Danke für die Rückmeldung.
--
Arno Welzel
https://arnowelzel.de
Loading...