Newer
Older
ubServ / main.c
#include "include/httpd.h"


int main(int argv,char *argc[]) {
  int s,i=1,con=0,h;
  char file[64] = "ubieserver.cfg";
  hash socket[128];
  conf cf[1]; 
//  background(cf);
// dlopen();
  dosignal(cf);
  readconfig(cf,file);
  printf("Perpairing To Server\n");
  cf[1].s = serve(cf);
  printf("Now Servering(%i)\n",cf[1].s);
  /* 
  while (1) {
    con = getcon(cf[1].s,con,socket);
    for (i=1;i<=con;i++) {
      if (socket[i].socket > 0) {
        if (sockread(socket[i].socket, socket[i].data)) {
          parse(i,socket);
          }
        }
      }
    }
    */
  while (1) {
    con = getcon(cf[1].s,con,socket);
    if (socket[i].socket > 0) {
      if (sockread(socket[i].socket, socket[i].data)) {
        printf("con: %i, Socket: %i,i: %i\n",con,socket[i].socket,i);
        parse(i,socket);
        h = write(socket[i].socket,socket[i].data,0);
        printf("Hmm: %i\n",h); 
        if (h == -1) { socket[i].socket = 0; }
        }
      }
    if ((i >= con) || (con == 0)) { i = 0; }
    i++;
    }
  }

int background()
{   
        int pid;
        signal(SIGCHLD,SIG_IGN);
        pid = fork();
        if(pid>0)
        {
                sleep(1);
                exit(EXIT_SUCCESS);
        }
        if(pid==0)
        {
                signal(SIGCHLD,SIG_DFL);
                return getpid();
        }
        return -1;
}