#ifndef lint
static char copyright[] =
-"$Id: memory.c,v 1.40 1998/06/25 02:59:15 mellon Exp $ Copyright (c) 1995, 1996 The Internet Software Consortium. All rights reserved.\n";
+"$Id: memory.c,v 1.41 1998/11/05 18:42:18 mellon Exp $ Copyright (c) 1995, 1996 The Internet Software Consortium. All rights reserved.\n";
#endif /* not lint */
#include "dhcpd.h"
&dhcp_universe) &&
(esp -> data.option -> option -> code ==
DHO_DHCP_CLIENT_IDENTIFIER)) {
- hd -> client_identifier =
- evaluate_data_expression
- ((struct packet *)0,
- esp -> data.option -> expression);
+ evaluate_data_expression
+ (&hd -> client_identifier,
+ (struct packet *)0,
+ (struct option_state *)0,
+ esp -> data.option -> expression);
break;
}
}
for (hp = *host; hp; hp = hp -> n_ipaddr) {
if (!hp -> fixed_addr)
continue;
- fixed_addr = (evaluate_data_expression
- ((struct packet *)0,
- hp -> fixed_addr -> expression));
- if (!fixed_addr.len)
+ if (!evaluate_data_expression (&fixed_addr, (struct packet *)0,
+ (struct option_state *)0,
+ hp -> fixed_addr -> expression))
continue;
for (i = 0; i < fixed_addr.len; i += 4) {
ip_address.len = 4;
if (subnet) {
*addr = ip_address;
*host = hp;
+ data_string_forget (&fixed_addr,
+ "find_host_for_network");
return subnet;
}
}
+ data_string_forget (&fixed_addr, "find_host_for_network");
}
return (struct subnet *)0;
}
if (!g)
error ("%s: can't allocate new group", caller);
*g = *group;
+ g -> statements = (struct executable_statement *)0;
+ g -> next = group;
return g;
}