[vz-dev] vz absturz bei defekter SML Message (patch)

Thorben Thuermer r00t at constancy.org
Mon Apr 8 12:31:39 CEST 2013


On Mon, 8 Apr 2013 12:23:00 +0200
Thorben Thuermer <r00t at constancy.org> wrote:
> On Mon, 08 Apr 2013 11:51:37 +0200
> Peter Evertz <leo2 at pec.homeip.net> wrote:
> > Ich habe einen kleinen Fehler im vzlogger gefunden: Manchmal sind die 
> > SML Messages kaputt und sml_transport_read liefert 0.
> 
> das gleiche htte ich schonmal in der C-version gefixt...
> http://volkszaehler.org/pipermail/volkszaehler-dev/2012-October/002044.html

korrektur:
hatte es _gefunden_, ist wohl aktuell auch in der c-version kein fix drin.

> damals war mir die C++-version noch weitgehend unbekannt,
> und ich hatte das deswegen leider nicht portiert.
> 
> beachte, dass bytes nicht nur > 0, sondern >16 sein muss, wegen der
> verwendung von "bytes - 16" weiter unten.
> 
> am besten schickst du einen pull-request auf github, dann kann justin das
> mergen ohne einen texteditor benutzen zu muessen ;)
> (und am besten sowohl fuer das repostitory von volkszaehler als auch das von
>  mysmartgrid. bis endlich mal geklaert ist welches das einzig wahre ist ;) )
> ansonsten kann ich das auch erledigen.
> 
> - Thorben
> 
> > --- a/src/protocols/MeterSML.cpp
> > +++ b/src/protocols/MeterSML.cpp
> > @@ -152,6 +152,7 @@ ssize_t MeterSML::read(std::vector<Reading> &rds, 
> > size_t n)
> > 
> >          /* wait until a we receive a new datagram from the meter 
> > (blocking read)
> >          bytes = sml_transport_read(_fd, buffer, SML_BUFFER_LEN);
> > +       if(bytes == 0 ) return 0;
> > 
> >          /* parse SML file & stripping escape sequences */
> >          file = sml_file_parse(buffer + 8, bytes - 16);


More information about the volkszaehler-dev mailing list