Changeset 1426 in ntrip for trunk/BNC/GPSS


Ignore:
Timestamp:
Jan 2, 2009, 5:57:41 PM (16 years ago)
Author:
mervart
Message:

* empty log message *

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/BNC/GPSS/gpssDecoder.cpp

    r1425 r1426  
    6262
    6363    if      (_mode == MODE_SEARCH) {
    64       if (_buffer.size() < 1) return success;
     64      if (_buffer.size() < 1) {
     65        _mode = MODE_SEARCH;
     66        return success;
     67      }
    6568      if (_buffer[0] == 0x02) {
    6669        _mode = MODE_TYPE;
     
    7073
    7174    else if (_mode == MODE_TYPE) {
    72       if (_buffer.size() < 1) return success;
     75      if (_buffer.size() < 1) {
     76        _mode = MODE_SEARCH;
     77        return success;
     78      }
    7379      if        (_buffer[0] == 0x00) {
    7480        _mode = MODE_EPOCH;
     
    8490    else if (_mode == MODE_EPOCH || _mode == MODE_EPH) {
    8591      int recordSize;
    86       if (_buffer.size() < sizeof(recordSize)) return success;
     92      if (_buffer.size() < sizeof(recordSize)) {
     93        _mode = MODE_SEARCH;
     94        return success;
     95      }
    8796      memcpy(&recordSize, _buffer.data(), sizeof(recordSize));
    8897      if (_mode == MODE_EPOCH) {
     
    97106    else if (_mode == MODE_EPOCH_BODY) {
    98107      EPOCHHEADER epochHdr;
    99       if (_buffer.size() < sizeof(epochHdr)) return success;   
     108      if (_buffer.size() < sizeof(epochHdr)) {
     109        _mode = MODE_SEARCH;
     110        return success;   
     111      }
    100112      memcpy(&epochHdr, _buffer.data(), sizeof(epochHdr));
    101113      _buffer.erase(0,sizeof(epochHdr));
    102114      for (int is = 1; is <= epochHdr.n_svs; is++) {
    103         if (_buffer.size() < sizeof(t_obsInternal)) return success;
     115        if (_buffer.size() < sizeof(t_obsInternal)) {
     116          _mode = MODE_SEARCH;
     117          return success;
     118        }
    104119        t_obs* obs = new t_obs();
    105120        memcpy(&(obs->_o), _buffer.data(), sizeof(t_obsInternal));
     
    111126
    112127    else if (_mode == MODE_EPH_BODY) {
    113       if (_buffer.size() < sizeof(gpsephemeris)) return success;
     128      if (_buffer.size() < sizeof(gpsephemeris)) {
     129        _mode = MODE_SEARCH;
     130        return success;
     131      }
    114132      gpsephemeris* gpsEph = new gpsephemeris;
    115133      memcpy(gpsEph, _buffer.data(), sizeof(gpsephemeris));
     
    120138
    121139    else {
    122       if (_buffer.size() < 1) return success;
     140      if (_buffer.size() < 1) {
     141        _mode = MODE_SEARCH;
     142        return success;
     143      }
    123144      _buffer.erase(0,1);
    124145      _mode = MODE_SEARCH;
Note: See TracChangeset for help on using the changeset viewer.