More logging for TelldusService debug, ticket #266, 266-1.

This commit is contained in:
Stefan Persson 2012-12-04 11:34:06 +01:00
parent 7ee8407922
commit df6bd27883
4 changed files with 19 additions and 9 deletions

View file

@ -108,14 +108,14 @@ void CallbackMainDispatcher::run(){
}
//logga här, att den fortfarande körs, ev till fil bara för att det kan bli så mkt...
//om för mkt, kolla att viss tid gått sedan förra ggn eller ngt...
debuglog(333, "Callbackevent, signalled");
//debuglog(333, "Callbackevent, signalled");
TelldusCore::MutexLocker locker(&d->mutex);
//logga, har låst
debuglog(333, "Callbackevent, locked");
//debuglog(333, "Callbackevent, locked");
for(CallbackList::iterator callback_it = d->callbackList.begin(); callback_it != d->callbackList.end(); ++callback_it) {
if ( (*callback_it)->type == cbd->type ) {
//ev logga här också, att det finns ngnstans att skicka till
debuglog((*callback_it)->id, "Callbackevent, sending");
//debuglog((*callback_it)->id, "Callbackevent, sending");
std::tr1::shared_ptr<TelldusCore::TDEventDispatcher> ptr(new TelldusCore::TDEventDispatcher(eventData, *callback_it, d->janitor));
d->eventThreadList.push_back(ptr);
}

View file

@ -154,20 +154,23 @@ std::wstring Client::sendToService(const Message &msg) {
if(tries == 20){
TelldusCore::Message msg;
msg.addArgument(TELLSTICK_ERROR_CONNECTING_SERVICE);
debuglog(555, "Connection failed, 20 retries, giving up.");
return msg;
}
Socket s;
s.connect(L"TelldusClient");
if (!s.isConnected()) { //Connection failed
debuglog(555, "Connection failed");
msleep(500);
continue; //retry
}
s.write(msg.data());
if (!s.isConnected()) { //Connection failed sometime during operation... (better check here, instead of 5 seconds timeout later)
msleep(500);
debuglog(555, "Error in write, should retry");
continue; //retry
}
readData = s.read(8000); //TODO changed to 10000 from 5000, how much does this do...?
readData = s.read(1000); //TODO changed to 10000 from 5000, how much does this do...?
if(readData == L""){
msleep(500);
continue; //TODO can we be really sure it SHOULD be anything?

View file

@ -120,6 +120,7 @@ std::wstring Socket::read(int timeout){
if (!fSuccess) {
DWORD err = GetLastError();
debuglog((int)err, "Something read error");
if(err != ERROR_OPERATION_ABORTED){ //gets this "error" always when nothing was reads
debuglog((int)err, "Socket read error");
}
@ -131,7 +132,7 @@ std::wstring Socket::read(int timeout){
buf[0] = 0;
}
if (err == ERROR_BROKEN_PIPE){
debuglog(222, "Got an error, close this socket");
debuglog((int)err, "Got an error, close this socket");
d->connected = false;
break; //TODO is this correct?
}
@ -158,7 +159,7 @@ void Socket::write(const std::wstring &msg){
BOOL writeSuccess = WriteFile(d->hPipe, msg.data(), (DWORD)msg.length()*sizeof(wchar_t), &bytesWritten, &oOverlap);
result = GetLastError();
if (writeSuccess || result == ERROR_IO_PENDING) {
result = WaitForSingleObject(writeEvent, 500);
result = WaitForSingleObject(writeEvent, 30000);
if (result == WAIT_TIMEOUT) {
CancelIo(d->hPipe);
WaitForSingleObject(oOverlap.hEvent, INFINITE);
@ -169,12 +170,18 @@ void Socket::write(const std::wstring &msg){
return;
}
fSuccess = GetOverlappedResult(d->hPipe, &oOverlap, &bytesWritten, TRUE);
if (!fSuccess){
debuglog(result, "Error in GetOverlappedResult");
result = GetLastError();
debuglog(result, "Error in GetOverlappedResult, this message");
}
}
CloseHandle(writeEvent);
if (!fSuccess) {
CloseHandle(d->hPipe);
d->hPipe = 0;
debuglog(result, "Error in write event, closing socket");
d->connected = false;
return;
}

View file

@ -130,7 +130,7 @@ void EventUpdateManager::sendMessageToClients(EventUpdateData *data){
}
}
//printf("Sent message to %d connected clients", connected)
std::stringstream strMessage;
strMessage << "Sent message to " << connected << " clients" << std::endl;
debuglogservice(0, strMessage.str());
//std::stringstream strMessage;
//strMessage << "Sent message to " << connected << " clients" << std::endl;
//debuglogservice(0, strMessage.str());
}