Index: trunk/BNC/src/upload/bncrtnetuploadcaster.cpp
===================================================================
--- trunk/BNC/src/upload/bncrtnetuploadcaster.cpp	(revision 10599)
+++ trunk/BNC/src/upload/bncrtnetuploadcaster.cpp	(revision 10615)
@@ -295,60 +295,34 @@
   // Select buffer part that contains last epoch
   // -------------------------------------------
-
-  // Find the begin of last epoch
-  int iEpoBeg = _rtnetStreamBuffer.lastIndexOf('*');
+  QStringList lines;
+  int iEpoBeg = _rtnetStreamBuffer.lastIndexOf('*');   // begin of last epoch
   if (iEpoBeg == -1) {
     _rtnetStreamBuffer.clear();
-    emit(newMessage(QString("bncRtnetUploadCaster: no Epoch line found: %1").arg(_casterID).toLatin1(), false));
     return;
   }
-
-  // Find the begin of the first epoch
-  int iEpoBegEarlier = _rtnetStreamBuffer.indexOf('*');
-  if (iEpoBegEarlier != -1 && iEpoBegEarlier < iEpoBeg) {
-    _rtnetStreamBuffer = _rtnetStreamBuffer.mid(iEpoBegEarlier);
+  _rtnetStreamBuffer = _rtnetStreamBuffer.mid(iEpoBeg);
+
+  int iEpoEnd = _rtnetStreamBuffer.lastIndexOf("EOE"); // end   of last epoch
+  if (iEpoEnd == -1) {
+    return;
   }
   else {
-    _rtnetStreamBuffer = _rtnetStreamBuffer.mid(iEpoBeg);
-  }
-
-  // Find End of the last epoch
-  int iEpoEnd = _rtnetStreamBuffer.lastIndexOf("EOE");
-  if (iEpoEnd == -1) {
-    _rtnetStreamBuffer.clear();
-    emit(newMessage(QString("bncRtnetUploadCaster: no EOE found: %1").arg(_casterID).toLatin1(), false));
+    lines = _rtnetStreamBuffer.left(iEpoEnd).split('\n', Qt::SkipEmptyParts);
+    _rtnetStreamBuffer = _rtnetStreamBuffer.mid(iEpoEnd+3);
+  }
+
+  if (lines.size() < 2) {
+      emit(newMessage(
+            "bncRtnetUploadCaster: less than 2 lines to decode " + _casterID.toLatin1(), false));
     return;
   }
 
-  QStringList lines;
-  // If there is there more than 1 epoch line in the buffer
-  while (_rtnetStreamBuffer.count('*') > 1) {
-    emit(newMessage(QString("bncRtnetUploadCaster: more than 1 epoch in buffer: %1").arg(_rtnetStreamBuffer.count('*')).toLatin1(), false));
-    QString rtnetStreamBuffer = _rtnetStreamBuffer;
-    int nextEpoch    = rtnetStreamBuffer.indexOf('*');
-    int nextEpochEnd = rtnetStreamBuffer.indexOf("EOE");
-    _rtnetStreamBuffer = _rtnetStreamBuffer.mid(1);
-    if      (nextEpoch != -1 && nextEpoch < iEpoEnd) {
-      rtnetStreamBuffer = rtnetStreamBuffer.mid(nextEpoch, nextEpochEnd);
-      lines = rtnetStreamBuffer.split('\n', Qt::SkipEmptyParts);
-      if (lines.size() > 2) {
-        decodeRtnetEpoch(lines);
-      }
-      nextEpochEnd = _rtnetStreamBuffer.indexOf("EOE");
-      _rtnetStreamBuffer = _rtnetStreamBuffer.mid(nextEpochEnd+3);
-    }
-    else if (nextEpoch != -1 && nextEpoch >= iEpoEnd) {
-      break;
-    }
-  }
-
-  lines = _rtnetStreamBuffer.left(iEpoEnd).split('\n', Qt::SkipEmptyParts);
-
-  _rtnetStreamBuffer = _rtnetStreamBuffer.mid(iEpoEnd + 3);
-
-  if (lines.size() < 2) {
-    emit(newMessage(QString("bncRtnetUploadCaster: less than 2 lines to decode : %1").arg(_casterID).toLatin1(), false));
-    return;
-  }
+  // Keep the last unfinished line in buffer
+  // ---------------------------------------
+  int iLastEOL = _rtnetStreamBuffer.lastIndexOf('\n');
+  if (iLastEOL != -1) {
+    _rtnetStreamBuffer = _rtnetStreamBuffer.mid(iLastEOL+1);
+  }
+
   decodeRtnetEpoch(lines);
 }
@@ -366,5 +340,5 @@
   in >> hlp >> year >> month >> day >> hour >> min >> sec;
   bncTime epoTime;
-  epoTime.set(year, month, day, hour, min, sec);
+  epoTime.set(year, month, day, hour, min, sec);cout <<  epoTime.timestr().c_str() << endl;
 
   emit(newMessage(
