summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/resolv.h4
-rw-r--r--libc/inet/resolv.c15
2 files changed, 16 insertions, 3 deletions
diff --git a/include/resolv.h b/include/resolv.h
index cba26f004..0afb37507 100644
--- a/include/resolv.h
+++ b/include/resolv.h
@@ -332,9 +332,9 @@ __END_DECLS
#if 0
#define b64_ntop __b64_ntop
#define b64_pton __b64_pton
-#define dn_comp __dn_comp
#define dn_count_labels __dn_count_labels
#endif
+#define dn_comp __dn_comp
#define dn_expand __dn_expand
#if 0
#define dn_skipname __dn_skipname
@@ -404,9 +404,9 @@ const u_char * p_fqname (const u_char *, const u_char *, FILE *) __THROW;
const char * p_option (u_long option) __THROW;
char * p_secstodate (u_long) __THROW;
int dn_count_labels (const char *) __THROW;
+#endif
int dn_comp (const char *, u_char *, int, u_char **, u_char **)
__THROW;
-#endif
int dn_expand (const u_char *, const u_char *, const u_char *,
char *, int) __THROW;
#if 0
diff --git a/libc/inet/resolv.c b/libc/inet/resolv.c
index 64e99baa5..a74ab30af 100644
--- a/libc/inet/resolv.c
+++ b/libc/inet/resolv.c
@@ -2659,6 +2659,20 @@ int dn_expand(const u_char *msg, const u_char *eom, const u_char *src,
dst[0] = '\0';
return n;
}
+
+/*
+ * Pack domain name 'exp_dn' in presentation form into 'comp_dn'.
+ * Return the size of the compressed name or -1.
+ * 'length' is the size of the array pointed to by 'comp_dn'.
+ */
+int
+dn_comp(const char *src, u_char *dst, int dstsiz,
+ u_char **dnptrs, u_char **lastdnptr)
+{
+ return ns_name_compress(src, dst, (size_t) dstsiz,
+ (const u_char **) dnptrs,
+ (const u_char **) lastdnptr);
+}
#endif /* L_res_comp */
@@ -3823,4 +3837,3 @@ void ns_put32(unsigned long src, unsigned char *dst)
/* Unimplemented: */
/* res_mkquery */
/* res_send */
-/* dn_comp */