summaryrefslogtreecommitdiffstats
path: root/friendfinder/receiver.c
diff options
context:
space:
mode:
authorPatrick Hornecker2010-02-25 11:09:06 +0100
committerPatrick Hornecker2010-02-25 11:09:06 +0100
commitf8b9531d4d902babb7eccaa4c371f3ace720551d (patch)
tree8dc74d24a1b5d96df423fece3ec74341aa057fbd /friendfinder/receiver.c
parenttex source (diff)
downloadfriendfinder-f8b9531d4d902babb7eccaa4c371f3ace720551d.tar.gz
friendfinder-f8b9531d4d902babb7eccaa4c371f3ace720551d.tar.xz
friendfinder-f8b9531d4d902babb7eccaa4c371f3ace720551d.zip
tex source and code modifications
Diffstat (limited to 'friendfinder/receiver.c')
-rw-r--r--friendfinder/receiver.c64
1 files changed, 39 insertions, 25 deletions
diff --git a/friendfinder/receiver.c b/friendfinder/receiver.c
index e1400ff..9ee0737 100644
--- a/friendfinder/receiver.c
+++ b/friendfinder/receiver.c
@@ -249,9 +249,9 @@ void get_position(irc_session_t * session, const char * event, const char * orig
irc_target_get_nick(origin, sender_name, sizeof(sender_name));
strncpy(sender_org, sender_name, username_length);
sender_org[username_length] = '\0';
+//&& strcmp(sender_name, "_s")
- if (strcmp(sender_org, own_nickname) != 0 && strcmp(sender_name, "_s") > 0 && strcmp(params[1], "connected") != 0
- && check_message(params[1]) == 0)
+ if (strcmp(sender_org, own_nickname) != 0 && strcmp(params[1], "connected") != 0 && check_message(params[1], sender_name) == 1)
{
int pos = get_sender_array_pos(sender_org);
@@ -264,10 +264,10 @@ void get_position(irc_session_t * session, const char * event, const char * orig
BF_ecb_encrypt(encrypted_base64, decrypted, &key, BF_DECRYPT);
decrypted[strlen(decrypted)] = '\0';
-
+
repair_position(s_sender[pos], decrypted);
- send_acknowledgement();
+ send_acknowledgement(sender_name);
free(encrypted_base64);
free(decrypted);
@@ -285,7 +285,7 @@ void get_position(irc_session_t * session, const char * event, const char * orig
repair_position(s_sender[pos], decrypted);
- send_acknowledgement();
+ send_acknowledgement(sender_name);
free(encrypted_base64);
free(decrypted);
@@ -326,33 +326,47 @@ void get_position(irc_session_t * session, const char * event, const char * orig
}
}
-void send_acknowledgement()
+void send_acknowledgement(char *sender)
{
- char* ack = "ack";
- char* ack_base64 = (char*) malloc(sizeof(char) * 50);
- char* ack_crypted = (char*) malloc(sizeof(char) * 20);
+ char* sender_base64 = (char*) malloc(sizeof(char) * 50);
+ char* sender_crypted = (char*) malloc(sizeof(char) * 20);
+
+ printf("sender: %s \n", sender);
+ BF_ecb_encrypt(sender, sender_crypted, &key, BF_ENCRYPT);
+ to_base64(sender_crypted, strlen(sender_crypted), sender_base64, 50);
+ irc_cmd_msg(session, "#test", sender_base64);
- BF_ecb_encrypt(ack, ack_crypted, &key, BF_ENCRYPT);
- to_base64(ack_crypted, strlen(ack_crypted), ack_base64, 50);
- irc_cmd_msg(session, "#test", ack_base64);
+ free(sender_base64);
+ free(sender_crypted);
}
-int check_message(char *msg)
+int check_message(char *msg, char *sender)
{
- char* ack = "ack";
- char* ack_base64 = (char*) malloc(sizeof(char) * 50);
- char* ack_decrypted = (char*) malloc(sizeof(char) * 20);
+ if (sender[strlen(sender) - 1] == 's')
+ {
+ char* ack_base64 = (char*) malloc(sizeof(char) * 50);
+ char* ack_decrypted = (char*) malloc(sizeof(char) * 20);
+
+ from_base64(msg, strlen(msg), ack_base64, 50);
+ BF_ecb_encrypt(ack_base64, ack_decrypted, &key, BF_DECRYPT);
+
+ if (strcmp(sender, ack_decrypted) == 0)
+ {
+ free(ack_base64);
+ free(ack_decrypted);
+ return 0;
+ }
+ else if (strcmp(sender, ack_decrypted) != 0)
+ {
+ free(ack_base64);
+ free(ack_decrypted);
+ return 1;
+ }
- from_base64(msg, strlen(msg), ack_base64, 50);
- BF_ecb_encrypt(ack_base64, ack_decrypted, &key, BF_DECRYPT);
-
- if (strcmp(ack, ack_decrypted) == 0)
- {
- return 1;
}
- else if (strcmp(ack, ack_decrypted) != 0)
+ else if (sender[strlen(sender) - 1] != 's')
{
- return 0;
+ return 0;
}
}
@@ -369,7 +383,7 @@ void on_connect_receiver(irc_session_t * session, const char * event, const char
init_sender_struct(_sender_count);
irc_cmd_join(session, "#test", NULL);
- irc_cmd_msg(session, "#test", "connected");
+// irc_cmd_msg(session, "#test", "connected");
free(keyd->key);
free(keyd);