From f8b9531d4d902babb7eccaa4c371f3ace720551d Mon Sep 17 00:00:00 2001 From: Patrick Hornecker Date: Thu, 25 Feb 2010 11:09:06 +0100 Subject: tex source and code modifications --- friendfinder/receiver.c | 64 ++++++++++++++++++++++++++++++------------------- 1 file changed, 39 insertions(+), 25 deletions(-) (limited to 'friendfinder/receiver.c') diff --git a/friendfinder/receiver.c b/friendfinder/receiver.c index e1400ff..9ee0737 100644 --- a/friendfinder/receiver.c +++ b/friendfinder/receiver.c @@ -249,9 +249,9 @@ void get_position(irc_session_t * session, const char * event, const char * orig irc_target_get_nick(origin, sender_name, sizeof(sender_name)); strncpy(sender_org, sender_name, username_length); sender_org[username_length] = '\0'; +//&& strcmp(sender_name, "_s") - if (strcmp(sender_org, own_nickname) != 0 && strcmp(sender_name, "_s") > 0 && strcmp(params[1], "connected") != 0 - && check_message(params[1]) == 0) + if (strcmp(sender_org, own_nickname) != 0 && strcmp(params[1], "connected") != 0 && check_message(params[1], sender_name) == 1) { int pos = get_sender_array_pos(sender_org); @@ -264,10 +264,10 @@ void get_position(irc_session_t * session, const char * event, const char * orig BF_ecb_encrypt(encrypted_base64, decrypted, &key, BF_DECRYPT); decrypted[strlen(decrypted)] = '\0'; - + repair_position(s_sender[pos], decrypted); - send_acknowledgement(); + send_acknowledgement(sender_name); free(encrypted_base64); free(decrypted); @@ -285,7 +285,7 @@ void get_position(irc_session_t * session, const char * event, const char * orig repair_position(s_sender[pos], decrypted); - send_acknowledgement(); + send_acknowledgement(sender_name); free(encrypted_base64); free(decrypted); @@ -326,33 +326,47 @@ void get_position(irc_session_t * session, const char * event, const char * orig } } -void send_acknowledgement() +void send_acknowledgement(char *sender) { - char* ack = "ack"; - char* ack_base64 = (char*) malloc(sizeof(char) * 50); - char* ack_crypted = (char*) malloc(sizeof(char) * 20); + char* sender_base64 = (char*) malloc(sizeof(char) * 50); + char* sender_crypted = (char*) malloc(sizeof(char) * 20); + + printf("sender: %s \n", sender); + BF_ecb_encrypt(sender, sender_crypted, &key, BF_ENCRYPT); + to_base64(sender_crypted, strlen(sender_crypted), sender_base64, 50); + irc_cmd_msg(session, "#test", sender_base64); - BF_ecb_encrypt(ack, ack_crypted, &key, BF_ENCRYPT); - to_base64(ack_crypted, strlen(ack_crypted), ack_base64, 50); - irc_cmd_msg(session, "#test", ack_base64); + free(sender_base64); + free(sender_crypted); } -int check_message(char *msg) +int check_message(char *msg, char *sender) { - char* ack = "ack"; - char* ack_base64 = (char*) malloc(sizeof(char) * 50); - char* ack_decrypted = (char*) malloc(sizeof(char) * 20); + if (sender[strlen(sender) - 1] == 's') + { + char* ack_base64 = (char*) malloc(sizeof(char) * 50); + char* ack_decrypted = (char*) malloc(sizeof(char) * 20); + + from_base64(msg, strlen(msg), ack_base64, 50); + BF_ecb_encrypt(ack_base64, ack_decrypted, &key, BF_DECRYPT); + + if (strcmp(sender, ack_decrypted) == 0) + { + free(ack_base64); + free(ack_decrypted); + return 0; + } + else if (strcmp(sender, ack_decrypted) != 0) + { + free(ack_base64); + free(ack_decrypted); + return 1; + } - from_base64(msg, strlen(msg), ack_base64, 50); - BF_ecb_encrypt(ack_base64, ack_decrypted, &key, BF_DECRYPT); - - if (strcmp(ack, ack_decrypted) == 0) - { - return 1; } - else if (strcmp(ack, ack_decrypted) != 0) + else if (sender[strlen(sender) - 1] != 's') { - return 0; + return 0; } } @@ -369,7 +383,7 @@ void on_connect_receiver(irc_session_t * session, const char * event, const char init_sender_struct(_sender_count); irc_cmd_join(session, "#test", NULL); - irc_cmd_msg(session, "#test", "connected"); +// irc_cmd_msg(session, "#test", "connected"); free(keyd->key); free(keyd); -- cgit v1.2.3-55-g7522