chiark / gitweb /
do away with postsort - the server does that for us
authorian <ian>
Wed, 5 Apr 2006 00:20:21 +0000 (00:20 +0000)
committerian <ian>
Wed, 5 Apr 2006 00:20:21 +0000 (00:20 +0000)
TODO
src/internal.h
src/query.c
src/types.c

diff --git a/TODO b/TODO
index 71e4c9d..d6b1632 100644 (file)
--- a/TODO
+++ b/TODO
@@ -18,3 +18,17 @@ WISHLIST:
 * `Nameserver sent bad response' should produce a hexdump in the log
   (see eg mail to ian@davenant Mon, 25 Oct 2004 14:19:46 +0100 re
   `compressed datagram contains loop')
+
+
+
+
+static void postsort_srv(adns_state ads, void *array, int nobjs,
+                        const struct typeinfo *typei) {
+  fprintf(stderr,"(postsort_srv)\n");
+  /* tests:
+   *  dig -t srv _srv._tcp.test.iwj.relativity.greenend.org.uk.
+   *   ./adnshost_s -t srv- _sip._udp.voip.net.cam.ac.uk.
+   *   ./adnshost_s -t srv- _jabber._tcp.jabber.org
+   */
+}
+
index 5559229..55fb2ad 100644 (file)
@@ -159,12 +159,6 @@ typedef struct typeinfo {
    * string.  On successful return, label_r[] and *ll_io are filled in
    * and *p_io points to *pe or just after the label-ending `.'.  */
 
-  void (*postsort)(adns_state ads, void *array, int nobjs,
-                  const struct typeinfo *typei);
-  /* Called immediately after the RRs have been sorted, and may rearrange
-   * them.  (This is really for the benefit of SRV's bizarre weighting
-   * stuff.)  May be 0 to mean nothing needs to be done.
-   */
 } typeinfo;
 
 adns_status adns__qdpl_normal(adns_state ads,
index 0b62ff6..3c98040 100644 (file)
@@ -537,9 +537,6 @@ void adns__query_done(adns_query qu) {
                  qu->typei->diff_needswap,
                qu->ads);
   }
-  if (ans->nrrs && qu->typei->postsort) {
-    qu->typei->postsort(qu->ads, ans->rrs.bytes, ans->nrrs, qu->typei);
-  }
 
   ans->expires= qu->expires;
   parent= qu->parent;
index 966f570..cfe7850 100644 (file)
@@ -63,7 +63,7 @@
  * _mailbox                   (pap +pap_mailbox822)
  * _rp                        (pa)
  * _soa                       (pa,mf,cs)
- * _srv*                      (qdpl,(pap),pa,mf,di,(csp),cs,postsort)
+ * _srv*                      (qdpl,(pap),pa,mf,di,(csp),cs)
  * _flat                      (mf)
  *
  * within each section:
@@ -76,7 +76,6 @@
  *    mf_*
  *    csp_*
  *    cs_*
- *    postsort_*
  */
 
 /*
@@ -1004,7 +1003,7 @@ static adns_status cs_soa(vbuf *vb, const void *datap) {
 }
 
 /*
- * _srv*  (pa*2,di,cs*2,qdpl,postsort)
+ * _srv*  (pa*2,di,cs*2,qdpl)
  */
 
 static adns_status qdpl_srv(adns_state ads,
@@ -1121,16 +1120,6 @@ static adns_status cs_srvha(vbuf *vb, const void *datap) {
   return csp_hostaddr(vb,&rrp->ha);
 }
 
-static void postsort_srv(adns_state ads, void *array, int nobjs,
-                        const struct typeinfo *typei) {
-  fprintf(stderr,"(postsort_srv)\n");
-  /* tests:
-   *  dig -t srv _srv._tcp.test.iwj.relativity.greenend.org.uk.
-   *   ./adnshost_s -t srv- _sip._udp.voip.net.cam.ac.uk.
-   *   ./adnshost_s -t srv- _jabber._tcp.jabber.org
-   */
-}
-
 /*
  * _flat   (mf)
  */
@@ -1148,13 +1137,13 @@ static void mf_flat(adns_query qu, void *data) { }
 
 #define DEEP_TYPE(code,rrt,fmt,memb,parser,comparer,printer)   \
  { adns_r_##code, rrt,fmt,TYPESZ_M(memb), mf_##memb,           \
-      printer,parser,comparer, adns__qdpl_normal,0 }
+      printer,parser,comparer, adns__qdpl_normal }
 #define FLAT_TYPE(code,rrt,fmt,memb,parser,comparer,printer)   \
  { adns_r_##code, rrt,fmt,TYPESZ_M(memb), mf_flat,             \
-     printer,parser,comparer, adns__qdpl_normal,0 }
-#define XTRA_TYPE(code,rrt,fmt,memb,parser,comparer,printer,qdpl,postsort) \
- { adns_r_##code, rrt,fmt,TYPESZ_M(memb), mf_##memb,                      \
-    printer,parser,comparer,qdpl,postsort }
+     printer,parser,comparer, adns__qdpl_normal }
+#define XTRA_TYPE(code,rrt,fmt,memb,parser,comparer,printer,qdpl)      \
+ { adns_r_##code, rrt,fmt,TYPESZ_M(memb), mf_##memb,                   \
+    printer,parser,comparer,qdpl }
 
 static const typeinfo typeinfos[] = {
 /* Must be in ascending order of rrtype ! */
@@ -1169,15 +1158,13 @@ DEEP_TYPE(hinfo,  "HINFO", 0, intstrpair,pa_hinfo,   0,        cs_hinfo      ),
 DEEP_TYPE(mx_raw, "MX",   "raw",intstr,  pa_mx_raw,  di_mx_raw,cs_inthost    ),
 DEEP_TYPE(txt,    "TXT",   0,   manyistr,pa_txt,     0,        cs_txt        ),
 DEEP_TYPE(rp_raw, "RP",   "raw",strpair, pa_rp,      0,        cs_rp         ),
-XTRA_TYPE(srv_raw,"SRV",  "raw",srvraw , pa_srvraw,  di_srv,   cs_srvraw,
-                                                      qdpl_srv, postsort_srv),
+XTRA_TYPE(srv_raw,"SRV",  "raw",srvraw , pa_srvraw, di_srv,cs_srvraw,qdpl_srv),
 
 FLAT_TYPE(addr,   "A",  "addr", addr,    pa_addr,    di_addr,  cs_addr       ),
 DEEP_TYPE(ns,     "NS", "+addr",hostaddr,pa_hostaddr,di_hostaddr,cs_hostaddr ),
 DEEP_TYPE(ptr,    "PTR","checked",str,   pa_ptr,     0,        cs_domain     ),
 DEEP_TYPE(mx,     "MX", "+addr",inthostaddr,pa_mx,   di_mx,    cs_inthostaddr),
-XTRA_TYPE(srv,    "SRV","+addr",srvha,   pa_srvha,   di_srv,   cs_srvha,
-                                                      qdpl_srv, postsort_srv),
+XTRA_TYPE(srv,    "SRV","+addr",srvha,   pa_srvha,  di_srv,cs_srvha, qdpl_srv),
 
 DEEP_TYPE(soa,    "SOA","822",  soa,     pa_soa,     0,        cs_soa        ),
 DEEP_TYPE(rp,     "RP", "822",  strpair, pa_rp,      0,        cs_rp         ),