[tor-bugs] #1901 [Tor Client]: Add NAT-PMP support to tor-fw-helper.c

Tor Bug Tracker & Wiki torproject-admin at torproject.org
Tue Aug 31 22:41:51 UTC 2010


#1901: Add NAT-PMP support to tor-fw-helper.c
-------------------------+--------------------------------------------------
 Reporter:  ioerror      |       Owner:                     
     Type:  enhancement  |      Status:  new                
 Priority:  normal       |   Milestone:  Deliverable-Sep2010
Component:  Tor Client   |     Version:  Tor: unspecified   
 Keywords:  natpmp       |      Parent:  #1900              
-------------------------+--------------------------------------------------

Comment(by ioerror):

 {{{
    I've added basic autoconf support for linking against libnatpmp.
   Here's a configure without the library installed:

 }}}
 {{{
 ./configure --enable-nat-pmp
 checking for a BSD-compatible install... /usr/bin/install -c
 checking whether build environment is sane... yes
 checking for a thread-safe mkdir -p... /bin/mkdir -p
 checking for gawk... gawk
 checking whether make sets $(MAKE)... yes
 checking build system type... x86_64-unknown-linux-gnu
 checking host system type... x86_64-unknown-linux-gnu
 checking for gcc... gcc
 checking whether the C compiler works... yes
 checking for C compiler default output file name... a.out
 checking for suffix of executables...
 checking whether we are cross compiling... no
 checking for suffix of object files... o
 checking whether we are using the GNU C compiler... yes
 checking whether gcc accepts -g... yes
 checking for gcc option to accept ISO C89... none needed
 checking for style of include used by make... GNU
 checking dependency style of gcc... gcc3
 checking how to run the C preprocessor... gcc -E
 checking whether make sets $(MAKE)... (cached) yes
 checking for ranlib... ranlib
 checking for sed... sed
 checking for asciidoc... none
 checking for a2x... none
 checking for sha1sum... /usr/bin/sha1sum
 checking for openssl... /usr/bin/openssl
 checking for win32... no
 checking for MIPSpro compiler... no
 checking for grep that handles long lines and -e... /bin/grep
 checking for egrep... /bin/grep -E
 checking for ANSI C header files... yes
 checking for sys/types.h... yes
 checking for sys/stat.h... yes
 checking for stdlib.h... yes
 checking for string.h... yes
 checking for memory.h... yes
 checking for strings.h... yes
 checking for inttypes.h... yes
 checking for stdint.h... yes
 checking for unistd.h... yes
 checking whether byte ordering is bigendian... no
 checking for library containing socket... none required
 checking for library containing gethostbyname... none required
 checking for library containing dlopen... -ldl
 checking for library containing inet_aton... none required
 checking for library containing pthread_create... -lpthread
 checking for library containing pthread_detach... none required
 checking for gettimeofday... yes
 checking for ftime... yes
 checking for socketpair... yes
 checking for uname... yes
 checking for inet_aton... yes
 checking for strptime... yes
 checking for getrlimit... yes
 checking for strlcat... no
 checking for strlcpy... no
 checking for strtoull... yes
 checking for getaddrinfo... yes
 checking for localtime_r... yes
 checking for gmtime_r... yes
 checking for memmem... yes
 checking for strtok_r... yes
 checking for writev... yes
 checking for readv... yes
 checking for flock... yes
 checking for prctl... yes
 checking for mallinfo... yes
 checking for malloc_good_size... no
 checking for malloc_usable_size... yes
 checking pthread.h usability... yes
 checking pthread.h presence... yes
 checking for pthread.h... yes
 checking for pthread_create... yes
 checking for sys/types.h... (cached) yes
 checking for u_int64_t... yes
 checking for u_int32_t... yes
 checking for u_int16_t... yes
 checking for u_int8_t... yes
 checking for libevent directory... (system)
 checking whether we need extra options to link libevent... (none)
 checking for event_get_version... yes
 checking for event_get_version_number... no
 checking for event_get_method... yes
 checking for event_set_log_callback... yes
 checking for evdns_set_outgoing_bind_address... no
 checking for event_base_loopexit... yes
 checking for struct event.min_heap_idx... yes
 checking event2/event.h usability... no
 checking event2/event.h presence... no
 checking for event2/event.h... no
 checking event2/dns.h usability... no
 checking event2/dns.h presence... no
 checking for event2/dns.h... no
 checking for openssl directory... /usr/local/ssl
 checking whether we need extra options to link openssl... (none)
 tor_cv_library_openssl_dir is /usr/local/ssl
 checking for zlib directory... (system)
 checking whether we need extra options to link zlib... (none)
 checking for libnatpmp directory... configure: WARNING: Could not find a
 linkable libnatpmp.  If you have it installed somewhere unusual, you can
 specify an explicit path using --with-libnatpmp-dir
 configure: error: Missing libraries; unable to proceed.
 }}}
 {{{
 Here's a configure with the library installed:
 }}}
 {{{
 ./configure --enable-nat-pmp
 checking for a BSD-compatible install... /usr/bin/install -c
 checking whether build environment is sane... yes
 checking for a thread-safe mkdir -p... /bin/mkdir -p
 checking for gawk... gawk
 checking whether make sets $(MAKE)... yes
 checking build system type... x86_64-unknown-linux-gnu
 checking host system type... x86_64-unknown-linux-gnu
 checking for gcc... gcc
 checking whether the C compiler works... yes
 checking for C compiler default output file name... a.out
 checking for suffix of executables...
 checking whether we are cross compiling... no
 checking for suffix of object files... o
 checking whether we are using the GNU C compiler... yes
 checking whether gcc accepts -g... yes
 checking for gcc option to accept ISO C89... none needed
 checking for style of include used by make... GNU
 checking dependency style of gcc... gcc3
 checking how to run the C preprocessor... gcc -E
 checking whether make sets $(MAKE)... (cached) yes
 checking for ranlib... ranlib
 checking for sed... sed
 checking for asciidoc... none
 checking for a2x... none
 checking for sha1sum... /usr/bin/sha1sum
 checking for openssl... /usr/bin/openssl
 checking for win32... no
 checking for MIPSpro compiler... no
 checking for grep that handles long lines and -e... /bin/grep
 checking for egrep... /bin/grep -E
 checking for ANSI C header files... yes
 checking for sys/types.h... yes
 checking for sys/stat.h... yes
 checking for stdlib.h... yes
 checking for string.h... yes
 checking for memory.h... yes
 checking for strings.h... yes
 checking for inttypes.h... yes
 checking for stdint.h... yes
 checking for unistd.h... yes
 checking whether byte ordering is bigendian... no
 checking for library containing socket... none required
 checking for library containing gethostbyname... none required
 checking for library containing dlopen... -ldl
 checking for library containing inet_aton... none required
 checking for library containing pthread_create... -lpthread
 checking for library containing pthread_detach... none required
 checking for gettimeofday... yes
 checking for ftime... yes
 checking for socketpair... yes
 checking for uname... yes
 checking for inet_aton... yes
 checking for strptime... yes
 checking for getrlimit... yes
 checking for strlcat... no
 checking for strlcpy... no
 checking for strtoull... yes
 checking for getaddrinfo... yes
 checking for localtime_r... yes
 checking for gmtime_r... yes
 checking for memmem... yes
 checking for strtok_r... yes
 checking for writev... yes
 checking for readv... yes
 checking for flock... yes
 checking for prctl... yes
 checking for mallinfo... yes
 checking for malloc_good_size... no
 checking for malloc_usable_size... yes
 checking pthread.h usability... yes
 checking pthread.h presence... yes
 checking for pthread.h... yes
 checking for pthread_create... yes
 checking for sys/types.h... (cached) yes
 checking for u_int64_t... yes
 checking for u_int32_t... yes
 checking for u_int16_t... yes
 checking for u_int8_t... yes
 checking for libevent directory... (system)
 checking whether we need extra options to link libevent... (none)
 checking for event_get_version... yes
 checking for event_get_version_number... no
 checking for event_get_method... yes
 checking for event_set_log_callback... yes
 checking for evdns_set_outgoing_bind_address... no
 checking for event_base_loopexit... yes
 checking for struct event.min_heap_idx... yes
 checking event2/event.h usability... no
 checking event2/event.h presence... no
 checking for event2/event.h... no
 checking event2/dns.h usability... no
 checking event2/dns.h presence... no
 checking for event2/dns.h... no
 checking for openssl directory... /usr/local/ssl
 checking whether we need extra options to link openssl... (none)
 tor_cv_library_openssl_dir is /usr/local/ssl
 checking for zlib directory... (system)
 checking whether we need extra options to link zlib... (none)
 checking for libnatpmp directory... (system)
 checking whether we need extra options to link libnatpmp... (none)
 UPnP is not enabled.
 checking for special C compiler options needed for large files... no
 checking for _FILE_OFFSET_BITS value needed for large files... no
 checking for unistd.h... (cached) yes
 checking for string.h... (cached) yes
 checking signal.h usability... yes
 checking signal.h presence... yes
 checking for signal.h... yes
 checking for sys/stat.h... (cached) yes
 checking for sys/types.h... (cached) yes
 checking fcntl.h usability... yes
 checking fcntl.h presence... yes
 checking for fcntl.h... yes
 checking sys/fcntl.h usability... yes
 checking sys/fcntl.h presence... yes
 checking for sys/fcntl.h... yes
 checking sys/time.h usability... yes
 checking sys/time.h presence... yes
 checking for sys/time.h... yes
 checking errno.h usability... yes
 checking errno.h presence... yes
 checking for errno.h... yes
 checking assert.h usability... yes
 checking assert.h presence... yes
 checking for assert.h... yes
 checking time.h usability... yes
 checking time.h presence... yes
 checking for time.h... yes
 checking netdb.h usability... yes
 checking netdb.h presence... yes
 checking for netdb.h... yes
 checking sys/ioctl.h usability... yes
 checking sys/ioctl.h presence... yes
 checking for sys/ioctl.h... yes
 checking sys/socket.h usability... yes
 checking sys/socket.h presence... yes
 checking for sys/socket.h... yes
 checking arpa/inet.h usability... yes
 checking arpa/inet.h presence... yes
 checking for arpa/inet.h... yes
 checking netinet/in.h usability... yes
 checking netinet/in.h presence... yes
 checking for netinet/in.h... yes
 checking pwd.h usability... yes
 checking pwd.h presence... yes
 checking for pwd.h... yes
 checking grp.h usability... yes
 checking grp.h presence... yes
 checking for grp.h... yes
 checking sys/un.h usability... yes
 checking sys/un.h presence... yes
 checking for sys/un.h... yes
 checking sys/uio.h usability... yes
 checking sys/uio.h presence... yes
 checking for sys/uio.h... yes
 checking for stdint.h... (cached) yes
 checking for sys/types.h... (cached) yes
 checking for inttypes.h... (cached) yes
 checking sys/param.h usability... yes
 checking sys/param.h presence... yes
 checking for sys/param.h... yes
 checking sys/wait.h usability... yes
 checking sys/wait.h presence... yes
 checking for sys/wait.h... yes
 checking limits.h usability... yes
 checking limits.h presence... yes
 checking for limits.h... yes
 checking sys/limits.h usability... no
 checking sys/limits.h presence... no
 checking for sys/limits.h... no
 checking for netinet/in.h... (cached) yes
 checking for arpa/inet.h... (cached) yes
 checking machine/limits.h usability... no
 checking machine/limits.h presence... no
 checking for machine/limits.h... no
 checking syslog.h usability... yes
 checking syslog.h presence... yes
 checking for syslog.h... yes
 checking for sys/time.h... (cached) yes
 checking sys/resource.h usability... yes
 checking sys/resource.h presence... yes
 checking for sys/resource.h... yes
 checking for inttypes.h... (cached) yes
 checking utime.h usability... yes
 checking utime.h presence... yes
 checking for utime.h... yes
 checking sys/utime.h usability... no
 checking sys/utime.h presence... no
 checking for sys/utime.h... no
 checking sys/mman.h usability... yes
 checking sys/mman.h presence... yes
 checking for sys/mman.h... yes
 checking netinet/in6.h usability... no
 checking netinet/in6.h presence... no
 checking for netinet/in6.h... no
 checking malloc.h usability... yes
 checking malloc.h presence... yes
 checking for malloc.h... yes
 checking sys/syslimits.h usability... no
 checking sys/syslimits.h presence... no
 checking for sys/syslimits.h... no
 checking malloc/malloc.h usability... no
 checking malloc/malloc.h presence... no
 checking for malloc/malloc.h... no
 checking linux/types.h usability... yes
 checking linux/types.h presence... yes
 checking for linux/types.h... yes
 checking sys/file.h usability... yes
 checking sys/file.h presence... yes
 checking for sys/file.h... yes
 checking malloc_np.h usability... no
 checking malloc_np.h presence... no
 checking for malloc_np.h... no
 checking sys/prctl.h usability... yes
 checking sys/prctl.h presence... yes
 checking for sys/prctl.h... yes
 checking for declaration of malloc_good_size... no
 checking for net/if.h... yes
 checking for net/pfvar.h... no
 checking for linux/netfilter_ipv4.h... yes
 checking for struct timeval.tv_sec... yes
 checking size of int8_t... 1
 checking size of int16_t... 2
 checking size of int32_t... 4
 checking size of int64_t... 8
 checking size of uint8_t... 1
 checking size of uint16_t... 2
 checking size of uint32_t... 4
 checking size of uint64_t... 8
 checking size of intptr_t... 8
 checking size of uintptr_t... 8
 checking size of char... 1
 checking size of short... 2
 checking size of int... 4
 checking size of long... 8
 checking size of long long... 8
 checking size of __int64... 0
 checking size of void *... 8
 checking size of time_t... 8
 checking size of size_t... 8
 checking for uint... yes
 checking for u_char... yes
 checking for ssize_t... yes
 checking for struct in6_addr... yes
 checking for struct sockaddr_in6... yes
 checking for sa_family_t... yes
 checking for struct in6_addr.s6_addr32... yes
 checking for struct in6_addr.s6_addr16... yes
 checking for struct sockaddr_in.sin_len... no
 checking for struct sockaddr_in6.sin6_len... no
 checking for rlim_t... yes
 checking whether time_t is signed... yes
 checking size of socklen_t... 4
 checking size of cell_t... 0
 checking whether memset(0) sets pointers to NULL... yes
 checking whether we can malloc(0) safely.... yes
 checking whether we are using 2s-complement arithmetic... yes
 checking whether to use dmalloc (debug memory allocation library)... no
 checking for mlockall... yes
 checking whether mlockall is declared... yes
 checking for getresuid... yes
 checking for getresgid... yes
 checking for gethostbyname_r... yes
 checking how many arguments gethostbyname_r() wants... 6
 checking whether the C compiler supports __func__... yes
 checking whether the C compiler supports __FUNC__... no
 checking whether the C compiler supports __FUNCTION__... yes
 configure: creating ./config.status
 config.status: creating Makefile
 config.status: creating tor.spec
 config.status: creating Doxyfile
 config.status: creating contrib/tor.sh
 config.status: creating contrib/torctl
 config.status: creating contrib/torify
 config.status: creating contrib/tor.logrotate
 config.status: creating contrib/Makefile
 config.status: creating contrib/osx/Makefile
 config.status: creating contrib/osx/TorBundleDesc.plist
 config.status: creating contrib/osx/TorBundleInfo.plist
 config.status: creating contrib/osx/TorDesc.plist
 config.status: creating contrib/osx/TorInfo.plist
 config.status: creating contrib/osx/TorStartupDesc.plist
 config.status: creating src/config/torrc.sample
 config.status: creating src/Makefile
 config.status: creating doc/Makefile
 config.status: creating doc/spec/Makefile
 config.status: creating src/config/Makefile
 config.status: creating src/common/Makefile
 config.status: creating src/or/Makefile
 config.status: creating src/test/Makefile
 config.status: creating src/win32/Makefile
 config.status: creating src/tools/Makefile
 config.status: creating contrib/suse/Makefile
 config.status: creating contrib/suse/tor.sh
 config.status: creating orconfig.h
 config.status: executing depfiles commands
 Tor version is 0.2.2.9-alpha-dev
 ./contrib/tor-mingw.nsi.in has the correct version. Good.
 ./src/win32/orconfig.h has the correct version. Good.
 }}}

-- 
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/1901#comment:1>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online


More information about the tor-bugs mailing list