Mercurial > hg > nginx-vendor-1-0
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); |