CONF_SC_MAKE_CLIST_BEG(checks_host, clist);
CONF_SC_MAKE_CLIST_BEG(checks_host_valid, clist);
static int httpd__conf_main_policy_http_d1(Httpd_policy_opts *opts,                                           const Conf_parse *conf,                                           Conf_token *token){  int clist = FALSE;    CONF_SC_MAKE_CLIST_BEG(policy_http_d1, clist);    else if (OPT_SERV_SYM_EQ("authorization") || OPT_SERV_SYM_EQ("auth"))  { /* token is output of: echo -n foo:bar | openssl enc -base64 */    /* see it with: echo token | openssl enc -d -base64 && echo */    unsigned int depth = token->depth_num;    CONF_SC_PARSE_TOP_TOKEN_RET(conf, token, FALSE);    if (OPT_SERV_SYM_EQ("off"))    {      vstr_del(opts->auth_realm, 1, opts->auth_realm->len);      vstr_del(opts->auth_token, 1, opts->auth_token->len);      return (TRUE);    }    if (!OPT_SERV_SYM_EQ("basic-encoded")) return (FALSE);    CONF_SC_MAKE_CLIST_MID(depth, clist);    else if (OPT_SERV_SYM_EQ("realm")) OPT_SERV_X_VSTR(opts->auth_realm);    else if (OPT_SERV_SYM_EQ("token")) OPT_SERV_X_VSTR(opts->auth_token);        CONF_SC_MAKE_CLIST_END();  }  else if (OPT_SERV_SYM_EQ("strictness"))  {    CONF_SC_MAKE_CLIST_BEG(http_checks, clist);        else if (OPT_SERV_SYM_EQ("hdrs") || OPT_SERV_SYM_EQ("headers"))    {      CONF_SC_MAKE_CLIST_BEG(checks_hdrs, clist);            else if (OPT_SERV_SYM_EQ("allow-dbl") ||               OPT_SERV_SYM_EQ("allow-double") ||               OPT_SERV_SYM_EQ("allow-*2"))        OPT_SERV_X_NEG_TOGGLE(opts->use_hdrs_no_x2);      else if (OPT_SERV_SYM_EQ("allow-missing-length"))        OPT_SERV_X_NEG_TOGGLE(opts->use_hdrs_err_411);      else if (OPT_SERV_SYM_EQ("allow-spaces"))        OPT_SERV_X_NEG_TOGGLE(opts->use_hdrs_non_spc);            CONF_SC_MAKE_CLIST_END();    }        else if (OPT_SERV_SYM_EQ("host") || OPT_SERV_SYM_EQ("hostname"))    {      CONF_SC_MAKE_CLIST_BEG(checks_host, clist);            else if (OPT_SERV_SYM_EQ("canonize") ||               OPT_SERV_SYM_EQ("make-canonical"))        OPT_SERV_X_TOGGLE(opts->use_canonize_host);      else if (OPT_SERV_SYM_EQ("validation"))      {        int use_internal_host_chk = FALSE;        int use_host_chk          = FALSE;        int use_host_err_400      = FALSE;        int validation_done       = FALSE;                CONF_SC_MAKE_CLIST_BEG(checks_host, clist);                else if (OPT_SERV_SYM_EQ("off")  || OPT_SERV_SYM_EQ("false") ||                 OPT_SERV_SYM_EQ("OFF")  || OPT_SERV_SYM_EQ("FALSE") ||                 OPT_SERV_SYM_EQ("no")   || OPT_SERV_SYM_EQ("NO") ||                 OPT_SERV_SYM_EQ("none") || OPT_SERV_SYM_EQ("NONE") ||                 OPT_SERV_SYM_EQ("0"))        {          use_internal_host_chk = FALSE;          use_host_chk          = FALSE;          use_host_err_400      = FALSE;          validation_done       = TRUE;        }        else if (OPT_SERV_SYM_EQ("fast") || OPT_SERV_SYM_EQ("internal"))        {          use_internal_host_chk = TRUE;          validation_done       = TRUE;        }        else if (OPT_SERV_SYM_EQ("virtual-hosts-default"))        {          use_host_chk          = TRUE;          use_host_err_400      = FALSE;          validation_done       = TRUE;        }        else if (OPT_SERV_SYM_EQ("virtual-hosts-error"))        {          use_host_chk          = TRUE;          use_host_err_400      = TRUE;          validation_done       = TRUE;        }                CONF_SC_MAKE_CLIST_END();                if (validation_done)        {          opts->use_internal_host_chk = use_internal_host_chk;          opts->use_host_chk          = use_host_chk;          opts->use_host_err_400      = use_host_err_400;        }      }            CONF_SC_MAKE_CLIST_END();    }        else if (OPT_SERV_SYM_EQ("allow-dot-directory") ||             OPT_SERV_SYM_EQ("allow-dot-dir") ||             OPT_SERV_SYM_EQ("allow-.-dir"))      OPT_SERV_X_NEG_TOGGLE(opts->chk_dot_dir);    else if (OPT_SERV_SYM_EQ("allow-encoded-slash") ||             OPT_SERV_SYM_EQ("allow-enc-/"))      OPT_SERV_X_NEG_TOGGLE(opts->chk_encoded_slash);    else if (OPT_SERV_SYM_EQ("allow-encoded-dot") ||             OPT_SERV_SYM_EQ("allow-enc-."))      OPT_SERV_X_NEG_TOGGLE(opts->chk_encoded_dot);    else if (OPT_SERV_SYM_EQ("error-406") ||             OPT_SERV_SYM_EQ("error-not-acceptable") ||             OPT_SERV_SYM_EQ("error-406-not-acceptable"))      OPT_SERV_X_TOGGLE(opts->use_err_406);    else if (OPT_SERV_SYM_EQ("url") || OPT_SERV_SYM_EQ("URL"))    {      CONF_SC_MAKE_CLIST_BEG(checks_host, clist);            else if (OPT_SERV_SYM_EQ("remove-fragment"))        OPT_SERV_X_TOGGLE(opts->remove_url_frag);      else if (OPT_SERV_SYM_EQ("remove-query"))        OPT_SERV_X_TOGGLE(opts->remove_url_query);            CONF_SC_MAKE_CLIST_END();    }        CONF_SC_MAKE_CLIST_END(); /* end of http checks */  }    else if (OPT_SERV_SYM_EQ("encoded-content-replacement")) /* allow gzip */    OPT_SERV_X_TOGGLE(opts->use_enc_content_replacement);  else if (OPT_SERV_SYM_EQ("keep-alive"))    OPT_SERV_X_TOGGLE(opts->use_keep_alive);  else if (OPT_SERV_SYM_EQ("keep-alive-1.0"))    OPT_SERV_X_TOGGLE(opts->use_keep_alive_1_0);  else if (OPT_SERV_SYM_EQ("range"))    OPT_SERV_X_TOGGLE(opts->use_range);  else if (OPT_SERV_SYM_EQ("range-1.0"))    OPT_SERV_X_TOGGLE(opts->use_range_1_0);  else if (OPT_SERV_SYM_EQ("trace-op") || OPT_SERV_SYM_EQ("trace-operation"))    OPT_SERV_X_TOGGLE(opts->use_trace_op);  else if (OPT_SERV_SYM_EQ("url-remove-fragment"))    OPT_SERV_X_TOGGLE(opts->remove_url_frag);  else if (OPT_SERV_SYM_EQ("url-remove-query"))    OPT_SERV_X_TOGGLE(opts->remove_url_query);    else if (OPT_SERV_SYM_EQ("limit"))  {    CONF_SC_MAKE_CLIST_BEG(limit, clist);        else if (OPT_SERV_SYM_EQ("header-size") ||             OPT_SERV_SYM_EQ("header-sz"))      OPT_SERV_X_UINT(opts->max_header_sz);    else if (OPT_SERV_SYM_EQ("requests"))      OPT_SERV_X_UINT(opts->max_requests);    else if (OPT_SERV_SYM_EQ("nodes"))    {      CONF_SC_MAKE_CLIST_BEG(nodes, clist);              else if (OPT_SERV_SYM_EQ("Accept:"))        OPT_SERV_X_UINT(opts->max_A_nodes);      else if (OPT_SERV_SYM_EQ("Accept-Charset:"))        OPT_SERV_X_UINT(opts->max_AC_nodes);      else if (OPT_SERV_SYM_EQ("Accept-Encoding:"))        OPT_SERV_X_UINT(opts->max_AE_nodes);      else if (OPT_SERV_SYM_EQ("Accept-Language:"))        OPT_SERV_X_UINT(opts->max_AL_nodes);            else if (OPT_SERV_SYM_EQ("Connection:"))        OPT_SERV_X_UINT(opts->max_etag_nodes);      else if (OPT_SERV_SYM_EQ("ETag:"))        OPT_SERV_X_UINT(opts->max_etag_nodes);            else if (OPT_SERV_SYM_EQ("Range:"))      {        OPT_SERV_X_UINT(opts->max_range_nodes);        if (!opts->max_range_nodes)        {          opts->use_range     = FALSE;          opts->use_range_1_0 = FALSE;        }      }            CONF_SC_MAKE_CLIST_END();    }        CONF_SC_MAKE_CLIST_END();  }  else if (OPT_SERV_SYM_EQ("Server:") || OPT_SERV_SYM_EQ("server-name"))    OPT_SERV_X_VSTR(opts->server_name);    CONF_SC_MAKE_CLIST_END();    return (TRUE);}