[w3m-dev 03967] Re: IPv4/IPv6 only option patch
Fumitoshi UKAI <[email protected]>
| Newsgroups | gmane.comp.web.w3m.devel |
|---|---|
| Organization | Debian JP Project |
| Message-ID | <[email protected]> |
At Mon, 22 Sep 2003 11:23:13 +0900,
KONDOU, Kazuhiro wrote:
> Fumitoshi UKAI wrote:
>
> >?
> >w3m -o dns_order=4 -o dns_order=6
> >
> >
>
>
>
> # fetch/ftp/telnet ...
>
> -4 -> -o dns_order=4, -6 -> -o dns_order=6
>
Index: fm.h
===================================================================
RCS file: /cvsroot/w3m/w3m/fm.h,v
retrieving revision 1.118
diff -u -p -u -p -r1.118 fm.h
--- fm.h 22 Jul 2003 17:33:16 -0000 1.118
+++ fm.h 22 Sep 2003 17:06:47 -0000
@@ -824,8 +824,10 @@ global int NOproxy_netaddr init(TRUE);
#define DNS_ORDER_UNSPEC 0
#define DNS_ORDER_INET_INET6 1
#define DNS_ORDER_INET6_INET 2
+#define DNS_ORDER_INET_ONLY 4
+#define DNS_ORDER_INET6_ONLY 6
global int DNS_order init(DNS_ORDER_UNSPEC);
-extern int ai_family_order_table[3][3]; /* XXX */
+extern int ai_family_order_table[7][3]; /* XXX */
#endif /* INET6 */
global TextList *NO_proxy_domains;
global char NoCache init(FALSE);
Index: main.c
===================================================================
RCS file: /cvsroot/w3m/w3m/main.c,v
retrieving revision 1.229
diff -u -p -u -p -r1.229 main.c
--- main.c 22 Jul 2003 17:33:16 -0000 1.229
+++ main.c 22 Sep 2003 17:06:47 -0000
@@ -221,6 +221,10 @@ fusage(FILE * f, int err)
fprintf(f, " +<num> goto <num> line\n");
fprintf(f, " -num show line number\n");
fprintf(f, " -no-proxy don't use proxy\n");
+#ifdef INET6
+ fprintf(f, " -4 IPv4 only (-o dns_order=4)\n");
+ fprintf(f, " -6 IPv6 only (-o dns_order=6)\n");
+#endif
#ifdef USE_MOUSE
fprintf(f, " -no-mouse don't use mouse\n");
#endif /* USE_MOUSE */
@@ -608,6 +612,10 @@ main(int argc, char **argv, char **envp)
showLineNum = TRUE;
else if (!strcmp("-no-proxy", argv[i]))
use_proxy = FALSE;
+#ifdef INET6
+ else if (!strcmp("-4", argv[i]) || !strcmp("-6", argv[i]))
+ set_param_option(Sprintf("dns_order=%c", argv[i][1])->ptr);
+#endif
else if (!strcmp("-post", argv[i])) {
if (++i >= argc)
usage();
Index: rc.c
===================================================================
RCS file: /cvsroot/w3m/w3m/rc.c,v
retrieving revision 1.85
diff -u -p -u -p -r1.85 rc.c
--- rc.c 26 Jul 2003 17:16:24 -0000 1.85
+++ rc.c 22 Sep 2003 17:06:47 -0000
@@ -470,6 +470,8 @@ static struct sel_c dnsorders[] = {
{N_S(DNS_ORDER_UNSPEC), "unspecified"},
{N_S(DNS_ORDER_INET_INET6), "inet inet6"},
{N_S(DNS_ORDER_INET6_INET), "inet6 inet"},
+ {N_S(DNS_ORDER_INET_ONLY), "inet only"},
+ {N_S(DNS_ORDER_INET6_ONLY), "inet6 only"},
{0, NULL, NULL}
};
#endif /* INET6 */
Index: url.c
===================================================================
RCS file: /cvsroot/w3m/w3m/url.c,v
retrieving revision 1.81
diff -u -p -u -p -r1.81 url.c
--- url.c 17 Jun 2003 18:03:55 -0000 1.81
+++ url.c 22 Sep 2003 17:06:48 -0000
@@ -33,10 +33,14 @@
#ifdef INET6
/* see rc.c, "dns_order" and dnsorders[] */
-int ai_family_order_table[3][3] = {
+int ai_family_order_table[7][3] = {
{PF_UNSPEC, PF_UNSPEC, PF_UNSPEC}, /* 0:unspec */
{PF_INET, PF_INET6, PF_UNSPEC}, /* 1:inet inet6 */
- {PF_INET6, PF_INET, PF_UNSPEC} /* 2:inet6 inet */
+ {PF_INET6, PF_INET, PF_UNSPEC}, /* 2:inet6 inet */
+ {PF_UNSPEC, PF_UNSPEC, PF_UNSPEC}, /* 3: --- */
+ {PF_INET, PF_UNSPEC, PF_UNSPEC}, /* 4:inet */
+ {PF_UNSPEC, PF_UNSPEC, PF_UNSPEC}, /* 5: --- */
+ {PF_INET6, PF_UNSPEC, PF_UNSPEC}, /* 6:inet6 */
};
#endif /* INET6 */
--