diff --git a/Makefile b/Makefile index f89bfab..27a1d63 100644 --- a/Makefile +++ b/Makefile @@ -15,7 +15,7 @@ REMOVE = rm -f #Objects -OBJS = bridge.o thread.o mysql.o main.o socket.o +OBJS = bridge.o mysql.o main.o socket.o LIBRARIES = -lthr -L/usr/local/lib/mysql -lmysqlclient CFLAGS = -Wall -W -ggdb diff --git a/main.c b/main.c index b5db13a..2925666 100644 --- a/main.c +++ b/main.c @@ -19,13 +19,12 @@ time_t startTime; void usage(); -int botProcessData(char *data); +int bridgeProcessData(int net,char *data); int main(int argc,char **argv) { int ch; int doFork = 0x1; int readSocks = 0x0; - int t = 0x0; fd_set readSet; char data[1024]; struct timeval timeout = {30,0}; @@ -72,14 +71,6 @@ srandom(time(NULL)); - pthread_t threads[NUM_THREADS]; - - pthread_create(&threads[t], NULL, bridgeTUve_Thread, (void *)t); - t = 1; - pthread_create(&threads[t], NULL, bridgeIRC_Thread, (void *)t); - - pthread_mutex_init(&chanMutex, NULL); - if (sConnect(1,TUVE_SERVER_HOST,TUVE_SERVER_PORT)) writeLog(0,"TUve Bridge Unable To Connect To TUve Network"); @@ -101,7 +92,7 @@ if (FD_ISSET(tuveSocket,&readSet) != 0x0) { memset(&data,0x0,1024); - if (sReadSocket(&data,1024) == -1) { + if (sReadSocket(tuveSocket,&data,1024) == -1) { writeLog(0,"TUve Socket Died!\n"); sConnect(1,TUVE_SERVER_HOST,TUVE_SERVER_PORT); } @@ -111,7 +102,7 @@ } if (FD_ISSET(ircSocket,&readSet) != 0x0) { memset(&data,0x0,1024); - if (sReadSocket(&data,1024) == -1) { + if (sReadSocket(ircSocket,&data,1024) == -1) { writeLog(0,"IRC Socket Died!\n"); sConnect(2,IRC_SERVER_HOST,IRC_SERVER_PORT); } @@ -147,92 +138,8 @@ return(ret); } -int botProcessMsg(char *data) { - char *nick; - char *chan; - char *cmdData; - char *str_tok = 0x0; - botChanList_t *tmpChan; - int i; - - nick = strtok_r(data,":",&str_tok); - chan = strtok_r(NULL,":",&str_tok); - cmdData = strtok_r(NULL,"\n",&str_tok); - - if ((!strcasecmp(nick,"MrOlsen")) && (!strcasecmp(chan,"PRIVMSG"))) { - printf("cmdData: [%s]\n",cmdData); - sWriteSocket("%s\n",cmdData); - } - else if (!strcasecmp(nick,"MrOlsen") && !strcasecmp(cmdData,".ss")) { - tmpChan = botFindChan(chan); - for (i = tmpChan->sCur;i < tmpChan->sCount;i++) { - sWriteSocket("MSG %s:Time: %i,VID: %i\n",chan,tmpChan->schedule[i][0],tmpChan->schedule[i][1]); - } - } - return(0x0); - } - -int tuveProcessData(int type,char *dataFresh) { - char *cmd = 0x0; - char *cmdData = 0x0; - char *str_tok = 0x0; - char *data = 0x0; - char *data2 = 0x0; - char *data_tok = 0x0; - - data = strtok_r(dataFresh,"\n",&data_tok); - data2 = strtok_r(NULL,"\n",&data_tok); - - Head: - - if (data == 0x0) { - data = data2; - data2 = strtok_r(NULL,"\n",&data_tok); - } - - cmd = data; - - if (strstr(cmd,":")) { - cmd = strtok_r(data,":",&str_tok); - cmdData = strtok_r(NULL,"\n",&str_tok); - str_tok = 0x0; - writeLog(3,"DATA: (%s)CMD: [%s], Data: [%s]\n",data,cmd,cmdData); - } - else - writeLog(3,"DATA: (%s)CMD: [%s]\n",data,cmd); - - if (cmd == 0x0) - return(0x0); - - if (strstr(cmd,"PING")) { - sWriteSocket("PONG!\n"); - } - else if (!strcmp(cmd,"IDENT")) { - sWriteSocket("MSG TUveD:.tv login tuvebot 5558585\n"); - joinChan = 1; - } - else if (!strcmp(cmd,"MSG")) - botProcessMsg(cmdData); - else if (!strcmp(cmd,"TOPIC")) - botStoreTopic(cmdData); - else if (!strcmp(cmd,"CURPOS")) - botSetCurSong(cmdData); - else if (!strcmp(cmd,"MODE")) - botSetMode(cmdData); - else if (!strcmp(cmd,"JOIN")) - botDoJoin(cmdData); - else if (!strcmp(cmd,"EMOTE")) - botDoEmote(cmdData); - else if (!strcmp(cmd,"LOGIN")) - botDoLogin(cmdData); - else { - writeLog(0,"Unknown Command: [%s]\n",cmd); - } - - if (data2 != 0x0) { - data = 0x0; - goto Head; - } +int bridgeProcessData(int net,char *dataFresh) { + printf("[%s]\n",dataFresh); return(0x0); } diff --git a/mysql.c b/mysql.c index 1c2386e..5b9ff3f 100644 --- a/mysql.c +++ b/mysql.c @@ -6,7 +6,7 @@ #include -#include "tuvebot.h" +#include "tuvebridge.h" MYSQL *conn = 0x0; diff --git a/socket.c b/socket.c index 085ed5d..ff947f5 100644 --- a/socket.c +++ b/socket.c @@ -14,7 +14,7 @@ #include #include -#include "tuvebride.h" +#include "tuvebridge.h" int tuveSocket = 0x0; //Socket for TUve Connection int ircSocket = 0x0; //Socket for IRC Connection @@ -25,12 +25,14 @@ int att; int mySocket; - if (type == 1) + if (net == 1) { if (tuveSocket != 0) close(tuveSocket); - else + } + else { if (ircSocket != 0) close(ircSocket); + } for (att = 1;att < 10;att++) { @@ -59,29 +61,32 @@ sleep(5); } - if (type == 1) { + if (net == 1) { writeLog(2,"TUve Socket: [%i]\n",mySocket); tuveSocket = mySocket; + sWriteSocket(tuveSocket,"IDENT TUveBridge:1234567\n"); } else { writeLog(2,"IRC Socket: [%i]\n",mySocket); ircSocket = mySocket; } + highSock = mySocket + 1; + return(0x0); } -ssize_t sReadSocket(void *buffer,size_t length) { +ssize_t sReadSocket(int curSocket,void *buffer,size_t length) { ssize_t recLen = 0x0; - recLen = read(mySocket,buffer,length); + recLen = read(curSocket,buffer,length); if (recLen == 0x0) return(-1); return(recLen); } -int sWriteSocket(char const * __restrict fmt, ...) { +int sWriteSocket(int curSocket,char const * __restrict fmt, ...) { char data[1024]; int len = 0x0; va_list ap; @@ -92,7 +97,7 @@ data[len++] = '\n'; - send(mySocket,data,len,MSG_NOSIGNAL); + send(curSocket,data,len,MSG_NOSIGNAL); return(0x0); } @@ -100,9 +105,8 @@ FD_ZERO(readset); - FD_SET(mySocket,readset); - - highSock = mySocket + 1; + FD_SET(tuveSocket,readset); + FD_SET(ircSocket,readset); return(0x0); } diff --git a/tuvebridge.h b/tuvebridge.h index a4d4615..7890ee1 100644 --- a/tuvebridge.h +++ b/tuvebridge.h @@ -14,7 +14,7 @@ #include -#define TUVE_SERVER_HOST "127.0.0.1" //"Ivorytower.UbixOnline.com" +#define TUVE_SERVER_HOST "Ivorytower.UbixOnline.com" #define TUVE_SERVER_PORT 9999 #define IRC_SERVER_HOST "us.undernet.org" #define IRC_SERVER_PORT 6667 @@ -90,9 +90,9 @@ /* Socket Functions */ int sConnect(int net,const char *host,int port); -ssize_t sReadSocket(void *buffer,size_t length); +ssize_t sReadSocket(int curSocket,void *buffer,size_t length); int sGetConnections(fd_set *readset); -int sWriteSocket(char const * __restrict fmt, ...); +int sWriteSocket(int curSocket,char const * __restrict fmt, ...); /* Log Functions */ int writeLog(int level,char const * __restrict, ...);