/
umud/DOC/
umud/DOC/examples/
umud/DOC/internals/
umud/DOC/wizard/
umud/MISC/
umud/MISC/dbchk/
umud/RWHO/rwhod/
/*
	Copyright (C) 1991, Marcus J. Ranum. All rights reserved.
*/

#ifndef	lint
static	char	RCSid[] = "$Header: /usr/users/mjr/hacks/umud/DB/RCS/hashconf.c,v 1.1 91/07/04 17:33:10 mjr Rel $";
#endif


/* configure all options BEFORE including system stuff. */
#include	"config.h"

#ifdef	DB_DIRHASH

#include	"mud.h"


/*
binding to the command level interface. this just parses and calls
lower level configuration code in the db layer.
*/


/* ARGSUSED */
cmd__dhdbconfig(argc,argv,who,aswho)
int	argc;
char	*argv[];
char	*who;
char	*aswho;
{
	/* configure database hash size */
	if(!strcmp(argv[1],"hashsize")) {
		int	tmpx;

		if(dhdb_initted()) {
			logf("database is already active.\n",(char *)0);
			return(1);
		}

		if(argc < 3 || (tmpx = atoi(argv[2])) <= 0) {
			logf("invalid directory hash size.\n",(char *)0);
			return(1);
		}
		dhdb_sethsiz(tmpx);
		logf("directory hash size ",argv[2]," dirs.\n",(char *)0);
		return(0);
	}

	/* configure database hash directory */
	if(!strcmp(argv[1],"hashpath")) {
		if(dhdb_initted()) {
			logf("database is already active.\n",(char *)0);
			return(1);
		}
		if(argc < 3) {
			logf("must provide directory name.\n",(char *)0);
			return(1);
		}
		dhdb_sethpath(argv[2]);
		logf("database hash path now ",argv[2],"\n",(char *)0);
		return(0);
	}

	if(!strcmp(argv[1],"help")) {
		say(who,argv[0]," hashsize number-of-directories\n",(char *)0);
		say(who,argv[0]," hashpath directory-name\n",(char *)0);
		return(0);
	}


	logf("_dbconfig: I don't understand ",argv[1],"\n",(char *)0);
	return(0);
}
#endif	DB_DIRHASH