예제 #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;
}
예제 #2
0
size_t secure_channel_send(session *s, char *message, size_t msg_len) {
	
	if(s->current_state != SESSION_CONNECTED) {
		jnx_term_printf_in_color(JNX_COL_RED,"Unable to send message with session\n");
		return -1;
	}
	jnx_socket *sec = jnx_socket_tcp_create(AF_INET);
	
	JNX_LOG(DEFAULT_CONTEXT,"encrypting \n%s\nwith %s\n",message,s->shared_secret);
	char *buffer = des_encrypt(s->shared_secret,message,msg_len);
    if(strcmp(jnx_hash_get(configuration,"DEBUG"),"YES") == 0) {
        jnx_socket_tcp_send(sec,"localhost",s->foriegn_peer->secure_port,buffer,strlen(buffer));
    } else {
        jnx_socket_tcp_send(sec,s->foriegn_peer->ip,s->foriegn_peer->secure_port,buffer,strlen(buffer));
    }

	free(buffer);
	jnx_socket_destroy(&sec);
}
예제 #3
0
void jnx_socket_tcp_listener_destroy(jnx_tcp_listener **listener) {
  jnx_socket_destroy(&(*listener)->socket);
  free(*listener);
  *listener = NULL;
}