summaryrefslogtreecommitdiffstats
path: root/friendfinder/receiver.c
diff options
context:
space:
mode:
authorPatrick Hornecker2010-01-25 15:39:23 +0100
committerPatrick Hornecker2010-01-25 15:39:23 +0100
commite808a03627a1e440c65b08432e7401184c210158 (patch)
tree050d00dd094f322e1c25d59987c4854a2c21b376 /friendfinder/receiver.c
parenttex sources (diff)
downloadfriendfinder-e808a03627a1e440c65b08432e7401184c210158.tar.gz
friendfinder-e808a03627a1e440c65b08432e7401184c210158.tar.xz
friendfinder-e808a03627a1e440c65b08432e7401184c210158.zip
few fixes
Diffstat (limited to 'friendfinder/receiver.c')
-rw-r--r--friendfinder/receiver.c21
1 files changed, 17 insertions, 4 deletions
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++;
}