Я хочу знать, как на самом деле работает команда DIG (Domain Information Groper), когда речь идет о коде и реализации. Я имею в виду, когда мы вводим команду DIG, какая часть кода в FreeBSD или BIND срабатывает первой.
В настоящее время я вижу, что когда я нажимаю команду DIG, я вижу, что управление переходит в файл client.c. Внутри этого файла вызывается следующая функция:
static void client_request(isc_task_t *task, isc_event_t *event);
Но как управление попадает в это место, для меня до сих пор большая загадка, даже после того, как я много копался в «именованной» части кода BIND.
Кроме того, я вижу, что эта функция вызывается из двух мест в этом файле. Я пробовал заносить логи в такие места, чтобы знать, доходит ли управление до этого места по этим путям, но, к сожалению, этого не происходит. Кажется, что функция «Client_request()» каким-то образом вызывается откуда-то извне, что я не могу понять.
Есть ли здесь кто-нибудь, кто может помочь мне решить эту загадку для меня?
Спасибо.
dig
, командной строке (named и dig — это две разные вещи). Вместо этого посмотрите на ftp.isc .org/isc/bind9/9.9.0rc1/bind-9.9.0rc1/bin/dig/dig.c В любой программе на C ОС сначала вызывает функциюmain
, а затем все, что там происходит, диктует ход выполнения программы. См. строку 1820 и далее в предыдущей ссылке. - person Patrick Mevzek   schedule 18.09.2018