]> git.ipfire.org Git - thirdparty/ntp.git/commitdiff
Merge dlh-7551.ad.hartbrothers.com:C:/ntp/ntp-dev-libisc-upstream
authorDave Hart <hart@ntp.org>
Sat, 2 Jun 2012 14:03:53 +0000 (14:03 +0000)
committerDave Hart <hart@ntp.org>
Sat, 2 Jun 2012 14:03:53 +0000 (14:03 +0000)
into  dlh-7551.ad.hartbrothers.com:C:/ntp/ntp-dev-2204

bk: 4fca1d49UOjyebrMUYTMAzBNyT0w5g

26 files changed:
1  2 
lib/isc/assertions.c
lib/isc/include/isc/assertions.h
lib/isc/include/isc/file.h
lib/isc/include/isc/msgs.h
lib/isc/include/isc/util.h
lib/isc/inet_ntop.c
lib/isc/log.c
lib/isc/netaddr.c
lib/isc/pthreads/mutex.c
lib/isc/result.c
lib/isc/sockaddr.c
lib/isc/task.c
lib/isc/unix/dir.c
lib/isc/unix/file.c
lib/isc/unix/ifiter_getifaddrs.c
lib/isc/unix/ifiter_ioctl.c
lib/isc/unix/include/isc/net.h
lib/isc/unix/interfaceiter.c
lib/isc/unix/net.c
lib/isc/unix/strerror.c
lib/isc/win32/include/isc/ipv6.h
lib/isc/win32/include/isc/net.h
lib/isc/win32/include/isc/platform.h
lib/isc/win32/include/isc/stat.h
lib/isc/win32/interfaceiter.c
lib/isc/win32/net.c

index 8db4cdef89808f2e151e3061b32e4107150136a1,31c4fe7c9f273a2d109e43cd2fce2c9ae97aa3b7..bde4e88dc1861522a349613c385cd22ce681a199
  /*%
   * Forward.
   */
- /* coverity[+kill] */
  static void
 -default_callback(const char *, int, isc_assertiontype_t, const char *);
 +default_callback(const char *, int, isc_assertiontype_t, const char *)
 +      __attribute__ ((__noreturn__));
  
+ static isc_assertioncallback_t isc_assertion_failed_cb = default_callback;
  /*%
   * Public.
   */
index adc083f320e4f97ac785a6541df15bca277d6c4b,2c81b1ae9880cfb51dfdb685d4817006c2be173c..c30282ac079d282cc729781d0f2786323354c9d7
@@@ -57,11 -38,12 +57,13 @@@ typedef enum 
  } isc_assertiontype_t;
  
  typedef void (*isc_assertioncallback_t)(const char *, int, isc_assertiontype_t,
 -                                      const char *);
 +                                      const char *)
 +                                      __attribute__ ((__noreturn__));
  
  /* coverity[+kill] */
- LIBISC_EXTERNAL_DATA extern isc_assertioncallback_t isc_assertion_failed;
+ ISC_PLATFORM_NORETURN_PRE
+ void isc_assertion_failed(const char *, int, isc_assertiontype_t,
+                         const char *) ISC_PLATFORM_NORETURN_POST;
  
  void
  isc_assertion_setcallback(isc_assertioncallback_t);
Simple merge
Simple merge
Simple merge
Simple merge
diff --cc lib/isc/log.c
Simple merge
index 3da51182d121307e0fb9e548ad64efa3f74d5a3c,5cce1bc1a03e9353b1320902cfddcce028833cde..d6928c10df8ba30123b74b1c65d76c296e2e9145
@@@ -212,8 -212,8 +213,8 @@@ isc_netaddr_format(const isc_netaddr_t 
  
  isc_result_t
  isc_netaddr_prefixok(const isc_netaddr_t *na, unsigned int prefixlen) {
 -      static const unsigned char zeros[16];
 +      static const unsigned char zeros[16] = { 0 };
-       unsigned int nbits, nbytes, ipbytes;
+       unsigned int nbits, nbytes, ipbytes = 0;
        const unsigned char *p;
  
        switch (na->family) {
@@@ -304,18 -301,18 +302,18 @@@ isc_netaddr_fromin6(isc_netaddr_t *neta
  isc_result_t
  isc_netaddr_frompath(isc_netaddr_t *netaddr, const char *path) {
  #ifdef ISC_PLATFORM_HAVESYSUNH
-         if (strlen(path) > sizeof(netaddr->type.un) - 1)
-                 return (ISC_R_NOSPACE);
+       if (strlen(path) > sizeof(netaddr->type.un) - 1)
+               return (ISC_R_NOSPACE);
  
 -      memset(netaddr, 0, sizeof(*netaddr));
 -      netaddr->family = AF_UNIX;
 -      strcpy(netaddr->type.un, path);
 -      netaddr->zone = 0;
 -      return (ISC_R_SUCCESS);
 -#else
 +        memset(netaddr, 0, sizeof(*netaddr));
 +        netaddr->family = AF_UNIX;
 +      strlcpy(netaddr->type.un, path, sizeof(netaddr->type.un));
 +        netaddr->zone = 0;
 +        return (ISC_R_SUCCESS);
 +#else 
        UNUSED(netaddr);
        UNUSED(path);
-         return (ISC_R_NOTIMPLEMENTED);
+       return (ISC_R_NOTIMPLEMENTED);
  #endif
  }
  
Simple merge
Simple merge
Simple merge
diff --cc lib/isc/task.c
index 0bd631bdc7b0f2a218f96454a321f6d06d8fb50b,227b29596c075deb02135cfb926497d828eba2c0..6c572f1eeacfe493da670adc361841674b84b828
@@@ -205,8 -358,7 +360,9 @@@ isc__task_create(isc_taskmgr_t *manager
        task->tag = NULL;
        INIT_LINK(task, link);
        INIT_LINK(task, ready_link);
+       INIT_LINK(task, ready_priority_link);
 +      UNLOCK(&task->lock);
 +      UNLOCK(&manager->lock);
  
        exiting = ISC_FALSE;
        LOCK(&manager->lock);
@@@ -1011,31 -1281,39 +1285,41 @@@ run(void *uap) 
        XTHREADTRACE(isc_msgcat_get(isc_msgcat, ISC_MSGSET_GENERAL,
                                    ISC_MSG_EXITING, "exiting"));
  
+ #ifdef OPENSSL_LEAKS
+       ERR_remove_state(0);
+ #endif
        return ((isc_threadresult_t)0);
  }
- #endif /* ISC_PLATFORM_USETHREADS */
+ #endif /* USE_WORKER_THREADS */
  
  static void
- manager_free(isc_taskmgr_t *manager) {
+ manager_free(isc__taskmgr_t *manager) {
        isc_mem_t *mctx;
  
- #ifdef ISC_PLATFORM_USETHREADS
 +      LOCK(&manager->lock);
+ #ifdef USE_WORKER_THREADS
        (void)isc_condition_destroy(&manager->exclusive_granted);
        (void)isc_condition_destroy(&manager->work_available);
+       (void)isc_condition_destroy(&manager->paused);
        isc_mem_free(manager->mctx, manager->threads);
- #endif /* ISC_PLATFORM_USETHREADS */
-       manager->magic = 0;
+ #endif /* USE_WORKER_THREADS */
 -      DESTROYLOCK(&manager->lock);
+       manager->common.impmagic = 0;
+       manager->common.magic = 0;
        mctx = manager->mctx;
 +      UNLOCK(&manager->lock);
 +      DESTROYLOCK(&manager->lock);
        isc_mem_put(mctx, manager, sizeof(*manager));
        isc_mem_detach(&mctx);
+ #ifdef USE_SHARED_MANAGER
+       taskmgr = NULL;
+ #endif        /* USE_SHARED_MANAGER */
  }
  
- isc_result_t
- isc_taskmgr_create(isc_mem_t *mctx, unsigned int workers,
-                  unsigned int default_quantum, isc_taskmgr_t **managerp)
ISC_TASKFUNC_SCOPE isc_result_t
+ isc__taskmgr_create(isc_mem_t *mctx, unsigned int workers,
+                   unsigned int default_quantum, isc_taskmgr_t **managerp)
  {
        isc_result_t result;
        unsigned int i, started = 0;
        result = isc_mutex_init(&manager->lock);
        if (result != ISC_R_SUCCESS)
                goto cleanup_mgr;
 +      LOCK(&manager->lock);
 +      manager->magic = TASK_MANAGER_MAGIC;
 +      manager->mctx = NULL;
  
- #ifdef ISC_PLATFORM_USETHREADS
+ #ifdef USE_WORKER_THREADS
        manager->workers = 0;
        manager->threads = isc_mem_allocate(mctx,
                                            workers * sizeof(isc_thread_t));
  
        isc_mem_attach(mctx, &manager->mctx);
  
- #ifdef ISC_PLATFORM_USETHREADS
+ #ifdef USE_WORKER_THREADS
 -      LOCK(&manager->lock);
        /*
         * Start workers.
         */
                return (ISC_R_NOTHREADS);
        }
        isc_thread_setconcurrency(workers);
- #else /* ISC_PLATFORM_USETHREADS */
+ #endif /* USE_WORKER_THREADS */
+ #ifdef USE_SHARED_MANAGER
        manager->refs = 1;
 +      UNLOCK(&manager->lock);
        taskmgr = manager;
- #endif /* ISC_PLATFORM_USETHREADS */
+ #endif /* USE_SHARED_MANAGER */
  
-       *managerp = manager;
+       *managerp = (isc_taskmgr_t *)manager;
  
        return (ISC_R_SUCCESS);
  
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index 3abe8515ab527fc4e1593f4c91ae0ceb9b279043,d632d3cf7e581982b51b06e87180321f2d4fc726..94b8ba50814179f9a9686cf92835dc1a37e58b1e
   */
  #undef ISC_PLATFORM_HAVESYSUNH
  
 - /*
+ /*
+  * Defines for the noreturn attribute.
+  */
+ #define ISC_PLATFORM_NORETURN_PRE __declspec(noreturn)
+ #define ISC_PLATFORM_NORETURN_POST
 +/*
   * Set up a macro for importing and exporting from the DLL
 + *
 + * To build static libraries on win32, #define ISC_STATIC_WIN
   */
 +#ifndef ISC_STATIC_WIN
 +#define ISC_DLLEXP    __declspec(dllexport)
 +#define ISC_DLLIMP    __declspec(dllimport)
 +#else
 +#define ISC_DLLEXP
 +#define ISC_DLLIMP
 +#endif
  
  #ifdef LIBISC_EXPORTS
 -#define LIBISC_EXTERNAL_DATA __declspec(dllexport)
 +#define LIBISC_EXTERNAL_DATA          ISC_DLLEXP
  #else
 -#define LIBISC_EXTERNAL_DATA __declspec(dllimport)
 +#define LIBISC_EXTERNAL_DATA          ISC_DLLIMP
  #endif
  
  #ifdef LIBISCCFG_EXPORTS
Simple merge
index 0b2269dd0b55485198ad50bcddf72b52adb76df1,58ef8836390d6bd475a68aa6b32f60699dfb8ce2..8753aa8a99779057ca1b0892d4635fcf2e038a70
   * PERFORMANCE OF THIS SOFTWARE.
   */
  
- /* $Id: interfaceiter.c,v 1.13.110.2 2009/01/18 23:47:41 tbox Exp $ */
+ /* $Id: interfaceiter.c,v 1.15 2009/01/18 23:48:14 tbox Exp $ */
  
 -/*
 - * Note that this code will need to be revisited to support IPv6 Interfaces.
 - * For now we just iterate through IPv4 interfaces.
 - */
 -
  #include <config.h>
 -#include <winsock2.h>
 -#include <ws2tcpip.h>
 -#include <sys/types.h>
  
  #include <stdio.h>
  #include <stdlib.h>
Simple merge