summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/Messenger.c6
-rw-r--r--testing/nTox_win32.c79
2 files changed, 62 insertions, 23 deletions
diff --git a/core/Messenger.c b/core/Messenger.c
index f77b4491..4c76dd30 100644
--- a/core/Messenger.c
+++ b/core/Messenger.c
@@ -71,6 +71,12 @@ int getfriend_id(uint8_t *client_id)
71 return -1; 71 return -1;
72} 72}
73 73
74/* Returns number of friends */
75int getnumfriends()
76{
77 return numfriends;
78}
79
74/* copies the public key associated to that friend id into client_id buffer. 80/* copies the public key associated to that friend id into client_id buffer.
75 make sure that client_id is of size CLIENT_ID_SIZE. 81 make sure that client_id is of size CLIENT_ID_SIZE.
76 return 0 if success 82 return 0 if success
diff --git a/testing/nTox_win32.c b/testing/nTox_win32.c
index 51f31001..3a9caaf5 100644
--- a/testing/nTox_win32.c
+++ b/testing/nTox_win32.c
@@ -30,18 +30,23 @@ uint8_t pending_requests[256][CLIENT_ID_SIZE];
30uint8_t num_requests; 30uint8_t num_requests;
31 31
32char line[STRING_LENGTH]; 32char line[STRING_LENGTH];
33char users_id[200];
33 34
34void do_header() 35void do_header()
35{ 36{
36 printf("\n[i] commands: /f ID (to add friend), /m friendnumber message (to send message), /s status (to change status), /n nick (to change nickname), /q (to quit)\n\n"); 37 system("cls");
38 printf(users_id);
39 printf("\n---------------------------------");
40 printf("\n[i] commands: /f ID (to add friend), /m friendnumber message (to send message), /s status (to change status), /n nick (to change nickname), /l (lists friends), /d friendnumber (deletes friend), /q (to quit), /r (reset screen)");
41 printf("\n---------------------------------");
37} 42}
38 43
39void print_request(uint8_t *public_key, uint8_t *data, uint16_t length) 44void print_request(uint8_t *public_key, uint8_t *data, uint16_t length)
40{ 45{
41 printf("\n[i] received friend request with message\n"); 46 printf("\n\n[i] received friend request with message\n");
42 printf((char *)data); 47 printf((char *)data);
43 char numchar[100]; 48 char numchar[100];
44 sprintf(numchar, "\n[i] accept request with /a %u\n", num_requests); 49 sprintf(numchar, "\n\n[i] accept request with /a %u\n\n", num_requests);
45 printf(numchar); 50 printf(numchar);
46 memcpy(pending_requests[num_requests], public_key, CLIENT_ID_SIZE); 51 memcpy(pending_requests[num_requests], public_key, CLIENT_ID_SIZE);
47 ++num_requests; 52 ++num_requests;
@@ -59,7 +64,7 @@ void print_message(int friendnumber, uint8_t * string, uint16_t length)
59 char* temp = asctime(timeinfo); 64 char* temp = asctime(timeinfo);
60 size_t len = strlen(temp); 65 size_t len = strlen(temp);
61 temp[len-1]='\0'; 66 temp[len-1]='\0';
62 sprintf(msg, "\n[%d] %s <%s> %s", friendnumber, temp, name, string); // timestamp 67 sprintf(msg, "\n[%d] %s <%s> %s\n\n", friendnumber, temp, name, string); // timestamp
63 printf(msg); 68 printf(msg);
64} 69}
65 70
@@ -68,7 +73,7 @@ void print_nickchange(int friendnumber, uint8_t *string, uint16_t length)
68 char name[MAX_NAME_LENGTH]; 73 char name[MAX_NAME_LENGTH];
69 getname(friendnumber, (uint8_t*)name); 74 getname(friendnumber, (uint8_t*)name);
70 char msg[100+length]; 75 char msg[100+length];
71 sprintf(msg, "\n[i] [%d] %s is now known as %s.", friendnumber, name, string); 76 sprintf(msg, "\n\n[i] [%d] %s is now known as %s.\n\n", friendnumber, name, string);
72 printf(msg); 77 printf(msg);
73} 78}
74 79
@@ -76,11 +81,10 @@ void print_statuschange(int friendnumber, uint8_t *string, uint16_t length) {
76 char name[MAX_NAME_LENGTH]; 81 char name[MAX_NAME_LENGTH];
77 getname(friendnumber, (uint8_t*)name); 82 getname(friendnumber, (uint8_t*)name);
78 char msg[100+length+strlen(name)+1]; 83 char msg[100+length+strlen(name)+1];
79 sprintf(msg, "\n[i] [%d] %s's status changed to %s.", friendnumber, name, string); 84 sprintf(msg, "\n\n[i] [%d] %s's status changed to %s.\n", friendnumber, name, string);
80 printf(msg); 85 printf(msg);
81} 86}
82 87
83
84void load_key() 88void load_key()
85{ 89{
86 FILE *data_file = NULL; 90 FILE *data_file = NULL;
@@ -127,8 +131,34 @@ void line_eval(char* line)
127 printf(numstring); 131 printf(numstring);
128 } 132 }
129 133
134 else if (line[1] == 'r') {
135 do_header();
136 printf("\n\n");
137 }
138
139 else if (line[1] == 'l') {
140 printf("\n[i] Friend List | Total: %d\n\n", getnumfriends());
141
142 int i;
143
144 for (i=0; i < getnumfriends(); i++) {
145 char name[MAX_NAME_LENGTH];
146 getname(i, (uint8_t*)name);
147 printf("[%d] %s\n\n", i, (uint8_t*)name);
148 }
149 }
150
130 else if (line[1] == 'd') { 151 else if (line[1] == 'd') {
131 doMessenger(); 152 size_t len = strlen(line);
153 char numstring[len-3];
154 int i;
155 for (i=0; i<len; i++) {
156 if (line[i+3] != ' ') {
157 numstring[i] = line[i+3];
158 }
159 }
160 int num = atoi(numstring);
161 m_delfriend(num);
132 } 162 }
133 /* Send message to friend */ 163 /* Send message to friend */
134 else if (line[1] == 'm') { 164 else if (line[1] == 'm') {
@@ -148,7 +178,10 @@ void line_eval(char* line)
148 } 178 }
149 int num = atoi(numstring); 179 int num = atoi(numstring);
150 if(m_sendmessage(num, (uint8_t*) message, sizeof(message)) != 1) { 180 if(m_sendmessage(num, (uint8_t*) message, sizeof(message)) != 1) {
151 printf("\n[i] could not send message: %s\n\n", message); 181 printf("\n[i] could not send message: %s\n", message);
182 } else {
183 //simply for aesthetics
184 printf("\n");
152 } 185 }
153 } 186 }
154 187
@@ -222,14 +255,12 @@ int main(int argc, char *argv[])
222 printf("initMessenger failed"); 255 printf("initMessenger failed");
223 exit(0); 256 exit(0);
224 } 257 }
225
226 258
227 if (argc > 4) { 259 if (argc > 4) {
228 if(strncmp(argv[4], "nokey", 6) < 0) { 260 if(strncmp(argv[4], "nokey", 6) < 0) {
229 //nothing
230 } else {
231 load_key();
232 } 261 }
262 } else {
263 load_key();
233 } 264 }
234 265
235 m_callback_friendrequest(print_request); 266 m_callback_friendrequest(print_request);
@@ -237,9 +268,6 @@ int main(int argc, char *argv[])
237 m_callback_namechange(print_nickchange); 268 m_callback_namechange(print_nickchange);
238 m_callback_userstatus(print_statuschange); 269 m_callback_userstatus(print_statuschange);
239 270
240 system("cls");
241
242 char idstring0[200];
243 char idstring1[32][5]; 271 char idstring1[32][5];
244 char idstring2[32][5]; 272 char idstring2[32][5];
245 uint32_t i; 273 uint32_t i;
@@ -251,15 +279,13 @@ int main(int argc, char *argv[])
251 strcpy(idstring1[i], ""); 279 strcpy(idstring1[i], "");
252 sprintf(idstring2[i], "%hhX",self_public_key[i]); 280 sprintf(idstring2[i], "%hhX",self_public_key[i]);
253 } 281 }
254 strcpy(idstring0,"\n[i] your ID: "); 282 strcpy(users_id,"[i] your ID: ");
255 for (i=0; i<32; i++) { 283 for (i=0; i<32; i++) {
256 strcat(idstring0,idstring1[i]); 284 strcat(users_id,idstring1[i]);
257 strcat(idstring0,idstring2[i]); 285 strcat(users_id,idstring2[i]);
258 } 286 }
259 287
260 printf(idstring0);
261 do_header(); 288 do_header();
262
263 289
264 IP_Port bootstrap_ip_port; 290 IP_Port bootstrap_ip_port;
265 bootstrap_ip_port.port = htons(atoi(argv[2])); 291 bootstrap_ip_port.port = htons(atoi(argv[2]));
@@ -271,15 +297,22 @@ int main(int argc, char *argv[])
271 297
272 DHT_bootstrap(bootstrap_ip_port, hex_string_to_bin(argv[3])); 298 DHT_bootstrap(bootstrap_ip_port, hex_string_to_bin(argv[3]));
273 299
274
275 int c; 300 int c;
276 int on = 0; 301 int on = 0;
277 302
278 _beginthread(get_input, 0, NULL); 303 _beginthread(get_input, 0, NULL);
279 304
280 while(1) { 305 while(1) {
306 if (on == 1 && DHT_isconnected() == -1) {
307 printf("\n---------------------------------");
308 printf("\n[i] Disconnected from the DHT");
309 printf("\n---------------------------------\n\n");
310 on = 0;
311 }
312
281 if (on == 0 && DHT_isconnected()) { 313 if (on == 0 && DHT_isconnected()) {
282 printf("\n[i] connected to DHT\n\n"); 314 printf("\n[i] Connected to DHT");
315 printf("\n---------------------------------\n\n");
283 on = 1; 316 on = 1;
284 } 317 }
285 318