if (con)
if (con && !vstr_sub_vstr(req->tag, 1, req->tag->len, con->tag, 1, con->tag->len, VSTR_TYPE_SUB_BUF_REF)) return (NULL);  if (!con) req->policy = NULL; else {
Httpd_req_data *http_req_make(struct Con *con){  static Httpd_req_data real_req[1];  Httpd_req_data *req = real_req;  const Httpd_policy_opts *policy = NULL;    ASSERT(!req->using_req);  if (!req->done_once)  {    Vstr_conf *conf = NULL;    if (con)      conf = con->evnt->io_w->conf;          if (!(req->fname = vstr_make_base(conf)) ||        !(req->http_hdrs->multi->combiner_store = vstr_make_base(conf)) ||        !(req->sects = vstr_sects_make(8)))      return (NULL);        req->f_mmap       = NULL;    req->xtra_content = NULL;  }  http__clear_hdrs(req);    http__clear_xtra(req);    req->http_hdrs->multi->comb = con ? con->evnt->io_r : NULL;  vstr_del(req->fname, 1, req->fname->len);  req->now = evnt_sc_time();    req->len = 0;  req->path_pos = 0;  req->path_len = 0;  req->error_code = 0;  req->error_line = "";  req->error_msg  = "";  req->error_len  = 0;  req->sects->num = 0;  /* f_stat */  if (con)    req->orig_io_w_len = con->evnt->io_w->len;  /* NOTE: These should probably be allocated at init time, depending on the   * option flags given */  ASSERT(!req->f_mmap || !req->f_mmap->len);  if (req->f_mmap)    vstr_del(req->f_mmap, 1, req->f_mmap->len);  ASSERT(!req->xtra_content || !req->xtra_content->len);  if (req->xtra_content)    vstr_del(req->xtra_content, 1, req->xtra_content->len);    req->vhost_prefix_len = 0;    req->sects->malloc_bad = FALSE;  req->content_encoding_gzip     = FALSE;  req->content_encoding_bzip2    = FALSE;  req->content_encoding_identity = TRUE;  req->output_keep_alive_hdr = FALSE;  req->user_return_error_code = FALSE;  req->vary_star = con ? con->vary_star : FALSE;  req->vary_a    = FALSE;  req->vary_ac   = FALSE;  req->vary_ae   = FALSE;  req->vary_al   = FALSE;  req->vary_rf   = FALSE;  req->vary_ua   = FALSE;  req->direct_uri         = FALSE;  req->direct_filename    = FALSE;  req->skip_document_root = FALSE;    req->ver_0_9    = FALSE;  req->ver_1_1    = FALSE;  req->head_op    = FALSE;  req->chked_encoded_path = FALSE;    req->neg_content_type_done = FALSE;  req->neg_content_lang_done = FALSE;  req->conf_secure_dirs   = FALSE;  req->conf_friendly_file = FALSE;  req->conf_friendly_dirs = FALSE;    req->done_once  = TRUE;  req->using_req  = TRUE;  req->malloc_bad = FALSE;  if (con)    policy = con->policy;  else    policy = (Httpd_policy_opts *)httpd_opts->s->def_policy;    httpd_policy_change_req(req, policy);    return (req);}