--- gnome-settings-daemon-2.30.1/plugins/media-keys/cut-n-paste/gvc-mixer-control.c.orig 2009-08-24 12:20:18.000000000 +0200 +++ gnome-settings-daemon-2.30.1/plugins/media-keys/cut-n-paste/gvc-mixer-control.c 2010-06-05 01:11:19.573632996 +0200 @@ -44,6 +44,7 @@ #define GVC_MIXER_CONTROL_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GVC_TYPE_MIXER_CONTROL, GvcMixerControlPrivate)) #define RECONNECT_DELAY 5 +#define RECONNECT_TRIES 12 enum { PROP_0, @@ -57,6 +58,7 @@ pa_context *pa_context; int n_outstanding; guint reconnect_id; + guint reconnect_nr; char *name; gboolean default_sink_is_set; @@ -1831,8 +1833,11 @@ case PA_CONTEXT_FAILED: g_warning ("Connection failed, reconnecting..."); - if (control->priv->reconnect_id == 0) + if ((control->priv->reconnect_id == 0) && (control->priv->reconnect_nr < RECONNECT_TRIES)) control->priv->reconnect_id = g_timeout_add_seconds (RECONNECT_DELAY, idle_reconnect, control); + else if (control->priv->reconnect_nr >= RECONNECT_TRIES) + g_warning ("Maximum reconnection retries reached."); + control->priv->reconnect_nr++; break; case PA_CONTEXT_TERMINATED: