'\" t .\" Title: resolv_wrapper .\" Author: The Samba Team .\" Generator: Asciidoctor 2.0.20 .\" Date: 2024-02-23 .\" Manual: \ \& .\" Source: \ \& .\" Language: English .\" .TH "RESOLV_WRAPPER" "1" "2024-02-23" "\ \&" "\ \&" .ie \n(.g .ds Aq \(aq .el .ds Aq ' .ss \n[.ss] 0 .nh .ad l .de URL \fI\\$2\fP <\\$1>\\$3 .. .als MTO URL .if \n[.g] \{\ . mso www.tmac . am URL . ad l . . . am MTO . ad l . . . LINKSTYLE blue R < > .\} .SH "NAME" resolv_wrapper \- A wrapper for dns name resolving or dns faking. .SH "SYNOPSIS" .sp LD_PRELOAD=libresolv_wrapper.so RESOLV_WRAPPER_CONF="/path/to/resolv.conf" \fB./myapplication\fP .SH "DESCRIPTION" .sp resolv_wrapper makes it possible on most UNIX platforms to contact your own DNS implementation in your test environment. It requires socket_wrapper to be able to contact it. If it doesn\(cqt work on a special platform the wrapper is able to fake DNS queries and return valid responses to your application. .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ . sp -1 . IP \(bu 2.3 .\} Redirects name queries to the nameservers specified in your resolv.conf .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ . sp -1 . IP \(bu 2.3 .\} Can fake DNS queries using a simple formatted DNS hosts file. .RE .SH "ENVIRONMENT VARIABLES" .sp \fBRESOLV_WRAPPER_CONF\fP .RS 4 This is used to specify the resolv.conf to use. The format of the resolv.conf file is defined in the manpage \fIresolv.conf(5)\fP. Currently only the \fBnamserver\fP directive is supported. .RE .sp In order that this works with socket_wrapper. The res_* symbols need to be in a separate libresolv library. If they are part of libc this wont work. This is the case with glibc >= 2.34. .sp \fBRESOLV_WRAPPER_HOSTS\fP .RS 4 This environment variable is used for faking DNS queries. It must point to a hosts\-like text file that specifies fake records for custom queries. The format of the file looks like this: .sp .if n .RS 4 .nf .fam C TYPE RECORD_NAME RECORD_VALUE .fam .fi .if n .RE .RE .sp For example: .sp .if n .RS 4 .nf .fam C A dc.cwrap.org 127.0.0.10 AAAA dc.cwrap.org fd00::5357:5f0a CNAME kerberos.cwrap.org dc.cwrap.org SRV _kerberos._tcp.cwrap.org kerberos.cwrap.org 88 URI _vpn.cwrap.org https://vpn.cwrap.org/VPN TXT cwrap.org v=spf1 mx .fam .fi .if n .RE .sp \fBRESOLV_WRAPPER_DEBUGLEVEL\fP .RS 4 If you need to see what is going on in resolv_wrapper itself or try to find a bug, you can enable logging support in resolv_wrapper if you built it with debug symbols. .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ . sp -1 . IP \(bu 2.3 .\} 0 = ERROR .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ . sp -1 . IP \(bu 2.3 .\} 1 = WARNING .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ . sp -1 . IP \(bu 2.3 .\} 2 = DEBUG .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ . sp -1 . IP \(bu 2.3 .\} 3 = TRACE .RE .RE .sp \fBRESOLV_WRAPPER_DISABLE_DEEPBIND\fP .RS 4 This allows you to disable deep binding in resolv_wrapper. This is useful for running valgrind tools or sanitizers like (address, undefined, thread). .RE .SH "EXAMPLE" .sp The following command would trick \fIkinit(1)\fP into using DNS servers from "./resolv.conf" for Kerberos service resolution: .sp .if n .RS 4 .nf .fam C $ LD_PRELOAD=libresolv_wrapper.so RESOLV_WRAPPER_CONF="./resolv.conf" kinit user@EXAMPLE.COM .fam .fi .if n .RE .SH "AUTHOR" .sp The Samba Team