From 249866e3d1e11dc72eaa1305f4bb479ded92ef38 Mon Sep 17 00:00:00 2001 From: Jannis Hoffmann Date: Tue, 9 Jul 2024 13:58:20 +0200 Subject: reorganized file structure Moved c files into src/. Corrected VERSION file. Removed BUILD and FILES. --- dnsstub/dns_dfd.c | 76 ------------------------------------------------------- 1 file changed, 76 deletions(-) delete mode 100644 dnsstub/dns_dfd.c (limited to 'dnsstub/dns_dfd.c') diff --git a/dnsstub/dns_dfd.c b/dnsstub/dns_dfd.c deleted file mode 100644 index 756a1f8..0000000 --- a/dnsstub/dns_dfd.c +++ /dev/null @@ -1,76 +0,0 @@ -#include "error.h" -#include "alloc.h" -#include "byte.h" -#include "dnsresolv.h" - -/** - @file dns_dfd.c - @author djb - @source ucspi-tcp - @brief domain name qualification (domain from dot) -*/ - -int dns_domain_fromdot(char **out,const char *buf,unsigned int n) -{ - char label[63]; - unsigned int labellen = 0; /* <= sizeof label */ - char name[255]; - unsigned int namelen = 0; /* <= sizeof name */ - char ch; - char *x; - - errno = EPROTO; - - for (;;) { - if (!n) break; - ch = *buf++; --n; - if (ch == '.') { - if (labellen) { - if (namelen + labellen + 1 > sizeof(name)) return 0; - name[namelen++] = labellen; - byte_copy(name + namelen,labellen,label); - namelen += labellen; - labellen = 0; - } - continue; - } - if (ch == '\\') { // octal -> decimal - if (!n) break; - ch = *buf++; --n; - if ((ch >= '0') && (ch <= '7')) { - ch -= '0'; - if (n && (*buf >= '0') && (*buf <= '7')) { - ch <<= 3; - ch += *buf - '0'; - ++buf; --n; - if (n && (*buf >= '0') && (*buf <= '7')) { - ch <<= 3; - ch += *buf - '0'; - ++buf; --n; - } - } - } - } - if (labellen >= sizeof(label)) return 0; - label[labellen++] = ch; - } - - if (labellen) { - if (namelen + labellen + 1 > sizeof(name)) return 0; - name[namelen++] = labellen; - byte_copy(name + namelen,labellen,label); - namelen += labellen; - labellen = 0; - } - - if (namelen + 1 > sizeof(name)) return 0; - name[namelen++] = 0; - - x = alloc(namelen); - if (!x) return DNS_MEM; - byte_copy(x,namelen,name); - - if (*out) alloc_free(*out); - *out = x; - return 1; -} -- cgit v1.2.3