- }
-
- p_sap_session->psz_sdp = strdup( p_session->psz_sdp );
- p_sap_session->i_last = 0;
-
- psz_head[ i_header_size-1 ] = '\0';
- p_sap_session->i_length = i_header_size + strlen( p_sap_session->psz_sdp);
-
- p_sap_session->psz_data = (uint8_t *)malloc( sizeof(char)*
- p_sap_session->i_length );
-
- /* Build the final message */
- memcpy( p_sap_session->psz_data, psz_head, i_header_size );
- memcpy( p_sap_session->psz_data+i_header_size, p_sap_session->psz_sdp,
- strlen( p_sap_session->psz_sdp) );
-
- free( psz_head );
-
- /* Enqueue the announce */
- INSERT_ELEM( p_sap->pp_sessions,
- p_sap->i_sessions,
- p_sap->i_sessions,
- p_sap_session );
- msg_Dbg( p_sap,"Addresses: %i Sessions: %i",
- p_sap->i_addresses,p_sap->i_sessions);
-
- /* Remember the SAP session for later deletion */
- p_session->p_sap = p_sap_session;
-
- vlc_mutex_unlock( &p_sap->object_lock );
-
- return VLC_SUCCESS;
-}
-
-/* Remove a SAP Announce */
-static int announce_SAPAnnounceDel( sap_handler_t *p_sap,
- session_descriptor_t *p_session )
-{
- int i;
- vlc_mutex_lock( &p_sap->object_lock );
-
- msg_Dbg( p_sap,"removing SAP announce %p",p_session->p_sap);
-
- /* Dequeue the announce */
- for( i = 0; i< p_sap->i_sessions; i++)
- {
- if( p_session->p_sap == p_sap->pp_sessions[i] )