c-ares, определяющий сетевой интерфейс для DNS, разрешает - PullRequest
1 голос
/ 30 сентября 2011

Есть ли способ, которым вы можете установить сетевой интерфейс, к которому могут быть привязаны запросы DNS.

У нас есть проект, который требует использования потокового сеанса с высоким приоритетом, проходит через один интерфейс, а все остальные запросы направляются через второй.

пример: установка 'eth0', чтобы все запросы ares проходили через 'eth0', а не в 'wlan0'.

Мне не удалось найти какой-либо API в c-ares (в ares_init_options () API), который дает эту опцию настройки интерфейса.

Не могли бы вы дать мне знать, если есть какой-то способ добиться этого или я что-то пропустил.

Спасибо, Арджун

1 Ответ

1 голос
/ 03 октября 2011

Если у вас есть довольно новые c-ares (c-ares> = 1.7.4), посмотрите ares.h (это единственное место, где я действительно нашел ссылку).

/* These next 3 configure local binding for the out-going socket
 * connection.  Use these to specify source IP and/or network device
 * on multi-homed systems.
 */
CARES_EXTERN void ares_set_local_ip4(ares_channel channel, unsigned int local_ip);

/* local_ip6 should be 16 bytes in length */
CARES_EXTERN void ares_set_local_ip6(ares_channel channel,
                                     const unsigned char* local_ip6);

/* local_dev_name should be null terminated. */
CARES_EXTERN void ares_set_local_dev(ares_channel channel,
                                     const char* local_dev_name);
...