summaryrefslogtreecommitdiff
path: root/testing/Messenger_test.c
diff options
context:
space:
mode:
Diffstat (limited to 'testing/Messenger_test.c')
-rw-r--r--testing/Messenger_test.c44
1 files changed, 35 insertions, 9 deletions
diff --git a/testing/Messenger_test.c b/testing/Messenger_test.c
index c049aa18..484098b9 100644
--- a/testing/Messenger_test.c
+++ b/testing/Messenger_test.c
@@ -10,9 +10,14 @@
10 * This is how I compile it: gcc -O2 -Wall -D VANILLA_NACL -o test ../core/Lossless_UDP.c ../core/network.c ../core/net_crypto.c ../core/Messenger.c ../core/DHT.c ../nacl/build/${HOSTNAME%.*}/lib/amd64/{cpucycles.o,libnacl.a,randombytes.o} Messenger_test.c 10 * This is how I compile it: gcc -O2 -Wall -D VANILLA_NACL -o test ../core/Lossless_UDP.c ../core/network.c ../core/net_crypto.c ../core/Messenger.c ../core/DHT.c ../nacl/build/${HOSTNAME%.*}/lib/amd64/{cpucycles.o,libnacl.a,randombytes.o} Messenger_test.c
11 * 11 *
12 * 12 *
13 * Command line arguments are the ip and port of a node (for bootstrapping). 13 * Command line arguments are the ip, port and public_key of a node (for bootstrapping).
14 *
15 * EX: ./test 127.0.0.1 33445 CDCFD319CE3460824B33BE58FD86B8941C9585181D8FBD7C79C5721D7C2E9F7C
16 *
17 * Or the argument can be the path to the save file.
18 *
19 * EX: ./test Save.bak
14 * 20 *
15 * EX: ./test 127.0.0.1 33445
16 */ 21 */
17 22
18#include "../core/Messenger.h" 23#include "../core/Messenger.h"
@@ -77,11 +82,29 @@ void print_message(int friendnumber, uint8_t * string, uint16_t length)
77 82
78int main(int argc, char *argv[]) 83int main(int argc, char *argv[])
79{ 84{
80 if (argc < 4) { 85 if (argc < 4 && argc != 2) {
81 printf("usage %s ip port public_key (of the DHT bootstrap node)\n", argv[0]); 86 printf("usage %s ip port public_key (of the DHT bootstrap node)\n or\n %s Save.bak\n", argv[0], argv[0]);
82 exit(0); 87 exit(0);
83 } 88 }
84 initMessenger(); 89 initMessenger();
90 if(argc > 3)
91 {
92 IP_Port bootstrap_ip_port;
93 bootstrap_ip_port.port = htons(atoi(argv[2]));
94 bootstrap_ip_port.ip.i = inet_addr(argv[1]);
95 DHT_bootstrap(bootstrap_ip_port, hex_string_to_bin(argv[3]));
96 }
97 else
98 {
99 FILE *file = fopen(argv[1], "rb");
100 if ( file==NULL ){return 1;}
101 int read;
102 uint8_t buffer[128000];
103 read = fread(buffer, 1, 128000, file);
104 printf("Messenger loaded: %i\n", Messenger_load(buffer, read));
105 fclose(file);
106
107 }
85 m_callback_friendrequest(print_request); 108 m_callback_friendrequest(print_request);
86 m_callback_friendmessage(print_message); 109 m_callback_friendmessage(print_message);
87 110
@@ -103,16 +126,19 @@ int main(int argc, char *argv[])
103 int num = m_addfriend(hex_string_to_bin(temp_id), (uint8_t*)"Install Gentoo", sizeof("Install Gentoo")); 126 int num = m_addfriend(hex_string_to_bin(temp_id), (uint8_t*)"Install Gentoo", sizeof("Install Gentoo"));
104 127
105 perror("Initialization"); 128 perror("Initialization");
106 IP_Port bootstrap_ip_port; 129
107 bootstrap_ip_port.port = htons(atoi(argv[2]));
108 bootstrap_ip_port.ip.i = inet_addr(argv[1]);
109 DHT_bootstrap(bootstrap_ip_port, hex_string_to_bin(argv[3]));
110
111 while(1) 130 while(1)
112 { 131 {
113 m_sendmessage(num, (uint8_t*)"Test", 5); 132 m_sendmessage(num, (uint8_t*)"Test", 5);
114 doMessenger(); 133 doMessenger();
115 c_sleep(30); 134 c_sleep(30);
135 FILE *file = fopen("Save.bak", "wb");
136 if ( file==NULL ){return 1;}
137 uint8_t * buffer = malloc(Messenger_size());
138 Messenger_save(buffer);
139 fwrite(buffer, 1, Messenger_size(), file);
140 free(buffer);
141 fclose(file);
116 } 142 }
117 143
118} 144}