#ifndef lint
static char copyright[] =
-"$Id: tree.c,v 1.25 1999/04/05 19:06:50 mellon Exp $ Copyright (c) 1995, 1996, 1997, 1998 The Internet Software Consortium. All rights reserved.\n";
+"$Id: tree.c,v 1.26 1999/04/12 22:11:12 mellon Exp $ Copyright (c) 1995, 1996, 1997, 1998 The Internet Software Consortium. All rights reserved.\n";
#endif /* not lint */
#include "dhcpd.h"
"evaluate_boolean_expression");
}
#if defined (DEBUG_EXPRESSIONS)
- log_info ("data: exists %s.%s = %s",
+ log_info ("bool: exists %s.%s = %s",
expr -> data.option -> universe -> name,
expr -> data.option -> name, *result ? "true" : "false");
#endif
return 1;
+ case expr_known:
+ if (!packet) {
+#if defined (DEBUG_EXPRESSIONS)
+ log_info ("bool: known = NULL");
+#endif
+ return 0;
+ }
+#if defined (DEBUG_EXPRESSIONS)
+ log_info ("bool: known = %s",
+ packet -> known ? "true" : "false");
+#endif
+ *result = packet -> known;
+ return 1;
+
case expr_substring:
case expr_suffix:
case expr_option:
return 0;
}
- log_error ("Bogus opcode in evaluate_boolean_expression: %d", expr -> op);
+ log_error ("Bogus opcode in evaluate_boolean_expression: %d",
+ expr -> op);
return 0;
}
case expr_or:
case expr_not:
case expr_match:
+ case expr_known:
log_error ("Boolean opcode in evaluate_data_expression: %d",
expr -> op);
return 0;
case expr_or:
case expr_not:
case expr_match:
+ case expr_known:
log_error ("Boolean opcode in evaluate_numeric_expression: %d",
expr -> op);
return 0;
case expr_option:
case expr_hardware:
case expr_exists:
+ case expr_known:
break;
default:
case expr_extract_int32:
case expr_const_int:
case expr_exists:
+ case expr_known:
return 100;
case expr_equal:
case expr_extract_int32:
case expr_const_int:
case expr_exists:
+ case expr_known:
return context_any;
case expr_equal: