pkgsrc-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[pkgsrc/trunk]: pkgsrc/net/bind914 net/bind914: fix runtime problem



details:   https://anonhg.NetBSD.org/pkgsrc/rev/f2efb13d3091
branches:  trunk
changeset: 335177:f2efb13d3091
user:      taca <taca%pkgsrc.org@localhost>
date:      Fri Jun 14 16:14:05 2019 +0000

description:
net/bind914: fix runtime problem

Fix runtime problem by removing extra (fdwatch)  from NetBSD current.

Bump PKGREVISION.

diffstat:

 net/bind914/Makefile                                   |    3 +-
 net/bind914/distinfo                                   |    6 +-
 net/bind914/options.mk                                 |    4 +-
 net/bind914/patches/patch-lib_isc_include_isc_socket.h |   99 ----
 net/bind914/patches/patch-lib_isc_include_isc_types.h  |   18 -
 net/bind914/patches/patch-lib_isc_unix_socket.c        |  369 +----------------
 6 files changed, 7 insertions(+), 492 deletions(-)

diffs (truncated from 554 to 300 lines):

diff -r 99c00055983f -r f2efb13d3091 net/bind914/Makefile
--- a/net/bind914/Makefile      Fri Jun 14 16:05:25 2019 +0000
+++ b/net/bind914/Makefile      Fri Jun 14 16:14:05 2019 +0000
@@ -1,7 +1,8 @@
-# $NetBSD: Makefile,v 1.4 2019/05/20 16:31:08 taca Exp $
+# $NetBSD: Makefile,v 1.5 2019/06/14 16:14:05 taca Exp $
 
 DISTNAME=      bind-${BIND_VERSION}
 PKGNAME=       ${DISTNAME:S/-P/pl/}
+PKGREVISION=   1
 CATEGORIES=    net
 MASTER_SITES=  ftp://ftp.isc.org/isc/bind9/${BIND_VERSION}/
 
diff -r 99c00055983f -r f2efb13d3091 net/bind914/distinfo
--- a/net/bind914/distinfo      Fri Jun 14 16:05:25 2019 +0000
+++ b/net/bind914/distinfo      Fri Jun 14 16:14:05 2019 +0000
@@ -1,4 +1,4 @@
-$NetBSD: distinfo,v 1.3 2019/05/20 16:31:08 taca Exp $
+$NetBSD: distinfo,v 1.4 2019/06/14 16:14:05 taca Exp $
 
 SHA1 (bind-9.14.2.tar.gz) = b46c8713804cb8de43ded17cfb852d2db8e184d9
 RMD160 (bind-9.14.2.tar.gz) = 74d9d8d29515aa7d57e9d986d6e4b0f8af6b7962
@@ -34,9 +34,7 @@
 SHA1 (patch-lib_dns_validator.c) = 7d7471efe5109f5b2d6f9e99fe15fa314fdd217d
 SHA1 (patch-lib_dns_view.c) = 25095827adbc75dc629b0f435dbd711b599c86c9
 SHA1 (patch-lib_isc_backtrace.c) = 5fa1dd0f18ae757233d9cc21e36a5f6a84990db1
-SHA1 (patch-lib_isc_include_isc_socket.h) = 956beab8ea6a1a004b1d1682600ead6863ba05c9
-SHA1 (patch-lib_isc_include_isc_types.h) = 985874069eee13504da4dca020d6fc964e8a1f83
 SHA1 (patch-lib_isc_rwlock.c) = 7eb832915528d00e616b6c7503ec346143946876
 SHA1 (patch-lib_isc_stats.c) = 0dde2b7cbde80f608e52bf8136b3af227b65ba4b
-SHA1 (patch-lib_isc_unix_socket.c) = 8f6ac08539fb4c9b3eb1aa5fe4c3811f010aa87b
+SHA1 (patch-lib_isc_unix_socket.c) = 4f7be1616bac7263069292f909896373f0e6fab8
 SHA1 (patch-lib_isc_unix_time.c) = 04312e043601688aa2b0a09dad1bcb51d9273e9d
diff -r 99c00055983f -r f2efb13d3091 net/bind914/options.mk
--- a/net/bind914/options.mk    Fri Jun 14 16:05:25 2019 +0000
+++ b/net/bind914/options.mk    Fri Jun 14 16:14:05 2019 +0000
@@ -1,10 +1,10 @@
-# $NetBSD: options.mk,v 1.1 2019/04/30 03:34:34 taca Exp $
+# $NetBSD: options.mk,v 1.2 2019/06/14 16:14:05 taca Exp $
 
 PKG_OPTIONS_VAR=       PKG_OPTIONS.bind914
 PKG_SUPPORTED_OPTIONS= bind-dig-sigchase bind-xml-statistics-server
 PKG_SUPPORTED_OPTIONS+=        bind-json-statistics-server blacklist
 PKG_SUPPORTED_OPTIONS+=        threads readline mysql pgsql ldap dlz-filesystem
-PKG_SUPPORTED_OPTIONS+=        geoip pkcs11 tuning dnstap
+PKG_SUPPORTED_OPTIONS+=        geoip tuning dnstap # pkcs11
 PKG_SUGGESTED_OPTIONS+=        readline
 
 PLIST_VARS+=   dnstap pkcs11
diff -r 99c00055983f -r f2efb13d3091 net/bind914/patches/patch-lib_isc_include_isc_socket.h
--- a/net/bind914/patches/patch-lib_isc_include_isc_socket.h    Fri Jun 14 16:05:25 2019 +0000
+++ /dev/null   Thu Jan 01 00:00:00 1970 +0000
@@ -1,99 +0,0 @@
-$NetBSD: patch-lib_isc_include_isc_socket.h,v 1.1 2019/04/30 03:34:34 taca Exp $
-
-* fdwatch change from NetBSD base.
-
---- lib/isc/include/isc/socket.h.orig  2019-04-06 20:09:59.000000000 +0000
-+++ lib/isc/include/isc/socket.h
-@@ -243,7 +243,8 @@ typedef enum {
-       isc_sockettype_udp = 1,
-       isc_sockettype_tcp = 2,
-       isc_sockettype_unix = 3,
--      isc_sockettype_raw = 4
-+      isc_sockettype_raw = 4,
-+      isc_sockettype_fdwatch = 5
- } isc_sockettype_t;
- 
- /*@{*/
-@@ -1037,6 +1038,82 @@ isc_socketmgr_renderjson(isc_socketmgr_t
-  */
- typedef isc_result_t
- (*isc_socketmgrcreatefunc_t)(isc_mem_t *mctx, isc_socketmgr_t **managerp);
-+/*!
-+ * Flags for fdwatchcreate.
-+ */
-+#define ISC_SOCKFDWATCH_READ  0x00000001      /*%< watch for readable */
-+#define ISC_SOCKFDWATCH_WRITE 0x00000002      /*%< watch for writable */
-+/*@}*/
-+
-+isc_result_t
-+isc_socket_fdwatchcreate(isc_socketmgr_t *manager,
-+                       int fd,
-+                       int flags,
-+                       isc_sockfdwatch_t callback,
-+                       void *cbarg,
-+                       isc_task_t *task,
-+                       isc_socket_t **socketp);
-+/*%<
-+ * Create a new file descriptor watch socket managed by 'manager'.
-+ *
-+ * Note:
-+ *
-+ *\li   'fd' is the already-opened file descriptor (must be less
-+ *    than maxsockets).
-+ *\li This function is not available on Windows.
-+ *\li The callback function is called "in-line" - this means the function
-+ *    needs to return as fast as possible, as all other I/O will be suspended
-+ *    until the callback completes.
-+ *
-+ * Requires:
-+ *
-+ *\li 'manager' is a valid manager
-+ *
-+ *\li 'socketp' is a valid pointer, and *socketp == NULL
-+ *
-+ *\li 'fd' be opened.
-+ *
-+ * Ensures:
-+ *
-+ *    '*socketp' is attached to the newly created fdwatch socket
-+ *
-+ * Returns:
-+ *
-+ *\li #ISC_R_SUCCESS
-+ *\li #ISC_R_NOMEMORY
-+ *\li #ISC_R_NORESOURCES
-+ *\li #ISC_R_UNEXPECTED
-+ *\li #ISC_R_RANGE
-+ */
-+
-+isc_result_t
-+isc_socket_fdwatchpoke(isc_socket_t *sock,
-+                     int flags);
-+/*%<
-+ * Poke a file descriptor watch socket informing the manager that it
-+ * should restart watching the socket
-+ *
-+ * Note:
-+ *
-+ *\li   'sock' is the socket returned by isc_socket_fdwatchcreate
-+ *
-+ *\li   'flags' indicates what the manager should watch for on the socket
-+ *      in addition to what it may already be watching.  It can be one or
-+ *      both of ISC_SOCKFDWATCH_READ and ISC_SOCKFDWATCH_WRITE.  To
-+ *      temporarily disable watching on a socket the value indicating
-+ *      no more data should be returned from the call back routine.
-+ *
-+ *\li This function is not available on Windows.
-+ *
-+ * Requires:
-+ *
-+ *\li 'sock' is a valid isc socket
-+ *
-+ *
-+ * Returns:
-+ *
-+ *\li #ISC_R_SUCCESS
-+ */
- 
- ISC_LANG_ENDDECLS
- 
diff -r 99c00055983f -r f2efb13d3091 net/bind914/patches/patch-lib_isc_include_isc_types.h
--- a/net/bind914/patches/patch-lib_isc_include_isc_types.h     Fri Jun 14 16:05:25 2019 +0000
+++ /dev/null   Thu Jan 01 00:00:00 1970 +0000
@@ -1,18 +0,0 @@
-$NetBSD: patch-lib_isc_include_isc_types.h,v 1.1 2019/04/30 03:34:34 taca Exp $
-
-* Changes change from NetBSD base.
-
---- lib/isc/include/isc/types.h.orig   2019-04-06 20:09:59.000000000 +0000
-+++ lib/isc/include/isc/types.h
-@@ -65,7 +65,11 @@ typedef struct isc_ratelimiter              isc_rate
- typedef struct isc_region             isc_region_t;           /*%< Region */
- typedef uint64_t                      isc_resourcevalue_t;    /*%< Resource Value */
- typedef unsigned int                  isc_result_t;           /*%< Result */
-+#ifndef ISC_PLATFORM_USE_NATIVE_RWLOCKS
- typedef struct isc_rwlock             isc_rwlock_t;           /*%< Read Write Lock */
-+#else
-+typedef pthread_rwlock_t              isc_rwlock_t;           /*%< Read Write Lock */
-+#endif
- typedef struct isc_sockaddr           isc_sockaddr_t;         /*%< Socket Address */
- typedef ISC_LIST(isc_sockaddr_t)      isc_sockaddrlist_t;     /*%< Socket Address List */
- typedef struct isc_socket             isc_socket_t;           /*%< Socket */
diff -r 99c00055983f -r f2efb13d3091 net/bind914/patches/patch-lib_isc_unix_socket.c
--- a/net/bind914/patches/patch-lib_isc_unix_socket.c   Fri Jun 14 16:05:25 2019 +0000
+++ b/net/bind914/patches/patch-lib_isc_unix_socket.c   Fri Jun 14 16:14:05 2019 +0000
@@ -1,4 +1,4 @@
-$NetBSD: patch-lib_isc_unix_socket.c,v 1.1 2019/04/30 03:34:34 taca Exp $
+$NetBSD: patch-lib_isc_unix_socket.c,v 1.2 2019/06/14 16:14:05 taca Exp $
 
 * Apply fixes from NetBSD base system.
 
@@ -12,370 +12,3 @@
                         (e) == 0)
  
  #define DLVL(x) ISC_LOGCATEGORY_GENERAL, ISC_LOGMODULE_SOCKET, ISC_LOG_DEBUG(x)
-@@ -366,6 +367,10 @@ struct isc__socket {
-       unsigned char           overflow; /* used for MSG_TRUNC fake */
- #endif
- 
-+      void                    *fdwatcharg;
-+      isc_sockfdwatch_t       fdwatchcb;
-+      int                     fdwatchflags;
-+      isc_task_t              *fdwatchtask;
-       unsigned int            dscp;
- };
- 
-@@ -452,10 +457,14 @@ static void free_socket(isc__socket_t **
- static isc_result_t allocate_socket(isc__socketmgr_t *, isc_sockettype_t,
-                                   isc__socket_t **);
- static void destroy(isc__socket_t **);
-+#if 0
- static void internal_accept(isc__socket_t *);
-+#endif
- static void internal_connect(isc__socket_t *);
- static void internal_recv(isc__socket_t *);
- static void internal_send(isc__socket_t *);
-+static void internal_fdwatch_write(isc__socket_t *);
-+static void internal_fdwatch_read(isc__socket_t *);
- static void process_cmsg(isc__socket_t *, struct msghdr *, isc_socketevent_t *);
- static void build_msghdr_send(isc__socket_t *, char *, isc_socketevent_t *,
-                             struct msghdr *, struct iovec *, size_t *);
-@@ -1576,6 +1585,7 @@ doio_recv(isc__socket_t *sock, isc_socke
-       case isc_sockettype_udp:
-       case isc_sockettype_raw:
-               break;
-+      case isc_sockettype_fdwatch:
-       default:
-               INSIST(0);
-               ISC_UNREACHABLE();
-@@ -1778,9 +1788,26 @@ socketclose(isc__socketthread_t *thread,
-        */
-       LOCK(&thread->fdlock[lockid]);
-       thread->fds[fd] = NULL;
--      thread->fdstate[fd] = CLOSE_PENDING;
-+      if (sock->type == isc_sockettype_fdwatch)
-+              thread->fdstate[fd] = CLOSED;
-+      else
-+              thread->fdstate[fd] = CLOSE_PENDING;
-       UNLOCK(&thread->fdlock[lockid]);
--      select_poke(thread->manager, thread->threadid, fd, SELECT_POKE_CLOSE);
-+      if (sock->type == isc_sockettype_fdwatch) {
-+              /*
-+               * The caller may close the socket once this function returns,
-+               * and `fd' may be reassigned for a new socket.  So we do
-+               * unwatch_fd() here, rather than defer it via select_poke().
-+               * Note: this may complicate data protection among threads and
-+               * may reduce performance due to additional locks.  One way to
-+               * solve this would be to dup() the watched descriptor, but we
-+               * take a simpler approach at this moment.
-+               */
-+              (void)unwatch_fd(thread, fd, SELECT_POKE_READ);
-+              (void)unwatch_fd(thread, fd, SELECT_POKE_WRITE);
-+      } else
-+              select_poke(thread->manager, thread->threadid, fd,
-+                  SELECT_POKE_CLOSE);
- 
-       inc_stats(thread->manager->stats, sock->statsindex[STATID_CLOSE]);
-       if (sock->active == 1) {
-@@ -2187,6 +2214,13 @@ opensocket(isc__socketmgr_t *manager, is
-                       }
- #endif
-                       break;
-+              case isc_sockettype_fdwatch:
-+                      /*
-+                       * We should not be called for isc_sockettype_fdwatch
-+                       * sockets.
-+                       */
-+                      INSIST(0);
-+                      break;
-               }
-       } else {
-               sock->fd = dup(dup_socket->fd);
-@@ -2485,6 +2519,7 @@ socket_create(isc_socketmgr_t *manager0,
- 
-       REQUIRE(VALID_MANAGER(manager));
-       REQUIRE(socketp != NULL && *socketp == NULL);
-+      REQUIRE(type != isc_sockettype_fdwatch);
- 
-       result = allocate_socket(manager, type, &sock);
-       if (result != ISC_R_SUCCESS)
-@@ -2605,6 +2640,7 @@ isc_socket_open(isc_socket_t *sock0) {
-        */
-       REQUIRE(sock->fd == -1);
-       REQUIRE(sock->threadid == -1);
-+      REQUIRE(sock->type != isc_sockettype_fdwatch);
- 
-       result = opensocket(sock->manager, sock, NULL);
-       if (result != ISC_R_SUCCESS) {
-@@ -2684,6 +2720,7 @@ isc_socket_close(isc_socket_t *sock0) {
- 
-       LOCK(&sock->lock);
- 
-+      REQUIRE(sock->type != isc_sockettype_fdwatch);
-       REQUIRE(sock->fd >= 0 && sock->fd < (int)sock->manager->maxsocks);
- 
-       INSIST(!sock->connecting);
-@@ -2714,6 +2751,24 @@ isc_socket_close(isc_socket_t *sock0) {
-       return (ISC_R_SUCCESS);
- }
- 
-+static void
-+dispatch_recv(isc__socket_t *sock) {
-+      if (sock->type != isc_sockettype_fdwatch) {
-+              internal_recv(sock);
-+      } else {
-+              internal_fdwatch_read(sock);
-+      }
-+}



Home | Main Index | Thread Index | Old Index