#define MAX_DATA_LABELS 4
+#define DPRINTF (void)
+// *#define DPRINTF printf
+
static const char out_table[32]="0123456789abcdefghijklmnopqrstuv";
static void dump_enc(struct dnsdomainenc *be, const char *what) {
- printf("ENC p=%08"PRIx32"/%-2d o=[%02d]|%02x %s\n",
- be->pending, be->npending,
- (int)(be->out - be->bufstop), *be->out,
- what);
+ DPRINTF("ENC p=%08"PRIx32"/%-2d o=[%02d]|%02x %s\n",
+ be->pending, be->npending,
+ (int)(be->out - be->bufstop), *be->out,
+ what);
}
static inline int enoughinput(struct dnsdomainenc *be) {
static void dump_dec(struct dnsdomaindec *bd, const char *what) {
int remain=bd->in - bd->databuf;
- printf("DEC4 i=[%02d]|%02x p=%08"PRIx32"/%-2d %s\n",
- remain, remain ? *(bd->in-1) : 0,
- bd->pending, bd->npending,
- what);
+ DPRINTF("DEC4 i=[%02d]|%02x p=%08"PRIx32"/%-2d %s\n",
+ remain, remain ? *(bd->in-1) : 0,
+ bd->pending, bd->npending,
+ what);
}
struct labelinpacket {
for (;;) {
if (domain==endpacket)
return RCODE_FORMERR;
- printf("DEC1 dom=|[%02d]|%02x[%02d]\n", domain-packet,
- *domain, endpacket-domain);
+ DPRINTF("DEC1 dom=|[%02d]|%02x[%02d]\n", domain-packet,
+ *domain, endpacket-domain);
unsigned b=*domain++;
if (!b) {
totallen++;
return RCODE_FORMERR;
labels[nlabels].bytes=domain;
labels[nlabels].len=b;
- printf("DEC1 labels[%d]=%.*s\n", nlabels,
- labels[nlabels].len, labels[nlabels].bytes);
+ DPRINTF("DEC1 labels[%d]=%.*s\n", nlabels,
+ labels[nlabels].len, labels[nlabels].bytes);
nlabels++;
domain += b;
}
for (i=0; i<mydompathlen; i++) {
int l=strlen(mydompath[i]);
const struct labelinpacket *got=&labels[nlabels-mydompathlen+i];
- printf("DEC2 [%d] %s ?= %.*s\n", i, mydompath[i],
- got->len, got->bytes);
+ DPRINTF("DEC2 [%d] %s ?= %.*s\n", i, mydompath[i],
+ got->len, got->bytes);
if (got->len != l || memcmp(got->bytes, mydompath[i], l))
return FAKERCODE_NOTAUTH;
}
/* OK, it's our domain and it has some data and a good
* number of labels. Wow. */
uint8_t *copyto=bd->databuf;
- printf("DEC3");
+ DPRINTF("DEC3");
for (i=nlabels-mydompathlen-1; i>=0; i--) {
const uint8_t *p=labels[i].bytes;
for (j=0; j<labels[i].len; j++) {
printf(" %02x",val);
*copyto++=val;
}
- printf(" .");
+ DPRINTF(" .");
}
- printf("\n");
+ DPRINTF("\n");
assert(copyto <= bd->databuf+sizeof(bd->databuf));
bd->in=copyto;
return 0;