summaryrefslogtreecommitdiffstats
path: root/friendfinder
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
parenttex sources (diff)
downloadfriendfinder-e808a03627a1e440c65b08432e7401184c210158.tar.gz
friendfinder-e808a03627a1e440c65b08432e7401184c210158.tar.xz
friendfinder-e808a03627a1e440c65b08432e7401184c210158.zip
few fixes
Diffstat (limited to 'friendfinder')
-rw-r--r--friendfinder/gui.c8
-rw-r--r--friendfinder/receiver.c21
-rw-r--r--friendfinder/sender.c13
3 files changed, 30 insertions, 12 deletions
diff --git a/friendfinder/gui.c b/friendfinder/gui.c
index 3c14291..858d738 100644
--- a/friendfinder/gui.c
+++ b/friendfinder/gui.c
@@ -30,6 +30,8 @@ char *from = NULL, *to = NULL, *current_msg, *last_msg;
static Evas_Object *win, *bbx, *map;
+
+
static void on_cancel(void *data, Evas_Object *obj, void *event_info)
{
elm_exit();
@@ -72,7 +74,7 @@ static void set_nickname(void *data, Evas_Object *obj, void *event_info)
{
from = nickname;
- if (from != NULL && to != NULL)
+ if (from != NULL && to != NULL && strlen(from) > 0 && strlen(to) > 0)
{
init_msg_thread(from, to);
}
@@ -80,7 +82,7 @@ static void set_nickname(void *data, Evas_Object *obj, void *event_info)
static void on_show_users(void *data, Evas_Object *obj, void *event_info)
{
- if (nickname != NULL)
+ if (nickname != NULL && strlen(nickname) > 0)
{
init_receiver_thread(from);
}
@@ -96,7 +98,7 @@ static void set_partner_nickname(void *data, Evas_Object *obj, void *event_info)
{
to = partner_nickname;
- if (from != NULL && to != NULL)
+ if (from != NULL && to != NULL && strlen(from) > 0 && strlen(to) > 0)
{
init_msg_thread(from, to);
}
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++;
}
diff --git a/friendfinder/sender.c b/friendfinder/sender.c
index 8cf0cfb..3f9c683 100644
--- a/friendfinder/sender.c
+++ b/friendfinder/sender.c
@@ -68,12 +68,15 @@ void send_position(irc_session_t * session, const char * event, const char * ori
if (first_send == 0)
{
- char *_key = read_key();
+ char *_key = (char*) malloc(sizeof(char) * 300);
+ _key = read_key();
BF_set_key(&key, strlen(_key) - 1, _key);
irc_cmd_join(session, "#test", NULL);
irc_cmd_msg(session, "#test", "connected");
+
+ first_send = 1;
}
unsigned char lat_char[16];
@@ -85,8 +88,10 @@ void send_position(irc_session_t * session, const char * event, const char * ori
BF_ecb_encrypt(lat_char, crypted_lat, &key, BF_ENCRYPT);
BF_ecb_encrypt(lon_char, crypted_lon, &key, BF_ENCRYPT);
- int _x = irc_cmd_msg(session, "#test", crypted_lat);
- int _y = irc_cmd_msg(session, "#test", crypted_lon);
+ int _x = NULL;
+ _x = irc_cmd_msg(session, "#test", crypted_lat);
+ int _y = NULL;
+ _y = irc_cmd_msg(session, "#test", crypted_lon);
//increase counter variable, which counts number of send positions!
msg_count = msg_count + 2;
@@ -106,8 +111,6 @@ void send_position(irc_session_t * session, const char * event, const char * ori
printf("SENDER: error code due sending: %i \n", _x);
}
- first_send = 1;
-
if(resend == 1)
{
get_aknowledge(session, event, origin, params, count);