On Wed, 29 Feb 2012, Grant Edwards wrote: [snip]
> OK, I've come up with something I like a little better. The only > change it requires to the network stack is that ip6_init2() needs to > be globally visible (ip6_init already is, so I don't see the harm in > making ip6_init2 visible). If ip6_init2 is visible, then you can > disable ipv6 support with this code: > > static void init_noop(void* dummy) > { > } > > static void disable_ipv6(void) > { > extern void cyg_net_add_domain(void *); > extern void ip6_init2(void *); > extern char inet6domain[]; > extern struct init_tab_entry __NET_INIT_TAB__[], __NET_INIT_TAB_END__; > struct init_tab_entry *init_entry; > > for (init_entry = __NET_INIT_TAB__; init_entry != &__NET_INIT_TAB_END__; > init_entry++) > if ((init_entry->fun == cyg_net_add_domain && init_entry->data == > (void*)inet6domain) || > (init_entry->fun == ip6_init2)) > init_entry->fun = init_noop; > } IMHO, it is neat solution. Thanks for usage example. BTW, the KAME's successors had declared ip6_init2() as you suggest: http://ftp.fr.openbsd.org/pub/OpenBSD/src/sys/netinet6/ip6_input.c Please, submit the patch. Sergei -- Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss