From 8fb20ea3c608cfa6ee26d5abe9f2f63ad99368f1 Mon Sep 17 00:00:00 2001 From: Patrick Hornecker Date: Mon, 21 Dec 2009 10:36:20 +0100 Subject: init commit --- receiver/Makefile | 9 ++++ receiver/Makefile.CE | 26 ++++++++++ receiver/Makefile.inc | 28 +++++++++++ receiver/receiver.c | 133 ++++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 196 insertions(+) create mode 100644 receiver/Makefile create mode 100644 receiver/Makefile.CE create mode 100644 receiver/Makefile.inc create mode 100644 receiver/receiver.c (limited to 'receiver') 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 +#include +#include +#include +#include + +#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; + } + +} + + -- cgit v1.2.3-55-g7522