Example #1
0
int discovery_service_stop(discovery_service *svc) {
  JNXCHECK(svc);
  svc->isrunning = 0;
  if (svc->update_thread != NULL) {
    cancel_thread(&svc->update_thread);
  }
  send_stop_packet(svc);
  pthread_join(svc->listening_thread->system_thread, NULL);

  jnx_socket_destroy(&svc->sock_send);
  jnx_socket_udp_listener_destroy(&svc->udp_listener);
  return 0;
}
Example #2
0
static void test_udp_listener_ipv6() {
  jnx_udp_listener *listener = 
    jnx_socket_udp_listener_create(UDPTESTPORT,AF_INET6,NULL);
  fire_threaded_udp_packet_ipv6(UDPTESTPORT);
  int x = 0;
  while(x < 20) {
    jnx_socket_udp_listener_tick(listener,test_udp_listener_callback,NULL);
    if(test_udp_listener_complete)break;
    sleep(.5);
    ++x;
    sleep(.5);
  }
  jnx_socket_udp_listener_destroy(&listener);
  JNXCHECK(test_udp_listener_complete);
  JNXCHECK(listener == NULL);
}
Example #3
0
static void test_udp_blocking_listener() {
  jnx_udp_listener *listener = jnx_socket_udp_listener_create(UDPTESTPORT,
      AF_INET,NULL);

  jnx_thread_create_disposable(worker_blocking_listener,&listener);
  sleep(1);
  fire_threaded_udp_packet(UDPTESTPORT);
  clock_t start = clock(),diff;
  jnx_float msec = 0;
  while(msec < 500 && !test_udp_listener_complete){
    diff = clock();
    msec = (diff - start) * 1000 / CLOCKS_PER_SEC;
  }
  listener->hint_exit = 1;
  jnx_socket_udp_listener_destroy(&listener);
  JNXCHECK(test_udp_listener_complete);
  JNXCHECK(listener == NULL);
}
Example #4
0
static void test_udp_broadcast(){
  jnx_udp_listener *listener = 

    jnx_socket_udp_listener_broadcast_create(UDPTESTPORT,AF_INET,NULL);
  JNXLOG(LDEBUG,"Firing broadcast packet");
  fire_threaded_udp_packet_broadcast(UDPTESTPORT);
  int x = 0;
  while(x < 20) {
    JNXLOG(LDEBUG,"Ticking jnx_socket_udp_listener_tick");
    jnx_socket_udp_listener_tick(listener,test_udp_listener_callback,NULL);
    if(test_udp_listener_complete)break;
    sleep(.5);
    ++x;
  }
  jnx_socket_udp_listener_destroy(&listener);
  JNXCHECK(test_udp_listener_complete);
  JNXCHECK(listener == NULL);
}
Example #5
0
static void test_udp_multicast(){
  char *ip;
  jnx_network_interface_ip(&ip,NULL,AF_INET);

  JNXLOG(LDEBUG,"Using IP => %s",ip);
  jnx_udp_listener *listener = 
    jnx_socket_udp_listener_multicast_create(UDPTESTPORT2,AF_INET,ip,BGROUP,NULL);

  fire_threaded_udp_packet_multicast(UDPTESTPORT2);
  int x = 0;
  while(x < 5) {
    jnx_socket_udp_listener_tick(listener,test_udp_listener_callback,NULL);
    if(test_udp_listener_complete)break;
    ++x;
  }
  jnx_socket_udp_listener_destroy(&listener);
  JNXCHECK(test_udp_listener_complete);
  JNXCHECK(listener == NULL);

}