aboutsummaryrefslogtreecommitdiff
path: root/src/common/compat.h
Commit message (Collapse)AuthorAge
...
* | Merge remote-tracking branch 'origin/maint-0.2.2'Nick Mathewson2011-04-28
|\|
| * Detect and handle NULL returns from (gm/local)time_rNick Mathewson2011-04-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | These functions can return NULL for otherwise-valid values of time_t. Notably, the glibc gmtime manpage says it can return NULL if the year if greater than INT_MAX, and the windows MSDN gmtime page says it can return NULL for negative time_t values. Also, our formatting code is not guaranteed to correctly handle years after 9999 CE. This patch tries to correct this by detecting NULL values from gmtime/localtime_r, and trying to clip them to a reasonable end of the scale. If they are in the middle of the scale, we call it a downright error. Arguably, it's a bug to get out-of-bounds dates like this to begin with. But we've had bugs of this kind in the past, and warning when we see a bug is much kinder than doing a NULL-pointer dereference. Boboper found this one too.
* | Merge remote-tracking branch 'origin/maint-0.2.2'Nick Mathewson2011-03-30
|\| | | | | | | | | | | | | | | | | Conflicts: src/common/compat.h src/or/circuitlist.c src/or/circuituse.c src/or/or.h src/or/rephist.c
| * Implement replacements for timer(add,cmp,sub) on platforms lacking them.Nick Mathewson2011-03-30
| |
* | Merge remote-tracking branch 'origin/maint-0.2.2'Nick Mathewson2011-03-16
|\| | | | | | | | | | | | | Trivial Conflicts in src/common/crypto.c src/or/main.h src/or/or.h
| * Doxygen documentation for about 100 things that didn't have anyNick Mathewson2011-03-16
| | | | | | | | About 860 doxygen-less things remain in 0.2.2
* | Merge remote branch 'origin/maint-0.2.2'Nick Mathewson2011-01-03
|\|
| * Merge remote branch 'origin/maint-0.2.1' into maint-0.2.2Nick Mathewson2011-01-03
| |\
| | * Never include pthread.h when building for Windows.Nick Mathewson2011-01-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On Windows, we never use pthreads, since it doesn't usually exist, and when it does it tends to be a little weirdly-behaved. But some mingw installations have a pthreads installed, so autoconf detects pthread.h and tells us about it. This would make us include pthread.h, which could make for trouble when the iffy pthread.h tried to include config.h. This patch changes compat.h so that we never include pthread.h on Windows. Fixes bug 2313; bugfix on 0.1.0.1-rc.
* | | Merge remote branch 'origin/maint-0.2.2'Nick Mathewson2011-01-03
|\| |
| * | Merge remote branch 'origin/maint-0.2.1' into maint-0.2.2Nick Mathewson2011-01-03
| |\| | | | | | | | | | | | | | | | Conflicts: src/common/test.h src/or/test.c
| | * Bump copyright statements to 2011Nick Mathewson2011-01-03
| | |
* | | Merge branch 'maint-0.2.2'Roger Dingledine2010-12-19
|\| |
| * | Merge remote branch fix_security_bug_021 into fix_security_bug_022Nick Mathewson2010-12-15
| |\| | | | | | | | | | | | | | | | | | | Conflicts: src/common/memarea.c src/or/or.h src/or/rendclient.c
| | * Make payloads into uint8_t.Nick Mathewson2010-12-15
| | | | | | | | | | | | This will avoid some signed/unsigned assignment-related bugs.
* | | Merge remote branch 'sjmurdoch/cloexec'Nick Mathewson2010-12-01
|\ \ \
| * | | Do cloexec on socketpairs and stdio filesNick Mathewson2010-11-20
| | | |
| * | | Initial work to set CLOEXEC on all possible fdsNick Mathewson2010-11-20
| | | | | | | | | | | | | | | | Still to go: some pipes, all stdio files.
* | | | Merge remote branch 'origin/maint-0.2.2'Nick Mathewson2010-11-30
|\ \ \ \ | |/ / / |/| / / | |/ / | | | Conflicts: src/or/relay.c
| * | Add wrappers function for libc random()Nick Mathewson2010-11-29
| | | | | | | | | | | | On windows, it's called something different.
* | | Add a portable tor_timercmpNick Mathewson2010-10-15
| | | | | | | | | | | | | | | | | | We can't use the platform timercmp, because 1) some platforms don't have them 2) some that do have them only support certain relational operators
* | | Autodetect the number of CPUs when possible if NumCPUs==0Nick Mathewson2010-09-28
|/ / | | | | | | | | | | | | 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.
* | moved wince related includes and defs to compat.h where possible, removed ↵valerino2010-05-24
| | | | | | | | unused/redundant wince includes
* | Port Tor to work on Windows CEvalerino2010-05-24
| | | | | | | | | | | | | | | | | | | | | | | | Most of the changes here are switches to use APIs available on Windows CE. The most pervasive change is that Windows CE only provides the wide-character ("FooW") variants of most of the windows function, and doesn't support the older ASCII verions at all. This patch will require use of the wcecompat library to get working versions of the posix-style fd-based file IO functions. [commit message by nickm]
* | Merge branch 'asprintf'Nick Mathewson2010-04-02
|\ \
| * | Add a tor_asprintf() function, and use it in a couple of places.Nick Mathewson2010-02-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | Merge remote branch 'origin/maint-0.2.1'Nick Mathewson2010-02-27
|\ \ \ | | |/ | |/| | | | | | | | | | Conflicts: src/common/test.h src/or/test.c
| * | Update Tor Project copyright yearsNick Mathewson2010-02-27
| | |
* | | Add the MIN and MAX macros for platforms that lack themNick Mathewson2010-02-25
| | |
* | | Fix 64-bit printf issues in consensus-bw-weights5-merge.Nick Mathewson2010-02-25
| | | | | | | | | | | | | | | | | | | | | | | | For my 64-bit Linux system running with GCC 4.4.3-fc12-whatever, you can't do 'printf("%lld", (int64_t)x);' Instead you need to tell the compiler 'printf("%lld", (long long int)x);' or else it doesn't believe the types match. This is why we added U64_PRINTF_ARG; it looks like we needed an I64_PRINTF_ARG too.
* | | Add %lld compat defines.Mike Perry2010-02-22
| |/ |/|
* | Implement DisableAllSwap to avoid putting secret info in page files.Jacob Appelbaum2009-10-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit implements a new config option: 'DisableAllSwap' This option probably only works properly when Tor is started as root. We added two new functions: tor_mlockall() and tor_set_max_memlock(). tor_mlockall() attempts to mlock() all current and all future memory pages. For tor_mlockall() to work properly we set the process rlimits for memory to RLIM_INFINITY (and beyond) inside of tor_set_max_memlock(). We behave differently from mlockall() by only allowing tor_mlockall() to be called one single time. All other calls will result in a return code of 1. It is not possible to change DisableAllSwap while running. A sample configuration item was added to the torrc.complete.in config file. A new item in the man page for DisableAllSwap was added. Thanks to Moxie Marlinspike and Chris Palmer for their feedback on this patch. Please note that we make no guarantees about the quality of your OS and its mlock/mlockall implementation. It is possible that this will do nothing at all. It is also possible that you can ulimit the mlock properties of a given user such that root is not required. This has not been extensively tested and is unsupported. I have included some comments for possible ways we can handle this on win32.
* | Switch over to tor_strtok_r instead of strtok_r.Mike Perry2009-08-09
| |
* | Add a new tor_strtok_r for platforms that don't have one, plus tests.Nick Mathewson2009-08-09
|/ | | | | | I don't think we actually use (or plan to use) strtok_r in a reentrant way anywhere in our code, but would be nice not to have to think about whether we're doing it.
* Don't attempt to log messages to a controller from a worker thread.Nick Mathewson2009-05-30
| | | | | | | | | | | This patch adds a function to determine whether we're in the main thread, and changes control_event_logmsg() to return immediately if we're in a subthread. This is necessary because otherwise we will call connection_write_to_buf, which modifies non-locked data structures. Bugfix on 0.2.0.x; fix for at least one of the things currently called "bug 977".
* Spell-check Tor.Nick Mathewson2009-05-27
|
* Update copyright to 2009.Karsten Loesing2009-05-04
|
* Add and use set/get_uint64 on onion tags. [bug 604; backportable]Nick Mathewson2009-03-02
| | | | | | | | | It seems that 64-bit Sparc Solaris demands 64-bit-aligned access to uint64_t, but does not 64-bit-align the stack-allocated char array we use for cpuworker tags. So this patch adds a set/get_uint64 pair, and uses them to access the conn_id field in the tag. svn:r18743
* Fix warning on panther compile, and bug 913. Backport candidate.Nick Mathewson2009-01-21
| | | | svn:r18203
* Add a better (non-locale-having) ctypes implementation to avoid protocol and ↵Nick Mathewson2009-01-20
| | | | | | parsing mismatches on different platforms. svn:r18189
* Remove svn $Id$s from our source, and remove tor --version --version.Nick Mathewson2009-01-04
| | | | | | | | The subversion $Id$ fields made every commit force a rebuild of whatever file got committed. They were not actually useful for telling the version of Tor files in the wild. svn:r17867
* Remove some code that is #ifdefed out, and that we no longer seem to use, if ↵Nick Mathewson2008-12-30
| | | | | | we ever did. svn:r17827
* Use a consistent naming standard for header file guard macros, taking care ↵Nick Mathewson2008-12-29
| | | | | | not to collide with any system headers. This tripped us up on Android. svn:r17805
* Remove some cargo-cult gcc hacks around tor_assert and predict_unlikely; ↵Nick Mathewson2008-12-11
| | | | | | instead, use the standard convert-to-boolean hack of "svn st" svn:r17597
* Simplify mmap object layout to avoid confusing static analysis tools, and us ↵Nick Mathewson2008-12-05
| | | | | | too. svn:r17490
* Add two lseek wrappers to compat.[ch]: one to return current fd position, ↵Nick Mathewson2008-12-02
| | | | | | and one to move the fd to the end of the file. svn:r17454
* Define socklen_t before using it in compat.hNick Mathewson2008-12-02
| | | | svn:r17444
* define get_uint8 and set_uint8 macros to make code cleaner.Nick Mathewson2008-11-12
| | | | svn:r17261
* Patch from Jacob Appelbaum and me to make User option more robust, properly ↵Steven Murdoch2008-11-07
| | | | | | set supplementary groups, deprecated the Group option, and log more information on credential switching svn:r17200
* Document some dmalloc stuff and some stupid C tricks.Nick Mathewson2008-10-27
| | | | svn:r17161