summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGluzskiy Alexandr <sss123next@list.ru>2009-11-22 17:28:10 +0200
committerGluzskiy Alexandr <sss123next@list.ru>2009-11-22 17:28:10 +0200
commit132a355be6cd9954ecd6124c54ab5fdb07e5e39b (patch)
tree0ef2d38fe178bbaffbe539f3a56816c64d5134a7
parent017ac163fcd197e9ab7b6116ac13fb96d61f01c3 (diff)
modified: watrack_mpd/main.c
-rwxr-xr-xwatrack_mpd/main.c35
1 files changed, 22 insertions, 13 deletions
diff --git a/watrack_mpd/main.c b/watrack_mpd/main.c
index b1639b7..a9d0b98 100755
--- a/watrack_mpd/main.c
+++ b/watrack_mpd/main.c
@@ -142,7 +142,7 @@ void RegisterPlayer()
CallService(MS_WAT_PLAYER, (WPARAM)WAT_ACT_REGISTER, (LPARAM)&player);
}
}
-
+void ReStart();
int Parser()
{
NETLIBPACKETRECVER nlpr = {0};
@@ -165,10 +165,11 @@ int Parser()
char tmp[128];
char *tmp2 = mir_t2a(gbPassword);
recvResult = CallService(MS_NETLIB_GETMOREPACKETS,(WPARAM)ghPacketReciever, (LPARAM)&nlpr);
- if(recvResult == 0)
- return 1;
- if (recvResult == SOCKET_ERROR)
+ if((recvResult == 0) || (recvResult == SOCKET_ERROR))
+ {
+ ReStart();
return 1;
+ }
if(strlen(tmp2) > 2)
{
strcpy(tmp, "password ");
@@ -176,25 +177,28 @@ int Parser()
strcat(tmp, "\n");
Netlib_Send(ghConnection, tmp, strlen(tmp), 0);
recvResult = CallService(MS_NETLIB_GETMOREPACKETS,(WPARAM)ghPacketReciever, (LPARAM)&nlpr);
- if(recvResult == 0)
- return 1;
- if (recvResult == SOCKET_ERROR)
+ if((recvResult == 0) || (recvResult == SOCKET_ERROR))
+ {
+ ReStart();
return 1;
+ }
}
mir_free(tmp2);
}
Netlib_Send(ghConnection, "status\n", strlen("status\n"), 0);
recvResult = CallService(MS_NETLIB_GETMOREPACKETS,(WPARAM)ghPacketReciever, (LPARAM)&nlpr);
- if(recvResult == 0)
- return 1;
- if (recvResult == SOCKET_ERROR)
+ if((recvResult == 0) || (recvResult == SOCKET_ERROR))
+ {
+ ReStart();
return 1;
+ }
Netlib_Send(ghConnection, "currentsong\n", strlen("currentsong\n"), 0);
recvResult = CallService(MS_NETLIB_GETMOREPACKETS,(WPARAM)ghPacketReciever, (LPARAM)&nlpr);
- if(recvResult == 0)
- return 1;
- if (recvResult == SOCKET_ERROR)
+ if((recvResult == 0) || (recvResult == SOCKET_ERROR))
+ {
+ ReStart();
return 1;
+ }
nlpr.bytesUsed = nlpr.bytesAvailable;
}
buf = nlpr.buffer;
@@ -368,4 +372,9 @@ void Stop()
if(ghNetlibUser && (ghNetlibUser != INVALID_HANDLE_VALUE))
CallService(MS_NETLIB_SHUTDOWN,(WPARAM)ghNetlibUser,0);
}
+void ReStart()
+{
+ Stop();
+ Start();
+}