コード例 #1
0
ファイル: Messenger.c プロジェクト: Yim4/ProjectTox-Core
/* run this at startup */
Messenger *initMessenger(void)
{
    Messenger *m = calloc(1, sizeof(Messenger));

    if ( ! m )
        return 0;

    new_keys();
    m_set_statusmessage(m, (uint8_t *)"Online", sizeof("Online"));
    initNetCrypto();
    IP ip;
    ip.i = 0;

    if (init_networking(ip, PORT) == -1)
        return 0;

    DHT_init();
    LosslessUDP_init();
    friendreq_init();
    LANdiscovery_init();
    set_nospam(random_int());

    send_LANdiscovery(htons(PORT));
    timer_single(&LANdiscovery, 0, LAN_DISCOVERY_INTERVAL);

    return m;
}
コード例 #2
0
ファイル: DHT_bootstrap.c プロジェクト: 1h6/ProjectTox-Core
int main(int argc, char *argv[])
{
    manage_keys();
    printf("Public key: ");
    uint32_t i;

    FILE *file;
    file = fopen("PUBLIC_ID.txt", "w");

    for(i = 0; i < 32; i++)
    {
        if(self_public_key[i] < 16)
            printf("0");
        printf("%hhX",self_public_key[i]);
        fprintf(file, "%hhX",self_public_key[i]);
    }

    fclose(file);

    printf("\n");
    printf("Port: %u\n", PORT);
    //initialize networking
    //bind to ip 0.0.0.0:PORT
    IP ip;
    ip.i = 0;
    init_networking(ip, PORT);

    perror("Initialization");

    if (argc > 3) {
        printf("Trying to bootstrap into the network...\n");
        IP_Port bootstrap_info;
        bootstrap_info.ip.i = inet_addr(argv[1]);
        bootstrap_info.port = htons(atoi(argv[2]));
        uint8_t *bootstrap_key = hex_string_to_bin(argv[3]);
        DHT_bootstrap(bootstrap_info, bootstrap_key);
        free(bootstrap_key);
    }

    DHT_init();
    friendreq_init();

    int is_waiting_for_dht_connection = 1;
    while(1)
    {
        if (is_waiting_for_dht_connection && DHT_isconnected())
        {
            printf("Connected to other bootstrap server successfully.\n");
            is_waiting_for_dht_connection = 0;
        }
        doDHT();

        networking_poll();

        c_sleep(1);
    }
    shutdown_networking();
    return 0;
}
コード例 #3
0
/* run this at startup */
int initMessenger(void)
{
    new_keys();
    m_set_statusmessage((uint8_t*)"Online", sizeof("Online"));
    initNetCrypto();
    IP ip;
    ip.i = 0;

    if(init_networking(ip,PORT) == -1)
        return -1;

    DHT_init();
    LosslessUDP_init();
    friendreq_init();
    LANdiscovery_init();

    return 0;
}
コード例 #4
0
ファイル: DHT_test.c プロジェクト: 2r2w/ProjectTox-Core
int main(int argc, char *argv[])
{
    //memcpy(self_client_id, "qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq", 32);

    if (argc < 4) {
        printf("usage %s ip port public_key\n", argv[0]);
        exit(0);
    }

    new_keys();
    printf("OUR ID: ");
    uint32_t i;

    for (i = 0; i < 32; i++) {
        if (self_public_key[i] < 16)
            printf("0");

        printf("%hhX", self_public_key[i]);
    }

    char temp_id[128];
    printf("\nEnter the client_id of the friend you wish to add (32 bytes HEX format):\n");

    if (scanf("%s", temp_id) != 1)
        exit(0);

    DHT_addfriend(hex_string_to_bin(temp_id));

    /* initialize networking */
    /* bind to ip 0.0.0.0:PORT */
    IP ip;
    ip.i = 0;
    init_networking(ip, PORT);


    perror("Initialization");
    IP_Port bootstrap_ip_port;
    bootstrap_ip_port.port = htons(atoi(argv[2]));
    /* bootstrap_ip_port.ip.c[0] = 127;
     * bootstrap_ip_port.ip.c[1] = 0;
     * bootstrap_ip_port.ip.c[2] = 0;
     * bootstrap_ip_port.ip.c[3] = 1; */
    bootstrap_ip_port.ip.i = inet_addr(argv[1]);
    DHT_bootstrap(bootstrap_ip_port, hex_string_to_bin(argv[3]));

    /*
        IP_Port ip_port;
        uint8_t data[MAX_UDP_PACKET_SIZE];
        uint32_t length;
    */

    DHT_init();
    friendreq_init();

    while (1) {

        doDHT();

        /* slvrTODO:
                while(receivepacket(&ip_port, data, &length) != -1) {
                    if(DHT_handlepacket(data, length, ip_port) && friendreq_handlepacket(data, length, ip_port)) {
                        //unhandled packet
                        printpacket(data, length, ip_port);
                    } else {
                        printf("Received handled packet with length: %u\n", length);
                    }
                }
        */
        networking_poll();

        print_clientlist();
        print_friendlist();
        c_sleep(300);
    }

    shutdown_networking();
    return 0;
}