void test_compare_guid() { jnx_guid g; jnx_guid_create(&g); jnx_guid h; jnx_guid_create(&h); JNXCHECK(jnx_guid_compare(&g,&h) == JNX_GUID_STATE_FAILURE); JNXCHECK(jnx_guid_compare(&g,&g) == JNX_GUID_STATE_SUCCESS); JNXCHECK(jnx_guid_compare_raw(g.guid,h.guid) == JNX_GUID_STATE_FAILURE); JNXCHECK(jnx_guid_compare_raw(g.guid,g.guid) == JNX_GUID_STATE_SUCCESS); }
void test_initiator() { JNXLOG(NULL,"test_linking"); session_service *service = session_service_create(linking_test_procedure, unlinking_test_procedure); session *os; session_state e = session_service_create_session(service,&os); JNXCHECK(session_service_session_is_linked(service,&os->session_guid) == 0); //Lets generate the guid of some remote session jnx_guid h; jnx_guid_create(&h); peerstore *store = peerstore_init(local_peer_for_user("initiator_bob",10,interface), 0); get_broadcast_ip(&baddr,interface); printf("%s\n", baddr); discovery_service *ds = discovery_service_create(1234, AF_INET, baddr, store); discovery_service_start(ds,BROADCAST_UPDATE_STRATEGY); int remote_peers = 0; jnx_guid **active_guids; peer *local = peerstore_get_local_peer(store); peer *remote_peer = NULL; while(!remote_peers) { int num_guids = peerstore_get_active_guids(store,&active_guids); int i; for(i=0;i<num_guids;i++) { jnx_guid *guid = active_guids[i]; peer *p = peerstore_lookup(store,guid); if(peers_compare(p,local) != 0) { printf("Found a remote peer! Breaking!\n"); remote_peers = 1; remote_peer = p; break; } } } JNXCHECK(session_is_active(os) == 0); session_service_link_sessions(service,E_AM_INITIATOR, ds,&(*os).session_guid,local,remote_peer); JNXCHECK(session_is_active(os) == 1); printf("-------------------------------------\n"); session_message_write(os,"Hello Ballface! what's going on!"); printf("-------------------------------------\n"); printf("Sessions linked - now going to unlink\n"); session_service_unlink_sessions(service,E_AM_INITIATOR, ds,&(*os).session_guid); JNXCHECK(session_is_active(os) == 0); JNXCHECK(session_service_session_is_linked(service,&os->session_guid) == 0); }
void test_generate_guid() { jnx_guid g; jnx_guid_state s = jnx_guid_create(&g); JNXCHECK(g.guid); jnx_char *ostr; jnx_guid_to_string(&g,&ostr); JNXLOG(LDEBUG,"GUID -> %s",ostr); }
void test_string() { jnx_int i; for(i=0; i<5; ++i) { jnx_guid g; jnx_guid_create(&g); char *ostr; jnx_guid_to_string(&g,&ostr); JNXLOG(LDEBUG,"GUID A=>%s",ostr); jnx_guid f; jnx_guid_from_string(ostr,&f); char *ostrtwo; jnx_guid_to_string(&f,&ostrtwo); JNXLOG(LDEBUG,"GUID B=>%s",ostrtwo); JNXCHECK(jnx_guid_compare(&g,&f) == JNX_GUID_STATE_SUCCESS); } }
session_state session_service_create_session(session_service *service, session **osession) { session *s = calloc(1, sizeof(session)); s->keypair = asymmetrical_generate_key(2048); s->is_connected = 0; s->initiator_public_key = NULL; s->receiver_public_key = NULL; s->shared_secret = NULL; s->secure_socket = -1; s->secure_receiver_listen_socket = -1; s->gui_context = NULL; s->foriegn_sessions = NULL; jnx_guid_create(&s->session_guid); generate_blank_guid(&s->local_peer_guid); generate_blank_guid(&s->remote_peer_guid); if(session_service_does_exist(service,&s->session_guid)) { return SESSION_STATE_EXISTS; } session_service_add_session(service,s); *osession = s; return SESSION_STATE_OKAY; }