FHEM Forum

FHEM => Automatisierung => Thema gestartet von: Sidey am 28 März 2020, 01:36:37

Titel: httputils redirect patch
Beitrag von: Sidey am 28 März 2020, 01:36:37
Hallo Rudi,

ich habe eine kleine Korrektur für das HttpUtils Modul, da die Auswertung der Redirects nicht ganz RFC Konform war.
Leider wurde ein kleingeschriebenes "location:" Header Feld ignoriert. Das kommt aber leider doch vor, dass Header auch mal mit kleinen Buchstaben beginnen.

Da ich die Spezifikation der Header Felder ein wenig genauer studiert habe, wurde die Regex ebenfalls angepasst um Leerzeichen am Ende zu ignorieren.

header-field   = field-name ":" OWS field-value OWS

Den Namen des Headers, habe ich mit ^ nach dem Beginn suchen lassen, damit nicht Content-Location oder sonstige Header in denen Location vorkommt ausgewertet werden. Leereichen sind laut Spezifikation keine erlaubt vor dem Header Namen.

Ich hätte das map fast noch auf grep umgestellt, aber das hat nichts mit dem gefundenen Problem zu tun.

Als Referenz hier noch die Logeinträge, in denen nachvollziehbar ist, dass der Redirect nicht korrekt ausgewertet wird und wir dann auch an der falschen URL landen:

2020.03.28 00:07:54.730 4: HttpUtils https://github.com/RFD-FHEM/SIGNALDuino/releases/download/3.3.1/SIGNALDuino_ESP8266cc11013.3.1.hex: Redirect to https://github.com:443/
2020.03.28 00:07:54.729 1:     main::__ANON__                      called by fhem.pl (754)
2020.03.28 00:07:54.729 1:     main::HttpUtils_ParseAnswer         called by FHEM/HttpUtils.pm (633)
2020.03.28 00:07:54.729 1:     main::__ANON__                      called by FHEM/HttpUtils.pm (867)
2020.03.28 00:07:54.728 1: stacktrace:
2020.03.28 00:07:54.728 1: PERL WARNING: Use of uninitialized value $ra in concatenation (.) or string at FHEM/HttpUtils.pm line 867.
2020.03.28 00:07:54.727 1:     main::__ANON__                      called by fhem.pl (754)
2020.03.28 00:07:54.727 1:     main::HttpUtils_ParseAnswer         called by FHEM/HttpUtils.pm (633)
2020.03.28 00:07:54.726 1:     main::__ANON__                      called by FHEM/HttpUtils.pm (867)
2020.03.28 00:07:54.726 1: stacktrace:
2020.03.28 00:07:54.726 1: PERL WARNING: Use of uninitialized value $ra in pattern match (m//) at FHEM/HttpUtils.pm line 867.
2020.03.28 00:07:54.725 1:     main::__ANON__                      called by fhem.pl (754)
2020.03.28 00:07:54.725 1:     main::HttpUtils_ParseAnswer         called by FHEM/HttpUtils.pm (633)
2020.03.28 00:07:54.724 1:     main::__ANON__                      called by FHEM/HttpUtils.pm (867)
2020.03.28 00:07:54.724 1: stacktrace:
2020.03.28 00:07:54.723 1: PERL WARNING: Use of uninitialized value $ra in pattern match (m//) at FHEM/HttpUtils.pm line 867.
2020.03.28 00:07:54.722 4: https://github.com/RFD-FHEM/SIGNALDuino/releases/download/3.3.1/SIGNALDuino_ESP8266cc11013.3.1.hex: HTTP response code 302


Grüße Sidey

Titel: Antw:httputils redirect patch
Beitrag von: rudolfkoenig am 28 März 2020, 08:17:41
Zitatich habe eine kleine Korrektur für das HttpUtils Modul, da die Auswertung der Redirects nicht ganz RFC Konform war.
Na dann zeig das auch, dein angehaengter Patch ist was ganz Anderes :)
Ich habe aus deiner Beschreibung was zusammengebastelt, vlt. ist das ausreichend.
Titel: Antw:httputils redirect patch
Beitrag von: Sidey am 28 März 2020, 08:53:18
Moin,

war schon spät, da bin ich doch verrutscht und hab es auch nicht bemerkt.

Anhang ist im 1. Post korrigiert.

Grüße Sidey
Titel: Antw:httputils redirect patch
Beitrag von: rudolfkoenig am 28 März 2020, 09:56:56
Danke, entspricht meiner Variante.