FHEM Forum

FHEM - Hausautomations-Systeme => Unterstützende Dienste => Thema gestartet von: Christian. am 23 Juni 2019, 09:16:36

Titel: Feature-Request: Erweiterung von HttpUtils um Connect-Fehlercode
Beitrag von: Christian. am 23 Juni 2019, 09:16:36
Ich habe einen Erweiterungswunsch für das Modul HttpUtils.

Die Funktion HttpUtils_Connect2 implementiert den HTTP-Verbindungsaufbau. Wenn ein Fehler auftritt, wird die Fehlermeldung über strerror() vom System ermittelt und an den Aufrufer zurückgegeben. In meinem Szenario lautet die Fehlermeldung Keine Route zum Zielrechner. Da diese Meldung Sprach-abhängig ist, kann der Aufrufer nur schwer darauf reagieren.

Ich würde mir deshalb wünschen, dass der Parameter-Hash um einen Wert erweitert wird, der den Fehlercode enthält, zum Beispiel durch Ergänzung von
$hash->{errno} = $errno;
hinter Zeile 411 (https://svn.fhem.de/trac/browser/trunk/fhem/FHEM/HttpUtils.pm#L411).

Der Aufrufer könnte dann also je nach Fehlercode passend reagieren.
Titel: Antw:Feature-Request: Erweiterung von HttpUtils um Connect-Fehlercode
Beitrag von: rudolfkoenig am 23 Juni 2019, 09:34:18
Ich habe errno eingebaut, und auch die Meldung selbst mit errno erweitert.
Aber:
- diese Meldung kommt beim Schreiben der Daten, nachdem die Verbindung aufgebaut wurde. Wie kann in so einem Fall die Route verlorengegangen sein? Netzwerkschicht mit Alzheimer?
- errno gibt es nur in diesem Fall, was die Sinnhaftigkeit stark einschraenkt.
- wer auf einem Server etwas anderes als "LANG=C" setzt, ist selber Schuld. :)
Titel: Antw:Feature-Request: Erweiterung von HttpUtils um Connect-Fehlercode
Beitrag von: Christian. am 23 Juni 2019, 09:41:27
Danke!

Zitat von: rudolfkoenig am 23 Juni 2019, 09:34:18
diese Meldung kommt beim Schreiben der Daten, nachdem die Verbindung aufgebaut wurde.

Das verstehe ich nicht. Ich dachte, der Code-Zweig wird bei fehlgeschlagenem Verbindungsaufbau durchlaufen. Der Server läuft unter Raspbian Jessie ohne Besonderheiten in der Netzwerkkonfiguration.
Titel: Antw:Feature-Request: Erweiterung von HttpUtils um Connect-Fehlercode
Beitrag von: betateilchen am 23 Juni 2019, 09:42:19
Zitat von: rudolfkoenig am 23 Juni 2019, 09:34:18
- wer auf einem Server etwas anderes als "LANG=C" setzt, ist selber Schuld. :)

ich setze niemals "LANG=C" ...
Titel: Antw:Feature-Request: Erweiterung von HttpUtils um Connect-Fehlercode
Beitrag von: Loredo am 23 Juni 2019, 09:47:52
IMHO ist es Aufgabe des Programmierers LC_ALL=C zu setzen, wenn er/sie nicht mit mehreren Sprachen hantieren möchte oder kann. Dafür ist LC_ALL da.
Im Grunde ist es auch nichts weiter als ein



local $ENV{LC_ALL} = 'C' unless(defined($ENV{LC_ALL}));



Am Anfang des entsprechenden Codeblocks.