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);