MCPcopy Create free account
hub / github.com/apache/httpd / ap_soak_end_container

Function ap_soak_end_container

server/config.c:1629–1678  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1627
1628
1629AP_DECLARE(const char *) ap_soak_end_container(cmd_parms *cmd, char *directive)
1630{
1631 struct ap_varbuf vb;
1632 const char *args;
1633 char *cmd_name;
1634 apr_status_t rc;
1635 apr_size_t max_len = VARBUF_MAX_LEN;
1636 if (cmd->pool == cmd->temp_pool)
1637 max_len = HUGE_STRING_LEN; /* lower limit for .htaccess */
1638
1639 ap_varbuf_init(cmd->temp_pool, &vb, VARBUF_INIT_LEN);
1640
1641 while ((rc = ap_varbuf_cfg_getline(&vb, cmd->config_file, max_len))
1642 == APR_SUCCESS) {
1643 args = vb.buf;
1644
1645 cmd_name = ap_getword_conf(cmd->temp_pool, &args);
1646 if (cmd_name[0] == '<') {
1647 if (cmd_name[1] == '/') {
1648 cmd_name[strlen(cmd_name) - 1] = '\0';
1649
1650 if (ap_cstr_casecmp(cmd_name + 2, directive + 1) != 0) {
1651 return apr_pstrcat(cmd->pool, "Expected </",
1652 directive + 1, "> but saw ",
1653 cmd_name, ">", NULL);
1654 }
1655
1656 ap_varbuf_free(&vb);
1657 return NULL; /* found end of container */
1658 }
1659 else {
1660 const char *msg;
1661
1662 if (*args == '\0' && cmd_name[strlen(cmd_name) - 1] == '>') {
1663 cmd_name[strlen(cmd_name) - 1] = '\0';
1664 }
1665
1666 if ((msg = ap_soak_end_container(cmd, cmd_name)) != NULL) {
1667 return msg;
1668 }
1669 }
1670 }
1671 }
1672 if (rc != APR_EOF && rc != APR_SUCCESS)
1673 return ap_pcfg_strerror(cmd->temp_pool, cmd->config_file, rc);
1674
1675 return apr_pstrcat(cmd->pool, "Expected </",
1676 directive + 1, "> before end of configuration",
1677 NULL);
1678}
1679
1680static const char *execute_now(char *cmd_line, const char *args,
1681 cmd_parms *parms,

Callers 2

start_ifversionFunction · 0.85
start_cond_sectionFunction · 0.85

Calls 6

ap_varbuf_initFunction · 0.85
ap_varbuf_cfg_getlineFunction · 0.85
ap_getword_confFunction · 0.85
ap_cstr_casecmpFunction · 0.85
ap_varbuf_freeFunction · 0.85
ap_pcfg_strerrorFunction · 0.85

Tested by

no test coverage detected