dlundquist / sniproxy

Proxies incoming HTTP and TLS connections based on the hostname contained in the initial request of the TCP session.
BSD 2-Clause "Simplified" License
2.52k stars 397 forks source link

"Only socket address backends are permitted when compiled without libudns" but udns is installed #301

Open nicholaspier opened 6 years ago

nicholaspier commented 6 years ago

I'm having trouble getting sniproxy to use my config file which includes wildcards and needs to be able to resolve domains.

tail /var/log/messages

Aug 9 18:04:28 lancache sniproxy[23323]: Only socket address backends are permitted when compiled without libudns Aug 9 18:04:28 lancache sniproxy[23323]: error parsing /etc/sniproxy.conf at 239 near: Aug 9 18:04:28 lancache sniproxy[23323]: 229#011le Blah { Aug 9 18:04:28 lancache sniproxy[23323]: 240#011 . :443 Aug 9 18:04:28 lancache sniproxy[23323]: 242#011} Aug 9 18:04:28 lancache sniproxy[23323]: 243 Aug 9 18:04:28 lancache sniproxy[23323]: 243#011(null)

udns IS installed:

yum install udns-devel

Loaded plugins: fastestmirror, langpacks Loading mirror speeds from cached hostfile

uname -a

Linux hostname-omitted 3.10.0-862.9.1.el7.x86_64 #1 SMP Mon Jul 16 16:29:36 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

I'm trying to compile on centos 7, but it appears to believe that the libraries aren't available. Any help would be appreciated!

dlundquist commented 6 years ago

It sounds like libudns wasn't detected when ./configure ran. I suggest reveiwing the output of the ./configure script. If you continue to have problems I would ensure libudns is regisistered with pkg-config

nicholaspier commented 6 years ago

Looks like it's not registered with pkg-config. Thanks I think you've pointed me in the right direction but I've never created a .pc file before. So, this will be interesting! I definitely have the library in /usr/lib64 . Any pointers? I'm about to hack my way through it by coping another .pc file.

nicholaspier commented 6 years ago

Follow-up - I created my own .pc file and the configure script and pkg-config see udns if I'm interpreting the output correctly: checking for LIBUDNS... no checking for libudns... yes

PC file contents:

more /usr/lib64/pkgconfig/udns.pc prefix=/usr exec_prefix=/usr libdir=/usr/lib64 includedir=/usr/include

Name: udns Version: 0.4 Description: DNS resolver library for both synchronous and asynchronous DNS queries URL: http://www.corpit.ru/mjt/udns.html Libs: -L${libdir} -ludns Cflags: -I${includedir}

However, it still didn't compile from source. If I followed your RPM instructions from here on, though, it works! Not sure if I can explain why the rpm process detects it and the make process doesn't.