#ifndef lint
static char copyright[] =
-"$Id: parse.c,v 1.61 2000/02/01 03:19:39 mellon Exp $ Copyright (c) 1995, 1996, 1997, 1998, 1999 The Internet Software Consortium. All rights reserved.\n";
+"$Id: parse.c,v 1.62 2000/02/02 17:10:38 mellon Exp $ Copyright (c) 1995, 1996, 1997, 1998, 1999 The Internet Software Consortium. All rights reserved.\n";
#endif /* not lint */
#include "dhcpd.h"
break;
default:
+ if (config_universe && is_identifier (token)) {
+ option = ((struct option *)
+ hash_lookup (config_universe -> hash,
+ (const unsigned char *)val, 0));
+ if (option) {
+ token = next_token (&val, cfile);
+ return parse_option_statement
+ (result, cfile, 1, option,
+ supersede_option_statement);
+ }
+ }
*lose = 0;
return 0;
}
#ifndef lint
static char copyright[] =
-"$Id: tables.c,v 1.35 2000/01/26 14:55:34 mellon Exp $ Copyright (c) 1995, 1996, 1998, 1999 The Internet Software Consortium. All rights reserved.\n";
+"$Id: tables.c,v 1.36 2000/02/02 17:10:39 mellon Exp $ Copyright (c) 1995, 1996, 1998, 1999 The Internet Software Consortium. All rights reserved.\n";
#endif /* not lint */
#include "dhcpd.h"
struct universe **universes;
int universe_count, universe_max;
+/* Universe containing names of configuration options, which, rather than
+ writing "option universe-name.option-name ...;", can be set by writing
+ "option-name ...;". */
+
+struct universe *config_universe;
+
void initialize_common_option_spaces()
{
int i;
struct universe **universes;
extern struct hash_table universe_hash;
void initialize_common_option_spaces PROTO ((void));
+struct universe *config_universe;
/* stables.c */
#if defined (FAILOVER_PROTOCOL)
#ifndef lint
static char copyright[] =
-"$Id: confpars.c,v 1.100 2000/02/01 03:19:56 mellon Exp $ Copyright (c) 1995, 1996 The Internet Software Consortium. All rights reserved.\n";
+"$Id: confpars.c,v 1.101 2000/02/02 17:10:43 mellon Exp $ Copyright (c) 1995, 1996 The Internet Software Consortium. All rights reserved.\n";
#endif /* not lint */
#include "dhcpd.h"
default:
et = (struct executable_statement *)0;
- if (is_identifier (token)) {
- option = ((struct option *)
- hash_lookup (server_universe.hash,
- (const unsigned char *)val, 0));
- if (option) {
- token = next_token (&val, cfile);
- if (!parse_option_statement
- (&et, cfile, 1, option,
- supersede_option_statement))
- return declaration;
- }
- }
-
- if (!et) {
- lose = 0;
- if (!parse_executable_statement (&et, cfile, &lose,
- context_any)) {
- if (!lose) {
- if (declaration)
+ lose = 0;
+ if (!parse_executable_statement (&et, cfile, &lose,
+ context_any)) {
+ if (!lose) {
+ if (declaration)
parse_warn (cfile,
"expecting a declaration");
- else
+ else
parse_warn (cfile,
"expecting a parameter %s",
"or declaration");
- skip_to_semi (cfile);
- }
- return declaration;
+ skip_to_semi (cfile);
}
- }
- if (!et) {
- parse_warn (cfile, "expecting a %sdeclaration",
- declaration ? "" : "parameter or ");
return declaration;
}
insert_statement:
#ifndef lint
static char copyright[] =
-"$Id: stables.c,v 1.5 2000/01/25 01:45:00 mellon Exp $ Copyright (c) 1995, 1996, 1998, 1999 The Internet Software Consortium. All rights reserved.\n";
+"$Id: stables.c,v 1.6 2000/02/02 17:10:43 mellon Exp $ Copyright (c) 1995, 1996, 1998, 1999 The Internet Software Consortium. All rights reserved.\n";
#endif /* not lint */
#include "dhcpd.h"
add_hash (&universe_hash,
(const unsigned char *)server_universe.name, 0,
(unsigned char *)&server_universe);
+
+ /* Make the server universe the configuration option universe. */
+ config_universe = &server_universe;
}