comparison src/core/ngx_string.c @ 472:09f0ef15d544 NGINX_0_7_48

nginx 0.7.48 *) Feature: the "proxy_cache_key" directive. *) Bugfix: now nginx takes into account the "X-Accel-Expires", "Expires", and "Cache-Control" header lines in a backend response. *) Bugfix: now nginx caches responses for the GET requests only. *) Bugfix: the "fastcgi_cache_key" directive was not inherited. *) Bugfix: the $arg_... variables did not work with SSI subrequests. Thanks to Maxim Dounin. *) Bugfix: nginx could not be built with uclibc library. Thanks to Timothy Redaelli. *) Bugfix: nginx could not be built on OpenBSD; the bug had appeared in 0.7.46.
author Igor Sysoev <http://sysoev.ru>
date Mon, 06 Apr 2009 00:00:00 +0400
parents b4f69f2ef02c
children 3a4102b00f97
comparison
equal deleted inserted replaced
471:0cc33540f2e0 472:09f0ef15d544
690 690
691 return --s1; 691 return --s1;
692 } 692 }
693 693
694 694
695 /*
696 * ngx_strlcasestrn() is intended to search for static substring
697 * with known length in string until the argument last. The argument n
698 * must be length of the second substring - 1.
699 */
700
701 u_char *
702 ngx_strlcasestrn(u_char *s1, u_char *last, u_char *s2, size_t n)
703 {
704 ngx_uint_t c1, c2;
705
706 c2 = (ngx_uint_t) *s2++;
707 c2 = (c2 >= 'A' && c2 <= 'Z') ? (c2 | 0x20) : c2;
708 last -= n;
709
710 do {
711 do {
712 if (s1 == last) {
713 return NULL;
714 }
715
716 c1 = (ngx_uint_t) *s1++;
717
718 c1 = (c1 >= 'A' && c1 <= 'Z') ? (c1 | 0x20) : c1;
719
720 } while (c1 != c2);
721
722 } while (ngx_strncasecmp(s1, s2, n) != 0);
723
724 return --s1;
725 }
726
727
695 ngx_int_t 728 ngx_int_t
696 ngx_rstrncmp(u_char *s1, u_char *s2, size_t n) 729 ngx_rstrncmp(u_char *s1, u_char *s2, size_t n)
697 { 730 {
698 if (n == 0) { 731 if (n == 0) {
699 return 0; 732 return 0;