|
--- /dev/null
|
|
+++ b/common/dn_skipname.c
|
|
@@ -0,0 +1,51 @@
|
|
+#include <errno.h>
|
|
+#include <resolv.h>
|
|
+
|
|
+/* Ripped from glibc 2.4 sources. */
|
|
+
|
|
+/*
|
|
+ * ns_name_skip(ptrptr, eom)
|
|
+ * Advance *ptrptr to skip over the compressed name it points at.
|
|
+ * return:
|
|
+ * 0 on success, -1 (with errno set) on failure.
|
|
+ */
|
|
+int ns_name_skip(const u_char **ptrptr, const u_char *eom)
|
|
+{
|
|
+ const u_char *cp;
|
|
+ u_int n;
|
|
+
|
|
+ cp = *ptrptr;
|
|
+ while (cp < eom && (n = *cp++) != 0)
|
|
+ {
|
|
+ /* Check for indirection. */
|
|
+ switch (n & NS_CMPRSFLGS) {
|
|
+ case 0: /* normal case, n == len */
|
|
+ cp += n;
|
|
+ continue;
|
|
+ case NS_CMPRSFLGS: /* indirection */
|
|
+ cp++;
|
|
+ break;
|
|
+ default: /* illegal type */
|
|
+ errno = EMSGSIZE;
|
|
+ return (-1);
|
|
+ }
|
|
+ break;
|
|
+ }
|
|
+ if (cp > eom)
|
|
+ {
|
|
+ errno = EMSGSIZE;
|
|
+ return (-1);
|
|
+ }
|
|
+ *ptrptr = cp;
|
|
+ return (0);
|
|
+}
|
|
+
|
|
+int dn_skipname(const u_char *ptr, const u_char *eom)
|
|
+{
|
|
+ const u_char *saveptr = ptr;
|
|
+
|
|
+ if(ns_name_skip(&ptr, eom) == -1)
|
|
+ return (-1);
|
|
+ return (ptr - saveptr);
|
|
+}
|
|
+
|
|
--- a/unix-console/Makefile
|
|
+++ b/unix-console/Makefile
|
|
@@ -10,9 +10,9 @@
|
|
# $Date: 2007-01-15 11:04:27 $
|
|
# **********************************************************/
|
|
|
|
-SRCS = main.c ../common/tun.c ../common/aiccu.c ../common/hash_md5.c ../common/hash_sha1.c ../common/common.c ../common/heartbeat.c ../common/tic.c ../common/ayiya.c ../common/aiccu_test.c ../common/resolver.c
|
|
+SRCS = main.c ../common/tun.c ../common/aiccu.c ../common/hash_md5.c ../common/hash_sha1.c ../common/common.c ../common/heartbeat.c ../common/tic.c ../common/ayiya.c ../common/aiccu_test.c ../common/resolver.c ../common/dn_skipname.c
|
|
INCS = ../common/tun.h ../common/aiccu.h ../common/hash_md5.h ../common/hash_sha1.h ../common/common.h ../common/heartbeat.h ../common/tic.h ../common/ayiya.h ../common/resolver.h
|
|
-OBJS = main.o ../common/tun.o ../common/aiccu.o ../common/hash_md5.o ../common/hash_sha1.o ../common/common.o ../common/heartbeat.o ../common/tic.o ../common/ayiya.o ../common/aiccu_test.o ../common/resolver.o
|
|
+OBJS = main.o ../common/tun.o ../common/aiccu.o ../common/hash_md5.o ../common/hash_sha1.o ../common/common.o ../common/heartbeat.o ../common/tic.o ../common/ayiya.o ../common/aiccu_test.o ../common/resolver.o ../common/dn_skipname.o
|
|
|
|
# New features not fully implemented and thus disabled for now
|
|
#CFLAGS += -D NEWSTUFF_TSP -D NEWSTUFF_TEEPEE
|