Exemple #1
0
void checkConfiguration(){
    List *lstConf = initList();
    if (0 != getParamsFromFile("conf/httpd.conf", lstConf, '='))
    {
        puts("Could not read configuration file...");
    }else{
        puts("Configuration file 'conf/httpd.conf' is OK.");
    }
    removeAll(lstConf);
}
Exemple #2
0
void parseUserInput(int argc, char** argv) {
	int c;
	char configfile[30];
	int outfileSpecified=0;
	int configfileSpecified=0;
	int scaleSpecified=0;	
	if (argc == 1) {
		fprintf(stderr, "GTgraph-ssca2 [-options]\n");
		fprintf(stderr, "\t-s ###  SCALE value (integer) to use (default -- 20)\n"); 
		fprintf(stderr, "\t-c ###  config file to use\n");
		fprintf(stderr, "\t-o ###  output file to write the graph to (default -- sample.gr)\n");
		fprintf(stderr, "\t-h      display this message\n");
		fprintf(stderr, "No config file specified\n");
		fprintf(stderr, "Assigning default values from init.c\n");
		getParams();
		updateLog();

	} else if (argc <= 5) {

		while((c = getopt(argc, argv, "s:c:h:o:")) != -1) {

			switch (c) {
				
			case 's':
				if ((!configfileSpecified) && (!outfileSpecified)) {
					getParams();
				} else if (configfileSpecified) {
					fprintf(stderr, "Warning: Ignoring the SCALE value given as an input argument. The parameters specified in the config file have been applied\n");
					break;
				}
				SCALE = atol(optarg);
                                fprintf(stderr, "Applying a SCALE value of %ld\n", SCALE);
                                TotVertices = 1 << SCALE;
                                MaxCliqueSize = (LONG_T) floor(pow(2, (double) (SCALE/3.0)));
                                MaxWeight = 1 << SCALE;
                                updateLog();
				scaleSpecified = 1;
				break;
					
				case 'o':
				outfileSpecified = 1;
				if ((!configfileSpecified) && (!scaleSpecified)) {
					fprintf(stderr, "No config file specified, assigning default values ...\n");
					getParams();
				}
				WRITE_TO_FILE = 1;
				strcpy(OUTFILE, optarg);
				fprintf(stderr, "Graph will be written to %s\n", OUTFILE);
				updateLog();
				
				break;
				
				case 'c':
				if (scaleSpecified) {
					fprintf(stderr, "Warning: The parameters specified in the config file will be applied and the previous SCALE value will be lost\n");
				}
				configfileSpecified = 1;
				if (!outfileSpecified) {
					if (!scaleSpecified)
						getParams();
					strcpy(configfile, optarg);
					fprintf(stderr, "Reading config file %s\n", configfile);
					getParamsFromFile(configfile);
				} else {
					strcpy(configfile, optarg);
					fprintf(stderr, "Updating parameters from config file %s\n", configfile);
					getParamsFromFile(configfile);
				}
				updateLog();
				
				break;
			
				case 'h':
					usage();

				default:
					usage();
			}
		}

		
	} else {
		fprintf(stderr, "Invalid input arguments\n");
		usage();
	}
	
}
Exemple #3
0
int InitServer()
{
    char ErrBuff[256] = {0};
    FILE* fileLogTmp;
    //##############  CONFIGURATE SERVER  ###############
    
    // Read parameters from 'conf/httpd.conf' to list
    List *lstConf = initList();
    if (0 != getParamsFromFile("conf/httpd.conf", lstConf, '='))
    {
        puts("Could not read configuration file...");
        return 1;
    }
    // Apply parameters from list (or set to default, if they are absent)
    int port          = getParamInt(lstConf, "portListen",    80);
    int maxConn       = getParamInt(lstConf, "maxConnection", 100);
    char *logAccessPath = getParamS(lstConf, "logAccess",    "log/access.log");
    char *logErrorPath  = getParamS(lstConf, "logError",     "log/error.log");
    defaultPage         = getParamS(lstConf, "defaultPage",  "/index.htm");
    rootFolder          = getParamS(lstConf, "rootFolder",   "www/");
    char *interface     = getParamS(lstConf, "interfaceToListen", "");
    // Open new log files
    if ( initErrorLog(logErrorPath) == 0 )
    {
        return 1;
    }
    if ( !( fileLogAccess = fopen(logAccessPath, "a") ) )
    {
        snprintf(ErrBuff, sizeof(ErrBuff), "Could not open '%s'!", logAccessPath);
        puts(ErrBuff);
        logError(ErrBuff);
        return 1;
    }
    // Check if default page exists
    char *fullPath = malloc(strlen(rootFolder)+strlen(defaultPage)+1);
    strcpy(fullPath, rootFolder);
    strcat(fullPath, defaultPage);
    if (fileExists(fullPath) != 0)
    {
        snprintf(ErrBuff, sizeof(ErrBuff), 
            "Could not find default page following next path: '%s'!",
            fullPath);
        puts(ErrBuff);
        logError(ErrBuff);
    }
    // Free data with configuration from memory
    removeAll(lstConf);
    
    //#############  START SERVER  ###############

    struct sockaddr_in saddr;       // used for getting IP _
    socklen_t len = sizeof( saddr );// of incomming connection _
    char IP_Buff[INET_ADDRSTRLEN]; // defined in <netinet/in.h> .

    int listenSocket = 0, connSocket = 0;
    pid_t child_pid;
    
    // Try to start server
    listenSocket = startServer(interface, port, maxConn);

    if (listenSocket > 0)
    {
        #ifndef __DEBUG_MODE__
        logError("#Server started Successfully!");
        #endif
        printf("\n\nServer started Successfully!\n\n");
        //#############  MAIN PROCESSING LOOP  ###############
        while(1)
        {
            // Wait few second, if there's no connections - continue
            if (wait4Socket(listenSocket, ACCEPT_TIMEOUT) > 0)
            {
                connSocket = accept( listenSocket, ( struct sockaddr* )&saddr, &len );
                if ( listenSocket < 0 ) {
                    logError("Accept Error...");
                    break;
                }
                
                child_pid = fork ();
                if (child_pid == 0)     //####  child thread  ####
                {
                    #ifndef __DEBUG_MODE__
                    close (STDIN_FILENO);     //child don't need to print anything,
                    close (STDOUT_FILENO);    //  so close input/output streams
                    #endif
                    close (listenSocket);       //close a child-copy of listening port
                    
                    if ( inet_ntop( AF_INET, &saddr.sin_addr, IP_Buff, INET_ADDRSTRLEN ) == NULL )
                    {
                        logError("Can't convert IP addr");
                        close(connSocket);
                        exit(1);
                    }
                    procConn(IP_Buff, connSocket);
                    
                    exit (0);       // close child process
                }
                else if (child_pid > 0) // ####  parent thread  ####
                {
                    
                    close (connSocket);
                    #ifdef __DEBUG_MODE__
                    if (getComm() == 0)
                    {
                        break;
                    }
                    #endif
                }
                else
                    logError("Can't fork");     // if can't create child
            }
        }
        close(listenSocket);    // close parent listenSocket


        #ifndef __DEBUG_MODE__
        logError("#Server closed Successfully!");
        #endif
        printf("\n\nServer closed Successfully!\n\n");
        
        return 0;
    }
    logError("#Server was not started!");
    printf("\n\nServer was not started! See error.log to get more information!\n\n");
    return 1;
}
Exemple #4
0
void parseUserInput(int argc, char** argv) {
	int c;
	char configfile[30];
	int outfileSpecified = 0;
	int configfileSpecified = 0;
	int typeSpecified = 0;
	if (argc == 1) {
		fprintf(stderr, "GTgraph-random [-options]\n");
		fprintf(stderr, "\t-c ###  config file to use\n");
		fprintf(stderr, "\t-t ###  random graph model\n");
		fprintf(stderr, "\t        (0 for G(n, p), 1 for G(n, m))\n"); 
		fprintf(stderr, "\t-n ###  no. of vertices\n");
		fprintf(stderr, "\t-p ###  probability of an edge (graph model 0)\n");        		 
		fprintf(stderr, "\t-m ###  no. of edges (graph model 1)\n");	
		fprintf(stderr, "\t-o ###  output file to write the graph to\n");
		fprintf(stderr, "\t        (default: sample.gr)\n"); 
		fprintf(stderr, "\t-h      display this message\n\n");
		fprintf(stderr, "No config file specified\n");
		fprintf(stderr, "Assigning default values from init.c\n");
		getParams();
		updateLog();

	} else if (argc <= 9) {
		
		while ((c = getopt(argc, argv, "c:t:n:m:p:o:h:")) != -1) {

			switch (c) {
				
				case 't':
				if (configfileSpecified) 
					break;
				if (!outfileSpecified) {
					getParams();
				}
				GRAPH_MODEL = atoi(optarg);
				typeSpecified = 1;
                                fprintf(stderr, "Graph model %d chosen\n", GRAPH_MODEL);
                                updateLog();
				break;
					
				case 'o':
				outfileSpecified = 1;
				if ((!configfileSpecified) && (!typeSpecified)) {
					fprintf(stderr, "No config file specified, assigning default values ...\n");
					getParams();
				}
				WRITE_TO_FILE = 1;
				strcpy(OUTFILE, optarg);
				fprintf(stderr, "Graph will be written to %s\n", OUTFILE);
				updateLog();
				break;
				
				case 'c':
				fprintf(stderr, "Warning: The parameters specified in the config file will be applied and all other options will be lost\n");
				configfileSpecified = 1;
				if (!outfileSpecified) {
					getParams();
					strcpy(configfile, optarg);
					fprintf(stderr, "Reading config file %s\n", configfile);
					getParamsFromFile(configfile);
				} else {
					strcpy(configfile, optarg);
					fprintf(stderr, "Updating parameters from config file %s\n", configfile);
					getParamsFromFile(configfile);
				}
				updateLog();
				break;
		
				case 'n':
				if (configfileSpecified)
					break;
				if (!typeSpecified) {
					fprintf(stderr, "Error! First specify graph model using the -t option before this argument\n");
					exit(-1);
				}

				n = atol(optarg);
				fprintf(stderr, "n is set to %ld\n", n);
				updateLog();
				break;

				case 'p':
				if (configfileSpecified)
                                        break;
                                if (!typeSpecified) {
                                        fprintf(stderr, "Error! First specify graph model using the -t option before this argument\n");
                                        exit(-1);
                                }

                                p = atof(optarg);
                                fprintf(stderr, "p is set to %lf\n", p);
                                updateLog();
				break;

				case 'm':
				if (configfileSpecified)
					break;
				if (!typeSpecified) {
                                        fprintf(stderr, "Error! First specify graph model using the -t option before this argument\n");
                                        exit(-1);
                                }
				m = atol(optarg);
                                fprintf(stderr, "m is set to %ld\n", m);
                                updateLog();
                                break;

				case 'h':
				usage();

				default:
				usage();
			}
		}

		
	} else {
		fprintf(stderr, "Invalid input arguments\n");
		usage();
	}
	
}