summaryrefslogtreecommitdiffstats
path: root/friendfinder
diff options
context:
space:
mode:
authorPatrick Hornecker2010-02-19 13:54:27 +0100
committerPatrick Hornecker2010-02-19 13:54:27 +0100
commit0b6b032e0293ebd62c146f27622487bb87c7b773 (patch)
treea90a92c0683594d5bf38dfcd364b8a785d69b4f5 /friendfinder
parenttex source (diff)
downloadfriendfinder-0b6b032e0293ebd62c146f27622487bb87c7b773.tar.gz
friendfinder-0b6b032e0293ebd62c146f27622487bb87c7b773.tar.xz
friendfinder-0b6b032e0293ebd62c146f27622487bb87c7b773.zip
few bugs fixed, redrawing of bubbels changed
Diffstat (limited to 'friendfinder')
-rw-r--r--friendfinder/Makefile.inc1
-rw-r--r--friendfinder/draw_user.c6
-rw-r--r--friendfinder/e_smart_map.c21
-rwxr-xr-xfriendfinder/guibin208527 -> 479445 bytes
-rw-r--r--friendfinder/receiver.c47
-rw-r--r--friendfinder/sender.c23
6 files changed, 68 insertions, 30 deletions
diff --git a/friendfinder/Makefile.inc b/friendfinder/Makefile.inc
index cd381c4..819e7c7 100644
--- a/friendfinder/Makefile.inc
+++ b/friendfinder/Makefile.inc
@@ -19,6 +19,7 @@ OBJECTS += receiver.o
OBJECTS += sender.o
OBJECTS += read_file.o
OBJECTS += barcode.o
+OBJECTS += crypto.o
OBJECTS += e_smart_tile.o
OBJECTS += e_smart_map.o
diff --git a/friendfinder/draw_user.c b/friendfinder/draw_user.c
index 5e877c1..c65fb83 100644
--- a/friendfinder/draw_user.c
+++ b/friendfinder/draw_user.c
@@ -52,13 +52,13 @@ void draw_user(struct position *pos)
if (sender_lat > 0 && sender_lon > 0)
{
- printf("sender_lat %f \n", sender_lat);
+ /* printf("sender_lat %f \n", sender_lat);
printf("sender_lon %f \n", sender_lon);
- printf("sender_nick %s \n", pos->nick);
+ printf("sender_nick %s \n", pos->nick);*/
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);
+ // 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/e_smart_map.c b/friendfinder/e_smart_map.c
index 7f19a2e..d87335d 100644
--- a/friendfinder/e_smart_map.c
+++ b/friendfinder/e_smart_map.c
@@ -65,7 +65,7 @@ static struct bubble *create_text_bubble(struct smart_map *smart, char *info, ch
bubble->bb = elm_bubble_add(smart->win);
elm_bubble_info_set(bubble->bb, info);
evas_object_size_hint_min_set(bubble->bb, 150, 150);
- evas_object_size_hint_max_set(bubble->bb, 300, 300);
+ evas_object_size_hint_max_set(bubble->bb, 300, 300);
evas_object_size_hint_weight_set(bubble->bb, 1.0, 1.0);
evas_object_size_hint_align_set(bubble->bb, 0.0, 0.0);
elm_bubble_content_set(bubble->bb, bubble->av);
@@ -84,14 +84,29 @@ static struct bubble *create_text_bubble(struct smart_map *smart, char *info, ch
return bubble;
}
+struct bubble *bb;
+first_draw = 0;
void e_smart_map_overlay_set_bubble(Evas_Object *o, char *overlay, char *info, char *text, double lat, double lon, int flags)
{
struct smart_map *smart;
smart = evas_object_smart_data_get(o);
- struct bubble *bb;
+ //struct bubble *bb;
+
+ if (first_draw == 0)
+ {
+ bb = create_text_bubble(smart, info, text);
+
+ first_draw = 1;
+ }
+
+ if (first_draw = 1)
+ {
+ evas_object_del(bb->bb);
+ bb = create_text_bubble(smart, info, text);
+ }
+
struct overlay_item *poi = malloc(sizeof(struct overlay_item));
- bb = create_text_bubble(smart, info, text);
poi->obj = &bb->object;
poi->lat = lat;
diff --git a/friendfinder/gui b/friendfinder/gui
index cce80ee..64b740a 100755
--- a/friendfinder/gui
+++ b/friendfinder/gui
Binary files differ
diff --git a/friendfinder/receiver.c b/friendfinder/receiver.c
index 1295983..ee02249 100644
--- a/friendfinder/receiver.c
+++ b/friendfinder/receiver.c
@@ -8,6 +8,7 @@
#include "draw_user.h"
#include "read_file.h"
#include "receiver.h"
+#include "cryptossl.h"
static irc_session_t *session;
irc_callbacks_t callbacks;
@@ -110,16 +111,16 @@ int get_sender_array_pos(char* nick)
{
for (int i = 0; i < s_sender_size; i++)
{
- if (s_sender[i]->is_init == 1 && strlen(s_sender[i]->nick) == 0)//strcmp(s_sender[i]->nick, nick) == 0)
+ if (s_sender[i]->is_init == 0)// && strcmp(s_sender[i]->nick, nick) != 0)
{
+ s_sender[i]->is_init = 1;
+ strcpy(s_sender[i]->nick, nick);
+
return i;
}
- if (s_sender[i]->is_init == 0 && strcmp(s_sender[i]->nick, nick) != 0)
+ else if (s_sender[i]->is_init == 1 && strcmp(s_sender[i]->nick, nick) == 0)
{
- s_sender[i]->is_init = 1;
- memcpy(s_sender[i]->nick, nick, strlen(nick));
-
return i;
}
}
@@ -157,8 +158,7 @@ void repair_position(struct sender *_sender, unsigned char *decrypted)
if (_sender->lat_first_set == 1 && _sender->lat_second_set == 1)
{
- memcpy(_sender->lat, _sender->lat_first, strlen(_sender->lat_first));
-
+ memcpy(_sender->lat, _sender->lat_first, sizeof(_sender->lat_first));
strcat(_sender->lat, _sender->lat_second);
_sender->lat_set = 1;
@@ -171,8 +171,9 @@ void repair_position(struct sender *_sender, unsigned char *decrypted)
if (_sender->lon_first_set == 1 && _sender->lon_second_set == 1)
{
- memcpy(_sender->lon, _sender->lon_first, strlen(_sender->lon_first));
+ memcpy(_sender->lon, _sender->lon_first, sizeof(_sender->lon_first));
strcat(_sender->lon, _sender->lon_second);
+
_sender->lon_set = 1;
_sender->lon_first_set = 0;
_sender->lon_second_set = 0;
@@ -181,7 +182,7 @@ void repair_position(struct sender *_sender, unsigned char *decrypted)
_sender->lon_second[0] = '\0';
}
- printf("lon_set: %i \n", _sender->lon_set);
+/* 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);
@@ -196,7 +197,7 @@ void repair_position(struct sender *_sender, unsigned char *decrypted)
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");
+ printf("====================== \n");*/
}
@@ -216,7 +217,8 @@ void get_position(irc_session_t * session, const char * event, const char * orig
disconnect_receiver(session, event, origin, params, count);
unsigned char *decrypted;
-
+ unsigned char *encrypted_base64;
+
char *sender_org = (char*) malloc(username_length + 1);
irc_target_get_nick(origin, sender_name, sizeof(sender_name));
@@ -227,28 +229,36 @@ void get_position(irc_session_t * session, const char * event, const char * orig
&& strcmp(params[1], "ack") != 0)
{
int pos = get_sender_array_pos(sender_org);
-
+
if (s_sender[pos]->lat_set == 0)
{
+ encrypted_base64 = (char*) malloc(sizeof(char) * 50);
decrypted = (char*) malloc(sizeof(char) * 7);
- BF_ecb_encrypt(params[1], decrypted, &key, BF_DECRYPT);
+ from_base64(params[1], strlen(params[1]), encrypted_base64, 50);
+ BF_ecb_encrypt(encrypted_base64, decrypted, &key, BF_DECRYPT);
+
decrypted[strlen(decrypted)] = '\0';
repair_position(s_sender[pos], decrypted);
+ free(encrypted_base64);
free(decrypted);
}
else if (s_sender[pos]->lon_set == 0)
{
+ encrypted_base64 = (char*) malloc(sizeof(char) * 50);
decrypted = (char*) malloc(sizeof(char) * 7);
- BF_ecb_encrypt(params[1], decrypted, &key, BF_DECRYPT);
+ from_base64(params[1], strlen(params[1]), encrypted_base64, 50);
+ BF_ecb_encrypt(encrypted_base64, decrypted, &key, BF_DECRYPT);
+
decrypted[strlen(decrypted)] = '\0';
repair_position(s_sender[pos], decrypted);
+ free(encrypted_base64);
free(decrypted);
}
@@ -291,8 +301,7 @@ void get_position(irc_session_t * session, const char * event, const char * orig
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**) malloc(sizeof(struct sender*) * number);
s_sender_size = number;
@@ -301,13 +310,13 @@ void init_sender_struct(int number)
s_sender[i] = (struct sender*) malloc(sizeof(struct sender));
s_sender[i]->nick = (char*) malloc(sizeof(char) * 20);
- s_sender[i]->nick[0] = '\0';
+ // s_sender[i]->nick[0] = '\0';
s_sender[i]->lat = (char*) malloc(sizeof(char) * 10);
- s_sender[i]->lat[0] = '\0';
+// s_sender[i]->lat[0] = '\0';
s_sender[i]->lon = (char*) malloc(sizeof(char) * 10);
- s_sender[i]->lon[0] = '\0';
+// s_sender[i]->lon[0] = '\0';
// s_sender[i]->is_init = (int) malloc(sizeof(int));
s_sender[i]->is_init = 0;
diff --git a/friendfinder/sender.c b/friendfinder/sender.c
index 1d157cb..6f67730 100644
--- a/friendfinder/sender.c
+++ b/friendfinder/sender.c
@@ -7,6 +7,7 @@
#include "openssl/blowfish.h"
#include "sender.h"
#include "read_file.h"
+#include "cryptossl.h"
static irc_session_t *session;
irc_callbacks_t callbacks;
@@ -143,6 +144,12 @@ void send_position(irc_session_t * session, const char * event, const char * ori
unsigned char *crypted_lon_second = (char*) malloc(sizeof(char) * 9);
crypted_lon_second[0] = '\0';
+ unsigned char *crypted_lat_first_base64 = (char*) malloc(sizeof(char) * 50);
+ unsigned char *crypted_lat_second_base64 = (char*) malloc(sizeof(char) * 50);
+ unsigned char *crypted_lon_first_base64 = (char*) malloc(sizeof(char) * 50);
+ unsigned char *crypted_lon_second_base64 = (char*) malloc(sizeof(char) * 50);
+
+
if (first_send == 0)
{
@@ -179,14 +186,20 @@ void send_position(irc_session_t * session, const char * event, const char * ori
BF_ecb_encrypt(pos->lon_first, crypted_lon_first, &key, BF_ENCRYPT);
BF_ecb_encrypt(pos->lon_second, crypted_lon_second, &key, BF_ENCRYPT);
-
- irc_cmd_msg(session, "#test", crypted_lat_first);
+
+ to_base64(crypted_lat_first, strlen(crypted_lat_first), crypted_lat_first_base64, 50);
+ to_base64(crypted_lat_second, strlen(crypted_lat_second), crypted_lat_second_base64, 50);
+
+ to_base64(crypted_lon_first, strlen(crypted_lon_first), crypted_lon_first_base64, 50);
+ to_base64(crypted_lon_second, strlen(crypted_lon_second), crypted_lon_second_base64, 50);
+
+ irc_cmd_msg(session, "#test", crypted_lat_first_base64);
- irc_cmd_msg(session, "#test", crypted_lat_second);
+ irc_cmd_msg(session, "#test", crypted_lat_second_base64);
- irc_cmd_msg(session, "#test", crypted_lon_first);
+ irc_cmd_msg(session, "#test", crypted_lon_first_base64);
- irc_cmd_msg(session, "#test", crypted_lon_second);
+ irc_cmd_msg(session, "#test", crypted_lon_second_base64);
//increase counter variable, which counts number of send positions!
msg_count = msg_count + 2;