|
From: <mla...@us...> - 2008-01-24 04:01:42
|
Revision: 448
http://g15daemon.svn.sourceforge.net/g15daemon/?rev=448&view=rev
Author: mlampard
Date: 2008-01-23 20:01:44 -0800 (Wed, 23 Jan 2008)
Log Message:
-----------
g15mpd: fix segfault when exiting due to unavailability of MPD server.
Modified Paths:
--------------
trunk/g15daemon-audio-plugins/g15mpd/ChangeLog
trunk/g15daemon-audio-plugins/g15mpd/g15mpd.c
Modified: trunk/g15daemon-audio-plugins/g15mpd/ChangeLog
===================================================================
--- trunk/g15daemon-audio-plugins/g15mpd/ChangeLog 2008-01-23 11:05:31 UTC (rev 447)
+++ trunk/g15daemon-audio-plugins/g15mpd/ChangeLog 2008-01-24 04:01:44 UTC (rev 448)
@@ -15,3 +15,4 @@
through playlist if --quickscroll option is used, otherwise uses prev/next
keys.
- Only respond to mmedia keys if the display is in the foreground.
+- Fix segfault when exiting due to unavailability of MPD server.
Modified: trunk/g15daemon-audio-plugins/g15mpd/g15mpd.c
===================================================================
--- trunk/g15daemon-audio-plugins/g15mpd/g15mpd.c 2008-01-23 11:05:31 UTC (rev 447)
+++ trunk/g15daemon-audio-plugins/g15mpd/g15mpd.c 2008-01-24 04:01:44 UTC (rev 448)
@@ -653,7 +653,7 @@
/* Set timeout */
mpd_set_connection_timeout(obj, 10);
- if(!mpd_connect(obj))
+ if(0==mpd_connect(obj))
{
char buffer[20];
pthread_attr_t attr;
@@ -707,8 +707,14 @@
pthread_mutex_unlock(&daemon_mutex);
}while(!usleep(5000) && !leaving);
- }
- mpd_free(obj);
+ leaving = 1;
+ pthread_join(Lkeys,NULL);
+ pthread_join(g15display,NULL);
+ }else
+ printf("Unable to connect to MPD server. Exiting\n");
+
+ if(obj)
+ mpd_free(obj);
close(fdstdin);
if(canvas!=NULL)
@@ -716,9 +722,6 @@
close(g15screen_fd);
close(mmedia_fd);
- leaving = 1;
- pthread_join(Lkeys,NULL);
- pthread_join(g15display,NULL);
pthread_mutex_destroy(&lockit);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|