FreeBSD Bugzilla – Attachment 103332 Details for
Bug 143223
[MAINTAINER] dns/mydns-ng: Fix some bugs
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
mydns-ng
mydns-ng (text/plain), 7.74 KB, created by
Hung-Yi Chen
on 2010-01-25 22:00:13 UTC
(
hide
)
Description:
mydns-ng
Filename:
MIME Type:
Creator:
Hung-Yi Chen
Created:
2010-01-25 22:00:13 UTC
Size:
7.74 KB
patch
obsolete
>===> Generating patch >===> Viewing diff with more >diff -ruN --exclude=CVS /usr/ports/dns/mydns-ng.orig/Makefile /usr/ports/dns/mydns-ng/Makefile >--- /usr/ports/dns/mydns-ng.orig/Makefile 2009-08-24 01:31:35.000000000 +0800 >+++ /usr/ports/dns/mydns-ng/Makefile 2010-01-26 05:30:27.000000000 +0800 >@@ -6,7 +6,7 @@ > # > > PORTNAME= mydns-ng >-PORTREVISION= 1 >+PORTREVISION= 2 > PORTVERSION= 1.2.8.27 > CATEGORIES= dns databases > MASTER_SITES= SF/${PORTNAME}/mydns/${PORTVERSION} >diff -ruN --exclude=CVS /usr/ports/dns/mydns-ng.orig/files/patch-src_mydns-1.2.8_main.c /usr/ports/dns/mydns-ng/files/patch-src_mydns-1.2.8_main.c >--- /usr/ports/dns/mydns-ng.orig/files/patch-src_mydns-1.2.8_main.c 1970-01-01 08:00:00.000000000 +0800 >+++ /usr/ports/dns/mydns-ng/files/patch-src_mydns-1.2.8_main.c 2010-01-26 05:28:06.000000000 +0800 >@@ -0,0 +1,100 @@ >+--- src/mydns/main.c.orig 2010-01-26 05:17:05.000000000 +0800 >++++ src/mydns/main.c 2010-01-26 05:22:38.000000000 +0800 >+@@ -513,11 +513,11 @@ >+ /* Close any TCP connections and any NOTIFY sockets */ >+ for (t = TaskP->head; t; t = TaskP->head) { >+ if (t->protocol == SOCK_STREAM && t->fd >= 0) >+- sockclose(t->fd); >++ close(t->fd); >+ else if (t->protocol == SOCK_DGRAM >+ && (t->status & (ReqTask|TickTask|RunTask)) >+ && t->fd >= 0) >+- sockclose(t->fd); >++ close(t->fd); >+ dequeue(t); >+ } >+ } >+@@ -747,7 +747,7 @@ >+ if (shutting_down) server->pid = -1; >+ else { >+ if (server->listener) dequeue(server->listener); >+- sockclose(server->serverfd); >++ close(server->serverfd); >+ RELEASE(server); >+ array_store(Servers, n, NULL); >+ if (n == 0) server = spawn_server(primary_initial_tasks); >+@@ -1164,7 +1164,7 @@ >+ >+ #if HAVE_POLL >+ #if DEBUG_ENABLED >+- DebugX("enabled", 1, _("Selecting for IO numfds = %d, timeout = %s(%d)"), numfds, >++ DebugX("enabled", 1, _("Polling for IO numfds = %d, timeout = %s(%d)"), numfds, >+ (timeoutWanted<0)?"no" >+ :(timeoutWanted==0)?"poll":"yes", timeoutWanted); >+ #endif >+@@ -1175,6 +1175,10 @@ >+ if (errno == EAGAIN) { /* Could fail here but will log and retry */ >+ Warn(_("server_loop() received EAGAIN - retrying")); >+ continue; >++ } else { >++#if DEBUG_ENABLED >++ DebugX("enabled", 1, _("poll(): error %d: %s"), errno, strerror(errno)); >++#endif >+ } >+ RELEASE(items); >+ if (errno == EINVAL) { >+@@ -1213,6 +1217,9 @@ >+ >+ if (rv < 0) { >+ if (errno == EINTR) continue; >++#if DEBUG_ENABLED >++ DebugX("enabled", 1, _("select(): error %d: %s"), errno, strerror(errno)); >++#endif >+ if (errno == EBADF) { >+ /* As we do not get told which FD failed here then purge and try again */ >+ purge_bad_tasks(); >+@@ -1408,6 +1415,9 @@ >+ Warn(_("server_loop() received EAGAIN - retrying")); >+ continue; >+ } >++#if DEBUG_ENABLED >++ DebugX("enabled", 1, _("server_loop(): poll() errro %d: %s"), errno, strerror(errno)); >++#endif >+ RELEASE(items); >+ if (errno == EINVAL) { >+ Err(_("server_loop() received EINVAL consistency failure in call to poll/select")); >+@@ -1445,6 +1455,9 @@ >+ >+ if (rv < 0) { >+ if (errno == EINTR) continue; >++#if DEBUG_ENABLED >++ DebugX("enabled", 1, _("server_loop(): select() errro %d: %s"), errno, strerror(errno)); >++#endif >+ if (errno == EBADF) { >+ /* As we do not get told which FD failed here then purge and try again */ >+ purge_bad_tasks(); >+@@ -1466,9 +1479,6 @@ >+ if (FD_ISSET(fd, &efd)) { >+ item->revents |= POLLERR; >+ } >+-#if DEBUG_ENABLED >+- DebugX("enabled", 1, _("Item fd = %d, events = %x, revents = %x"), fd, item->events, item->revents); >+-#endif >+ } >+ } >+ >+@@ -1476,6 +1486,14 @@ >+ #error You must have either poll (preferred) or select to compile this code >+ #endif >+ #endif >++#if DEBUG_ENABLED >++ /* Debug socket states */ >++ for (i = 0; i < numfds; i++) { >++ struct pollfd *item = &items[i]; >++ int fd = item->fd; >++ DebugX("enabled", 1, _("Item fd = %d, events = %x, revents = %x"), fd, item->events, item->revents); >++ } >++#endif >+ gettick(); >+ >+ if (shutting_down) { break; } >diff -ruN --exclude=CVS /usr/ports/dns/mydns-ng.orig/files/patch-src_mydns-1.2.8_resolve.c /usr/ports/dns/mydns-ng/files/patch-src_mydns-1.2.8_resolve.c >--- /usr/ports/dns/mydns-ng.orig/files/patch-src_mydns-1.2.8_resolve.c 1970-01-01 08:00:00.000000000 +0800 >+++ /usr/ports/dns/mydns-ng/files/patch-src_mydns-1.2.8_resolve.c 2010-01-26 05:28:31.000000000 +0800 >@@ -0,0 +1,76 @@ >+--- src/mydns/resolve.c.orig 2010-01-26 05:23:29.000000000 +0800 >++++ src/mydns/resolve.c 2010-01-26 05:25:46.000000000 +0800 >+@@ -292,6 +292,7 @@ >+ register MYDNS_RR *rr = NULL; >+ taskexec_t rv = 0; >+ int recurs = wildcard_recursion; >++ char *savelabel = label; >+ >+ #if DEBUG_ENABLED && DEBUG_RESOLVE >+ DebugX("resolve", 1, _("%s: resolve_label(%s, %s, %s, %s, %d)"), desctask(t), >+@@ -312,6 +313,34 @@ >+ return (rv); >+ } >+ >++ /* No exact match */ >++ /* Check for NS delegation */ >++ while (*label) { >++ if ((rr = find_rr(t, soa, DNS_QTYPE_NS, label))) { >++ char *newfqdn; >++ if (LASTCHAR(label) == '.') { >++ newfqdn = STRDUP(label); >++ } else { >++ ASPRINTF(&newfqdn, "%s.%s", label, soa->origin); >++ } >++ rv = process_rr(t, AUTHORITY, qtype, newfqdn, soa, label, rr, level); >++ mydns_rr_free(rr); >++ RELEASE(newfqdn); >++ add_authority_ns(t, section, soa, label); >++#if DEBUG_ENABLED && DEBUG_RESOLVE >++ DebugX("resolve", 1, _("%s: resolve_label(%s) returning results %s"), desctask(t), >++ fqdn, task_exec_name(rv)); >++#endif >++ return (rv); >++ } >++ label = strchr(label, '.'); >++ if (!label) break; >++ label++; >++ } >++ /* No NS delegation. */ >++ /* Restore label, it may have been modified above */ >++ label = savelabel; >++ >+ /* >+ * No exact match. >+ * If `label' isn't empty, replace the first part of the label with `*' >+@@ -420,30 +449,6 @@ >+ } >+ >+ NOWILDCARDMATCH: >+- /* STILL no match - check for NS records for child delegation */ >+- while (*label) { >+- if ((rr = find_rr(t, soa, DNS_QTYPE_NS, label))) { >+- char *newfqdn; >+- if (LASTCHAR(label) == '.') { >+- newfqdn = STRDUP(label); >+- } else { >+- ASPRINTF(&newfqdn, "%s.%s", label, soa->origin); >+- } >+- rv = process_rr(t, AUTHORITY, qtype, newfqdn, soa, label, rr, level); >+- mydns_rr_free(rr); >+- RELEASE(newfqdn); >+- add_authority_ns(t, section, soa, label); >+-#if DEBUG_ENABLED && DEBUG_RESOLVE >+- DebugX("resolve", 1, _("%s: resolve_label(%s) returning results %s"), desctask(t), >+- fqdn, task_exec_name(rv)); >+-#endif >+- return (rv); >+- } >+- label = strchr(label, '.'); >+- if (!label) break; >+- label++; >+- } >+- >+ return (TASK_EXECUTED); >+ } >+ /*--- resolve_label() ---------------------------------------------------------------------------*/ >diff -ruN --exclude=CVS /usr/ports/dns/mydns-ng.orig/files/patch-src_mydns-1.2.8_servercomms.c /usr/ports/dns/mydns-ng/files/patch-src_mydns-1.2.8_servercomms.c >--- /usr/ports/dns/mydns-ng.orig/files/patch-src_mydns-1.2.8_servercomms.c 1970-01-01 08:00:00.000000000 +0800 >+++ /usr/ports/dns/mydns-ng/files/patch-src_mydns-1.2.8_servercomms.c 2010-01-26 05:28:52.000000000 +0800 >@@ -0,0 +1,16 @@ >+--- src/mydns/servercomms.c.orig 2010-01-26 05:26:08.000000000 +0800 >++++ src/mydns/servercomms.c 2010-01-26 05:26:45.000000000 +0800 >+@@ -406,7 +406,12 @@ >+ DebugX("servercomms", 1, _("%s: Server comms tick - master has not pinged for %d seconds"), desctask(t), >+ lastseen); >+ #endif >+- named_shutdown(0); >++ if (abs(lastseen) > 10*KEEPALIVE) { >++ Notice(_("Possible clock jump: master has not pinged for %d seconds"), lastseen); >++ } else { >++ Notice(_("Client shutdown: %s: master has not pinged for %d seconds"), desctask(t), lastseen); >++ named_shutdown(0); >++ } >+ } >+ >+ return TASK_CONTINUE; >===> Done
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 143223
: 103332