void empty_auth_file (void) { if (TLS->test_mode) { bl_do_dc_option (TLS, 1, 0, "", strlen (TG_SERVER_TEST_1), TG_SERVER_TEST_1, 443); bl_do_dc_option (TLS, 2, 0, "", strlen (TG_SERVER_TEST_2), TG_SERVER_TEST_2, 443); bl_do_dc_option (TLS, 3, 0, "", strlen (TG_SERVER_TEST_3), TG_SERVER_TEST_3, 443); bl_do_set_working_dc (TLS, 2); } else { bl_do_dc_option (TLS, 1, 0, "", strlen (TG_SERVER_1), TG_SERVER_1, 443); bl_do_dc_option (TLS, 2, 0, "", strlen (TG_SERVER_2), TG_SERVER_2, 443); bl_do_dc_option (TLS, 3, 0, "", strlen (TG_SERVER_3), TG_SERVER_3, 443); bl_do_dc_option (TLS, 4, 0, "", strlen (TG_SERVER_4), TG_SERVER_4, 443); bl_do_dc_option (TLS, 5, 0, "", strlen (TG_SERVER_5), TG_SERVER_5, 443); bl_do_set_working_dc (TLS, 4); } }
void empty_auth_file (void) { if (TLS->test_mode) { bl_do_dc_option (TLS, 0, 1, "", 0, TG_SERVER_TEST_1, strlen (TG_SERVER_TEST_1), 443); bl_do_dc_option (TLS, 0, 2, "", 0, TG_SERVER_TEST_2, strlen (TG_SERVER_TEST_2), 443); bl_do_dc_option (TLS, 0, 3, "", 0, TG_SERVER_TEST_3, strlen (TG_SERVER_TEST_3), 443); bl_do_set_working_dc (TLS, TG_SERVER_TEST_DEFAULT); } else { bl_do_dc_option (TLS, 0, 1, "", 0, TG_SERVER_1, strlen (TG_SERVER_1), 443); bl_do_dc_option (TLS, 0, 2, "", 0, TG_SERVER_2, strlen (TG_SERVER_2), 443); bl_do_dc_option (TLS, 0, 3, "", 0, TG_SERVER_3, strlen (TG_SERVER_3), 443); bl_do_dc_option (TLS, 0, 4, "", 0, TG_SERVER_4, strlen (TG_SERVER_4), 443); bl_do_dc_option (TLS, 0, 5, "", 0, TG_SERVER_5, strlen (TG_SERVER_5), 443); bl_do_set_working_dc (TLS, TG_SERVER_DEFAULT); } }
void CTelegramProto::ReadAuth() { DBVARIANT dbv = { 0 }; if (db_get(0, m_szModuleName, "TGL_AUTH", &dbv)) { bl_do_dc_option(TLS, 1, "", 0, TG_SERVER_1, strlen(TG_SERVER_1), 443); bl_do_dc_option(TLS, 2, "", 0, TG_SERVER_2, strlen(TG_SERVER_2), 443); bl_do_dc_option(TLS, 3, "", 0, TG_SERVER_3, strlen(TG_SERVER_3), 443); bl_do_dc_option(TLS, 4, "", 0, TG_SERVER_4, strlen(TG_SERVER_4), 443); bl_do_dc_option(TLS, 5, "", 0, TG_SERVER_5, strlen(TG_SERVER_5), 443); bl_do_set_working_dc(TLS, TG_SERVER_DEFAULT); return; } int *piBlob = (int*)dbv.pbVal; size_t x = (size_t)*piBlob++; int dc_working_num = *piBlob++; for (size_t i = 0; i < x; i++) { int y = *piBlob++; if (y) { read_dc(TLS, piBlob, i); } } bl_do_set_working_dc(TLS, dc_working_num); int our_id = *piBlob++; if (our_id) { bl_do_set_our_id(TLS, TGL_MK_USER(our_id).id); } db_free(&dbv); }
void empty_auth_file(struct tgl_state *TLS) { TLS->callback.logprintf("initializing empty auth file"); if (TLS->test_mode) { bl_do_dc_option(TLS, 1, "", 0, TG_SERVER_TEST_1, strlen(TG_SERVER_TEST_1), 443); bl_do_dc_option(TLS, 2, "", 0, TG_SERVER_TEST_2, strlen(TG_SERVER_TEST_2), 443); bl_do_dc_option(TLS, 3, "", 0, TG_SERVER_TEST_3, strlen(TG_SERVER_TEST_3), 443); bl_do_set_working_dc(TLS, TG_SERVER_TEST_DEFAULT); } else { bl_do_dc_option(TLS, 1, "", 0, TG_SERVER_1, strlen(TG_SERVER_1), 443); bl_do_dc_option(TLS, 2, "", 0, TG_SERVER_2, strlen(TG_SERVER_2), 443); bl_do_dc_option(TLS, 3, "", 0, TG_SERVER_3, strlen(TG_SERVER_3), 443); bl_do_dc_option(TLS, 4, "", 0, TG_SERVER_4, strlen(TG_SERVER_4), 443); bl_do_dc_option(TLS, 5, "", 0, TG_SERVER_5, strlen(TG_SERVER_5), 443); bl_do_set_working_dc(TLS, TG_SERVER_DEFAULT); } }
void read_dc (int auth_file_fd, int id, unsigned ver) { int port = 0; assert (read (auth_file_fd, &port, 4) == 4); int l = 0; assert (read (auth_file_fd, &l, 4) == 4); assert (l >= 0 && l < 100); char ip[100]; assert (read (auth_file_fd, ip, l) == l); ip[l] = 0; long long auth_key_id; static unsigned char auth_key[256]; assert (read (auth_file_fd, &auth_key_id, 8) == 8); assert (read (auth_file_fd, auth_key, 256) == 256); //bl_do_add_dc (id, ip, l, port, auth_key_id, auth_key); bl_do_dc_option (TLS, 0, id, "DC", 2, ip, l, port); bl_do_set_auth_key (TLS, id, auth_key); bl_do_dc_signed (TLS, id); }
void read_dc(tgl_state *TLS, int *&piBlob, int id) { int port = *piBlob++; int l = *piBlob++; assert(l >= 0 && l < 100); char ip[100]; memcpy(ip, piBlob, l); piBlob += (l / sizeof(int)); ip[l] = 0; long long auth_key_id = *(long long*)piBlob; piBlob += 2; static unsigned char auth_key[256]; memcpy(auth_key, piBlob, 256); piBlob += (256 / sizeof(int)); bl_do_dc_option(TLS, id, "DC", 2, ip, l, port); bl_do_set_auth_key(TLS, id, auth_key); bl_do_dc_signed(TLS, id); }
void read_dc(struct tgl_state *TLS, int auth_file_fd, int id, unsigned ver) { int port = 0; assert(read(auth_file_fd, &port, 4) == 4); int l = 0; assert(read(auth_file_fd, &l, 4) == 4); assert(l >= 0 && l < 100); char ip[100]; assert(read(auth_file_fd, ip, l) == l); ip[l] = 0; long long auth_key_id; static unsigned char auth_key[256]; assert(read(auth_file_fd, &auth_key_id, 8) == 8); assert(read(auth_file_fd, auth_key, 256) == 256); bl_do_dc_option(TLS, id, "DC", 2, ip, l, port); bl_do_set_auth_key(TLS, id, auth_key); bl_do_dc_signed(TLS, id); TLS->callback.logprintf("read dc: id=%d", id); }