Code Location: https://loadtesting.svn.sourceforge.net/svnroot/loadtesting/trunk/trunk
Browse
/
Download File
charge.c
/*
    This file is part of Charge.

    Copyright (C) 2004 Raphael Ouazana
        raphael.ouazana@linagora.com

    Charge is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 of the License, or
    (at your option) any later version.

    Charge is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with Charge; if not, write to the Free Software
    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA

     The GNU General Public License is contained in the file COPYING.
*/
#define _GNU_SOURCE
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "config.h"
#include "server.h"
#include "list.h"
#include "operation.h"
#include "seq.h"
#include "thread.h"

extern Server *serverlist;	// Liste des serveurs
extern int defaultserver;	// Position du serveur par defaut dans la liste des serveurs

extern List *listlist;		// Liste des listes

extern Seq *seqlist;		// Liste des séquences

void
usage(char *name)
{
	printf("Usage : %s [" DEFAULT_FILE "]\n", name);
	exit(1);
}

void
signal_handler(int sig)
{
	addsignal(sig);
	if (sig == SIGINT) {
		printend(" Finishing by SIGINT");
		exit(0);
	}
}

void
handlesignals()
{
	int i;
	for (i = 1; i < SIGRTMIN; i++) {
		signal(i, signal_handler);
	}
}

int
main(int argc, char **argv)
{
	if (argc > 2)
		usage(argv[0]);

	printf("Parsing configuration...\n");
	fflush(stdout);

	if (argc == 2)
		parse(argv[1], argv[0]);
	else
		parse(DEFAULT_FILE, argv[0]);

	printf("...OK\n");
	fflush(stdout);

	handlesignals();

	printservers();
#ifdef CHARGE_DEBUG_CONF
	printlists();
	printseqs();
#endif

	launchthreads();

	return 0;
}