#include "ircd.h"
#include "socket.h"
int main(int argc,char **argv) {
int s,con;
struct slist sdata;
Sock current;
sdata.sockets = NULL;
sdata.users = NULL;
sdata.channels = NULL;
sdata.cf = (Conf)malloc(sizeof(ConfNode));
sdata.cf->port = 6667;
sdata.cf->ip = "0";
sprintf(sdata.cf->servername,"irc.got-unix.net");
sprintf(sdata.cf->version,"UbIRCD-0.1a");
sprintf(sdata.cf->network,"None");
sdata.lid = 1;
s = StartSS(sdata.cf);
while (1) {
con = GetConnection(s,sdata.cf);
if (con > 0) {
AddSock(con,&sdata);
printf("New Socket: [%i]\n",con);
}
current = sdata.sockets;
while (current!=NULL) {
if (ReadSock(current)) {
printf("(%s)\n",current->data);
DoIdle(¤t);
Parse(&sdata,current);
//SendSock(current->socket,current->data);
}
if (current->socket == -1) {
DeleteUser(&sdata.users,current->id);
DeleteSock(&sdata.sockets,current->id);
}
//printf("[%i][%i]\n",current->socket,current->id);
current=current->next;
}
}
return(0);
}
int DoIdle(Sock *head) {
Sock t = *head;
if (t->type >= 2) {
t->userinfo->idle = time(NULL)-t->userinfo->idlet;
}
*head = t;
return(0);
}