summaryrefslogtreecommitdiffstats
path: root/friendfinder
diff options
context:
space:
mode:
authorPatrick Hornecker2010-02-18 19:11:15 +0100
committerPatrick Hornecker2010-02-18 19:11:15 +0100
commit88bb54e30a038269e33fd3b14f3bf321f0cb96c8 (patch)
tree7bf54973611ac14d974f9a07a6cff87093dae706 /friendfinder
parenttex source (diff)
downloadfriendfinder-88bb54e30a038269e33fd3b14f3bf321f0cb96c8.tar.gz
friendfinder-88bb54e30a038269e33fd3b14f3bf321f0cb96c8.tar.xz
friendfinder-88bb54e30a038269e33fd3b14f3bf321f0cb96c8.zip
tex source
Diffstat (limited to 'friendfinder')
-rw-r--r--friendfinder/draw_user.c1
-rwxr-xr-xfriendfinder/guibin203594 -> 208527 bytes
-rw-r--r--friendfinder/gui.c24
-rw-r--r--friendfinder/receiver.c139
-rw-r--r--friendfinder/receiver.h4
-rw-r--r--friendfinder/sender.c29
6 files changed, 122 insertions, 75 deletions
diff --git a/friendfinder/draw_user.c b/friendfinder/draw_user.c
index 9b517aa..5e877c1 100644
--- a/friendfinder/draw_user.c
+++ b/friendfinder/draw_user.c
@@ -58,6 +58,7 @@ void draw_user(struct position *pos)
if (active_map == 1 && test_distance(sender_lat, sender_lon, e, n, own_lat, own_lon, own_e, own_n) == 1)
{
+ printf("PRINTING nick: %s lat: %f lon: %f \n", pos->nick, sender_lat, sender_lon, pos->lon);
e_smart_map_overlay_set_bubble(map, "routing", pos->nick, pos->nick, sender_lat, sender_lon, 0xffffffff);
}
}
diff --git a/friendfinder/gui b/friendfinder/gui
index 5b02679..cce80ee 100755
--- a/friendfinder/gui
+++ b/friendfinder/gui
Binary files differ
diff --git a/friendfinder/gui.c b/friendfinder/gui.c
index 499b0c1..c34739a 100644
--- a/friendfinder/gui.c
+++ b/friendfinder/gui.c
@@ -26,7 +26,9 @@ double current_lat = 47.996578;
double current_lon = 7.840171;
const char *msg_text, *key, *ip = NULL, *nickname = NULL, *partner_nickname = NULL;
-char *from = NULL, *to = NULL, *number = NULL, *current_msg, *last_msg;
+char *from = NULL, *to = NULL, *count = "3", *current_msg, *last_msg;
+int sender_count = 3;
+
static Evas_Object *win, *bbx, *map, *img, *bcb;
@@ -78,6 +80,17 @@ static void set_nickname(void *data, Evas_Object *obj, void *event_info)
}
}
+static void on_partner_number(void *data, Evas_Object *obj, void *event_info)
+{
+ sender_count = elm_entry_entry_get(obj);
+ elm_entry_context_menu_clear(obj);
+}
+
+static void set_partner_number(void *data, Evas_Object *obj, void *event_info)
+{
+ set_sender_count(sender_count);
+}
+
static void on_show_users(void *data, Evas_Object *obj, void *event_info)
{
if (nickname != NULL && strlen(nickname) > 0)
@@ -680,13 +693,10 @@ void init_options()
evas_object_size_hint_weight_set(en4, 1.0, 1.0);
evas_object_size_hint_align_set(en4, 0.0, 0.0);
elm_scroller_content_set(sc4, en4);
- evas_object_smart_callback_add(en4, "changed", NULL, NULL);
+ evas_object_smart_callback_add(en4, "changed", on_partner_number, NULL);
evas_object_show(en4);
- if (number != NULL)
- {
- elm_entry_entry_set(en4, to);
- }
+ elm_entry_entry_set(en4, count);
lb4 = elm_label_add(win);
elm_label_label_set(lb4, "Visible sender");
@@ -700,7 +710,7 @@ void init_options()
evas_object_size_hint_weight_set(bt7, 1.0, 1.0);
evas_object_size_hint_align_set(bt7, -1.0, -1.0);
elm_box_pack_end(bx5, bt7);
- evas_object_smart_callback_add(bt7, "clicked", NULL, NULL);
+ evas_object_smart_callback_add(bt7, "clicked", set_partner_number, NULL);
evas_object_show(bt7);
}
diff --git a/friendfinder/receiver.c b/friendfinder/receiver.c
index 28018b0..1295983 100644
--- a/friendfinder/receiver.c
+++ b/friendfinder/receiver.c
@@ -12,13 +12,13 @@
static irc_session_t *session;
irc_callbacks_t callbacks;
-int _exit = 0;
-
char sender_name[100];
char own_nickname[100];
char *receiver_server_ip;
int username_length;
+int _sender_count = 3;
+int _exit = 0;
struct sender **s_sender;
int s_sender_size;
@@ -35,6 +35,11 @@ void set_receiver_exit()
_exit = 1;
}
+void set_sender_count(int number)
+{
+ _sender_count = number;
+}
+
int init_connection_receiver(char* server_ip, char* user)
{
printf("RECEIVER: initialising connection...\n");
@@ -105,7 +110,7 @@ int get_sender_array_pos(char* nick)
{
for (int i = 0; i < s_sender_size; i++)
{
- if (s_sender[i]->is_init == 1 && strcmp(s_sender[i]->nick, nick) == 0)
+ if (s_sender[i]->is_init == 1 && strlen(s_sender[i]->nick) == 0)//strcmp(s_sender[i]->nick, nick) == 0)
{
return i;
}
@@ -113,7 +118,7 @@ int get_sender_array_pos(char* nick)
if (s_sender[i]->is_init == 0 && strcmp(s_sender[i]->nick, nick) != 0)
{
s_sender[i]->is_init = 1;
- s_sender[i]->nick = nick;
+ memcpy(s_sender[i]->nick, nick, strlen(nick));
return i;
}
@@ -124,41 +129,37 @@ void repair_position(struct sender *_sender, unsigned char *decrypted)
{
if (decrypted[5] == 'a')
{
- memcpy(_sender->lat_first, decrypted, sizeof(decrypted));
+ memcpy(_sender->lat_first, decrypted, strlen(decrypted));
_sender->lat_first[5] = '\0';
_sender->lat_first_set = 1;
- // return;
}
else if (decrypted[4] == 'b')
{
- memcpy(_sender->lat_second, decrypted, sizeof(decrypted));
+ memcpy(_sender->lat_second, decrypted, strlen(decrypted));
_sender->lat_second[4] = '\0';
_sender->lat_second_set = 1;
- // return;
}
else if (decrypted[5] == 'c')
{
- memcpy(_sender->lon_first, decrypted, sizeof(decrypted));
+ memcpy(_sender->lon_first, decrypted, strlen(decrypted));
_sender->lon_first[5] = '\0';
_sender->lon_first_set = 1;
- // return;
}
else if (decrypted[3] == 'd')
{
- memcpy(_sender->lon_second, decrypted, sizeof(decrypted));
+ memcpy(_sender->lon_second, decrypted, strlen(decrypted));
_sender->lon_second[3] = '\0';
_sender->lon_second_set = 1;
- // return;
}
if (_sender->lat_first_set == 1 && _sender->lat_second_set == 1)
{
- memcpy(_sender->lat, _sender->lat_first, sizeof(_sender->lat_first)); //FIXME IM A ANGRY SEGFAULT
+ memcpy(_sender->lat, _sender->lat_first, strlen(_sender->lat_first));
- strcat(_sender->lat, _sender->lat_second);//FIXME TOO
+ strcat(_sender->lat, _sender->lat_second);
_sender->lat_set = 1;
_sender->lat_first_set = 0;
@@ -166,29 +167,36 @@ void repair_position(struct sender *_sender, unsigned char *decrypted)
_sender->lat_first[0] = '\0';
_sender->lat_second[0] = '\0';
-
- // printf("lat: %s \n", _sender->lat);
-
- // _sender->lat[0] = '\0';
}
if (_sender->lon_first_set == 1 && _sender->lon_second_set == 1)
{
- memcpy(_sender->lon, _sender->lon_first, sizeof(_sender->lon_first));//FIXME ALSO PLEASE
-
- strcat(_sender->lon, _sender->lon_second);//FIXME IS THE WORD OF THE HOUR
-
+ memcpy(_sender->lon, _sender->lon_first, strlen(_sender->lon_first));
+ strcat(_sender->lon, _sender->lon_second);
_sender->lon_set = 1;
_sender->lon_first_set = 0;
_sender->lon_second_set = 0;
_sender->lon_first[0] = '\0';
_sender->lon_second[0] = '\0';
-
- // printf("lon: %s \n", _sender->lon);
-
- // _sender->lat[0] = '\0';
}
+
+ printf("lon_set: %i \n", _sender->lon_set);
+ printf("lon: %s \n", _sender->lon);
+ printf("lat_set: %i \n", _sender->lat_set);
+ printf("lat: %s \n", _sender->lat);
+ printf("nick: %s \n", _sender->nick);
+ printf("<<<<<<<<<<<>>>>>>>>>>> \n");
+ printf("first_lon_set: %i \n", _sender->lon_first_set);
+ printf("first_lon: %s \n", _sender->lon_first);
+ printf("second_lon_set: %i \n", _sender->lon_second_set);
+ printf("second_lon: %s \n", _sender->lon_second);
+ printf("<<<<<<<<<<<>>>>>>>>>>> \n");
+ printf("first_lat_set: %i \n", _sender->lat_first_set);
+ printf("first_lat: %s \n", _sender->lat_first);
+ printf("second_lat_set: %i \n", _sender->lat_second_set);
+ printf("second_lat: %s \n", _sender->lat_second);
+ printf("====================== \n");
}
@@ -204,12 +212,12 @@ void dump_data(char* lat, char* lon, char* nick)
void get_position(irc_session_t * session, const char * event, const char * origin, const unsigned char ** params, unsigned int count)
{
+ if (_exit == 1)
+ disconnect_receiver(session, event, origin, params, count);
+
unsigned char *decrypted;
char *sender_org = (char*) malloc(username_length + 1);
-
-// if (_exit == 1)
-// disconnect_receiver();
irc_target_get_nick(origin, sender_name, sizeof(sender_name));
strncpy(sender_org, sender_name, username_length);
@@ -222,13 +230,11 @@ void get_position(irc_session_t * session, const char * event, const char * orig
if (s_sender[pos]->lat_set == 0)
{
- decrypted = (char*) malloc(sizeof(char) * 5);
+ decrypted = (char*) malloc(sizeof(char) * 7);
BF_ecb_encrypt(params[1], decrypted, &key, BF_DECRYPT);
decrypted[strlen(decrypted)] = '\0';
- // printf("decrypted %s \n", decrypted);
-
repair_position(s_sender[pos], decrypted);
free(decrypted);
@@ -236,26 +242,27 @@ void get_position(irc_session_t * session, const char * event, const char * orig
else if (s_sender[pos]->lon_set == 0)
{
- decrypted = (char*) malloc(sizeof(char) * 5);
+ decrypted = (char*) malloc(sizeof(char) * 7);
+
BF_ecb_encrypt(params[1], decrypted, &key, BF_DECRYPT);
decrypted[strlen(decrypted)] = '\0';
- // printf("decrypted %s \n", decrypted);
-
repair_position(s_sender[pos], decrypted);
free(decrypted);
}
- if(s_sender[pos]->lon_set == 1 && s_sender[pos]->lat_set == 1)// && lon != NULL && lat != NULL)
+ if(s_sender[pos]->lon_set == 1 && s_sender[pos]->lat_set == 1)
{
double _lat, _lon;
_lat = atof(s_sender[pos]->lat);
_lon = atof(s_sender[pos]->lon);
- printf("%f %f \n", _lat, _lon);
-
- printf("char lat: %s char lon: %s \n", s_sender[pos]->lat, s_sender[pos]->lon);
+ printf(" DUMPING DATA \n");
+ printf("position in struct is %i \n", pos);
+ printf("lat: %s lon: %s \n", s_sender[pos]->lat, s_sender[pos]->lon);
+ printf("nick: %s \n", s_sender[pos]->nick);
+ printf("=========================================\n");
if (_lat > _lon && _lat == _lat && _lon == _lon)
{
@@ -269,47 +276,65 @@ void get_position(irc_session_t * session, const char * event, const char * orig
s_sender[pos]->lon_set = 0;
s_sender[pos]->lat_set = 0;
- // s_sender[pos]->lat = '\0';
- // s_sender[pos]->lon = '\0';
- }
+
+ s_sender[pos]->lat[0] = '\0';
+ s_sender[pos]->lon[0] = '\0';
+ }
+
free(sender_org);
+ pos = NULL;
+
irc_cmd_msg(session, "#test", "ack");
}
}
void init_sender_struct(int number)
{
- s_sender = (struct sender(*)[number]) malloc(sizeof(struct sender*) * number);
+// s_sender = (struct sender(*)[number]) malloc(sizeof(struct sender*) * number);
+ s_sender = (struct sender(*)[number]) malloc(sizeof(struct sender) * number);
+
s_sender_size = number;
- for (int i = 0; i < number; i++)
+ for (int i = 0; i <= number; i++)
{
s_sender[i] = (struct sender*) malloc(sizeof(struct sender));
s_sender[i]->nick = (char*) malloc(sizeof(char) * 20);
- s_sender[i]->lat = (char*) malloc(sizeof(char) * 9);
- s_sender[i]->lon = (char*) malloc(sizeof(char) * 9);
+ s_sender[i]->nick[0] = '\0';
+
+ s_sender[i]->lat = (char*) malloc(sizeof(char) * 10);
+ s_sender[i]->lat[0] = '\0';
+
+ s_sender[i]->lon = (char*) malloc(sizeof(char) * 10);
+ s_sender[i]->lon[0] = '\0';
- s_sender[i]->is_init = (int) malloc(sizeof(int));
+ // s_sender[i]->is_init = (int) malloc(sizeof(int));
s_sender[i]->is_init = 0;
- //s_sender[i]->lat_set = (int) malloc(sizeof(int));
+ // s_sender[i]->lat_set = (int) malloc(sizeof(int));
s_sender[i]->lat_set = 0;
- //s_sender[i]->lon_set = (int) malloc(sizeof(int));
+ // s_sender[i]->lon_set = (int) malloc(sizeof(int));
s_sender[i]->lon_set = 0;
+ s_sender[i]->lat_first = (char*) malloc(sizeof(char) * 9);
+ s_sender[i]->lat_first[0] = '\0';
- s_sender[i]->lat_first = (char*) malloc(sizeof(char) * 6);
- s_sender[i]->lat_second = (char*) malloc(sizeof(char) * 6);
+ s_sender[i]->lat_second = (char*) malloc(sizeof(char) * 9);
+ s_sender[i]->lat_second[0] = '\0';
- s_sender[i]->lon_first = (char*) malloc(sizeof(char) * 6);
- s_sender[i]->lon_second = (char*) malloc(sizeof(char) * 6);
+ s_sender[i]->lon_first = (char*) malloc(sizeof(char) * 9);
+ s_sender[i]->lon_first[0] = '\0';
-// s_sender[i]->lat[0] = '\0';
-// s_sender[i]->lon[0] = '\0';
+ s_sender[i]->lon_second = (char*) malloc(sizeof(char) * 9);
+ s_sender[i]->lon_second[0] = '\0';
+ s_sender[i]->lon_first_set = 0;
+ s_sender[i]->lon_second_set = 0;
+
+ s_sender[i]->lat_first_set = 0;
+ s_sender[i]->lat_second_set = 0;
}
}
@@ -322,8 +347,8 @@ void on_connect_receiver(irc_session_t * session, const char * event, const char
keyd = read_key();
BF_set_key(&key, keyd->key_length, keyd->key);
-
- init_sender_struct(3);
+
+ init_sender_struct(_sender_count);
irc_cmd_join(session, "#test", NULL);
irc_cmd_msg(session, "#test", "connected");
diff --git a/friendfinder/receiver.h b/friendfinder/receiver.h
index 95b5238..b0c978f 100644
--- a/friendfinder/receiver.h
+++ b/friendfinder/receiver.h
@@ -36,4 +36,8 @@ void receiver_main(void *user);
void receiver_set_ip(char *_ip);
void set_receiver_exit();
+
+void set_sender_count(int number);
+
+
#endif
diff --git a/friendfinder/sender.c b/friendfinder/sender.c
index b9557e8..1d157cb 100644
--- a/friendfinder/sender.c
+++ b/friendfinder/sender.c
@@ -84,11 +84,11 @@ struct sender_data* prepare_position(const unsigned char* lat, const unsigned ch
{
struct sender_data *pos = (struct sender_data*) malloc(sizeof(struct sender_data));
- pos->lat_first = (char*) malloc(sizeof(char) * 5);
- pos->lat_second = (char*) malloc(sizeof(char) * 5);
+ pos->lat_first = (char*) malloc(sizeof(char) * 8);
+ pos->lat_second = (char*) malloc(sizeof(char) * 8);
- pos->lon_first = (char*) malloc(sizeof(char) * 5);
- pos->lon_second = (char*) malloc(sizeof(char) * 5);
+ pos->lon_first = (char*) malloc(sizeof(char) * 8);
+ pos->lon_second = (char*) malloc(sizeof(char) * 8);
for (int i = 0; i < 9; i++)
{
@@ -131,11 +131,18 @@ struct sender_data* prepare_position(const unsigned char* lat, const unsigned ch
void send_position(irc_session_t * session, const char * event, const char * origin, const char ** params, unsigned int count)
{
- unsigned char *crypted_lat_first = (char*) malloc(sizeof(char) * 8);
- unsigned char *crypted_lat_second = (char*) malloc(sizeof(char) * 8);
+ unsigned char *crypted_lat_first = (char*) malloc(sizeof(char) * 9);
+ crypted_lat_first[0] = '\0';
+
+ unsigned char *crypted_lat_second = (char*) malloc(sizeof(char) * 9);
+ crypted_lat_second[0] = '\0';
+
+ unsigned char *crypted_lon_first = (char*) malloc(sizeof(char) * 9);
+ crypted_lon_first[0] = '\0';
+
+ unsigned char *crypted_lon_second = (char*) malloc(sizeof(char) * 9);
+ crypted_lon_second[0] = '\0';
- unsigned char *crypted_lon_first = (char*) malloc(sizeof(char) * 8);
- unsigned char *crypted_lon_second = (char*) malloc(sizeof(char) * 8);
if (first_send == 0)
{
@@ -157,10 +164,10 @@ void send_position(irc_session_t * session, const char * event, const char * ori
if (exit_ == 1)
disconnect_sender();
- const unsigned char *lat_char = (char*) malloc(sizeof(char) * 9);
+ const unsigned char *lat_char = (char*) malloc(sizeof(char) * 10);
sprintf(lat_char, "%f", own_lat);
- const unsigned char *lon_char = (char*) malloc(sizeof(char) * 9);
+ const unsigned char *lon_char = (char*) malloc(sizeof(char) * 10);
sprintf(lon_char, "%f", own_lon);
struct sender_data *pos = (struct sender_data*) malloc(sizeof(struct sender_data));
@@ -223,7 +230,7 @@ void get_aknowledge(irc_session_t * session, const char * event, const char * or
{
resend = 1;
- sleep(5);
+ //sleep(3);
send_position(session, event, origin, params, count);
}