示例#1
0
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);

}
示例#2
0
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);
}
示例#3
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);

}
示例#4
0
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);
    }
}
示例#5
0
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;
}