From e808a03627a1e440c65b08432e7401184c210158 Mon Sep 17 00:00:00 2001 From: Patrick Hornecker Date: Mon, 25 Jan 2010 15:39:23 +0100 Subject: few fixes --- friendfinder/receiver.c | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) (limited to 'friendfinder/receiver.c') diff --git a/friendfinder/receiver.c b/friendfinder/receiver.c index fec1c82..e378db1 100644 --- a/friendfinder/receiver.c +++ b/friendfinder/receiver.c @@ -17,6 +17,7 @@ char *lat, *lon; char *receiver_server_ip; char *last_sender; +int sender_count = 0; int username_length; int ret; int got_lat = 0; @@ -63,6 +64,8 @@ void dump_data(char* lat, char* lon, char* nick) pos->lon = lon; pos->nick = nick; + printf("RECEIVER: dump_data(lat: %s, lon: %s, nick %s) \n", lat, lon, nick); + draw_user(pos); } @@ -80,9 +83,9 @@ void get_position(irc_session_t * session, const char * event, const char * orig last_sender = (char*) malloc(strlen(sender_name)); last_sender = sender_name; - if (sender_name != NULL && strcmp(sender_org, own_nickname) != 0 && strcmp(sender_name, "_s") > 0 && strcmp(params[1], "connected") != 0) + if (sender_name != NULL && strcmp(sender_org, own_nickname) != 0 && strcmp(sender_name, "_s") > 0 && strcmp(params[1], "connected") != 0) { - if (counter % 2 == 0) + if (counter % 2 == 0 && strcmp(last_sender, sender_name) == 0 && sender_count <= 1) { BF_ecb_encrypt(params[1], decrypted_lat, &key, BF_DECRYPT); decrypted_lat[8] = '\0'; @@ -90,14 +93,14 @@ void get_position(irc_session_t * session, const char * event, const char * orig got_lat = 1; } - if (counter % 2 != 0 && strcmp(last_sender, sender_name) == 0 ) + if (counter % 2 != 0 && strcmp(last_sender, sender_name) == 0 && sender_count <= 1) { BF_ecb_encrypt(params[1], decrypted_lon, &key, BF_DECRYPT); decrypted_lon[8] = '\0'; lon = decrypted_lon; got_lon = 1; } - + if(got_lon == 1 && got_lat == 1 && lon != NULL && lat != NULL) { double _lat, _lon; @@ -116,8 +119,18 @@ void get_position(irc_session_t * session, const char * event, const char * orig got_lon = 0; got_lat = 0; + + free(decrypted_lon); + free(decrypted_lat); + free(sender_org); } + if (sender_count == 1) + sender_count = 0; + + if (sender_count == 0) + sender_count = 1; + irc_cmd_msg(session, "#test", sender_name); counter++; } -- cgit v1.2.3-55-g7522