Documentation doesn't match code
sridhar basam
sridhar.basam at gmail.com
Mon Mar 1 22:18:58 MSK 2010
The documentation for the mail proxy module state the "so_keepalive"
variable can be used to toggle keepalive functionality to the backend
server.
The actual code though uses this configuration variable to drive keepalive
functionality on the client side connection though. Below is a short patch
which changes the keepalive functionality to the backend server.
--- ngx_mail_proxy_module.c.orig 2009-11-02 10:14:17.000000000 -0500
+++ ngx_mail_proxy_module.c 2010-03-01 14:09:20.866649958 -0500
@@ -120,18 +120,6 @@
cscf = ngx_mail_get_module_srv_conf(s, ngx_mail_core_module);
- if (cscf->so_keepalive) {
- keepalive = 1;
-
- if (setsockopt(s->connection->fd, SOL_SOCKET, SO_KEEPALIVE,
- (const void *) &keepalive, sizeof(int))
- == -1)
- {
- ngx_log_error(NGX_LOG_ALERT, s->connection->log,
ngx_socket_errno,
- "setsockopt(SO_KEEPALIVE) failed");
- }
- }
-
p = ngx_pcalloc(s->connection->pool, sizeof(ngx_mail_proxy_ctx_t));
if (p == NULL) {
ngx_mail_session_internal_server_error(s);
@@ -154,6 +142,18 @@
return;
}
+ if (cscf->so_keepalive) {
+ keepalive = 1;
+
+ if (setsockopt(s->proxy->upstream.connection->fd, SOL_SOCKET,
SO_KEEPALIVE,
+ (const void *) &keepalive, sizeof(int))
+ == -1)
+ {
+ ngx_log_error(NGX_LOG_ALERT, s->connection->log,
ngx_socket_errno,
+ "setsockopt(SO_KEEPALIVE) failed");
+ }
+ }
+
ngx_add_timer(p->upstream.connection->read, cscf->timeout);
p->upstream.connection->data = s;
--
Sridhar
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://nginx.org/pipermail/nginx/attachments/20100301/956d8354/attachment.html>
More information about the nginx
mailing list