#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <vector>

#include "config.h"
#include "daemon.h"
#include "getopt1.h"

#ifdef HAVE_GETOPT_H
#include <getopt.h>
#endif

#define SOCKET int
#define DEFAULT_PORT 12401

#include "CvsControl.h"

bool g_bTestMode = false;
int listen_port = DEFAULT_PORT;

static void usage(const char *prog)
{
  fprintf(stderr,"Usage: %s [-d] [-p port]\n",prog);
  exit(-1);
}

int main(int argc, char *argv[])
{
  int c;
  int digit_optind = 0;

  while(1)
  {
    int this_option_optind = optind ? optind : 1;
    int option_index = 0;
    static struct option long_options[] =
    {
      {0,0,0,0}
    };

    c = getopt_long (argc,argv,"+dp:",long_options, &option_index);
    if (c == -1)
      break;

    switch(c)
    {
      case 'd':
        g_bTestMode = true;
        break;
      case 'p':
        listen_port = atoi(optarg);
        break;
      default:
        usage(argv[0]);
        break;
    }
  }
  if(optind < argc)
    usage(argv[0]);

  if(!g_bTestMode)
  {
    if(daemon(0,0))
    {
      perror("Couldn't daemonize");
      return -1;
    }
  }

  run_server(listen_port,0,0);

  return 0;
}


syntax highlighted by Code2HTML, v. 0.9.1