Linux netfilter NAT variable

Hi,

I’ve added very useful for me variable which helps get destination IP
from netfilter NAT table, in this case we don’t need to make extra
resolving requests, adding code for this variable, is it useful for
other?
Also I have question what best attributes for this var? I’m using
NGX_HTTP_VAR_NOHASH.

static ngx_int_t
ngx_http_orig_ip(ngx_http_request_t *r, ngx_http_variable_value_t *v,
uintptr_t data)
{
struct sockaddr_in addr;
socklen_t addr_sz = sizeof(addr);
bzero(&addr, addr_sz);
addr.sin_family = AF_INET;

if (getsockopt(r->connection->fd, SOL_IP, SO_ORIGINAL_DST, &addr,
&addr_sz) != 0) {
ngx_log_error(NGX_LOG_ERR, r->connection->log, 0,
“Couldn’t read SO_ORIGINAL_DST from socket errno: %d”, errno);
return NGX_ERROR;
}

v->data = ngx_palloc(r->pool, NGX_INET_ADDRSTRLEN);
v->len=ngx_inet_ntop(AF_INET, &addr.sin_addr, v->data,
NGX_INET_ADDRSTRLEN);
return NGX_OK;
}

Hi,
I have interests in this variable.
Would you please send me the whole patch ?
I will test it.
Thanks in advance.

BR,
DeltaY

2010/12/8 Roman V. [email protected]: