diff --git a/netwerk/sctp/src/moz.build b/netwerk/sctp/src/moz.build index 3000b3d73..8d4dd51bf 100644 --- a/netwerk/sctp/src/moz.build +++ b/netwerk/sctp/src/moz.build @@ -73,7 +73,6 @@ else: if CONFIG['OS_TARGET'] == 'Darwin': DEFINES['__APPLE_USE_RFC_2292'] = 1 - DEFINES['__APPLE__'] = False if CONFIG['OS_TARGET'] in ('Linux', 'Android'): # to make sure that in6_pktinfo gets defined on all distros diff --git a/netwerk/sctp/src/netinet/sctp_os_userspace.h b/netwerk/sctp/src/netinet/sctp_os_userspace.h index 05f655aa9..5a210aea1 100755 --- a/netwerk/sctp/src/netinet/sctp_os_userspace.h +++ b/netwerk/sctp/src/netinet/sctp_os_userspace.h @@ -1111,6 +1111,16 @@ sctp_get_mbuf_for_msg(unsigned int space_needed, int want_header, int how, int a } while (0) #endif +/* TenFourFox: we need both of these macros */ +#define TAILQ_FOREACH_SAFE(var, head, field, tvar) \ + for ((var) = ((head)->tqh_first); \ + (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \ + (var) = (tvar)) +#define LIST_FOREACH_SAFE(var, head, field, tvar) \ + for ((var) = ((head)->lh_first); \ + (var) && ((tvar) = LIST_NEXT((var), field), 1); \ + (var) = (tvar)) + #if defined(__linux__) #if !defined(TAILQ_FOREACH_SAFE) #define TAILQ_FOREACH_SAFE(var, head, field, tvar) \ diff --git a/netwerk/sctp/src/netinet/sctp_userspace.c b/netwerk/sctp/src/netinet/sctp_userspace.c index 71888901f..8e283581b 100755 --- a/netwerk/sctp/src/netinet/sctp_userspace.c +++ b/netwerk/sctp/src/netinet/sctp_userspace.c @@ -84,8 +84,13 @@ void sctp_userspace_set_threadname(const char *name) { #if defined(__APPLE__) +#if(1) + /* TenFourFox: no pthread_setname_np in Tiger */ + return; +#else pthread_setname_np(name); #endif +#endif #if defined(__linux__) prctl(PR_SET_NAME, name); #endif diff --git a/netwerk/sctp/src/user_atomic.h b/netwerk/sctp/src/user_atomic.h index 6a59587ef..9f0ac0f82 100755 --- a/netwerk/sctp/src/user_atomic.h +++ b/netwerk/sctp/src/user_atomic.h @@ -54,7 +54,9 @@ #define atomic_add_int(addr, val) OSAtomicAdd32Barrier(val, (int32_t *)addr) #define atomic_fetchadd_int(addr, val) OSAtomicAdd32Barrier(val, (int32_t *)addr) #define atomic_subtract_int(addr, val) OSAtomicAdd32Barrier(-val, (int32_t *)addr) -#define atomic_cmpset_int(dst, exp, src) OSAtomicCompareAndSwapIntBarrier(exp, src, (int *)dst) +/* TenFourFox */ +#define atomic_cmpset_int(dst, exp, src) OSAtomicCompareAndSwap32Barrier(exp, src, (int *)dst) +//#define atomic_cmpset_int(dst, exp, src) OSAtomicCompareAndSwapIntBarrier(exp, src, (int *)dst) #define SCTP_DECREMENT_AND_CHECK_REFCOUNT(addr) (atomic_fetchadd_int(addr, -1) == 0) #endif diff --git a/netwerk/sctp/src/user_environment.c b/netwerk/sctp/src/user_environment.c index 3deb3ef0d..c0b87b518 100755 --- a/netwerk/sctp/src/user_environment.c +++ b/netwerk/sctp/src/user_environment.c @@ -132,8 +132,23 @@ init_random(void) void read_random(void *buf, size_t size) { +/* TenFourFox: no arc4random_buf in Tiger. + This isn't used much, so substitute a secure, if suboptimal, alternate. */ +#if(0) arc4random_buf(buf, size); return; +#else + size_t i; + char *c = (char *)buf; + for(i=0; i