void upnp_send( htsbuf_queue_t *q, struct sockaddr_storage *storage ) { upnp_data_t *data; if (!upnp_running) return; data = calloc(1, sizeof(upnp_data_t)); htsbuf_queue_init(&data->queue, 0); htsbuf_appendq(&data->queue, q); if (storage == NULL) data->storage = upnp_ipv4_multicast; else data->storage = *storage; pthread_mutex_lock(&upnp_lock); TAILQ_INSERT_TAIL(&upnp_data_write, data, data_link); pthread_mutex_unlock(&upnp_lock); }
void upnp_send( htsbuf_queue_t *q, struct sockaddr_storage *storage, int delay_ms, int from_multicast ) { upnp_data_t *data; if (!atomic_get(&upnp_running)) return; data = calloc(1, sizeof(upnp_data_t)); htsbuf_queue_init(&data->queue, 0); htsbuf_appendq(&data->queue, q); if (storage == NULL) data->storage = upnp_ipv4_multicast; else data->storage = *storage; data->delay_ms = delay_ms; data->from_multicast = from_multicast; tvh_mutex_lock(&upnp_lock); TAILQ_INSERT_TAIL(&upnp_data_write, data, data_link); tvh_mutex_unlock(&upnp_lock); }