From 132a355be6cd9954ecd6124c54ab5fdb07e5e39b Mon Sep 17 00:00:00 2001 From: Gluzskiy Alexandr Date: Sun, 22 Nov 2009 17:28:10 +0200 Subject: modified: watrack_mpd/main.c --- watrack_mpd/main.c | 35 ++++++++++++++++++++++------------- 1 file changed, 22 insertions(+), 13 deletions(-) (limited to 'watrack_mpd/main.c') 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(); +} -- cgit v1.2.3