summaryrefslogtreecommitdiffstats
path: root/receiver
diff options
context:
space:
mode:
authorPatrick Hornecker2009-12-21 10:36:20 +0100
committerPatrick Hornecker2009-12-21 10:36:20 +0100
commit8fb20ea3c608cfa6ee26d5abe9f2f63ad99368f1 (patch)
tree283313cc924c93ab04f1a124677a607a97a99a03 /receiver
parenttestcommit (diff)
downloadfriendfinder-8fb20ea3c608cfa6ee26d5abe9f2f63ad99368f1.tar.gz
friendfinder-8fb20ea3c608cfa6ee26d5abe9f2f63ad99368f1.tar.xz
friendfinder-8fb20ea3c608cfa6ee26d5abe9f2f63ad99368f1.zip
init commit
Diffstat (limited to 'receiver')
-rw-r--r--receiver/Makefile9
-rw-r--r--receiver/Makefile.CE26
-rw-r--r--receiver/Makefile.inc28
-rw-r--r--receiver/receiver.c133
4 files changed, 196 insertions, 0 deletions
diff --git a/receiver/Makefile b/receiver/Makefile
new file mode 100644
index 0000000..ba4c68e
--- /dev/null
+++ b/receiver/Makefile
@@ -0,0 +1,9 @@
+include Makefile.inc
+
+all: $(OBJECTS)
+ $(CC) $(CFLAGS) $(LDFLAGS) $(OBJECTS) $(LIBS) -o receiver$(SUFFIX)
+
+
+prepare: $(OBJECTS_PREPARE)
+ $(CC) $(CFLAGS) -g $(LDFLAGS) $(OBJECTS_PREPARE) $(LIBS) -lm -o prepare
+
diff --git a/receiver/Makefile.CE b/receiver/Makefile.CE
new file mode 100644
index 0000000..fc40a16
--- /dev/null
+++ b/receiver/Makefile.CE
@@ -0,0 +1,26 @@
+include Makefile.inc
+
+#OBJECTS += gps/gps_wince.o
+#OBJECTS += gps/nmea.o
+#OBJECTS += wince/display.o
+#OBJECTS += libircclient.o
+
+#OBJECTS += rc/ueberall.rsc
+
+#CC = arm-wince-mingw32ce-gcc
+#WINDRES = arm-wince-mingw32ce-windres
+#LDFLAGS = -Wl#,--enable-auto-import
+#SUFFIX = .exe
+
+CC = colorgcc
+LDFLAGS = -Wl
+
+#CFLAGS += -DWINCE
+#CFLAGS += -DGPS_LOG
+
+
+#rc/ueberall.rsc: rc/ueberall.rc
+# $(WINDRES) $? $@
+
+all: $(OBJECTS)
+ $(CC) $(CFLAGS) $(LDFLAGS) $(OBJECTS) $(LIBS) -lws2 -o receiver
diff --git a/receiver/Makefile.inc b/receiver/Makefile.inc
new file mode 100644
index 0000000..ae15c3b
--- /dev/null
+++ b/receiver/Makefile.inc
@@ -0,0 +1,28 @@
+###########
+# settings
+###########
+
+CFLAGS = -g -Wall -pg
+INCLUDES = -I../include
+LIBS = -lgmp -lircclient -lcrypto
+
+
+###########
+# objects
+###########
+
+OBJECTS = receiver.o
+OBJECTS += salsa20.o
+##################
+# rules
+##################
+
+%.o: %.c
+ $(CC) -std=c99 $(CFLAGS) $(INCLUDES) -c -o $@ $<
+
+clean:
+ rm -rf $(OBJECTS) $(OBJECTS_PREPARE) receiver$(SUFFIX)
+# $(MAKE) -C themes clean
+# $(MAKE) -C vkbd clean
+
+
diff --git a/receiver/receiver.c b/receiver/receiver.c
new file mode 100644
index 0000000..8f69a21
--- /dev/null
+++ b/receiver/receiver.c
@@ -0,0 +1,133 @@
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <stdint.h>
+#include <libircclient/libircclient.h>
+
+#include "openssl/blowfish.h"
+
+static irc_session_t *session;
+irc_callbacks_t callbacks;
+int counter = 0;
+char sender_name[100];
+
+int ret;
+
+BF_KEY key;
+
+int init_connection(char* server_ip, char* user)
+{
+ printf("init_connection()\n");
+
+ session = irc_create_session(&callbacks);
+ int con = irc_connect(session, server_ip, 6666, NULL, user, "receiver", "receiver");
+ if (con != 0)
+ {
+ printf("connection error-code: %i \n", con);
+
+ return 0;
+ }
+
+ if (irc_is_connected(session) == 1)
+ {
+ printf("connecting...\n");
+ return 1;
+ }
+}
+
+void disconnect()
+{
+ irc_disconnect(session);
+ irc_destroy_session(session);
+}
+
+char* dump_event (irc_session_t * session, const char * event, const char * origin, const char ** params, unsigned int count)
+{
+ char* msg = " ";
+
+ //msg = params[2];
+ //printf("%c: \n",params[2]);
+
+
+ return msg;
+}
+
+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]));
+
+ irc_target_get_nick(origin, sender_name, sizeof(sender_name));
+
+ if (sender_name != NULL && strcmp(sender_name, "sender") == 1)
+ {
+
+ //first message is the ret param, which is needed for message decryption
+ if (counter == 0)
+ {
+ //BF_set_key(&key, 5, "abcde");
+ }
+
+ //dump_event(session, event, origin, params, count);
+ if (counter % 2 == 0)
+ {
+ BF_ecb_encrypt(params[1], decrypted_lat, &key, BF_DECRYPT);
+ printf("lat %s, origin: %s \n", decrypted_lat, sender_name);
+ }
+
+ if (counter % 2 != 0)
+ {
+ BF_ecb_encrypt(params[1], decrypted_lon, &key, BF_DECRYPT);
+ printf("lon %s , origin: %s \n", decrypted_lon, sender_name);
+ printf("====\n");
+ }
+
+ //send an aknowledge to the sender (=sendername, to differ between multiple sender)
+ if (strcmp(params[1], "128") != 0)
+ {
+ irc_cmd_msg(session, "#test", sender_name);
+ counter++;
+ }
+ else
+ {
+ counter++;
+ }
+ }
+
+}
+
+void on_connect(irc_session_t * session, const char * event, const char * origin, const char ** params, unsigned int count)
+{
+ BF_set_key(&key, 5, "abcde");
+
+ irc_cmd_join(session, "#test", NULL);
+ irc_cmd_msg(session, "#test", "connected");
+}
+
+int main (int argc, char **argv)
+{
+
+ memset(&callbacks, 0, sizeof(callbacks));
+
+ callbacks.event_channel = get_position;
+ callbacks.event_connect = on_connect;
+
+ char *user = argv[1];
+
+ if (init_connection("127.0.0.1", user) == 1)
+ {
+ irc_run(session);
+ printf("done? \n");
+ return 1;
+ }
+
+ else
+ {
+ printf("aborting...\n");
+ return 0;
+ }
+
+}
+
+