예제 #1
0
파일: upnp.c 프로젝트: 1stsetup/tvheadend
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);
}
예제 #2
0
파일: upnp.c 프로젝트: ProfYaffle/tvheadend
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);
}