Some of these items are dis-optimized by redundant logic that we seriously aught to clean up, if anyone is looking for some low hanging fruit.
On Wed, Jun 8, 2016 at 7:06 PM, <wr...@apache.org> wrote: > Author: wrowe > Date: Thu Jun 9 00:06:42 2016 > New Revision: 1747469 > > URL: http://svn.apache.org/viewvc?rev=1747469&view=rev > Log: > Rename ap_casecmpstr[n]() to ap_cstr_casecmp[n](), update with APR doxygen > A few pre-existing examples of this dis-optimization... > URL: > http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/cache/cache_storage.c?rev=1747469&r1=1747468&r2=1747469&view=diff > > ============================================================================== > --- httpd/httpd/trunk/modules/cache/cache_storage.c (original) > +++ httpd/httpd/trunk/modules/cache/cache_storage.c Thu Jun 9 00:06:42 > 2016 > @@ -115,7 +115,7 @@ int cache_create_entity(cache_request_re > > static int filter_header_do(void *v, const char *key, const char *val) > { > - if ((*key == 'W' || *key == 'w') && !ap_casecmpstr(key, "Warning") > + if ((*key == 'W' || *key == 'w') && !ap_cstr_casecmp(key, "Warning") > && *val == '1') { > /* any stored Warning headers with warn-code 1xx (see section > * 14.46) MUST be deleted from the cache entry and the forwarded > @@ -129,7 +129,7 @@ static int filter_header_do(void *v, con > } > static int remove_header_do(void *v, const char *key, const char *val) > { > - if ((*key == 'W' || *key == 'w') && !ap_casecmpstr(key, "Warning")) { > + if ((*key == 'W' || *key == 'w') && !ap_cstr_casecmp(key, "Warning")) > { > /* any stored Warning headers with warn-code 2xx MUST be retained > * in the cache entry and the forwarded response. > */ > > URL: > http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/mappers/mod_rewrite.c?rev=1747469&r1=1747468&r2=1747469&view=diff > > ============================================================================== > --- httpd/httpd/trunk/modules/mappers/mod_rewrite.c (original) > +++ httpd/httpd/trunk/modules/mappers/mod_rewrite.c Thu Jun 9 00:06:42 > 2016 > @@ -526,7 +526,7 @@ static unsigned is_absolute_uri(char *ur > switch (*uri++) { > case 'a': > case 'A': > - if (!ap_casecmpstrn(uri, "jp://", 5)) { /* ajp:// */ > + if (!ap_cstr_casecmpn(uri, "jp://", 5)) { /* ajp:// */ > *sqs = 1; > return 6; > } > @@ -534,7 +534,7 @@ static unsigned is_absolute_uri(char *ur > > case 'b': > case 'B': > - if (!ap_casecmpstrn(uri, "alancer://", 10)) { /* balancer:// */ > + if (!ap_cstr_casecmpn(uri, "alancer://", 10)) { /* balancer:// > */ > *sqs = 1; > return 11; > } > @@ -542,10 +542,10 @@ static unsigned is_absolute_uri(char *ur > > case 'f': > case 'F': > - if (!ap_casecmpstrn(uri, "tp://", 5)) { /* ftp:// */ > + if (!ap_cstr_casecmpn(uri, "tp://", 5)) { /* ftp:// */ > return 6; > } > - if (!ap_casecmpstrn(uri, "cgi://", 6)) { /* fcgi:// */ > + if (!ap_cstr_casecmpn(uri, "cgi://", 6)) { /* fcgi:// */ > *sqs = 1; > return 7; > } > @@ -553,26 +553,26 @@ static unsigned is_absolute_uri(char *ur > > case 'g': > case 'G': > - if (!ap_casecmpstrn(uri, "opher://", 8)) { /* gopher:// */ > + if (!ap_cstr_casecmpn(uri, "opher://", 8)) { /* gopher:// */ > return 9; > } > break; > > case 'h': > case 'H': > - if (!ap_casecmpstrn(uri, "ttp://", 6)) { /* http:// */ > + if (!ap_cstr_casecmpn(uri, "ttp://", 6)) { /* http:// */ > *sqs = 1; > return 7; > } > - else if (!ap_casecmpstrn(uri, "ttps://", 7)) { /* https:// */ > + else if (!ap_cstr_casecmpn(uri, "ttps://", 7)) { /* https:// */ > *sqs = 1; > return 8; > } > - else if (!ap_casecmpstrn(uri, "2://", 4)) { /* h2:// */ > + else if (!ap_cstr_casecmpn(uri, "2://", 4)) { /* h2:// */ > *sqs = 1; > return 5; > } > - else if (!ap_casecmpstrn(uri, "2c://", 5)) { /* h2c:// */ > + else if (!ap_cstr_casecmpn(uri, "2c://", 5)) { /* h2c:// */ > *sqs = 1; > return 6; > } > @@ -580,14 +580,14 @@ static unsigned is_absolute_uri(char *ur > > case 'l': > case 'L': > - if (!ap_casecmpstrn(uri, "dap://", 6)) { /* ldap:// */ > + if (!ap_cstr_casecmpn(uri, "dap://", 6)) { /* ldap:// */ > return 7; > } > break; > > case 'm': > case 'M': > - if (!ap_casecmpstrn(uri, "ailto:", 6)) { /* mailto: */ > + if (!ap_cstr_casecmpn(uri, "ailto:", 6)) { /* mailto: */ > *sqs = 1; > return 7; > } > @@ -595,17 +595,17 @@ static unsigned is_absolute_uri(char *ur > > case 'n': > case 'N': > - if (!ap_casecmpstrn(uri, "ews:", 4)) { /* news: */ > + if (!ap_cstr_casecmpn(uri, "ews:", 4)) { /* news: */ > return 5; > } > - else if (!ap_casecmpstrn(uri, "ntp://", 6)) { /* nntp:// */ > + else if (!ap_cstr_casecmpn(uri, "ntp://", 6)) { /* nntp:// */ > return 7; > } > break; > > case 's': > case 'S': > - if (!ap_casecmpstrn(uri, "cgi://", 6)) { /* scgi:// */ > + if (!ap_cstr_casecmpn(uri, "cgi://", 6)) { /* scgi:// */ > *sqs = 1; > return 7; > } > @@ -613,11 +613,11 @@ static unsigned is_absolute_uri(char *ur > > case 'w': > case 'W': > - if (!ap_casecmpstrn(uri, "s://", 4)) { /* ws:// */ > + if (!ap_cstr_casecmpn(uri, "s://", 4)) { /* ws:// */ > *sqs = 1; > return 5; > } > - else if (!ap_casecmpstrn(uri, "ss://", 5)) { /* wss:// */ > + else if (!ap_cstr_casecmpn(uri, "ss://", 5)) { /* wss:// */ > *sqs = 1; > return 6; > } > Just a guess that the illegible code above is nonsense, in terms of any actual performance benefit.