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; }
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); }
void jnx_socket_tcp_listener_destroy(jnx_tcp_listener **listener) { jnx_socket_destroy(&(*listener)->socket); free(*listener); *listener = NULL; }