http://permalink.gmane.org/gmane.network.dns.unbound.user/2296
Index: Makefile =================================================================== RCS file: /cvs/ports/net/unbound/Makefile,v retrieving revision 1.42 diff -u -p -r1.42 Makefile --- Makefile 8 Jun 2012 21:58:17 -0000 1.42 +++ Makefile 21 Jul 2012 12:20:55 -0000 @@ -3,6 +3,7 @@ COMMENT= validating DNS resolver DISTNAME= unbound-1.4.17 +REVISION= 0 CATEGORIES= net MASTER_SITES= http://www.unbound.net/downloads/ Index: distinfo =================================================================== RCS file: /cvs/ports/net/unbound/distinfo,v retrieving revision 1.27 diff -u -p -r1.27 distinfo --- distinfo 8 Jun 2012 21:58:17 -0000 1.27 +++ distinfo 21 Jul 2012 12:20:55 -0000 @@ -1,5 +1,2 @@ -MD5 (unbound-1.4.17.tar.gz) = gS1JBkp4ySdllwoTZHNtpw== -RMD160 (unbound-1.4.17.tar.gz) = BTDQUb9+ywIzN10GIMoyDAJoM3M= -SHA1 (unbound-1.4.17.tar.gz) = /qTYEsA69HN+9nGsMLe3QA00ZRY= SHA256 (unbound-1.4.17.tar.gz) = JjfWvaQGXXq/HNEe4lv8jpFiQRU8LTMd6Zq2xj3149M= SIZE (unbound-1.4.17.tar.gz) = 3585122 Index: patches/patch-services_mesh_c =================================================================== RCS file: patches/patch-services_mesh_c diff -N patches/patch-services_mesh_c --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-services_mesh_c 21 Jul 2012 12:20:55 -0000 @@ -0,0 +1,28 @@ +$OpenBSD$ + +r2718 upstream, fixes bug#452 (regression introduced in 1.4.17). + +--- services/mesh.c.orig Thu Nov 10 18:44:06 2011 ++++ services/mesh.c Sat Jul 21 13:20:14 2012 +@@ -676,6 +676,7 @@ int mesh_attach_sub(struct module_qstate* qstate, stru + /* find it, if not, create it */ + struct mesh_area* mesh = qstate->env->mesh; + struct mesh_state* sub = mesh_area_find(mesh, qinfo, qflags, prime); ++ int was_detached; + if(mesh_detect_cycle_found(qstate, sub)) { + verbose(VERB_ALGO, "attach failed, cycle detected"); + return 0; +@@ -706,9 +707,12 @@ int mesh_attach_sub(struct module_qstate* qstate, stru + *newq = &sub->s; + } else + *newq = NULL; ++ was_detached = (sub->super_set.count == 0); + if(!mesh_state_attachment(qstate->mesh_info, sub)) + return 0; +- if(!sub->reply_list && !sub->cb_list && sub->super_set.count == 1) { ++ /* if it was a duplicate attachment, the count was not zero before */ ++ if(!sub->reply_list && !sub->cb_list && was_detached && ++ sub->super_set.count == 1) { + /* it used to be detached, before this one got added */ + log_assert(mesh->num_detached_states > 0); + mesh->num_detached_states--;
