IPv6 support in resolver
Maxim Konovalov
maxim at nginx.com
Tue Oct 29 12:54:54 UTC 2013
Hi Anton,
we are planning to work on IPv6 resolver support in November. This
feature is already in 1.5 trunk roadmap.
On 10/29/13 4:06 PM, ToSHiC wrote:
> Hello,
>
> Yesterday you had a talk on Highload++ and said about lack of IPv6
> resolver support. Do you have any news about my patch?
>
> Regards,
> Anton Kortunov.
>
>
> On Mon, Jul 15, 2013 at 5:02 PM, Maxim Konovalov <maxim at nginx.com
> <mailto:maxim at nginx.com>> wrote:
>
> Hi Anton,
>
> First of all, thanks for the patches!
>
> Just want to let you know that we have a ticket in our internal
> system assigned your patches to the developer for review but it'll
> take some time due to other tasks and complexity of the patch
> series.
>
> On 7/10/13 9:17 PM, ToSHiC wrote:
> > Hello,
> >
> > I've split this big patch into several small patches, taking into
> > account your comments. I'll send each part in separate email. Here
> > is the first one.
> >
> > commit 597d09e7ae9247c5466b18aa2ef3f5892e61b708
> > Author: Anton Kortunov <toshic.toshic at gmail.com
> <mailto:toshic.toshic at gmail.com>
> > <mailto:toshic.toshic at gmail.com <mailto:toshic.toshic at gmail.com>>>
> > Date: Wed Jul 10 13:14:52 2013 +0400
> >
> > Added new structure ngx_ipaddr_t
> >
> > This structure contains family field
> > and the union of ipv4/ipv6 structures in_addr_t and in6_addr.
> >
> > diff --git a/src/core/ngx_inet.h b/src/core/ngx_inet.h
> > index 6a5a368..077ed34 100644
> > --- a/src/core/ngx_inet.h
> > +++ b/src/core/ngx_inet.h
> > @@ -68,6 +68,16 @@ typedef struct {
> >
> >
> > typedef struct {
> > + ngx_uint_t family;
> > + union {
> > + in_addr_t v4;
> > +#if (NGX_HAVE_INET6)
> > + struct in6_addr v6;
> > +#endif
> > + } u;
> > +} ngx_ipaddr_t;
> > +
> > +typedef struct {
> > struct sockaddr *sockaddr;
> > socklen_t socklen;
> > ngx_str_t name;
> >
> >
> >
> > On Mon, Jun 17, 2013 at 7:30 PM, Maxim Dounin
> <mdounin at mdounin.ru <mailto:mdounin at mdounin.ru>
> > <mailto:mdounin at mdounin.ru <mailto:mdounin at mdounin.ru>>> wrote:
> >
> > Hello!
> >
> > On Fri, Jun 14, 2013 at 09:44:46PM +0400, ToSHiC wrote:
> >
> > > Hello,
> > >
> > > We needed this feature in our company, I found that it is in
> > milestones of
> > > version 1.5 but doesn't exist yet. So I've implemented it
> > based in 1.3 code
> > > and merged in current 1.5 code. When I wrote this code I
> > mostly cared about
> > > minimum intrusion into other parts of nginx.
> > >
> > > IPv6 fallback logic is not a straightforward
> implementation of
> > suggested by
> > > RFC. RFC states that IPv6 resolving have priority over IPv4,
> > and it's not
> > > very good for Internet we have currently. With this
> patch you
> > can specify
> > > priority, and in upstream and mail modules I've set IPv4 as
> > preferred
> > > address family.
> > >
> > > Patch is pretty big and I hope it'll not break mailing
> list or
> > mail clients.
> >
> > You may want to try to split the patch into smaller patches to
> > simplify review. See also some hints here:
> >
> > http://nginx.org/en/docs/contributing_changes.html
> >
> > Some quick comments below.
> >
> > [...]
> >
> > > - addr = ntohl(ctx->addr);
> > > +failed:
> > > +
> > > + //addr = ntohl(ctx->addr);
> > > + inet_ntop(ctx->addr.family, &ctx->addr.u, text,
> > > NGX_SOCKADDR_STRLEN);
> > >
> > > ngx_log_error(NGX_LOG_ALERT, r->log, 0,
> > > - "could not cancel %ud.%ud.%ud.%ud
> > resolving",
> > > - (addr >> 24) & 0xff, (addr >> 16)
> & 0xff,
> > > - (addr >> 8) & 0xff, addr & 0xff);
> > > + "could not cancel %s resolving",
> text);
> >
> > 1. Don't use inet_ntop(), there is ngx_sock_ntop() instead.
> >
> > 2. Don't use C++ style ("//") comments.
> >
> > 3. If some data is only needed for debug logging, keep
> relevant
> > calculations under #if (NGX_DEBUG).
> >
> > [...]
> >
> > > @@ -334,6 +362,7 @@
> > >
> ngx_http_upstream_create_round_robin_peer(ngx_http_request_t *r,
> > > peers->peer[i].current_weight = 0;
> > > peers->peer[i].max_fails = 1;
> > > peers->peer[i].fail_timeout = 10;
> > > +
> > > }
> > > }
> > >
> >
> > Please avoid unrelated changes.
> >
> > [...]
> >
> > --
> > Maxim Dounin
> > http://nginx.org/en/donation.html
> >
> > _______________________________________________
> > nginx-devel mailing list
> > nginx-devel at nginx.org <mailto:nginx-devel at nginx.org>
> <mailto:nginx-devel at nginx.org <mailto:nginx-devel at nginx.org>>
> > http://mailman.nginx.org/mailman/listinfo/nginx-devel
> >
> >
> >
> >
> > _______________________________________________
> > nginx-devel mailing list
> > nginx-devel at nginx.org <mailto:nginx-devel at nginx.org>
> > http://mailman.nginx.org/mailman/listinfo/nginx-devel
> >
>
>
> --
> Maxim Konovalov
> +7 (910) 4293178
> http://nginx.com/services.html
>
>
--
Maxim Konovalov
http://nginx.com
More information about the nginx-devel
mailing list