summaryrefslogtreecommitdiffstats
path: root/friendfinder/receiver.c
diff options
context:
space:
mode:
authorPatrick Hornecker2010-01-11 16:55:11 +0100
committerPatrick Hornecker2010-01-11 16:55:11 +0100
commitd4ee5bf46d1df6d68be178a1258df2020cb15aef (patch)
tree64618feff288e5e1c7f237c70584e17ee1ef69d6 /friendfinder/receiver.c
parentfew bugs removed (diff)
downloadfriendfinder-d4ee5bf46d1df6d68be178a1258df2020cb15aef.tar.gz
friendfinder-d4ee5bf46d1df6d68be178a1258df2020cb15aef.tar.xz
friendfinder-d4ee5bf46d1df6d68be178a1258df2020cb15aef.zip
bug fixes
Diffstat (limited to 'friendfinder/receiver.c')
-rw-r--r--friendfinder/receiver.c25
1 files changed, 18 insertions, 7 deletions
diff --git a/friendfinder/receiver.c b/friendfinder/receiver.c
index b0d74a0..f921c4c 100644
--- a/friendfinder/receiver.c
+++ b/friendfinder/receiver.c
@@ -11,9 +11,11 @@ static irc_session_t *session;
irc_callbacks_t callbacks;
int counter = 0;
char sender_name[100];
+char own_nickname[100];
char *lat, *lon;
char *receiver_server_ip;
+int username_length;
int ret;
int got_lat = 0;
int got_lon = 0;
@@ -65,17 +67,22 @@ void dump_data(char* lat, char* lon, char* nick)
void get_position(irc_session_t * session, const char * event, const char * origin, const char ** params, unsigned int count)
{
- char *decrypted_lat = (char*) malloc(sizeof(params[1]));
- char *decrypted_lon = (char*) malloc(sizeof(params[1]));
+ char *decrypted_lat = (char*) malloc(sizeof(char));
+ char *decrypted_lon = (char*) malloc(sizeof(char));
+ char *sender_org = (char*) malloc(username_length + 1);
irc_target_get_nick(origin, sender_name, sizeof(sender_name));
-
- if (sender_name != NULL && strcmp(sender_name, "_s") > 0)
+ strncpy(sender_org, sender_name, username_length);
+ sender_org[username_length] = '\0';
+
+ if (sender_name != NULL && strcmp(sender_org, own_nickname) != 0 && strcmp(sender_name, "_s") > 0)
+// if (sender_name != NULL && strcmp(sender_name, "_s") > 0)
{
if (counter % 2 != 0)
{
BF_ecb_encrypt(params[1], decrypted_lat, &key, BF_DECRYPT);
lat = decrypted_lat;
+ //printf("decrypted_lat %s \n", decrypted_lat);
got_lat = 1;
}
@@ -83,6 +90,7 @@ void get_position(irc_session_t * session, const char * event, const char * orig
{
BF_ecb_encrypt(params[1], decrypted_lon, &key, BF_DECRYPT);
lon = decrypted_lon;
+ //printf("decrypted_lon %s \n", decrypted_lon);
got_lon = 1;
}
@@ -115,12 +123,15 @@ void receiver_main(void *user)
callbacks.event_channel = get_position;
callbacks.event_connect = on_connect_receiver;
- char* username = (char*) user;
+ char username[100];
+ sprintf(username, "%s", (char*) user);
+ sprintf(own_nickname, "%s", username);
+ username_length = strlen(username);
- if (receiver_server_ip != NULL)
+ if (receiver_server_ip != NULL && user != NULL)
{
//TODO pointer zeigt immer auf gleiche variable....damit wird immer gleicher from wert genutzt und _r _s angehÃĪngt....fixen
- strcat(&username, "_r");
+ strcat(username, "_r");
if (init_connection_receiver(receiver_server_ip, username) == 0)
{