Commit Graph

707 Commits

Author SHA1 Message Date
Nick Mathewson
269c0b4633 Only link ws2_32 and iphlapi on windows.
This is a tweak for the tor-fw-helper port to windows.
2011-08-19 13:20:15 -04:00
Steven Murdoch
2ad336f999 Link and build tor-fw-helper on Windows
- Update configure script to test for libminiupnpc along with the
  libws2_32 and libiphlpapi libraries required by libminiupnpc
- When building tor-fw-helper, link in libiphlpapi
- Link in libminiupnpc statically becasue I could not get the DLL
  to link properly
- Call WSAStartup before doing network operations
- Fix up a compiler warning about uninitialized backend_state

N.B. The changes to configure.in and Makefile.am will break on non-
Windows platforms.
2011-08-19 15:22:13 +01:00
Steven Murdoch
cc5b6d6cee Merge remote branch 'origin/master' into bug2046 2011-08-18 18:42:02 +01:00
Nick Mathewson
8932919366 Bufferevents now requires Libevent 2.0.13-stable.
(Earlier Libevent versions have bufferevent bugs that affect us, and
are missing some APIs that it would be handy to use.)
2011-08-17 12:53:50 -04:00
Nick Mathewson
8c643b51bf Merge remote-tracking branch 'origin/maint-0.2.2' 2011-08-11 11:53:03 -04:00
Sebastian Hahn
92bea30e28 Ignore deprecation warnings on OS X
Starting with Lion, Apple decided to deprecate the system openssl. We
can start requiring users to install their own openssl once OS X doesn't
ship with it anymore.
2011-08-10 23:12:09 +02:00
Steven Murdoch
2eca016594 XXX Hack to allow tor-fw-helper to be built on Windows
For some reason, --with-libminiupnpc-dir doesn't work on Windows, so this
hardcodes /local/lib as the path in which libminiupnpc.a can be found.
Also, libminiupnpc needs libws2_32 and libiphlpapi under Windows, so this
hardcodes these libraries when building the ./configure test program.
These changes almost certainly break *nix, so should be fixed before merge.
2011-07-21 13:09:50 +01:00
Nick Mathewson
99348ce831 Bump version to 0.2.3.2-alpha-dev 2011-07-18 17:56:47 -04:00
Roger Dingledine
8cdec1e156 bump to 0.2.3.2-alpha 2011-07-18 13:20:54 -04:00
Jacob Appelbaum
8b0d9452ca Fix tor-fw-helper-natpmp.c API usage
libnatpmp-20110618 changed the API that tor-fw-helper used and for a time
tor-fw-helper could not build against the newest libnatpmp. This patch brings
support for libnatpmp to tor-fw-helper.
2011-06-20 20:01:46 -04:00
Nick Mathewson
9fba014e3f Merge remote-tracking branch 'public/bug3122_memcmp_022' into bug3122_memcmp_023
Conflicts in various places, mainly node-related.  Resolved them in
favor of HEAD, with copying of tor_mem* operations from bug3122_memcmp_022.

	src/common/Makefile.am
	src/or/circuitlist.c
	src/or/connection_edge.c
	src/or/directory.c
	src/or/microdesc.c
	src/or/networkstatus.c
	src/or/router.c
	src/or/routerlist.c
	src/test/test_util.c
2011-05-11 16:39:45 -04:00
Nick Mathewson
44ad734573 Merge remote-tracking branch 'public/3122_memcmp_squashed' into bug3122_memcmp_022
Conflicts throughout.  All resolved in favor of taking HEAD and
adding tor_mem* or fast_mem* ops as appropriate.

	src/common/Makefile.am
	src/or/circuitbuild.c
	src/or/directory.c
	src/or/dirserv.c
	src/or/dirvote.c
	src/or/networkstatus.c
	src/or/rendclient.c
	src/or/rendservice.c
	src/or/router.c
	src/or/routerlist.c
	src/or/routerparse.c
	src/or/test.c
2011-05-11 16:24:29 -04:00
Nick Mathewson
4b19730c82 Add a data-independent variant of memcmp and a d-i memeq function.
The tor_memcmp code is by Robert Ransom, and the tor_memeq code is
by me.  Both incorporate some ideas from DJB's stuff.
2011-05-11 16:12:33 -04:00
Sebastian Hahn
e36f9d1d9b Link to libevent_openssl statically when requested
When configure tor with --enable-bufferevents and
--enable-static-libevent, libevent_openssl would still be linked
dynamically. Fix this and refactor src/or/Makefile.am along the way.
2011-05-06 15:38:32 +02:00
Nick Mathewson
08e6bd0ed1 Increment version to 0.2.3.1-alpha-dev 2011-05-05 15:15:20 -04:00
Nick Mathewson
5ed719fd6c Increment version to 0.2.3.1-alpha 2011-05-05 13:42:03 -04:00
Sebastian Hahn
e97f78d789 Small fixes for the 2702 implementation
Improve the INSTALL documentation for static builds, remove a few
unnecessary lines from configure.in and tweak the changelog message
slightly.
2011-04-02 12:15:08 +02:00
Jacob Appelbaum
fe051a43c1 add --enable-static-tor to our configure script
This implements the feature request in bug #2702
2011-04-02 11:09:38 +02:00
Nick Mathewson
ee871e7a0e Merge remote-tracking branch 'origin/maint-0.2.2'
Conflicts:
	src/common/compat.h
	src/or/circuitlist.c
	src/or/circuituse.c
	src/or/or.h
	src/or/rephist.c
2011-03-30 14:55:50 -04:00
Nick Mathewson
22f7042b91 Merge remote-tracking branch 'origin/maint-0.2.1' into maint-0.2.2 2011-03-28 17:49:34 -04:00
Erinn Clark
3a7cee9d29 Fix configure.in zlib package names. 2011-03-28 17:48:22 -04:00
Nick Mathewson
18126f92a7 Merge remote-tracking branch 'origin/maint-0.2.2' 2011-03-28 12:17:35 -04:00
Sebastian Hahn
4762118832 Small tweaks for bug2698 bugfix 2011-03-27 05:38:53 +02:00
Jacob Appelbaum
b62abf9f21 Fix libevent autoconf bug #2698 2011-03-27 05:38:51 +02:00
Nick Mathewson
8b393afa94 Merge remote branch 'origin/maint-0.2.2'
Trivial Conflicts:
	configure.in
2011-03-18 12:44:37 -04:00
Sebastian Hahn
3f94c4a1cb Remove superfluous -g -O2 compiler argument
Autoconf adds -g -O2 by default, so adding it ourselves is not required.
It also caused a warning with clang for every source file, so remove it
here. Fixes last issue of ticket 2696.
2011-03-18 17:04:01 +01:00
Steven Murdoch
56bdc844ba Fix compilation under LLVM/clang with --enable-gcc-warnings
- When compiling using clang (2.9 or lower) do not enable
  -Wnormalized=id or -Woverride-init when --enable-gcc-warnings
  or --enable-gcc-warnings-advisory is set as these options
  are unsupported.
2011-03-10 01:54:43 +01:00
Nick Mathewson
c2f111a631 Merge remote branch 'origin/maint-0.2.2'
Conflicts:
	configure.in
2011-02-22 17:55:17 -05:00
Nick Mathewson
596f7a39b6 Merge remote branch 'origin/maint-0.2.1' into maint-0.2.2
Conflicts:
	configure.in
2011-02-22 17:53:09 -05:00
Nick Mathewson
10ad3442e1 Remove doc/spec/Makefile.in from list of generated files 2011-02-22 17:51:03 -05:00
Nick Mathewson
a6c811313a Merge remote branch 'origin/maint-0.2.2' 2011-02-03 14:21:14 -05:00
John Brooks
895409011f Enable ASLR and permanent DEP for Windows executables
Fix for #2358
2011-02-03 14:18:00 -05:00
Nick Mathewson
a84c6e86fe Merge remote branch 'origin/maint-0.2.2' 2011-01-12 13:05:19 -05:00
Nick Mathewson
a2c41aa3e8 Merge remote branch 'sebastian/bug2337' into maint-0.2.2 2011-01-12 12:55:09 -05:00
Sebastian Hahn
2dd7df8308 Fix a autoconf warning 2011-01-12 04:02:52 +01:00
Nick Mathewson
d4165ef8b4 Use autoconf's FLEXIBLE_ARRAY_MEMBER for unspecified-length arrays
C99 allows a syntax for structures whose last element is of
unspecified length:
   struct s {
     int elt1;
     ...
     char last_element[];
   };

Recent (last-5-years) autoconf versions provide an
AC_C_FLEXIBLE_ARRAY_MEMBER test that defines FLEXIBLE_ARRAY_MEMBER
to either no tokens (if you have c99 flexible array support) or to 1
(if you don't).  At that point you just use offsetof
[STRUCT_OFFSET() for us] to see where last_element begins, and
allocate your structures like:

   struct s {
     int elt1;
     ...
     char last_element[FLEXIBLE_ARRAY_MEMBER];
   };

   tor_malloc(STRUCT_OFFSET(struct s, last_element) +
                                   n_elements*sizeof(char));

The advantages are:

   1) It's easier to see which structures and elements are of
      unspecified length.
   2) The compiler and related checking tools can also see which
      structures and elements are of unspecified length, in case they
      wants to try weird bounds-checking tricks or something.
   3) The compiler can warn us if we do something dumb, like try
      to stack-allocate a flexible-length structure.
2011-01-06 15:59:05 -05:00
Nick Mathewson
81d69f4c2d Detect signed size_t and report an error at configure time. 2011-01-03 16:54:57 -05:00
Roger Dingledine
713db8dbfa bump to 0.2.2.19-alpha 2010-11-21 18:00:12 -05:00
Nick Mathewson
5a66de7015 Initial work to set CLOEXEC on all possible fds
Still to go: some pipes, all stdio files.
2010-11-20 00:58:40 -05:00
Roger Dingledine
c643e0527c new development version 2010-11-16 14:45:40 -05:00
Roger Dingledine
e1e7988537 bump to 0.2.2.18-alpha 2010-11-16 00:20:49 -05:00
Nick Mathewson
223fc208f6 Split long lines in configure.in and Makefile.am files
Having very long single lines with lots and lots of things in them
tends to make files hard to diff and hard to merge.  Since our tools
are one-line-at-a-time, we should try to construct lists that way too,
within reason.

This incidentally turned up a few headers in configure.in that we were
for some reason searching for twice.
2010-11-11 14:22:48 -05:00
Nick Mathewson
2b4ed1d07e Merge remote branch 'origin/maint-0.2.2'
Conflicts:
	configure.in
2010-11-11 13:59:18 -05:00
Sebastian Hahn
fcdf1470c0 Remove everything related to os x expert package
We decided to no longer ship expert packages for OS X because they're a
lot of trouble to keep maintained and confuse users. For those who want
a tor on OS X without Vidalia, macports is a fine option. Alternatively,
building from source is easy, too.

The polipo stuff that is still required for the Vidalia bundle build can
now be found in the torbrowser repository,
git://git.torproject.org/torbrowser.git.
2010-11-10 04:04:29 +01:00
Nick Mathewson
ca7d5dc299 Merge remote branch 'origin/maint-0.2.2' 2010-10-20 13:07:25 -04:00
Sebastian Hahn
4f0badf974 Remove redundant -Wpointer-sign CFLAG
-Wpointer-sign is implied with -Wall, which we use when building with
--enable-gcc-warnings.
2010-10-20 13:13:50 +02:00
Sebastian Hahn
12d675a8dd Remove redundant -Wformat -Wformat-security CFLAGS
When configuring with --enable-gcc-warnings, we use -Wformat=2 which
automatically enables the available -Wformat switches, so adding them
again in the --enable-gcc-hardening case doesn't make sense..
2010-10-20 13:13:50 +02:00
Sebastian Hahn
cee4dc6101 Use ssp-buffer-size param when hardening
We used to enable ssp-buffer-size=1 only when building with
--enable-gcc-warnings. That would result in warnings (and no
protection for small arrays) when building with
--enable-gcc-hardening without enabling warnings, too. Fixes bug
2031.

Also remove an XXX: We now allow to build with -fstack-protector
by using --enable-gcc-hardening.
2010-10-20 13:13:44 +02:00
Sebastian Hahn
01cde8dbf3 Raise libevent version needed for bufferevents 2010-10-15 02:46:19 +02:00
Nick Mathewson
c1c74c51d4 Merge remote branch 'origin/maint-0.2.2' 2010-10-12 14:50:57 -04:00
Steven Murdoch
06eafb3fcc Fix running unit tests from outside of the build directory (fixes bug #2051)
Currently the unit tests test_util_spawn_background_* assume that they
are run from the Tor build directory. This is not the case when running
make distcheck, so the test will fail. This problem is fixed by autoconf
setting BUILDDIR to be the root of the Tor build directory, and this
preprocessor variable being used to specify the absolute path to
test-child. Also, in test-child, do not print out argv[0] because this will
no longer be predictable. Found by Sebastian Hahn.
2010-10-11 23:29:52 +01:00
Sebastian Hahn
f3d000f496 Fix MIPSpro and time_t signedness detection
3d6e283087 silenced the autogen.sh warnings as it was supposed to, but
introduced two bugs. Fix them.
2010-10-11 19:24:25 +02:00
Sebastian Hahn
50d77ad4b6 Fix the new warnings during autogen.sh
Follow-up fix to 3d6e283087 for configure.in additions in master that
weren't in maint-0.2.2
2010-10-11 17:08:42 +02:00
Nick Mathewson
45ce1f678f Merge remote branch 'origin/maint-0.2.2' 2010-10-11 10:16:09 -04:00
Sebastian Hahn
3d6e283087 Fix warnings with new versions of autoconf
It looks like autoconf 2.68 introduced a bunch of new warnings when it
didn't like the syntax you used or forgot to use
AC_LANG_(SOURCE|PROGRAM).
2010-10-11 12:36:02 +02:00
Roger Dingledine
6e00877fa3 bump to 0.2.2.17-alpha-dev 2010-10-01 04:59:11 -04:00
Roger Dingledine
a3f488a887 bump to 0.2.2.17-alpha 2010-09-30 17:49:11 -04:00
Jacob Appelbaum
3eaa9a376c Changes to tor-fw-helper, some based on Nick's review
* MINIUPNPC rather than the generic UPNP
 * Nick suggested a better abstraction model for tor-fw-helper
 * Fix autoconf to build with either natpmp or miniupnpc
 * Add AM_PROG_CC_C_O to fix automake complaint
 * update spec to address nickm's concern
 * refactor nat-pmp to match upnp state
 * we prefer tor_snprintf to snprintf
 * link properlty for tor_snprintf
 * rename test_commandline_options to log_commandline_options
 * cast this uint as an int
 * detect possible FD_SETSIZE errors
 * make note about future enhancements for natpmp
 * add upnp enhancement note
 * ChangeLog entry
 * doxygen and check-spaces cleanup
 * create tor-fw-helper.1.txt
2010-09-30 11:39:34 -04:00
Jacob Appelbaum
9cc76cf005 First implementation of tor-fw-helper.
tor-fw-helper is a command-line tool to wrap and abstract various
firewall port-forwarding tools.

This commit matches the state of Jacob's tor-fw-helper branch as of
23 September 2010.

  (commit msg by Nick)
2010-09-30 11:37:53 -04:00
Nick Mathewson
73d93c033d Autodetect the number of CPUs when possible if NumCPUs==0
This is needed for IOCP, since telling the IOCP backend about all
your CPUs is a good idea.  It'll also come in handy with asn's
multithreaded crypto stuff, and for people who run servers without
reading the manual.
2010-09-28 14:42:21 -04:00
Nick Mathewson
21e5f3c431 Detect Libevent version at configure time when using bufferevents 2010-09-27 14:29:49 -04:00
Nick Mathewson
57e7b54b7b Teach read_event/write_event manipulators about bufferevents.
Add an --enable-bufferevents config switch.
2010-09-27 12:28:43 -04:00
Nick Mathewson
94aac84a71 Remove never-actually-finished code to use readv and writev for IO.
We'll get this feature for free with bufferevents, so there's no good reason
to clone it in Tor.
2010-09-27 12:28:43 -04:00
Nick Mathewson
83f9667fe8 Bump the Tor version in master to 0.2.3.0-alpha-dev
0.2.2.x development will continue in branch maint-0.2.2.

master is now out of feature freeze.

Let's not go crazy right away. :)
2010-09-24 15:15:07 -04:00
Roger Dingledine
85cad94221 bump to 0.2.2.16-alpha-dev 2010-09-17 05:07:59 -04:00
Roger Dingledine
61e0079ab2 best tor ever! 2010-09-17 02:06:34 -04:00
Nick Mathewson
c66138609a Merge remote branch 'origin/maint-0.2.1' 2010-08-26 14:32:22 -04:00
Nick Mathewson
30b766ba12 Use -Wno-system-headers on openbsd to resolve 2nd case of bug1848 2010-08-26 19:03:51 +02:00
Nick Mathewson
89b424037b Bump version to 0.2.2.15-alpha-dev 2010-08-19 16:24:31 -04:00
Roger Dingledine
1f81474b2e bump to 0.2.2.15-alpha 2010-08-18 19:16:02 -04:00
Roger Dingledine
69dfd67d90 bump to 0.2.2.14-alpha-dev 2010-07-13 15:48:03 -04:00
Roger Dingledine
06a79233c5 bump to 0.2.2.14-alpha 2010-07-12 21:39:59 -04:00
Roger Dingledine
5add4b1d83 Merge commit 'linus/master' 2010-05-07 17:27:17 -04:00
Linus Nordberg
b7e533c1d7 Don't be bashistic. 2010-05-07 23:10:30 +02:00
Andy Isaacson
6751899fe1 use ssp-buffer-size=1 to avoid Werror failures
Build on Ubuntu 10.04 64-bit was failing:

util.c: In function ‘parse_http_time’:
util.c:1370: error: not protecting function: no buffer at least 8 bytes long

We don't want to lose -Werror, and we don't care too much about the
added overhead of protecting even small buffers, so let's simply turn on
SSP for all buffers.

Thanks to Jacob Appelbaum for the pointer and SwissTorExit for the
original report.

Signed-off-by: Andy Isaacson <adi@hexapodia.org>
2010-05-07 12:30:47 -07:00
Jacob Appelbaum
04fa935e02 Add support for gcc compiler/linker hardening flags.
This patch adds support for two new configure options:
    '--enable-gcc-hardening'
    This sets CFLAGS to include:
        "-D_FORTIFY_SOURCE=2 -fstack-protector-all"
        "-fwrapv -fPIE -Wstack-protector -Wformat -Wformat-security"
        "-Wpointer-sign"
    It sets LDFLAGS to include:
        "-pie"

    '--enable-linker-hardening'
    This sets LDFLAGS to include:
        " -z relro -z now"
2010-05-07 16:15:26 +02:00
Roger Dingledine
c359f10e29 bump to 0.2.2.13-alpha-dev 2010-05-05 03:12:33 -04:00
Roger Dingledine
feb8c1b5f6 bump to 0.2.2.13-alpha 2010-04-24 05:43:43 -04:00
Roger Dingledine
2c1900ee5e bump to 0.2.2.12-alpha-dev 2010-04-20 17:56:28 -04:00
Roger Dingledine
18678e5f1e bump to 0.2.2.12-alpha 2010-04-20 03:56:15 -04:00
Roger Dingledine
84924fcd30 bump to 0.2.2.11-alpha-dev 2010-04-19 06:09:06 -04:00
Roger Dingledine
9cde5a4629 bump to 0.2.2.11-alpha 2010-04-15 11:02:31 -04:00
Sebastian Hahn
71fb687ddd Add --enable-static-zlib option
Works like the --enable-static-openssl/libevent options. Requires
--with-zlib-dir to be set. Note that other dependencies might still
pull in a dynamicly linked zlib, if you don't link them in statically
too.
2010-04-14 19:28:21 +02:00
Nick Mathewson
927425150b Merge branch 'asprintf' 2010-04-02 12:30:46 -04:00
Roger Dingledine
94dccce3fa bump to 0.2.1.25
it's perfect, let's ship it
2010-03-15 18:08:29 -04:00
Sebastian Hahn
fca673bcd3 Don't require asciidoc when building Tor from a tarball
If asciidoc is required, the user receives an error message telling
them about the --disable-asciidoc configure switch and the build
breaks.
2010-03-09 03:00:59 +01:00
Roger Dingledine
db135e92b4 bump to 0.2.2.10-alpha-dev
now's your chance to destabilize it
2010-03-08 00:40:00 -05:00
Roger Dingledine
81b84c0b01 prepare 0.2.2.10-alpha for release 2010-03-07 00:13:12 -05:00
Roger Dingledine
841351e612 clean up the 0.2.1.25 changelog 2010-03-06 22:39:34 -05:00
Sebastian Hahn
4db5e7ae76 Add configure switch to disable use of asciidoc
Also break the build if that switch isn't used and asciidoc isn't
available.
2010-03-01 05:02:27 +01:00
Nick Mathewson
6fa8dacb97 Add a tor_asprintf() function, and use it in a couple of places.
asprintf() is a GNU extension that some BSDs have picked up: it does a printf
into a newly allocated chunk of RAM.

Our tor_asprintf() differs from standard asprintf() in that:
  - Like our other malloc functions, it asserts on OOM.
  - It works on windows.
  - It always sets its return-field.
2010-02-25 16:09:10 -05:00
Roger Dingledine
3ae5bee303 bump to 0.2.2.9-alpha-dev 2010-02-22 21:23:06 -05:00
Roger Dingledine
5e8c611673 prepare for 0.2.2.9-alpha 2010-02-22 00:20:55 -05:00
Roger Dingledine
b9696b96da bump to 0.2.1.24 2010-02-21 17:27:12 -05:00
Nick Mathewson
4a3bd153c0 Bump version to 0.2.1.23-dev 2010-02-18 11:57:47 -05:00
Nick Mathewson
79bdfb63e9 Remove the --enable-iphone option as needless.
On or-talk, Marco Bonetti reports that recent iPhone SDKs build
Tor fine without it.
2010-02-12 23:06:05 -05:00
Sebastian Hahn
82bba906f4 Remove the --enable-debug option for configure, it didn't do anything. 2010-02-13 01:19:26 +01:00
Roger Dingledine
33f8dcae6a prepare for 0.2.1.23 2010-02-12 12:35:40 -05:00
Nick Mathewson
1a2129e3f7 Merge remote branch 'origin/maint-0.2.1' 2010-02-02 16:21:17 -05:00
Nick Mathewson
f6ff14a82e Link libssl and libcrypto in the right order.
For most linking setups, this doesn't matter.  But for some setups, when
statically linking openssl, it does matter, since you need to link things
with dependencies before you link things they depend on.

Fix for bug 1237.
2010-02-02 16:12:45 -05:00