c-ares, определяющий сетевой интерфейс для DNS, разрешает

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

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

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

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

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

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

1 ответ

Если у вас есть довольно новые 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);
Другие вопросы по тегам