comparison src/core/ngx_string.h @ 286:5bef04fc3fd5 NGINX_0_5_13

nginx 0.5.13 *) Feature: the COPY and MOVE methods. *) Bugfix: the ngx_http_realip_module set garbage for requests passed via keep-alive connection. *) Bugfix: nginx did not work on big-endian 64-bit Linux. Thanks to Andrei Nigmatulin. *) Bugfix: now when IMAP/POP3 proxy receives too long command it closes the connection right away, but not after timeout. *) Bugfix: if the "epoll" method was used and a client closed a connection prematurely, then nginx closed the connection after a send timeout only. *) Bugfix: nginx could not be built on platforms different from i386, amd64, sparc and ppc; bug appeared in 0.5.8.
author Igor Sysoev <http://sysoev.ru>
date Mon, 19 Feb 2007 00:00:00 +0300
parents 052a7b1d40e5
children 27d9d1f26b38
comparison
equal deleted inserted replaced
285:0e505c8b6528 286:5bef04fc3fd5
22 ngx_str_t key; 22 ngx_str_t key;
23 ngx_str_t value; 23 ngx_str_t value;
24 } ngx_keyval_t; 24 } ngx_keyval_t;
25 25
26 26
27 #define ngx_string(str) { sizeof(str) - 1, (u_char *) str } 27 #define ngx_string(str) { sizeof(str) - 1, (u_char *) str }
28 #define ngx_null_string { 0, NULL } 28 #define ngx_null_string { 0, NULL }
29 29
30 30
31 #define ngx_tolower(c) (u_char) ((c >= 'A' && c <= 'Z') ? (c | 0x20) : c) 31 #define ngx_tolower(c) (u_char) ((c >= 'A' && c <= 'Z') ? (c | 0x20) : c)
32 #define ngx_toupper(c) (u_char) ((c >= 'a' && c <= 'z') ? (c & ~0x20) : c) 32 #define ngx_toupper(c) (u_char) ((c >= 'a' && c <= 'z') ? (c & ~0x20) : c)
33
34
35 #if (NGX_WIN32)
36
37 #define ngx_strncasecmp(s1, s2, n) \
38 strnicmp((const char *) s1, (const char *) s2, n)
39 #define ngx_strcasecmp(s1, s2) \
40 stricmp((const char *) s1, (const char *) s2)
41
42 #else
43
44 #define ngx_strncasecmp(s1, s2, n) \
45 strncasecmp((const char *) s1, (const char *) s2, n)
46 #define ngx_strcasecmp(s1, s2) \
47 strcasecmp((const char *) s1, (const char *) s2)
48
49 #endif
50 33
51 34
52 #define ngx_strncmp(s1, s2, n) strncmp((const char *) s1, (const char *) s2, n) 35 #define ngx_strncmp(s1, s2, n) strncmp((const char *) s1, (const char *) s2, n)
53 36
54 37
126 u_char *ngx_pstrdup(ngx_pool_t *pool, ngx_str_t *src); 109 u_char *ngx_pstrdup(ngx_pool_t *pool, ngx_str_t *src);
127 u_char * ngx_cdecl ngx_sprintf(u_char *buf, const char *fmt, ...); 110 u_char * ngx_cdecl ngx_sprintf(u_char *buf, const char *fmt, ...);
128 u_char * ngx_cdecl ngx_snprintf(u_char *buf, size_t max, const char *fmt, ...); 111 u_char * ngx_cdecl ngx_snprintf(u_char *buf, size_t max, const char *fmt, ...);
129 u_char *ngx_vsnprintf(u_char *buf, size_t max, const char *fmt, va_list args); 112 u_char *ngx_vsnprintf(u_char *buf, size_t max, const char *fmt, va_list args);
130 113
114 ngx_int_t ngx_strcasecmp(u_char *s1, u_char *s2);
115 ngx_int_t ngx_strncasecmp(u_char *s1, u_char *s2, size_t n);
116
131 ngx_int_t ngx_rstrncmp(u_char *s1, u_char *s2, size_t n); 117 ngx_int_t ngx_rstrncmp(u_char *s1, u_char *s2, size_t n);
132 ngx_int_t ngx_rstrncasecmp(u_char *s1, u_char *s2, size_t n); 118 ngx_int_t ngx_rstrncasecmp(u_char *s1, u_char *s2, size_t n);
133 ngx_int_t ngx_memn2cmp(u_char *s1, u_char *s2, size_t n1, size_t n2); 119 ngx_int_t ngx_memn2cmp(u_char *s1, u_char *s2, size_t n1, size_t n2);
134 120
135 ngx_int_t ngx_atoi(u_char *line, size_t n); 121 ngx_int_t ngx_atoi(u_char *line, size_t n);