Changeset 138 in ntrip for trunk/BNC/bncgetthread.cpp


Ignore:
Timestamp:
Sep 8, 2006, 10:09:25 AM (18 years ago)
Author:
mervart
Message:

* empty log message *

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/BNC/bncgetthread.cpp

    r136 r138  
    3737  _socket     = 0;
    3838  _timeOut    = 10*1000;  // 10 seconds
     39  _nextSleep  =  1;       //  1 second
    3940}
    4041
     
    102103// Init Run
    103104////////////////////////////////////////////////////////////////////////////
    104 void bncGetThread::initRun() {
     105t_irc bncGetThread::initRun() {
    105106
    106107  // Send the Request
     
    113114
    114115  if (!_socket) {
    115     return exit(1);
     116    return failure;
    116117  }
    117118
     
    123124    if (line.indexOf("ICY 200 OK") != 0) {
    124125      emit(newMessage(("Wrong Caster Response:\n" + line).toAscii()));
    125       return exit(1);
     126      exit(1);
    126127    }
    127128  }
    128129  else {
    129130    emit(newMessage("Response Timeout"));
    130     return exit(1);
     131    return failure;
    131132  }
    132133
     
    148149    else {
    149150      emit(newMessage(_staID + " Unknown data format " + _format));
    150       return exit(1);
    151     }
    152   }
     151      exit(1);
     152    }
     153  }
     154  return success;
    153155}
    154156
     
    157159void bncGetThread::run() {
    158160
    159   initRun();
     161  if ( initRun() != success ) {
     162    emit(newMessage("initRun failed, reconnecting"));
     163    tryReconnect();
     164  }
    160165
    161166  // Read Incoming Data
     
    194199////////////////////////////////////////////////////////////////////////////
    195200void bncGetThread::tryReconnect() {
    196 
    197 }
     201  while (1) {
     202    delete _socket; _socket = 0;
     203    sleep(_nextSleep);
     204    if ( initRun() == success ) {
     205      break;
     206    }
     207    else {
     208      _nextSleep *= 2;
     209    }
     210  }
     211  _nextSleep = 1;
     212}
Note: See TracChangeset for help on using the changeset viewer.