vstr_free_base(con->tag); con_tag_fail:
static struct Evnt *serv_cb_func_accept(struct Evnt *from_evnt, int fd,                                        struct sockaddr *sa, socklen_t len){  struct Acpt_listener *acpt_listener = (struct Acpt_listener *)from_evnt;  struct Con *con = MK(sizeof(struct Con));  if (sa->sa_family != AF_INET) /* only support IPv4 atm. */    goto sa_fail;    if (!con || !evnt_make_acpt_dup(con->evnt, fd, sa, len))    goto make_acpt_fail;  con->evnt->cbs->cb_func_recv       = serv_cb_func_recv;  con->evnt->cbs->cb_func_send       = serv_cb_func_send;  con->evnt->cbs->cb_func_free       = serv_cb_func_free;  if (!httpd_con_init(con, acpt_listener))    goto evnt_fail;  if (!evnt_sc_timeout_via_mtime(con->evnt,                                 con->policy->s->idle_timeout * 1000))    VLG_WARNNOMEM_GOTO(evnt_fail, (vlg, "timeout: %m\n"));  if (!opt_serv_sc_acpt_end(con->policy->s, from_evnt, con->evnt))    goto evnt_fail;  ASSERT(!con->evnt->flag_q_closed);  return (con->evnt);   evnt_fail:  evnt_close(con->evnt);  return (con->evnt);   make_acpt_fail:  F(con);  VLG_WARNNOMEM_RET(NULL, (vlg, "%s: %m\n", "accept"));   sa_fail:  F(con);  VLG_WARNNOMEM_RET(NULL, (vlg, "%s: HTTPD sa == ipv4 fail\n", "accept"));}