/*
*
* servconf.c
*
* Configuration init routines
*
* Author: Landon Fuller <landonf@go2net.com>
*
* Copyright (c) 2000-2001 InfoSpace, Inc. All Rights Reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. All advertising materials mentioning features or use of this software
* must display the following acknowledgement:
* This product includes software developed by InfoSpace, Inc.
* and its contributors.
* 4. Neither the name of InfoSpace, Inc nor the names of its
* contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
*/
#include "../autoconf.h"
#include <stdio.h>
#include <stdlib.h>
#include <memory.h>
#include <string.h>
#include <lber.h>
#include <ldap.h>
#include "../lib/getopt.h"
#include "yp.h"
#include "../include/config.h"
#include "../include/servconf.h"
#include "../include/transit.h"
#include "../include/log.h"
#include "../include/yp.h"
#include "../include/util.h"
/* Global preferences structure */
struct prefs prefs;
extern int confparse(void);
/* Line count for yacc/lex parser */
int yylinecount;
int init_server_config (void)
{
prefs.domain = NULL;
prefs.master = NULL;
prefs.yp_maplist = NULL;
prefs.perr = 1;
return (0);
}
int fill_server_config (void)
{
int missing = 0;
if (prefs.domain == NULL)
{
error("Missing required domain directive in config file\n");
missing++;
}
if (prefs.master == NULL)
{
error("Missing required nismaster directive in config file\n");
missing++;
}
if (prefs.yp_maplist == NULL)
{
error("Missing required maps directive in config file\n");
missing++;
}
if (missing > 0)
fatal("Missing required option(s) in config file\n");
return (0);
}
int read_server_config (const char *filename)
{
extern FILE *confin;
confin = fopen(filename, "r");
if (!confin)
fatal("Failed to open config file %s for reading\n", filename);
confparse();
fclose(confin);
return (0);
}
syntax highlighted by Code2HTML, v. 0.9.1