- /* XXX: Dequeue the address too if it is not used anymore
- * TODO: - address refcount
- - send a SAP deletion packet */
-
- msg_Dbg( p_sap,"%i announcements remaining", p_sap->i_sessions );
-
- vlc_object_unlock( p_sap );
-
- return VLC_SUCCESS;
-}
-
-static void announce_SendSAPAnnounce( sap_handler_t *p_sap,
- sap_session_t *p_session )
-{
- mtime_t now = mdate();
-
- if( p_session->i_next >= now )
- return;
-
- ssize_t i_ret = send( p_session->p_address->i_wfd, p_session->psz_data,
- p_session->i_length, 0 );
- if( i_ret != (ssize_t)p_session->i_length )
- {
- msg_Warn( p_sap, "SAP send failed on address %s (%zd/%zu)",
- p_session->p_address->psz_address,
- i_ret, p_session->i_length );
- }
- p_session->i_next = now + p_session->p_address->i_interval*CLOCK_FREQ;
-}
-
-static int ComputeRate( sap_address_t *p_address )
-{
- uint8_t buffer[SAP_MAX_BUFFER];
- ssize_t i_tot = 0;
- mtime_t i_temp;
- int i_rate;
-
- if( p_address->t1 == 0 )
- {
- p_address->t1 = mdate();
- return VLC_SUCCESS;
- }
- for (;;)
- {
- /* Might be too slow if we have huge data */
- ssize_t i_read = recv( p_address->i_rfd, buffer, SAP_MAX_BUFFER, 0 );
- if (i_read == -1)
- break;
- i_tot += i_read;
- }