Index: /trunk/BNC/bncnetqueryv1.cpp
===================================================================
--- /trunk/BNC/bncnetqueryv1.cpp	(revision 1592)
+++ /trunk/BNC/bncnetqueryv1.cpp	(revision 1593)
@@ -65,8 +65,12 @@
       }
       else if (!_socket->waitForReadyRead(_timeOut)) {
+        QString errStr = _socket->errorString();
+        if (errStr.isEmpty()) {
+          errStr = "Read timeout";
+	}
         delete _socket;
         _socket = 0;
         _status = error;
-        emit newMessage(_url.path().toAscii() + ": Read timeout", true);
+        emit newMessage(_url.path().toAscii() + ": " + errStr.toAscii(), true);
         return;
       }
@@ -158,39 +162,42 @@
   QStringList response;
   while (true) {
-    QByteArray line = this->readNextLine();
-    if (_status == error) {
-      break;
+    if (_socket->canReadLine()) {
+      QString line = _socket->readLine();
+
+      if (line.indexOf("ICY 200 OK") == -1 && 
+          line.indexOf("HTTP")       != -1 && 
+          line.indexOf("200 OK")     != -1 ) {
+        proxyResponse = true;
+      }
+
+      if (!proxyResponse && !line.trimmed().isEmpty()) {
+        response.push_back(line);
+      }
+
+      if (line.trimmed().isEmpty()) {
+        if (proxyResponse) {
+          proxyResponse = false;
+	}
+	else {
+          break;
+	}
+      }
+
+      if (line.indexOf("Unauthorized") != -1) {
+        break;
+      }
+
+      if (!proxyResponse                    &&
+          line.indexOf("200 OK")      != -1 &&
+          line.indexOf("SOURCETABLE") == -1) {
+        response.clear();
+      }
     }
-
-    if (line.indexOf("ICY 200 OK") == -1 && 
-        line.indexOf("HTTP")       != -1 && 
-        line.indexOf("200 OK")     != -1 ) {
-      proxyResponse = true;
-    }
-
-    cout << proxyResponse << ": " << line.data(); cout.flush();
-
-    if (!proxyResponse && !line.trimmed().isEmpty()) {
-      response.push_back(line);
-    }
-
-    if (line.indexOf("Unauthorized") != -1) {
-      break;
-    }
-
-    if (line.trimmed().isEmpty()) {
-      if (proxyResponse) {
-        proxyResponse = false;
-    	}
-    	else {
-        break;
-    	}
-    }
-
-    if (!proxyResponse                    &&
-        line.indexOf("200 OK")      != -1 &&
-        line.indexOf("SOURCETABLE") == -1) {
-      response.clear();
-      break;
+    else if (!_socket->waitForReadyRead(_timeOut)) {
+      delete _socket;
+      _socket = 0;
+      _status = error;
+      emit newMessage(_url.path().toAscii() + ": Response timeout", true);
+      return;
     }
   }
@@ -204,30 +211,2 @@
 }
 
-// 
-////////////////////////////////////////////////////////////////////////////
-QByteArray bncNetQueryV1::readNextLine() {
-  QByteArray buffer;
-  char ch1 = ' ';
-  while (true) {
-    if (_socket->bytesAvailable()) {
-      char ch2;
-      _socket->read(&ch2, 1);
-      if (ch2 != '\r') {
-        buffer += ch2;
-      }
-      if ( (ch2 == '\n' && ch1 == '\r') ||
-           (ch2 == '\r' && ch1 == '\n') ) {
-        return buffer;
-      }
-      ch1 = ch2;
-    }
-    else if (!_socket->waitForReadyRead(_timeOut)) {
-      delete _socket;
-      _socket = 0;
-      _status = error;
-      emit newMessage(_url.path().toAscii() + ": Response timeout", true);
-      return "";
-    }
-  }
-}
-
Index: /trunk/BNC/bncnetqueryv1.h
===================================================================
--- /trunk/BNC/bncnetqueryv1.h	(revision 1592)
+++ /trunk/BNC/bncnetqueryv1.h	(revision 1593)
@@ -15,5 +15,4 @@
 
  private:
-  QByteArray readNextLine();
   QTcpSocket* _socket;
 };
