~ubuntu-branches/ubuntu/lucid/vino/lucid

« back to all changes in this revision

Viewing changes to server/vino-mdns.c

  • Committer: Bazaar Package Importer
  • Author(s): Sebastian Dröge
  • Date: 2008-05-27 09:06:36 UTC
  • mfrom: (1.1.21 upstream) (2.1.31 hardy)
  • Revision ID: james.westby@ubuntu.com-20080527090636-lg1whxlkub1wtsw7
Tags: 2.22.2-1
New upstream bugfix release.

Show diffs side-by-side

added added

removed removed

Lines of Context:
68
68
           * translated "vino-mdns:showusername" to anything
69
69
           * other than "1"
70
70
           */
71
 
          mdns_service_name = g_strdup_printf (_("%s's remote desktop"),
72
 
                                               g_get_user_name ());  
 
71
          mdns_service_name = g_strdup_printf (_("%s's remote desktop on %s"),
 
72
                                               g_get_user_name (),
 
73
                                               g_get_host_name ());  
73
74
        }
74
75
    }
75
76
 
182
183
    }
183
184
}
184
185
 
 
186
void
 
187
vino_mdns_restart (void)
 
188
{
 
189
  if (mdns_service_name != NULL)
 
190
    g_free (mdns_service_name);
 
191
  mdns_service_name = NULL;
 
192
 
 
193
  if (mdns_entry_group != NULL)
 
194
    avahi_entry_group_free (mdns_entry_group);
 
195
  mdns_entry_group = NULL;
 
196
 
 
197
  if (mdns_client != NULL)
 
198
    avahi_client_free (mdns_client);
 
199
  mdns_client = NULL;
 
200
 
 
201
  vino_mdns_start ();
 
202
}
 
203
 
185
204
static void
186
205
vino_mdns_client_state_changed (AvahiClient      *client,
187
206
                                AvahiClientState  state,
199
218
      break;
200
219
 
201
220
    case AVAHI_CLIENT_FAILURE:
202
 
      /* 
203
 
       * FIXME: handle disconnection better
204
 
       */
205
 
      dprintf (MDNS, "Connection with Avahi daemon terminated.\n");
 
221
      if (avahi_client_errno(client) == AVAHI_ERR_DISCONNECTED)
 
222
        {
 
223
          dprintf (MDNS, "Connection with Avahi daemon terminated, trying to reconnect.\n");
 
224
          vino_mdns_restart ();
 
225
        }
 
226
      else
 
227
        {
 
228
          dprintf (MDNS, "Client failure, exiting: %s\n",
 
229
                          avahi_strerror (
 
230
                              avahi_client_errno (client)));
 
231
          vino_mdns_stop ();
 
232
        }
206
233
      break;
207
234
 
208
235
    case AVAHI_CLIENT_CONNECTING:
 
236
      dprintf (MDNS, "Client waiting for the Avahi daemon\n");
 
237
      break;
 
238
 
209
239
    case AVAHI_CLIENT_S_REGISTERING:
 
240
      dprintf (MDNS, "Client registering\n");
210
241
      break;
211
242
 
212
243
    default:
243
274
  if (mdns_services == NULL)
244
275
    return; /* no services */
245
276
 
246
 
  avahi_set_allocator (avahi_glib_allocator ());
 
277
  if (mdns_glib_poll == NULL)
 
278
    {
 
279
      avahi_set_allocator (avahi_glib_allocator ());
 
280
      
 
281
      mdns_glib_poll = avahi_glib_poll_new (NULL, G_PRIORITY_DEFAULT);
 
282
    }
247
283
 
248
 
  mdns_glib_poll = avahi_glib_poll_new (NULL, G_PRIORITY_DEFAULT);
249
 
  
250
284
  mdns_client = avahi_client_new (avahi_glib_poll_get (mdns_glib_poll),
251
285
                                  AVAHI_CLIENT_NO_FAIL,
252
286
                                  vino_mdns_client_state_changed,
254
288
                                  NULL);
255
289
  if (mdns_client == NULL)
256
290
    {
257
 
      dprintf (MDNS, "Failed to create AvahiClient.\n");
 
291
      dprintf (MDNS, "Failed to create Avahi Client.\n");
258
292
      vino_mdns_stop ();
259
293
      return;
260
294
    }
279
313
    avahi_glib_poll_free (mdns_glib_poll);
280
314
  mdns_glib_poll = NULL;
281
315
 
 
316
}
 
317
 
 
318
void
 
319
vino_mdns_shutdown (void)
 
320
{
 
321
  vino_mdns_stop ();
 
322
 
282
323
  if (mdns_services != NULL)
283
324
    g_hash_table_destroy (mdns_services);
 
325
 
284
326
  mdns_services = NULL;
285
327
}
286
328
 
302
344
{
303
345
}
304
346
 
 
347
void
 
348
vino_mdns_shutdown (void)
 
349
{
 
350
}
 
351
 
305
352
#endif /* VINO_HAVE_AVAHI */