Ejemplo n.º 1
0
/*
 * Send ssdp:alive message for @resource
 */
static void
resource_alive (Resource *resource)
{
        GSSDPResourceGroupPrivate *priv;
        GSSDPClient *client;
        guint max_age;
        char *al, *message;
        const char *group;
        char *dest;

        priv = gssdp_resource_group_get_instance_private
                                        (resource->resource_group);

        /* Send initial byebye if not sent already */
        send_initial_resource_byebye (resource);

        /* Send message */
        client = priv->client;

        max_age = priv->max_age;

        al = construct_al (resource);

        /* FIXME: UGLY V6 stuff */
        group = _gssdp_client_get_mcast_group (client);
        if (strchr (group, ':') != NULL)
                dest = g_strdup_printf ("[%s]", group);
        else
                dest = g_strdup (group);

        message = g_strdup_printf (SSDP_ALIVE_MESSAGE,
                                   dest,
                                   max_age,
                                   (char *) resource->locations->data,
                                   al ? al : "",
                                   gssdp_client_get_server_id (client),
                                   resource->target,
                                   resource->usn);

        queue_message (resource->resource_group, message);

        g_free (dest);
        g_free (al);
}
/*
 * Send ssdp:alive message for @resource
 */
static void
resource_alive (Resource *resource)
{
	LOGD("resource_alive");
	LOGD("resource_alive");
	LOGD("resource_alive");

        GSSDPClient *client;
        guint max_age;
        char *al, *message;

        /* Send initial byebye if not sent already */
        send_initial_resource_byebye (resource);

	LOGD("send_initial_resource_byebye");
	LOGD("send_initial_resource_byebye");
	LOGD("send_initial_resource_byebye");

        /* Send message */
        client = resource->resource_group->priv->client;

        max_age = resource->resource_group->priv->max_age;

        al = construct_al (resource);

        message = g_strdup_printf (SSDP_ALIVE_MESSAGE,
                                   max_age,
                                   (char *) resource->locations->data,
                                   al ? al : "",
                                   gssdp_client_get_server_id (client),
                                   resource->target,
                                   resource->usn);

        queue_message (resource->resource_group, message);

        g_free (al);
}