On Thursday 11 October 2012, Alex Hermann wrote:
I am using the dispatcher module with a database table shared among multiple proxies. Some proxies do both IPv4 and IPv6, others only do IPv4. The problem is when i use an IPv6 address in the dispatcher table. Then the IPv4-only proxies fail to load the table.
For reference, this little patch solved my issue. Probably not suitable for inclusion without a config option.
diff --git a/modules_k/dispatcher/dispatch.c b/modules_k/dispatcher/dispatch.c index 50df1fc..e0dadda 100644 --- a/modules_k/dispatcher/dispatch.c +++ b/modules_k/dispatcher/dispatch.c @@ -259,7 +259,14 @@ int add_dest2list(int id, str uri, int flags, int priority, str *attrs, LM_ERR("bad uri [%.*s]\n", uri.len, uri.s); goto err; } - + + /* skip IPv6 references if IPv6 lookups are disabled */ + if (default_core_cfg.dns_try_ipv6 == 0 && + puri.host.s[0] == '[' && puri.host.s[puri.host.len-1] == ']') { + LM_DBG("skipping IPv6 record %.*s\n", puri.host.len, puri.host.s); + return 0; + } + /* get dest set */ sp = ds_lists[list_idx]; while(sp)