static Tox *init_tox() { /* Init core */ Tox *m = tox_new(TOX_ENABLE_IPV6_DEFAULT); if (m == NULL) return NULL; /* Callbacks */ tox_callback_connectionstatus(m, on_connectionchange, NULL); tox_callback_friendrequest(m, on_request, NULL); tox_callback_friendmessage(m, on_message, NULL); tox_callback_namechange(m, on_nickchange, NULL); tox_callback_userstatus(m, on_statuschange, NULL); tox_callback_statusmessage(m, on_statusmessagechange, NULL); tox_callback_action(m, on_action, NULL); #ifdef __linux__ tox_setname(m, (uint8_t *) "Cool guy", sizeof("Cool guy")); #elif defined(_WIN32) tox_setname(m, (uint8_t *) "I should install GNU/Linux", sizeof("I should install GNU/Linux")); #elif defined(__APPLE__) tox_setname(m, (uint8_t *) "Hipster", sizeof("Hipster")); //This used to users of other Unixes are hipsters #else tox_setname(m, (uint8_t *) "Registered Minix user #4", sizeof("Registered Minix user #4")); #endif return m; }
void Core::start() { tox = tox_new(); tox_callback_friendrequest(tox, onFriendRequest, this); tox_callback_friendmessage(tox, onFriendMessage, this); tox_callback_namechange(tox, onFriendNameChange, this); tox_callback_statusmessage(tox, onStatusMessageChanged, this); tox_callback_userstatus(tox, onUserStatusChanged, this); tox_callback_connectionstatus(tox, onConnectionStatusChanged, this); tox_callback_action(tox, onAction, this); uint8_t friendAddress[TOX_FRIEND_ADDRESS_SIZE]; tox_getaddress(tox, friendAddress); emit friendAddressGenerated(CFriendAddress::toString(friendAddress)); CString cUsername(Settings::getInstance().getUsername()); tox_setname(tox, cUsername.data(), cUsername.size()); bootstrapDht(); timer->setInterval(30); timer->start(); }
void Core::start() { tox_callback_friendrequest(handle, onFriendRequest, (void*)this); tox_callback_friendmessage(handle, onFriendMessage, (void*)this); tox_callback_namechange(handle, onFriendNameChange, (void*)this); tox_callback_statusmessage(handle, onStatusMessageChanged, (void*)this); tox_callback_userstatus(handle, onFriendStatusChanged, (void*)this); uint8_t self_public_key [TOX_FRIEND_ADDRESS_SIZE]; tox_getaddress(handle, self_public_key); emit userIdGenerated(CUserId::toString(self_public_key)); CString cUsername(Settings::getInstance().getUsername()); tox_setname(handle, cUsername.data(), cUsername.size()); bootstrapDht(); timer->setInterval(30); timer->start(); }
int main(int argc, char *argv[]) { int on = 0; int c = 0; int i = 0; char *filename = "data"; char idstring[200] = {0}; Tox *m; if (argc < 4) { printf("[!] Usage: %s [IP] [port] [public_key] <keyfile>\n", argv[0]); exit(0); } for (i = 0; i < argc; i++) { if (argv[i] == NULL) { break; } else if (argv[i][0] == '-') { if (argv[i][1] == 'h') { print_help(); exit(0); } else if (argv[i][1] == 'f') { if (argv[i + 1] != NULL) filename = argv[i + 1]; else { fputs("[!] you passed '-f' without giving an argument!\n", stderr); } } } } m = tox_new(); if ( !m ) { fputs("Failed to allocate Messenger datastructure", stderr); exit(0); } load_key(m, filename); tox_callback_friendrequest(m, print_request, NULL); tox_callback_friendmessage(m, print_message, NULL); tox_callback_namechange(m, print_nickchange, NULL); tox_callback_statusmessage(m, print_statuschange, NULL); initscr(); noecho(); raw(); getmaxyx(stdscr, y, x); new_lines("/h for list of commands"); get_id(m, idstring); new_lines(idstring); strcpy(line, ""); tox_IP_Port bootstrap_ip_port; bootstrap_ip_port.port = htons(atoi(argv[2])); int resolved_address = resolve_addr(argv[1]); if (resolved_address != 0) bootstrap_ip_port.ip.i = resolved_address; else exit(1); unsigned char *binary_string = hex_string_to_bin(argv[3]); tox_bootstrap(m, bootstrap_ip_port, binary_string); free(binary_string); nodelay(stdscr, TRUE); while (true) { if (on == 0 && tox_isconnected(m)) { new_lines("[i] connected to DHT\n[i] define username with /n"); on = 1; } tox_do(m); c_sleep(1); do_refresh(); c = getch(); if (c == ERR || c == 27) continue; getmaxyx(stdscr, y, x); if (c == '\n') { line_eval(m, line); strcpy(line, ""); } else if (c == 8 || c == 127) { line[strlen(line) - 1] = '\0'; } else if (isalnum(c) || ispunct(c) || c == ' ') { strcpy(line, appender(line, (char) c)); } } tox_kill(m); endwin(); return 0; }