Mercurial > hg > nginx
comparison src/imap/ngx_imap_proxy.c @ 479:c52408583801 release-0.1.14
nginx-0.1.14-RELEASE import
*) Feature: the autoconfiguration directives:
--http-client-body-temp-path=PATH, --http-proxy-temp-path=PATH, and
--http-fastcgi-temp-path=PATH
*) Change: the directory name for the temporary files with the client
request body is specified by directive client_body_temp_path, by
default it is <prefix>/client_body_temp.
*) Feature: the ngx_http_fastcgi_module and the directives:
fastcgi_pass, fastcgi_root, fastcgi_index, fastcgi_params,
fastcgi_connect_timeout, fastcgi_send_timeout, fastcgi_read_timeout,
fastcgi_send_lowat, fastcgi_header_buffer_size, fastcgi_buffers,
fastcgi_busy_buffers_size, fastcgi_temp_path,
fastcgi_max_temp_file_size, fastcgi_temp_file_write_size,
fastcgi_next_upstream, and fastcgi_x_powered_by.
*) Bugfix: the "[alert] zero size buf" error; the bug had appeared in
0.1.3.
*) Change: the URI must be specified after the host name in the
proxy_pass directive.
*) Change: the %3F symbol in the URI was considered as the argument
string start.
*) Feature: the unix domain sockets support in the
ngx_http_proxy_module.
*) Feature: the ssl_engine and ssl_ciphers directives.
Thanks to Sergey Skvortsov for SSL-accelerator.
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Tue, 18 Jan 2005 13:03:58 +0000 |
parents | 23fb87bddda1 |
children | d4ea69372b94 |
comparison
equal
deleted
inserted
replaced
478:e6576f690993 | 479:c52408583801 |
---|---|
22 | 22 |
23 void ngx_imap_proxy_init(ngx_imap_session_t *s) | 23 void ngx_imap_proxy_init(ngx_imap_session_t *s) |
24 { | 24 { |
25 ngx_int_t rc; | 25 ngx_int_t rc; |
26 ngx_peers_t *peers; | 26 ngx_peers_t *peers; |
27 struct sockaddr_in *sin; | |
27 ngx_imap_proxy_ctx_t *p; | 28 ngx_imap_proxy_ctx_t *p; |
28 | 29 |
29 if (!(p = ngx_pcalloc(s->connection->pool, sizeof(ngx_imap_proxy_ctx_t)))) { | 30 if (!(p = ngx_pcalloc(s->connection->pool, sizeof(ngx_imap_proxy_ctx_t)))) { |
30 ngx_imap_close_connection(s->connection); | 31 ngx_imap_close_connection(s->connection); |
31 return; | 32 return; |
42 | 43 |
43 p->upstream.peers = peers; | 44 p->upstream.peers = peers; |
44 p->upstream.log = s->connection->log; | 45 p->upstream.log = s->connection->log; |
45 p->upstream.log_error = NGX_ERROR_ERR; | 46 p->upstream.log_error = NGX_ERROR_ERR; |
46 | 47 |
48 if (!(sin = ngx_pcalloc(s->connection->pool, sizeof(struct sockaddr_in)))) { | |
49 ngx_imap_close_connection(s->connection); | |
50 return; | |
51 } | |
52 | |
53 peers->peer[0].sockaddr = (struct sockaddr *) sin; | |
54 peers->peer[0].socklen = sizeof(struct sockaddr_in); | |
55 | |
56 sin->sin_port = htons(110); | |
57 #if 1 | |
58 sin->sin_addr.s_addr = inet_addr("81.19.64.101"); | |
59 peers->peer[0].name.len = sizeof("81.19.64.101:110") - 1; | |
60 peers->peer[0].name.data = (u_char *) "81.19.64.101:110"; | |
61 #else | |
62 sin->sin_addr.s_addr = inet_addr("81.19.69.70"); | |
63 peers->peer[0].name.len = sizeof("81.19.69.70:110") - 1; | |
64 peers->peer[0].name.data = (u_char *) "81.19.69.70:110"; | |
65 #endif | |
66 | |
47 peers->number = 1; | 67 peers->number = 1; |
48 peers->max_fails = 1; | 68 |
49 #if 0 | 69 peers->peer[0].max_fails = 1; |
50 peers->peers[0].addr = inet_addr("81.19.69.70"); | 70 peers->peer[0].fail_timeout = 60; |
51 peers->peers[0].addr_port_text.len = sizeof("81.19.69.70:110") - 1; | 71 peers->peer[0].weight = 1; |
52 peers->peers[0].addr_port_text.data = (u_char *) "81.19.69.70:110"; | |
53 peers->peers[0].port = htons(110); | |
54 #else | |
55 peers->peers[0].addr = inet_addr("81.19.64.101"); | |
56 peers->peers[0].addr_port_text.len = sizeof("81.19.64.101:110") - 1; | |
57 peers->peers[0].addr_port_text.data = (u_char *) "81.19.64.101:110"; | |
58 peers->peers[0].port = htons(110); | |
59 #endif | |
60 | 72 |
61 rc = ngx_event_connect_peer(&p->upstream); | 73 rc = ngx_event_connect_peer(&p->upstream); |
62 | 74 |
63 if (rc == NGX_ERROR) { | 75 if (rc == NGX_ERROR) { |
64 ngx_imap_proxy_close_session(s); | 76 ngx_imap_proxy_close_session(s); |