httputils redirect patch

Begonnen von Sidey, 28 März 2020, 01:36:37

Vorheriges Thema - Nächstes Thema

Sidey

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

Signalduino, Homematic, Raspberry Pi, Mysensors, MQTT, Alexa, Docker, AlexaFhem,zigbee2mqtt

Maintainer von: SIGNALduino, fhem-docker, alexa-fhem-docker, fhempy-docker

rudolfkoenig

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.

Sidey

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
Signalduino, Homematic, Raspberry Pi, Mysensors, MQTT, Alexa, Docker, AlexaFhem,zigbee2mqtt

Maintainer von: SIGNALduino, fhem-docker, alexa-fhem-docker, fhempy-docker

rudolfkoenig

Danke, entspricht meiner Variante.