chiark / gitweb /
+ Bugfixes:
[adns] / src / reply.c
index bda52a9080938fef9f0d9526c8a7de6d90b60d2a..2691f679d31cce4ac4b77be2ec8a05bea1e75f95 100644 (file)
@@ -8,7 +8,7 @@
  *
  *  It is part of adns, which is
  *    Copyright (C) 1997-2000 Ian Jackson <ian@davenant.greenend.org.uk>
- *    Copyright (C) 1999 Tony Finch <dot@dotat.at>
+ *    Copyright (C) 1999-2000 Tony Finch <dot@dotat.at>
  *  
  *  This program is free software; you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
@@ -198,7 +198,8 @@ void adns__procdgram(adns_state ads, const byte *dgram, int dglen,
        qu->cname_begin= rdstart;
        qu->cname_dglen= dglen;
        st= adns__parse_domain(ads,serv,qu, &qu->vb,
-                              qu->flags & adns_qf_quotefail_cname ? 0 : pdf_quoteok,
+                              qu->flags & adns_qf_quotefail_cname
+                              ? 0 : pdf_quoteok,
                               dgram,dglen, &rdstart,rdstart+rdlength);
        if (!qu->vb.used) goto x_truncated;
        if (st) { adns__query_fail(qu,st); return; }
@@ -257,7 +258,7 @@ void adns__procdgram(adns_state ads, const byte *dgram, int dglen,
       /* We still wanted to look for the SOA so we could find the TTL. */
       adns__update_expires(qu,soattl,now);
 
-      if (qu->flags & adns_qf_search) {
+      if (qu->flags & adns_qf_search && !qu->cname_dgram) {
        adns__search_next(ads,qu,now);
       } else {
        adns__query_fail(qu,adns_s_nxdomain);