gdr / tuntox (public) (License: GPLv3) (since 2017-01-24) (hash sha1)
Tunnel TCP connections over the Tox protocol
List of commits:
Subject Hash Author Date (UTC)
Clean up indentation 0dc0012b699584828648ad5597ee17b77e275983 GDR! 2021-12-10 10:32:12
0.0.10 5923903d6e48e7990172f0d54394fa2bbc69ca9e GDR! 2021-12-07 08:58:46
Change docker-compose image address 18b0864c66767ed1f300f1f0ec2a2569b749c628 GDR! 2021-04-27 10:42:59
New docker image address at dockerhub 2e9e79947ecb9b62add1ff957d6b71a448d1d87b GDR! 2020-08-15 18:00:18
Add missing dockerfile d91e8ea5765bacfe3072d709d8c552d7f59f18d1 GDR! 2020-08-15 17:42:53
Perform a complete build inside Docker 92312438844988e45da6b1804cdb19ca7beef7bd GDR! 2020-08-15 17:19:52
Fix gcc warnings about strncpy a0fb587f1be623423db9d1e9882341731fab8ec5 GDR! 2020-08-15 16:50:44
Fix travis 07fd5cd5506b65afbd15c7289a341cb27da71114 GDR! 2020-08-15 16:36:25
Use py3 in travis c5e965f824faaa1a95647c469d0d8e4add17b3cd GDR! 2020-08-15 16:29:57
FreeBSD build instructions d20567154fb91de3a73baac9361d3ae99984e55c GDR! 2020-08-15 14:44:23
FAQ - links to packages 8691dbe266c51f788f763e0af3c712f3bab97f6f GDR! 2020-08-15 14:01:38
Try to name the deb appropiately 9e834d9af82f5819a59313c0b2276ba0dc2b0477 GDR! 2020-08-15 08:11:32
Lets try creating .tar.gz without dh_make 5d4dee4428e17f76b3b4a8ca769fad8695d8f02d GDR! 2020-08-15 08:04:57
Prevent dh_make warnings from stopping the build ca6a8b1f62e307c0430856619fc2b7797a71ec94 GDR! 2020-08-15 08:00:28
-y for dh_make 194a2bb10b581765d0a2a4c3e78965d4ad0e40df GDR! 2020-08-15 07:57:58
fix dh_make 7ae361ddb1d5d9e310c196e37c9e50e907c7d79c GDR! 2020-08-15 07:54:45
ci 5d7cfcb28e5b477e366dda746b40a99df4a7604f GDR! 2020-08-15 07:45:39
Build instructions for deb packages 0aaee3cc822c784e9bbf5d171ca188ba6fe4ed72 GDR! 2020-08-15 07:13:10
Deb building works 0583691495f0dcfa146c2111d6b2484328880a6d GDR! 2020-08-15 07:10:30
python2->python3 ac66a9f9bfaf86f4c8575c43e04ea87ac8abedb8 GDR! 2020-08-15 06:55:49
Commit 0dc0012b699584828648ad5597ee17b77e275983 - Clean up indentation
Author: GDR!
Author date (UTC): 2021-12-10 10:32
Committer name: GDR!
Committer date (UTC): 2021-12-10 10:32
Parent(s): 5923903d6e48e7990172f0d54394fa2bbc69ca9e
Signer:
Signing key:
Signing status: N
Tree: 537edc9de51982d19ef14b1705e114b30b5abbd8
File Lines added Lines deleted
client.c 49 49
tox_bootstrap.h 333 126
File client.c changed (mode: 100644) (index 3073e5d..42a352e)
... ... int handle_server_tcp_fin_frame(protocol_frame *rcvd_frame)
256 256 return -1; return -1;
257 257 } }
258 258
259 client_close_tunnel(tun);
259 client_close_tunnel(tun);
260 260
261 261 return 0; return 0;
262 262 } }
 
... ... int handle_server_tcp_fin_frame(protocol_frame *rcvd_frame)
264 264 /* Close and delete all tunnels (when server went offline) */ /* Close and delete all tunnels (when server went offline) */
265 265 void client_close_all_connections() void client_close_all_connections()
266 266 { {
267 tunnel *tmp = NULL;
268 tunnel *tun = NULL;
267 tunnel *tmp = NULL;
268 tunnel *tun = NULL;
269 269
270 HASH_ITER(hh, by_id, tun, tmp)
271 {
272 client_close_tunnel(tun);
273 }
270 HASH_ITER(hh, by_id, tun, tmp)
271 {
272 client_close_tunnel(tun);
273 }
274 274 } }
275 275
276 276 /* Main loop for the client */ /* Main loop for the client */
 
... ... int do_client_loop(uint8_t *tox_id_str)
281 281 uint32_t friendnumber = 0; uint32_t friendnumber = 0;
282 282 TOX_CONNECTION last_friend_connection_status = TOX_CONNECTION_NONE; TOX_CONNECTION last_friend_connection_status = TOX_CONNECTION_NONE;
283 283 time_t last_friend_connection_status_received = 0; time_t last_friend_connection_status_received = 0;
284 time_t connection_lost_timestamp = 0;
284 time_t connection_lost_timestamp = 0;
285 285 struct timeval tv; struct timeval tv;
286 286 fd_set fds; fd_set fds;
287 287 static time_t invitation_sent_time = 0; static time_t invitation_sent_time = 0;
 
... ... int do_client_loop(uint8_t *tox_id_str)
310 310
311 311 while(1) while(1)
312 312 { {
313 /* Let tox do its stuff */
314 tox_iterate(tox, NULL);
313 /* Let tox do its stuff */
314 tox_iterate(tox, NULL);
315 315
316 316 switch(state) switch(state)
317 317 { {
 
... ... int do_client_loop(uint8_t *tox_id_str)
328 328 { {
329 329 uint8_t* data = (uint8_t *)"Hi, fellow tuntox instance!"; uint8_t* data = (uint8_t *)"Hi, fellow tuntox instance!";
330 330 uint16_t length = sizeof(data); uint16_t length = sizeof(data);
331 /* https://github.com/TokTok/c-toxcore/blob/acb6b2d8543c8f2ea0c2e60dc046767cf5cc0de8/toxcore/tox.h#L1168 */
331 /* https://github.com/TokTok/c-toxcore/blob/acb6b2d8543c8f2ea0c2e60dc046767cf5cc0de8/toxcore/tox.h#L1168 */
332 332 TOX_ERR_FRIEND_ADD add_error; TOX_ERR_FRIEND_ADD add_error;
333 333
334 334 if(use_shared_secret) if(use_shared_secret)
 
... ... int do_client_loop(uint8_t *tox_id_str)
615 615 const char* status = readable_connection_status(friend_connection_status); const char* status = readable_connection_status(friend_connection_status);
616 616 log_printf(L_INFO, "Friend connection status changed to: %s (%d)\n", status, friend_connection_status); log_printf(L_INFO, "Friend connection status changed to: %s (%d)\n", status, friend_connection_status);
617 617
618 if(friend_connection_status == TOX_CONNECTION_NONE)
619 {
620 state = CLIENT_STATE_CONNECTION_LOST;
621 connection_lost_timestamp = time(NULL);
622 }
618 if(friend_connection_status == TOX_CONNECTION_NONE)
619 {
620 state = CLIENT_STATE_CONNECTION_LOST;
621 connection_lost_timestamp = time(NULL);
622 }
623 623 } }
624 624
625 625 last_friend_connection_status_received = time(NULL); last_friend_connection_status_received = time(NULL);
 
... ... int do_client_loop(uint8_t *tox_id_str)
628 628 } }
629 629 } }
630 630 break; break;
631 case CLIENT_STATE_CONNECTION_LOST:
632 {
633 TOX_CONNECTION friend_connection_status;
634 friend_connection_status = tox_friend_get_connection_status(tox, friendnumber, &friend_query_error);
635 if(friend_query_error != TOX_ERR_FRIEND_QUERY_OK)
636 {
637 log_printf(L_DEBUG, "tox_friend_get_connection_status: error %u\n", friend_query_error);
638 }
639 else
640 {
641 if(friend_connection_status == TOX_CONNECTION_NONE)
642 {
643 /* https://github.com/TokTok/c-toxcore/blob/acb6b2d8543c8f2ea0c2e60dc046767cf5cc0de8/toxcore/tox.h#L1267 */
644 TOX_ERR_FRIEND_DELETE tox_delete_error;
645
646 log_printf(L_WARNING, "Lost connection to server, closing all tunnels and re-adding friend\n");
647 client_close_all_connections();
648 tox_friend_delete(tox, friendnumber, &tox_delete_error);
649 if(tox_delete_error)
650 {
651 log_printf(L_ERROR, "Error when deleting server from friend list: %d\n", tox_delete_error);
652 }
653 state = CLIENT_STATE_INITIAL;
654 }
655 else
656 {
657 state = CLIENT_STATE_FORWARDING;
658 }
659 }
660 }
661 break;
662 case 0xffffffff:
663 log_printf(L_ERROR, "You forgot a break statement\n");
631 case CLIENT_STATE_CONNECTION_LOST:
632 {
633 TOX_CONNECTION friend_connection_status;
634 friend_connection_status = tox_friend_get_connection_status(tox, friendnumber, &friend_query_error);
635 if(friend_query_error != TOX_ERR_FRIEND_QUERY_OK)
636 {
637 log_printf(L_DEBUG, "tox_friend_get_connection_status: error %u\n", friend_query_error);
638 }
639 else
640 {
641 if(friend_connection_status == TOX_CONNECTION_NONE)
642 {
643 /* https://github.com/TokTok/c-toxcore/blob/acb6b2d8543c8f2ea0c2e60dc046767cf5cc0de8/toxcore/tox.h#L1267 */
644 TOX_ERR_FRIEND_DELETE tox_delete_error;
645
646 log_printf(L_WARNING, "Lost connection to server, closing all tunnels and re-adding friend\n");
647 client_close_all_connections();
648 tox_friend_delete(tox, friendnumber, &tox_delete_error);
649 if(tox_delete_error)
650 {
651 log_printf(L_ERROR, "Error when deleting server from friend list: %d\n", tox_delete_error);
652 }
653 state = CLIENT_STATE_INITIAL;
654 }
655 else
656 {
657 state = CLIENT_STATE_FORWARDING;
658 }
659 }
660 }
661 break;
662 case 0xffffffff:
663 log_printf(L_ERROR, "You forgot a break statement\n");
664 664 case CLIENT_STATE_SHUTDOWN: case CLIENT_STATE_SHUTDOWN:
665 665 exit(0); exit(0);
666 666 break; break;
File tox_bootstrap.h changed (mode: 100644) (index 368f84e..d4594f6)
1 1
2 2 /* /*
3 3 * Generated with generate_tox_bootstrap.py by GDR! * Generated with generate_tox_bootstrap.py by GDR!
4 * from https://nodes.tox.chat/json on 2020-08-15 07:06:54.624087
4 * from https://nodes.tox.chat/json on 2021-12-07 10:59:33.205275
5 5 */ */
6 6 struct bootstrap_node { struct bootstrap_node {
7 7 char *address; char *address;
 
... ... struct bootstrap_node {
10 10 } bootstrap_nodes[] = { } bootstrap_nodes[] = {
11 11
12 12 { {
13 "85.172.30.117",
13 "95.79.50.56",
14 14 33445, 33445,
15 15 { {
16 16 0x8E, 0x7D, 0x0B, 0x85, 0x99, 0x22, 0xEF, 0x56, 0x92, 0x98, 0xB4, 0xD2, 0x61, 0xA8, 0xCC, 0xB5, 0x8E, 0x7D, 0x0B, 0x85, 0x99, 0x22, 0xEF, 0x56, 0x92, 0x98, 0xB4, 0xD2, 0x61, 0xA8, 0xCC, 0xB5,
 
... ... struct bootstrap_node {
37 37 }, },
38 38
39 39 { {
40 "78.46.73.141",
41 33445,
42 {
43 0x02, 0x80, 0x7C, 0xF4, 0xF8, 0xBB, 0x8F, 0xB3, 0x90, 0xCC, 0x37, 0x94, 0xBD, 0xF1, 0xE8, 0x44,
44 0x9E, 0x9A, 0x83, 0x92, 0xC5, 0xD3, 0xF2, 0x20, 0x00, 0x19, 0xDA, 0x9F, 0x1E, 0x81, 0x2E, 0x46
45 }
46 },
47
48 {
49 "59.115.124.141",
40 "59.115.125.212",
50 41 33445, 33445,
51 42 { {
52 43 0x3F, 0x0A, 0x45, 0xA2, 0x68, 0x36, 0x7C, 0x1B, 0xEA, 0x65, 0x2F, 0x25, 0x8C, 0x85, 0xF4, 0xA6, 0x3F, 0x0A, 0x45, 0xA2, 0x68, 0x36, 0x7C, 0x1B, 0xEA, 0x65, 0x2F, 0x25, 0x8C, 0x85, 0xF4, 0xA6,
 
... ... struct bootstrap_node {
54 45 } }
55 46 }, },
56 47
57 {
58 "46.229.52.198",
59 33445,
60 {
61 0x81, 0x3C, 0x8F, 0x41, 0x87, 0x83, 0x3E, 0xF0, 0x65, 0x5B, 0x10, 0xF7, 0x75, 0x21, 0x41, 0xA3,
62 0x52, 0x24, 0x84, 0x62, 0xA5, 0x67, 0x52, 0x9A, 0x38, 0xB6, 0xBB, 0xF7, 0x3E, 0x97, 0x93, 0x07
63 }
64 },
65
66 48 { {
67 49 "144.217.167.73", "144.217.167.73",
68 50 33445, 33445,
 
... ... struct bootstrap_node {
73 55 }, },
74 56
75 57 { {
76 "172.103.164.206",
58 "212.13.66.106",
77 59 33445, 33445,
78 60 { {
79 0x10, 0xC0, 0x0E, 0xB2, 0x50, 0xC3, 0x23, 0x3E, 0x34, 0x3E, 0x2A, 0xEB, 0xA0, 0x71, 0x15, 0xA5,
80 0xC2, 0x89, 0x20, 0xE9, 0xC8, 0xD2, 0x94, 0x92, 0xF6, 0xD0, 0x0B, 0x29, 0x04, 0x9E, 0xDC, 0x7E
61 0x5E, 0x81, 0x5C, 0x25, 0xA4, 0xE5, 0x89, 0x10, 0xA7, 0x35, 0x0E, 0xC6, 0x4E, 0xCB, 0x32, 0xBC,
62 0x9E, 0x19, 0x19, 0xF8, 0x68, 0x44, 0xDC, 0x97, 0x12, 0x57, 0x35, 0xC2, 0xC3, 0x0F, 0xBE, 0x6E
81 63 } }
82 64 }, },
83 65
 
... ... struct bootstrap_node {
91 73 }, },
92 74
93 75 { {
94 "95.31.18.227",
76 "198.199.98.108",
95 77 33445, 33445,
96 78 { {
97 0x25, 0x77, 0x44, 0xDB, 0xF5, 0x7B, 0xE3, 0xE1, 0x17, 0xFE, 0x05, 0xD1, 0x45, 0xB5, 0xF8, 0x06,
98 0x08, 0x94, 0x28, 0xD4, 0xDC, 0xE4, 0xE3, 0xD0, 0xD5, 0x06, 0x16, 0xAA, 0x16, 0xD9, 0x41, 0x7E
79 0xBE, 0xF0, 0xCF, 0xB3, 0x7A, 0xF8, 0x74, 0xBD, 0x17, 0xB9, 0xA8, 0xF9, 0xFE, 0x64, 0xC7, 0x55,
80 0x21, 0xDB, 0x95, 0xA3, 0x7D, 0x33, 0xC5, 0xBD, 0xB0, 0x0E, 0x9C, 0xF5, 0x86, 0x59, 0xC0, 0x4F
99 81 } }
100 82 }, },
101 83
 
... ... struct bootstrap_node {
108 90 } }
109 91 }, },
110 92
111 {
112 "87.118.126.207",
113 33445,
114 {
115 0x0D, 0x30, 0x3B, 0x17, 0x78, 0xCA, 0x10, 0x20, 0x35, 0xDA, 0x01, 0x33, 0x4E, 0x7B, 0x18, 0x55,
116 0xA4, 0x5C, 0x3E, 0xFB, 0xC9, 0xA8, 0x3B, 0x9D, 0x91, 0x6F, 0xFD, 0xEB, 0xC6, 0xDD, 0x3B, 0x2E
117 }
118 },
119
120 93 { {
121 94 "81.169.136.229", "81.169.136.229",
122 95 33445, 33445,
 
... ... struct bootstrap_node {
145 118 }, },
146 119
147 120 { {
148 "109.111.178.181",
121 "94.156.35.247",
149 122 33445, 33445,
150 123 { {
151 0x7B, 0x9B, 0xF5, 0xC2, 0xFF, 0x43, 0xF6, 0x05, 0x92, 0x38, 0x15, 0x96, 0xD4, 0xCB, 0xDC, 0x88,
152 0xB2, 0x87, 0xAA, 0x3F, 0xD3, 0x4C, 0x75, 0x36, 0x92, 0x4C, 0xB1, 0x39, 0x5C, 0xAF, 0x7E, 0x0C
124 0x20, 0xAD, 0x2A, 0x54, 0xD7, 0x0E, 0x82, 0x73, 0x02, 0xCD, 0xF5, 0xF1, 0x1D, 0x7C, 0x43, 0xFA,
125 0x0E, 0xC9, 0x87, 0x04, 0x2C, 0x36, 0x62, 0x8E, 0x64, 0xB2, 0xB7, 0x21, 0xA1, 0x42, 0x6E, 0x36
153 126 } }
154 127 }, },
155 128
156 129 { {
157 "51.38.80.132",
130 "46.101.197.175",
158 131 33445, 33445,
159 132 { {
160 0x6C, 0x6A, 0xF2, 0x23, 0x6F, 0x47, 0x8F, 0x83, 0x05, 0x96, 0x9C, 0xCF, 0xC7, 0xA7, 0xB6, 0x7C,
161 0x63, 0x83, 0x55, 0x8F, 0xF8, 0x77, 0x16, 0xD3, 0x8D, 0x55, 0x90, 0x6E, 0x08, 0xE7, 0x26, 0x67
133 0xCD, 0x13, 0x3B, 0x52, 0x11, 0x59, 0x54, 0x1F, 0xB1, 0xD3, 0x26, 0xDE, 0x98, 0x50, 0xF5, 0xE5,
134 0x6A, 0x6C, 0x72, 0x4B, 0x5B, 0x8E, 0x5E, 0xB5, 0xCD, 0x8D, 0x95, 0x04, 0x08, 0xE9, 0x57, 0x07
162 135 } }
163 136 }, },
164 137
165 138 { {
166 "51.158.146.76",
139 "49.12.229.145",
167 140 33445, 33445,
168 141 { {
169 0xE9, 0x40, 0xD8, 0xFA, 0x9B, 0x07, 0xC1, 0xD1, 0x3E, 0xA4, 0xEC, 0xF9, 0xF0, 0x6B, 0x66, 0xF5,
170 0x65, 0xF1, 0xCF, 0x61, 0xF0, 0x94, 0xF6, 0x0C, 0x67, 0xFD, 0xC8, 0xAD, 0xD3, 0xF4, 0xBA, 0x59
142 0xB3, 0xE5, 0xFA, 0x80, 0xDC, 0x8E, 0xBD, 0x11, 0x49, 0xAD, 0x2A, 0xB3, 0x5E, 0xD8, 0xB8, 0x5B,
143 0xD5, 0x46, 0xDE, 0xDE, 0x26, 0x1C, 0xA5, 0x93, 0x23, 0x4C, 0x61, 0x92, 0x49, 0x41, 0x95, 0x06
171 144 } }
172 145 }, },
173 146
174 147 { {
175 "46.101.197.175",
148 "37.59.63.150",
176 149 33445, 33445,
177 150 { {
178 0xCD, 0x13, 0x3B, 0x52, 0x11, 0x59, 0x54, 0x1F, 0xB1, 0xD3, 0x26, 0xDE, 0x98, 0x50, 0xF5, 0xE5,
179 0x6A, 0x6C, 0x72, 0x4B, 0x5B, 0x8E, 0x5E, 0xB5, 0xCD, 0x8D, 0x95, 0x04, 0x08, 0xE9, 0x57, 0x07
151 0x70, 0xEA, 0x21, 0x4F, 0xDE, 0x16, 0x1E, 0x74, 0x32, 0x53, 0x06, 0x05, 0x21, 0x3F, 0x18, 0xF7,
152 0x42, 0x7D, 0xC7, 0x73, 0xE2, 0x76, 0xB3, 0xE3, 0x17, 0xA0, 0x75, 0x31, 0xF5, 0x48, 0x54, 0x5F
180 153 } }
181 154 }, },
182 155
183 156 { {
184 "5.9.119.253",
157 "195.201.7.101",
185 158 33445, 33445,
186 159 { {
187 0xB3, 0xE5, 0xFA, 0x80, 0xDC, 0x8E, 0xBD, 0x11, 0x49, 0xAD, 0x2A, 0xB3, 0x5E, 0xD8, 0xB8, 0x5B,
188 0xD5, 0x46, 0xDE, 0xDE, 0x26, 0x1C, 0xA5, 0x93, 0x23, 0x4C, 0x61, 0x92, 0x49, 0x41, 0x95, 0x06
160 0xB8, 0x4E, 0x86, 0x51, 0x25, 0xB4, 0xEC, 0x4C, 0x36, 0x8C, 0xD0, 0x47, 0xC7, 0x2B, 0xCE, 0x44,
161 0x76, 0x44, 0xA2, 0xDC, 0x31, 0xEF, 0x75, 0xBD, 0x2C, 0xDA, 0x34, 0x5B, 0xFD, 0x31, 0x01, 0x07
189 162 } }
190 163 }, },
191 164
192 165 { {
193 "5.9.217.243",
166 "168.138.203.178",
194 167 33445, 33445,
195 168 { {
196 0x70, 0xEA, 0x21, 0x4F, 0xDE, 0x16, 0x1E, 0x74, 0x32, 0x53, 0x06, 0x05, 0x21, 0x3F, 0x18, 0xF7,
197 0x42, 0x7D, 0xC7, 0x73, 0xE2, 0x76, 0xB3, 0xE3, 0x17, 0xA0, 0x75, 0x31, 0xF5, 0x48, 0x54, 0x5F
169 0x6D, 0x04, 0xD8, 0x24, 0x8E, 0x55, 0x3F, 0x6F, 0x0B, 0xFD, 0xDB, 0x66, 0xFB, 0xFB, 0x03, 0x97,
170 0x7E, 0x3E, 0xE5, 0x4C, 0x43, 0x2D, 0x41, 0x6B, 0xC2, 0x44, 0x49, 0x86, 0xEF, 0x02, 0xCC, 0x17
171 }
172 },
173
174 {
175 "5.19.249.240",
176 38296,
177 {
178 0xDA, 0x98, 0xA4, 0xC0, 0xCD, 0x74, 0x73, 0xA1, 0x33, 0xE1, 0x15, 0xFE, 0xA2, 0xEB, 0xDA, 0xEE,
179 0xA2, 0xEF, 0x4F, 0x79, 0xFD, 0x69, 0x32, 0x5F, 0xC0, 0x70, 0xDA, 0x4D, 0xE4, 0xBA, 0x32, 0x38
180 }
181 },
182
183 {
184 "209.59.144.175",
185 33445,
186 {
187 0x21, 0x4B, 0x7F, 0xEA, 0x63, 0x22, 0x7C, 0xAE, 0xC5, 0xBC, 0xBA, 0x87, 0xF7, 0xAB, 0xEE, 0xDB,
188 0x1A, 0x2F, 0xF6, 0xD1, 0x83, 0x77, 0xDD, 0x86, 0xBF, 0x55, 0x1B, 0x8E, 0x09, 0x4D, 0x5F, 0x1E
189 }
190 },
191
192 {
193 "188.225.9.167",
194 33445,
195 {
196 0x19, 0x11, 0x34, 0x1A, 0x83, 0xE0, 0x25, 0x03, 0xAB, 0x1F, 0xD6, 0x56, 0x1B, 0xD6, 0x4A, 0xF3,
197 0xA9, 0xD6, 0xC3, 0xF1, 0x2B, 0x5F, 0xBB, 0x65, 0x69, 0x76, 0xB2, 0xE6, 0x78, 0x64, 0x4A, 0x67
198 }
199 },
200
201 {
202 "185.119.89.59",
203 33445,
204 {
205 0xFC, 0x4B, 0xAD, 0xF6, 0x2D, 0xCA, 0xF1, 0x71, 0x68, 0xA4, 0xE3, 0xAC, 0xAD, 0x5D, 0x65, 0x6C,
206 0xF4, 0x24, 0xED, 0xB5, 0xE0, 0xC0, 0xC2, 0xB9, 0xD7, 0x7E, 0x50, 0x9E, 0x74, 0xBD, 0x8F, 0x0D
207 }
208 },
209
210 {
211 "122.116.39.151",
212 33445,
213 {
214 0x57, 0x16, 0x53, 0x0A, 0x10, 0xD3, 0x62, 0x86, 0x7C, 0x8E, 0x87, 0xEE, 0x1C, 0xD5, 0x36, 0x2A,
215 0x23, 0x3B, 0xAF, 0xBB, 0xA4, 0xCF, 0x47, 0xFA, 0x73, 0xB7, 0xCA, 0xD3, 0x68, 0xBD, 0x5E, 0x6E
198 216 } }
199 217 }, },
200 218
201 219 { {
202 "46.146.229.184",
220 "195.123.208.139",
203 221 33445, 33445,
204 222 { {
205 0x94, 0x75, 0x0E, 0x94, 0x01, 0x35, 0x86, 0xCC, 0xD9, 0x89, 0x23, 0x3A, 0x62, 0x17, 0x47, 0xE2,
206 0x64, 0x6F, 0x08, 0xF3, 0x11, 0x02, 0x33, 0x94, 0x52, 0xCA, 0xDC, 0xF6, 0xDC, 0x2A, 0x76, 0x0A
223 0x53, 0x4A, 0x58, 0x9B, 0xA7, 0x42, 0x7C, 0x63, 0x17, 0x73, 0xD1, 0x30, 0x83, 0x57, 0x0F, 0x52,
224 0x92, 0x38, 0x21, 0x18, 0x93, 0x64, 0x0C, 0x99, 0xD1, 0x50, 0x73, 0x00, 0xF0, 0x55, 0xFE, 0x73
225 }
226 },
227
228 {
229 "104.225.141.59",
230 43334,
231 {
232 0x93, 0x3B, 0xA2, 0x0B, 0x2E, 0x25, 0x8B, 0x4C, 0x0D, 0x47, 0x5B, 0x6D, 0xEC, 0xE9, 0x0C, 0x7E,
233 0x82, 0x7F, 0xE8, 0x3E, 0xFA, 0x96, 0x55, 0x41, 0x4E, 0x78, 0x41, 0x25, 0x1B, 0x19, 0xA7, 0x2C
234 }
235 },
236
237 {
238 "198.98.49.206",
239 33445,
240 {
241 0x28, 0xDB, 0x44, 0xA3, 0xCE, 0xEE, 0x69, 0x14, 0x64, 0x69, 0x85, 0x5D, 0xFF, 0xE5, 0xF5, 0x4D,
242 0xA5, 0x67, 0xF5, 0xD6, 0x5E, 0x03, 0xEF, 0xB1, 0xD3, 0x8B, 0xBA, 0xEF, 0xF2, 0x55, 0x32, 0x55
243 }
244 },
245
246 {
247 "91.146.66.26",
248 33445,
249 {
250 0xB5, 0xE7, 0xDA, 0xC6, 0x10, 0xDB, 0xDE, 0x55, 0xF3, 0x59, 0xC7, 0xF8, 0x69, 0x0B, 0x29, 0x4C,
251 0x8E, 0x4F, 0xCE, 0xC4, 0x38, 0x5D, 0xE9, 0x52, 0x5D, 0xBF, 0xA5, 0x52, 0x3E, 0xAD, 0x9D, 0x53
252 }
253 },
254
255 {
256 "51.15.127.227",
257 33445,
258 {
259 0xFD, 0x04, 0xEB, 0x03, 0xAB, 0xC5, 0xFC, 0x52, 0x66, 0xA9, 0x3D, 0x37, 0xB4, 0xD6, 0xD6, 0x17,
260 0x1C, 0x99, 0x31, 0x17, 0x6D, 0xC6, 0x87, 0x36, 0x62, 0x95, 0x52, 0xD8, 0xEF, 0x0D, 0xE1, 0x74
261 }
262 },
263
264 {
265 "51.15.227.109",
266 33445,
267 {
268 0xD3, 0xD6, 0xD7, 0xC0, 0xC7, 0x00, 0x9F, 0xC7, 0x54, 0x06, 0xB0, 0xA4, 0x9E, 0x47, 0x59, 0x96,
269 0xC8, 0xC4, 0xF8, 0xBC, 0xE1, 0xE6, 0xFC, 0x59, 0x67, 0xDE, 0x42, 0x7F, 0x8F, 0x60, 0x05, 0x27
270 }
271 },
272
273 {
274 "43.231.185.239",
275 33445,
276 {
277 0x27, 0xD4, 0x02, 0x9A, 0x96, 0xC9, 0x67, 0x4C, 0x15, 0xB9, 0x58, 0x01, 0x1C, 0x62, 0xF6, 0x3D,
278 0x4D, 0x35, 0xA2, 0x31, 0x42, 0xEF, 0x2B, 0xA5, 0xCD, 0x9A, 0xF1, 0x64, 0x16, 0x2B, 0x34, 0x48
207 279 } }
208 280 }, },
209 281
 
... ... struct bootstrap_node {
212 284 struct bootstrap_node tcp_relays[] = { struct bootstrap_node tcp_relays[] = {
213 285
214 286 { {
215 "85.172.30.117",
287 "95.79.50.56",
216 288 33445, 33445,
217 289 { {
218 290 0x8E, 0x7D, 0x0B, 0x85, 0x99, 0x22, 0xEF, 0x56, 0x92, 0x98, 0xB4, 0xD2, 0x61, 0xA8, 0xCC, 0xB5, 0x8E, 0x7D, 0x0B, 0x85, 0x99, 0x22, 0xEF, 0x56, 0x92, 0x98, 0xB4, 0xD2, 0x61, 0xA8, 0xCC, 0xB5,
 
... ... struct bootstrap_node tcp_relays[] = {
222 294
223 295 { {
224 296 "85.143.221.42", "85.143.221.42",
225 33445,
297 3389,
226 298 { {
227 299 0xDA, 0x4E, 0x4E, 0xD4, 0xB6, 0x97, 0xF2, 0xE9, 0xB0, 0x00, 0xEE, 0xFE, 0x3A, 0x34, 0xB5, 0x54, 0xDA, 0x4E, 0x4E, 0xD4, 0xB6, 0x97, 0xF2, 0xE9, 0xB0, 0x00, 0xEE, 0xFE, 0x3A, 0x34, 0xB5, 0x54,
228 300 0xAC, 0xD3, 0xF4, 0x5F, 0x5C, 0x96, 0xEA, 0xEA, 0x25, 0x16, 0xDD, 0x7F, 0xF9, 0xAF, 0x7B, 0x43 0xAC, 0xD3, 0xF4, 0x5F, 0x5C, 0x96, 0xEA, 0xEA, 0x25, 0x16, 0xDD, 0x7F, 0xF9, 0xAF, 0x7B, 0x43
 
... ... struct bootstrap_node tcp_relays[] = {
231 303
232 304 { {
233 305 "85.143.221.42", "85.143.221.42",
234 3389,
306 33445,
235 307 { {
236 308 0xDA, 0x4E, 0x4E, 0xD4, 0xB6, 0x97, 0xF2, 0xE9, 0xB0, 0x00, 0xEE, 0xFE, 0x3A, 0x34, 0xB5, 0x54, 0xDA, 0x4E, 0x4E, 0xD4, 0xB6, 0x97, 0xF2, 0xE9, 0xB0, 0x00, 0xEE, 0xFE, 0x3A, 0x34, 0xB5, 0x54,
237 309 0xAC, 0xD3, 0xF4, 0x5F, 0x5C, 0x96, 0xEA, 0xEA, 0x25, 0x16, 0xDD, 0x7F, 0xF9, 0xAF, 0x7B, 0x43 0xAC, 0xD3, 0xF4, 0x5F, 0x5C, 0x96, 0xEA, 0xEA, 0x25, 0x16, 0xDD, 0x7F, 0xF9, 0xAF, 0x7B, 0x43
 
... ... struct bootstrap_node tcp_relays[] = {
257 329 }, },
258 330
259 331 { {
260 "78.46.73.141",
261 3389,
262 {
263 0x02, 0x80, 0x7C, 0xF4, 0xF8, 0xBB, 0x8F, 0xB3, 0x90, 0xCC, 0x37, 0x94, 0xBD, 0xF1, 0xE8, 0x44,
264 0x9E, 0x9A, 0x83, 0x92, 0xC5, 0xD3, 0xF2, 0x20, 0x00, 0x19, 0xDA, 0x9F, 0x1E, 0x81, 0x2E, 0x46
265 }
266 },
267
268 {
269 "78.46.73.141",
270 33445,
271 {
272 0x02, 0x80, 0x7C, 0xF4, 0xF8, 0xBB, 0x8F, 0xB3, 0x90, 0xCC, 0x37, 0x94, 0xBD, 0xF1, 0xE8, 0x44,
273 0x9E, 0x9A, 0x83, 0x92, 0xC5, 0xD3, 0xF2, 0x20, 0x00, 0x19, 0xDA, 0x9F, 0x1E, 0x81, 0x2E, 0x46
274 }
275 },
276
277 {
278 "59.115.124.141",
332 "59.115.125.212",
279 333 3389, 3389,
280 334 { {
281 335 0x3F, 0x0A, 0x45, 0xA2, 0x68, 0x36, 0x7C, 0x1B, 0xEA, 0x65, 0x2F, 0x25, 0x8C, 0x85, 0xF4, 0xA6, 0x3F, 0x0A, 0x45, 0xA2, 0x68, 0x36, 0x7C, 0x1B, 0xEA, 0x65, 0x2F, 0x25, 0x8C, 0x85, 0xF4, 0xA6,
 
... ... struct bootstrap_node tcp_relays[] = {
284 338 }, },
285 339
286 340 { {
287 "59.115.124.141",
341 "59.115.125.212",
288 342 33445, 33445,
289 343 { {
290 344 0x3F, 0x0A, 0x45, 0xA2, 0x68, 0x36, 0x7C, 0x1B, 0xEA, 0x65, 0x2F, 0x25, 0x8C, 0x85, 0xF4, 0xA6, 0x3F, 0x0A, 0x45, 0xA2, 0x68, 0x36, 0x7C, 0x1B, 0xEA, 0x65, 0x2F, 0x25, 0x8C, 0x85, 0xF4, 0xA6,
 
... ... struct bootstrap_node tcp_relays[] = {
294 348
295 349 { {
296 350 "144.217.167.73", "144.217.167.73",
297 33445,
351 3389,
298 352 { {
299 353 0x7E, 0x56, 0x68, 0xE0, 0xEE, 0x09, 0xE1, 0x9F, 0x32, 0x0A, 0xD4, 0x79, 0x02, 0x41, 0x93, 0x31, 0x7E, 0x56, 0x68, 0xE0, 0xEE, 0x09, 0xE1, 0x9F, 0x32, 0x0A, 0xD4, 0x79, 0x02, 0x41, 0x93, 0x31,
300 354 0xFF, 0xEE, 0x14, 0x7B, 0xB3, 0x60, 0x67, 0x69, 0xCF, 0xBE, 0x92, 0x1A, 0x2A, 0x2F, 0xD3, 0x4C 0xFF, 0xEE, 0x14, 0x7B, 0xB3, 0x60, 0x67, 0x69, 0xCF, 0xBE, 0x92, 0x1A, 0x2A, 0x2F, 0xD3, 0x4C
 
... ... struct bootstrap_node tcp_relays[] = {
303 357
304 358 { {
305 359 "144.217.167.73", "144.217.167.73",
306 3389,
360 33445,
307 361 { {
308 362 0x7E, 0x56, 0x68, 0xE0, 0xEE, 0x09, 0xE1, 0x9F, 0x32, 0x0A, 0xD4, 0x79, 0x02, 0x41, 0x93, 0x31, 0x7E, 0x56, 0x68, 0xE0, 0xEE, 0x09, 0xE1, 0x9F, 0x32, 0x0A, 0xD4, 0x79, 0x02, 0x41, 0x93, 0x31,
309 363 0xFF, 0xEE, 0x14, 0x7B, 0xB3, 0x60, 0x67, 0x69, 0xCF, 0xBE, 0x92, 0x1A, 0x2A, 0x2F, 0xD3, 0x4C 0xFF, 0xEE, 0x14, 0x7B, 0xB3, 0x60, 0x67, 0x69, 0xCF, 0xBE, 0x92, 0x1A, 0x2A, 0x2F, 0xD3, 0x4C
 
... ... struct bootstrap_node tcp_relays[] = {
311 365 }, },
312 366
313 367 { {
314 "172.103.164.206",
368 "212.13.66.106",
315 369 33445, 33445,
316 370 { {
317 0x10, 0xC0, 0x0E, 0xB2, 0x50, 0xC3, 0x23, 0x3E, 0x34, 0x3E, 0x2A, 0xEB, 0xA0, 0x71, 0x15, 0xA5,
318 0xC2, 0x89, 0x20, 0xE9, 0xC8, 0xD2, 0x94, 0x92, 0xF6, 0xD0, 0x0B, 0x29, 0x04, 0x9E, 0xDC, 0x7E
371 0x5E, 0x81, 0x5C, 0x25, 0xA4, 0xE5, 0x89, 0x10, 0xA7, 0x35, 0x0E, 0xC6, 0x4E, 0xCB, 0x32, 0xBC,
372 0x9E, 0x19, 0x19, 0xF8, 0x68, 0x44, 0xDC, 0x97, 0x12, 0x57, 0x35, 0xC2, 0xC3, 0x0F, 0xBE, 0x6E
319 373 } }
320 374 }, },
321 375
322 376 { {
323 "5.79.75.37",
324 33445,
377 "212.13.66.106",
378 3389,
325 379 { {
326 0xD5, 0x27, 0xE5, 0x84, 0x7F, 0x83, 0x30, 0xD6, 0x28, 0xDA, 0xB1, 0x81, 0x4F, 0x0A, 0x42, 0x2F,
327 0x6D, 0xC9, 0xD0, 0xA3, 0x00, 0xE6, 0xC3, 0x57, 0x63, 0x4E, 0xE2, 0xDA, 0x88, 0xC3, 0x54, 0x63
380 0x5E, 0x81, 0x5C, 0x25, 0xA4, 0xE5, 0x89, 0x10, 0xA7, 0x35, 0x0E, 0xC6, 0x4E, 0xCB, 0x32, 0xBC,
381 0x9E, 0x19, 0x19, 0xF8, 0x68, 0x44, 0xDC, 0x97, 0x12, 0x57, 0x35, 0xC2, 0xC3, 0x0F, 0xBE, 0x6E
328 382 } }
329 383 }, },
330 384
331 385 { {
332 "95.31.18.227",
386 "5.79.75.37",
333 387 33445, 33445,
334 388 { {
335 0x25, 0x77, 0x44, 0xDB, 0xF5, 0x7B, 0xE3, 0xE1, 0x17, 0xFE, 0x05, 0xD1, 0x45, 0xB5, 0xF8, 0x06,
336 0x08, 0x94, 0x28, 0xD4, 0xDC, 0xE4, 0xE3, 0xD0, 0xD5, 0x06, 0x16, 0xAA, 0x16, 0xD9, 0x41, 0x7E
389 0xD5, 0x27, 0xE5, 0x84, 0x7F, 0x83, 0x30, 0xD6, 0x28, 0xDA, 0xB1, 0x81, 0x4F, 0x0A, 0x42, 0x2F,
390 0x6D, 0xC9, 0xD0, 0xA3, 0x00, 0xE6, 0xC3, 0x57, 0x63, 0x4E, 0xE2, 0xDA, 0x88, 0xC3, 0x54, 0x63
337 391 } }
338 392 }, },
339 393
340 394 { {
341 "37.139.16.219",
342 33445,
395 "198.199.98.108",
396 3389,
343 397 { {
344 0x82, 0xEF, 0x82, 0xBA, 0x33, 0x44, 0x5A, 0x1F, 0x91, 0xA7, 0xDB, 0x27, 0x18, 0x9E, 0xCF, 0xC0,
345 0xC0, 0x13, 0xE0, 0x6E, 0x3D, 0xA7, 0x1F, 0x58, 0x8E, 0xD6, 0x92, 0xBE, 0xD6, 0x25, 0xEC, 0x23
398 0xBE, 0xF0, 0xCF, 0xB3, 0x7A, 0xF8, 0x74, 0xBD, 0x17, 0xB9, 0xA8, 0xF9, 0xFE, 0x64, 0xC7, 0x55,
399 0x21, 0xDB, 0x95, 0xA3, 0x7D, 0x33, 0xC5, 0xBD, 0xB0, 0x0E, 0x9C, 0xF5, 0x86, 0x59, 0xC0, 0x4F
346 400 } }
347 401 }, },
348 402
349 403 { {
350 "87.118.126.207",
404 "198.199.98.108",
351 405 33445, 33445,
352 406 { {
353 0x0D, 0x30, 0x3B, 0x17, 0x78, 0xCA, 0x10, 0x20, 0x35, 0xDA, 0x01, 0x33, 0x4E, 0x7B, 0x18, 0x55,
354 0xA4, 0x5C, 0x3E, 0xFB, 0xC9, 0xA8, 0x3B, 0x9D, 0x91, 0x6F, 0xFD, 0xEB, 0xC6, 0xDD, 0x3B, 0x2E
407 0xBE, 0xF0, 0xCF, 0xB3, 0x7A, 0xF8, 0x74, 0xBD, 0x17, 0xB9, 0xA8, 0xF9, 0xFE, 0x64, 0xC7, 0x55,
408 0x21, 0xDB, 0x95, 0xA3, 0x7D, 0x33, 0xC5, 0xBD, 0xB0, 0x0E, 0x9C, 0xF5, 0x86, 0x59, 0xC0, 0x4F
355 409 } }
356 410 }, },
357 411
 
... ... struct bootstrap_node tcp_relays[] = {
375 429
376 430 { {
377 431 "205.185.115.131", "205.185.115.131",
378 443,
432 33445,
379 433 { {
380 434 0x30, 0x91, 0xC6, 0xBE, 0xB2, 0xA9, 0x93, 0xF1, 0xC6, 0x30, 0x0C, 0x16, 0x54, 0x9F, 0xAB, 0xA6, 0x30, 0x91, 0xC6, 0xBE, 0xB2, 0xA9, 0x93, 0xF1, 0xC6, 0x30, 0x0C, 0x16, 0x54, 0x9F, 0xAB, 0xA6,
381 435 0x70, 0x98, 0xFF, 0x3D, 0x62, 0xC6, 0xD2, 0x53, 0x82, 0x8B, 0x53, 0x14, 0x70, 0xB5, 0x3D, 0x68 0x70, 0x98, 0xFF, 0x3D, 0x62, 0xC6, 0xD2, 0x53, 0x82, 0x8B, 0x53, 0x14, 0x70, 0xB5, 0x3D, 0x68
 
... ... struct bootstrap_node tcp_relays[] = {
393 447
394 448 { {
395 449 "205.185.115.131", "205.185.115.131",
396 33445,
450 443,
397 451 { {
398 452 0x30, 0x91, 0xC6, 0xBE, 0xB2, 0xA9, 0x93, 0xF1, 0xC6, 0x30, 0x0C, 0x16, 0x54, 0x9F, 0xAB, 0xA6, 0x30, 0x91, 0xC6, 0xBE, 0xB2, 0xA9, 0x93, 0xF1, 0xC6, 0x30, 0x0C, 0x16, 0x54, 0x9F, 0xAB, 0xA6,
399 453 0x70, 0x98, 0xFF, 0x3D, 0x62, 0xC6, 0xD2, 0x53, 0x82, 0x8B, 0x53, 0x14, 0x70, 0xB5, 0x3D, 0x68 0x70, 0x98, 0xFF, 0x3D, 0x62, 0xC6, 0xD2, 0x53, 0x82, 0x8B, 0x53, 0x14, 0x70, 0xB5, 0x3D, 0x68
 
... ... struct bootstrap_node tcp_relays[] = {
419 473 }, },
420 474
421 475 { {
422 "109.111.178.181",
476 "94.156.35.247",
423 477 33445, 33445,
424 478 { {
425 0x7B, 0x9B, 0xF5, 0xC2, 0xFF, 0x43, 0xF6, 0x05, 0x92, 0x38, 0x15, 0x96, 0xD4, 0xCB, 0xDC, 0x88,
426 0xB2, 0x87, 0xAA, 0x3F, 0xD3, 0x4C, 0x75, 0x36, 0x92, 0x4C, 0xB1, 0x39, 0x5C, 0xAF, 0x7E, 0x0C
479 0x20, 0xAD, 0x2A, 0x54, 0xD7, 0x0E, 0x82, 0x73, 0x02, 0xCD, 0xF5, 0xF1, 0x1D, 0x7C, 0x43, 0xFA,
480 0x0E, 0xC9, 0x87, 0x04, 0x2C, 0x36, 0x62, 0x8E, 0x64, 0xB2, 0xB7, 0x21, 0xA1, 0x42, 0x6E, 0x36
427 481 } }
428 482 }, },
429 483
430 484 { {
431 "51.158.146.76",
485 "94.156.35.247",
432 486 3389, 3389,
433 487 { {
434 0xE9, 0x40, 0xD8, 0xFA, 0x9B, 0x07, 0xC1, 0xD1, 0x3E, 0xA4, 0xEC, 0xF9, 0xF0, 0x6B, 0x66, 0xF5,
435 0x65, 0xF1, 0xCF, 0x61, 0xF0, 0x94, 0xF6, 0x0C, 0x67, 0xFD, 0xC8, 0xAD, 0xD3, 0xF4, 0xBA, 0x59
436 }
437 },
438
439 {
440 "51.158.146.76",
441 33445,
442 {
443 0xE9, 0x40, 0xD8, 0xFA, 0x9B, 0x07, 0xC1, 0xD1, 0x3E, 0xA4, 0xEC, 0xF9, 0xF0, 0x6B, 0x66, 0xF5,
444 0x65, 0xF1, 0xCF, 0x61, 0xF0, 0x94, 0xF6, 0x0C, 0x67, 0xFD, 0xC8, 0xAD, 0xD3, 0xF4, 0xBA, 0x59
488 0x20, 0xAD, 0x2A, 0x54, 0xD7, 0x0E, 0x82, 0x73, 0x02, 0xCD, 0xF5, 0xF1, 0x1D, 0x7C, 0x43, 0xFA,
489 0x0E, 0xC9, 0x87, 0x04, 0x2C, 0x36, 0x62, 0x8E, 0x64, 0xB2, 0xB7, 0x21, 0xA1, 0x42, 0x6E, 0x36
445 490 } }
446 491 }, },
447 492
 
... ... struct bootstrap_node tcp_relays[] = {
464 509 }, },
465 510
466 511 { {
467 "5.9.119.253",
512 "49.12.229.145",
468 513 33445, 33445,
469 514 { {
470 515 0xB3, 0xE5, 0xFA, 0x80, 0xDC, 0x8E, 0xBD, 0x11, 0x49, 0xAD, 0x2A, 0xB3, 0x5E, 0xD8, 0xB8, 0x5B, 0xB3, 0xE5, 0xFA, 0x80, 0xDC, 0x8E, 0xBD, 0x11, 0x49, 0xAD, 0x2A, 0xB3, 0x5E, 0xD8, 0xB8, 0x5B,
 
... ... struct bootstrap_node tcp_relays[] = {
473 518 }, },
474 519
475 520 { {
476 "5.9.119.253",
521 "49.12.229.145",
477 522 3389, 3389,
478 523 { {
479 524 0xB3, 0xE5, 0xFA, 0x80, 0xDC, 0x8E, 0xBD, 0x11, 0x49, 0xAD, 0x2A, 0xB3, 0x5E, 0xD8, 0xB8, 0x5B, 0xB3, 0xE5, 0xFA, 0x80, 0xDC, 0x8E, 0xBD, 0x11, 0x49, 0xAD, 0x2A, 0xB3, 0x5E, 0xD8, 0xB8, 0x5B,
 
... ... struct bootstrap_node tcp_relays[] = {
482 527 }, },
483 528
484 529 { {
485 "5.9.217.243",
530 "37.59.63.150",
486 531 33445, 33445,
487 532 { {
488 533 0x70, 0xEA, 0x21, 0x4F, 0xDE, 0x16, 0x1E, 0x74, 0x32, 0x53, 0x06, 0x05, 0x21, 0x3F, 0x18, 0xF7, 0x70, 0xEA, 0x21, 0x4F, 0xDE, 0x16, 0x1E, 0x74, 0x32, 0x53, 0x06, 0x05, 0x21, 0x3F, 0x18, 0xF7,
 
... ... struct bootstrap_node tcp_relays[] = {
491 536 }, },
492 537
493 538 { {
494 "5.9.217.243",
539 "37.59.63.150",
495 540 3389, 3389,
496 541 { {
497 542 0x70, 0xEA, 0x21, 0x4F, 0xDE, 0x16, 0x1E, 0x74, 0x32, 0x53, 0x06, 0x05, 0x21, 0x3F, 0x18, 0xF7, 0x70, 0xEA, 0x21, 0x4F, 0xDE, 0x16, 0x1E, 0x74, 0x32, 0x53, 0x06, 0x05, 0x21, 0x3F, 0x18, 0xF7,
 
... ... struct bootstrap_node tcp_relays[] = {
500 545 }, },
501 546
502 547 { {
503 "46.146.229.184",
548 "195.201.7.101",
549 3389,
550 {
551 0xB8, 0x4E, 0x86, 0x51, 0x25, 0xB4, 0xEC, 0x4C, 0x36, 0x8C, 0xD0, 0x47, 0xC7, 0x2B, 0xCE, 0x44,
552 0x76, 0x44, 0xA2, 0xDC, 0x31, 0xEF, 0x75, 0xBD, 0x2C, 0xDA, 0x34, 0x5B, 0xFD, 0x31, 0x01, 0x07
553 }
554 },
555
556 {
557 "195.201.7.101",
558 33445,
559 {
560 0xB8, 0x4E, 0x86, 0x51, 0x25, 0xB4, 0xEC, 0x4C, 0x36, 0x8C, 0xD0, 0x47, 0xC7, 0x2B, 0xCE, 0x44,
561 0x76, 0x44, 0xA2, 0xDC, 0x31, 0xEF, 0x75, 0xBD, 0x2C, 0xDA, 0x34, 0x5B, 0xFD, 0x31, 0x01, 0x07
562 }
563 },
564
565 {
566 "168.138.203.178",
567 33445,
568 {
569 0x6D, 0x04, 0xD8, 0x24, 0x8E, 0x55, 0x3F, 0x6F, 0x0B, 0xFD, 0xDB, 0x66, 0xFB, 0xFB, 0x03, 0x97,
570 0x7E, 0x3E, 0xE5, 0x4C, 0x43, 0x2D, 0x41, 0x6B, 0xC2, 0x44, 0x49, 0x86, 0xEF, 0x02, 0xCC, 0x17
571 }
572 },
573
574 {
575 "5.19.249.240",
576 38296,
577 {
578 0xDA, 0x98, 0xA4, 0xC0, 0xCD, 0x74, 0x73, 0xA1, 0x33, 0xE1, 0x15, 0xFE, 0xA2, 0xEB, 0xDA, 0xEE,
579 0xA2, 0xEF, 0x4F, 0x79, 0xFD, 0x69, 0x32, 0x5F, 0xC0, 0x70, 0xDA, 0x4D, 0xE4, 0xBA, 0x32, 0x38
580 }
581 },
582
583 {
584 "5.19.249.240",
585 3389,
586 {
587 0xDA, 0x98, 0xA4, 0xC0, 0xCD, 0x74, 0x73, 0xA1, 0x33, 0xE1, 0x15, 0xFE, 0xA2, 0xEB, 0xDA, 0xEE,
588 0xA2, 0xEF, 0x4F, 0x79, 0xFD, 0x69, 0x32, 0x5F, 0xC0, 0x70, 0xDA, 0x4D, 0xE4, 0xBA, 0x32, 0x38
589 }
590 },
591
592 {
593 "209.59.144.175",
594 33445,
595 {
596 0x21, 0x4B, 0x7F, 0xEA, 0x63, 0x22, 0x7C, 0xAE, 0xC5, 0xBC, 0xBA, 0x87, 0xF7, 0xAB, 0xEE, 0xDB,
597 0x1A, 0x2F, 0xF6, 0xD1, 0x83, 0x77, 0xDD, 0x86, 0xBF, 0x55, 0x1B, 0x8E, 0x09, 0x4D, 0x5F, 0x1E
598 }
599 },
600
601 {
602 "188.225.9.167",
603 33445,
604 {
605 0x19, 0x11, 0x34, 0x1A, 0x83, 0xE0, 0x25, 0x03, 0xAB, 0x1F, 0xD6, 0x56, 0x1B, 0xD6, 0x4A, 0xF3,
606 0xA9, 0xD6, 0xC3, 0xF1, 0x2B, 0x5F, 0xBB, 0x65, 0x69, 0x76, 0xB2, 0xE6, 0x78, 0x64, 0x4A, 0x67
607 }
608 },
609
610 {
611 "188.225.9.167",
612 3389,
613 {
614 0x19, 0x11, 0x34, 0x1A, 0x83, 0xE0, 0x25, 0x03, 0xAB, 0x1F, 0xD6, 0x56, 0x1B, 0xD6, 0x4A, 0xF3,
615 0xA9, 0xD6, 0xC3, 0xF1, 0x2B, 0x5F, 0xBB, 0x65, 0x69, 0x76, 0xB2, 0xE6, 0x78, 0x64, 0x4A, 0x67
616 }
617 },
618
619 {
620 "185.119.89.59",
504 621 3389, 3389,
505 622 { {
506 0x94, 0x75, 0x0E, 0x94, 0x01, 0x35, 0x86, 0xCC, 0xD9, 0x89, 0x23, 0x3A, 0x62, 0x17, 0x47, 0xE2,
507 0x64, 0x6F, 0x08, 0xF3, 0x11, 0x02, 0x33, 0x94, 0x52, 0xCA, 0xDC, 0xF6, 0xDC, 0x2A, 0x76, 0x0A
623 0xFC, 0x4B, 0xAD, 0xF6, 0x2D, 0xCA, 0xF1, 0x71, 0x68, 0xA4, 0xE3, 0xAC, 0xAD, 0x5D, 0x65, 0x6C,
624 0xF4, 0x24, 0xED, 0xB5, 0xE0, 0xC0, 0xC2, 0xB9, 0xD7, 0x7E, 0x50, 0x9E, 0x74, 0xBD, 0x8F, 0x0D
508 625 } }
509 626 }, },
510 627
511 628 { {
512 "46.146.229.184",
629 "185.119.89.59",
513 630 33445, 33445,
514 631 { {
515 0x94, 0x75, 0x0E, 0x94, 0x01, 0x35, 0x86, 0xCC, 0xD9, 0x89, 0x23, 0x3A, 0x62, 0x17, 0x47, 0xE2,
516 0x64, 0x6F, 0x08, 0xF3, 0x11, 0x02, 0x33, 0x94, 0x52, 0xCA, 0xDC, 0xF6, 0xDC, 0x2A, 0x76, 0x0A
632 0xFC, 0x4B, 0xAD, 0xF6, 0x2D, 0xCA, 0xF1, 0x71, 0x68, 0xA4, 0xE3, 0xAC, 0xAD, 0x5D, 0x65, 0x6C,
633 0xF4, 0x24, 0xED, 0xB5, 0xE0, 0xC0, 0xC2, 0xB9, 0xD7, 0x7E, 0x50, 0x9E, 0x74, 0xBD, 0x8F, 0x0D
634 }
635 },
636
637 {
638 "122.116.39.151",
639 3389,
640 {
641 0x57, 0x16, 0x53, 0x0A, 0x10, 0xD3, 0x62, 0x86, 0x7C, 0x8E, 0x87, 0xEE, 0x1C, 0xD5, 0x36, 0x2A,
642 0x23, 0x3B, 0xAF, 0xBB, 0xA4, 0xCF, 0x47, 0xFA, 0x73, 0xB7, 0xCA, 0xD3, 0x68, 0xBD, 0x5E, 0x6E
643 }
644 },
645
646 {
647 "122.116.39.151",
648 33445,
649 {
650 0x57, 0x16, 0x53, 0x0A, 0x10, 0xD3, 0x62, 0x86, 0x7C, 0x8E, 0x87, 0xEE, 0x1C, 0xD5, 0x36, 0x2A,
651 0x23, 0x3B, 0xAF, 0xBB, 0xA4, 0xCF, 0x47, 0xFA, 0x73, 0xB7, 0xCA, 0xD3, 0x68, 0xBD, 0x5E, 0x6E
652 }
653 },
654
655 {
656 "195.123.208.139",
657 3389,
658 {
659 0x53, 0x4A, 0x58, 0x9B, 0xA7, 0x42, 0x7C, 0x63, 0x17, 0x73, 0xD1, 0x30, 0x83, 0x57, 0x0F, 0x52,
660 0x92, 0x38, 0x21, 0x18, 0x93, 0x64, 0x0C, 0x99, 0xD1, 0x50, 0x73, 0x00, 0xF0, 0x55, 0xFE, 0x73
661 }
662 },
663
664 {
665 "195.123.208.139",
666 33445,
667 {
668 0x53, 0x4A, 0x58, 0x9B, 0xA7, 0x42, 0x7C, 0x63, 0x17, 0x73, 0xD1, 0x30, 0x83, 0x57, 0x0F, 0x52,
669 0x92, 0x38, 0x21, 0x18, 0x93, 0x64, 0x0C, 0x99, 0xD1, 0x50, 0x73, 0x00, 0xF0, 0x55, 0xFE, 0x73
670 }
671 },
672
673 {
674 "198.98.49.206",
675 33445,
676 {
677 0x28, 0xDB, 0x44, 0xA3, 0xCE, 0xEE, 0x69, 0x14, 0x64, 0x69, 0x85, 0x5D, 0xFF, 0xE5, 0xF5, 0x4D,
678 0xA5, 0x67, 0xF5, 0xD6, 0x5E, 0x03, 0xEF, 0xB1, 0xD3, 0x8B, 0xBA, 0xEF, 0xF2, 0x55, 0x32, 0x55
679 }
680 },
681
682 {
683 "51.15.127.227",
684 33445,
685 {
686 0xFD, 0x04, 0xEB, 0x03, 0xAB, 0xC5, 0xFC, 0x52, 0x66, 0xA9, 0x3D, 0x37, 0xB4, 0xD6, 0xD6, 0x17,
687 0x1C, 0x99, 0x31, 0x17, 0x6D, 0xC6, 0x87, 0x36, 0x62, 0x95, 0x52, 0xD8, 0xEF, 0x0D, 0xE1, 0x74
688 }
689 },
690
691 {
692 "51.15.227.109",
693 33445,
694 {
695 0xD3, 0xD6, 0xD7, 0xC0, 0xC7, 0x00, 0x9F, 0xC7, 0x54, 0x06, 0xB0, 0xA4, 0x9E, 0x47, 0x59, 0x96,
696 0xC8, 0xC4, 0xF8, 0xBC, 0xE1, 0xE6, 0xFC, 0x59, 0x67, 0xDE, 0x42, 0x7F, 0x8F, 0x60, 0x05, 0x27
697 }
698 },
699
700 {
701 "43.231.185.239",
702 33445,
703 {
704 0x27, 0xD4, 0x02, 0x9A, 0x96, 0xC9, 0x67, 0x4C, 0x15, 0xB9, 0x58, 0x01, 0x1C, 0x62, 0xF6, 0x3D,
705 0x4D, 0x35, 0xA2, 0x31, 0x42, 0xEF, 0x2B, 0xA5, 0xCD, 0x9A, 0xF1, 0x64, 0x16, 0x2B, 0x34, 0x48
706 }
707 },
708
709 {
710 "43.231.185.239",
711 3389,
712 {
713 0x27, 0xD4, 0x02, 0x9A, 0x96, 0xC9, 0x67, 0x4C, 0x15, 0xB9, 0x58, 0x01, 0x1C, 0x62, 0xF6, 0x3D,
714 0x4D, 0x35, 0xA2, 0x31, 0x42, 0xEF, 0x2B, 0xA5, 0xCD, 0x9A, 0xF1, 0x64, 0x16, 0x2B, 0x34, 0x48
715 }
716 },
717
718 {
719 "172.103.164.206",
720 33445,
721 {
722 0x10, 0xC0, 0x0E, 0xB2, 0x50, 0xC3, 0x23, 0x3E, 0x34, 0x3E, 0x2A, 0xEB, 0xA0, 0x71, 0x15, 0xA5,
723 0xC2, 0x89, 0x20, 0xE9, 0xC8, 0xD2, 0x94, 0x92, 0xF6, 0xD0, 0x0B, 0x29, 0x04, 0x9E, 0xDC, 0x7E
517 724 } }
518 725 }, },
519 726
Hints:
Before first commit, do not forget to setup your git environment:
git config --global user.name "your_name_here"
git config --global user.email "your@email_here"

Clone this repository using HTTP(S):
git clone https://rocketgit.com/user/gdr/tuntox

Clone this repository using ssh (do not forget to upload a key first):
git clone ssh://rocketgit@ssh.rocketgit.com/user/gdr/tuntox

Clone this repository using git:
git clone git://git.rocketgit.com/user/gdr/tuntox

You are allowed to anonymously push to this repository.
This means that your pushed commits will automatically be transformed into a merge request:
... clone the repository ...
... make some changes and some commits ...
git push origin main