summaryrefslogtreecommitdiffstats
path: root/friendfinder/msg_sender.c
diff options
context:
space:
mode:
authorPatrick Hornecker2010-02-22 20:13:47 +0100
committerPatrick Hornecker2010-02-22 20:13:47 +0100
commitffe78ce6e53229d7ef2e1b57ce1de120575f7936 (patch)
treefdb9e2106a5fd856b47c22c4fc4855ea60354e93 /friendfinder/msg_sender.c
parentdeleted few files (diff)
downloadfriendfinder-ffe78ce6e53229d7ef2e1b57ce1de120575f7936.tar.gz
friendfinder-ffe78ce6e53229d7ef2e1b57ce1de120575f7936.tar.xz
friendfinder-ffe78ce6e53229d7ef2e1b57ce1de120575f7936.zip
fixes and tex source
Diffstat (limited to 'friendfinder/msg_sender.c')
-rw-r--r--friendfinder/msg_sender.c35
1 files changed, 25 insertions, 10 deletions
diff --git a/friendfinder/msg_sender.c b/friendfinder/msg_sender.c
index ca9bd5f..5e85ece 100644
--- a/friendfinder/msg_sender.c
+++ b/friendfinder/msg_sender.c
@@ -47,6 +47,14 @@ int init_connection(char* server_ip, char* user)
}
}
+void disconnect_msg_sender()
+{
+ irc_disconnect(session);
+ irc_destroy_session(session);
+
+ printf("MSG_SENDER: disconnected...\n");
+}
+
struct msg_part* prepare_msg(char *msg)
{
int len = strlen(msg);
@@ -61,9 +69,11 @@ struct msg_part* prepare_msg(char *msg)
msg_p->part_count = (len / 6) - 1;
int inc_part_count = msg_p->part_count + 1;
+ msg_p->msg_parts = (char**) malloc(sizeof(char*) * inc_part_count + 1); // richtig: (char**) malloc(sizeof(....))
msg_p->msg_parts = (char(*)[inc_part_count]) malloc(sizeof(char*) * inc_part_count); // richtig: (char**) malloc(sizeof(....))
- char *message = (char*) malloc(len + 1);
+ printf("%i \n", inc_part_count);
+ char *message = (char*) malloc(sizeof(char) * (len + 1));
memcpy(message, msg, len + 1);
@@ -81,10 +91,11 @@ struct msg_part* prepare_msg(char *msg)
{
if (i < msg_p->part_count)
{
- msg_p->msg_parts[i] = (char*) malloc(sizeof(char) * 8);
+ msg_p->msg_parts[i] = (char*) malloc(sizeof(char) * 10);
strncpy(msg_p->msg_parts[i], message, 6);
- msg_p->msg_parts[7] = '\0';
+ //msg_p->msg_parts[6] = '\0';
+
for (int j = 0; j < 6; j++)
{
if (len - len_used >= 6)
@@ -105,6 +116,9 @@ struct msg_part* prepare_msg(char *msg)
strncpy(msg_p->msg_parts[i], message, (len - len_used) + 1);
}
i++;
+
+ if (i == 6)
+ msg_p->msg_parts[6] = '\0';
}
}
@@ -121,7 +135,9 @@ struct msg_part* prepare_msg(char *msg)
void repair_msg(char* inc_msg, char *msg)
{
printf("repair_msg: %s \n", msg);
-
+ printf("%i \n", strlen(msg));
+ printf("inc_msg: %s\n", inc_msg);
+ printf("%i \n", strlen(inc_msg));
if (strcmp(inc_msg, "//c//") != 0)
strcat(msg, inc_msg);
@@ -149,7 +165,7 @@ void send_message(irc_session_t *session, struct msg_part *msg_p)
{
for (int i = 0; i <= msg_p->part_count; i++)
{
- char *crypted_msg = (char*) malloc(sizeof(char) * 8);
+ char *crypted_msg = (char*) malloc(sizeof(char) * 20);
char *crypted_msg_base64 = (char*) malloc(sizeof(char) * 50);
if (msg_p->msg_parts[i] != NULL)
@@ -164,7 +180,7 @@ void send_message(irc_session_t *session, struct msg_part *msg_p)
}
char* eof = "//c//";
- char *crypted_eof = (char*) malloc(sizeof(char) * sizeof(eof));
+ char *crypted_eof = (char*) malloc(sizeof(char) * 20);
char *crypted_eof_base64 = (char*) malloc(sizeof(char) * 50);
BF_ecb_encrypt(eof, crypted_eof, &key, BF_ENCRYPT);
@@ -195,8 +211,8 @@ void on_connect(irc_session_t * session, const char * event, const char * origin
irc_cmd_join(session, "#msg", NULL);
irc_cmd_msg(session, "#msg", "connected");
-
- BF_set_key(&key, keyd->key_length, keyd->key);
+ BF_set_key(&key, keyd->key_length , keyd->key);
+ //BF_set_key(&key, sizeof(keyd->key), keyd->key);
free(keyd->key);
free(keyd);
@@ -204,7 +220,7 @@ void on_connect(irc_session_t * session, const char * event, const char * origin
void on_channel(irc_session_t * session, const char * event, const char * origin, const char ** params, unsigned int count)
{
- char *inc_msg = (char*) malloc(sizeof(char) * 8);
+ char *inc_msg = (char*) malloc(sizeof(char) * 9);
char *inc_msg_base64 = (char*) malloc(sizeof(char) * 50);
irc_target_get_nick(origin, sender_name, sizeof(sender_name));
@@ -220,7 +236,6 @@ void on_channel(irc_session_t * session, const char * event, const char * origin
{
from_base64(params[1], strlen(params[1]), inc_msg_base64, 50);
BF_ecb_encrypt(inc_msg_base64, inc_msg, &key, BF_DECRYPT);
- printf("%s \n", inc_msg);
repair_msg(inc_msg, msg);
free(inc_msg_base64);