[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