Deleted Added
full compact
dname.c (269257) dname.c (285206)
1/*
2 * util/data/dname.h - domain name handling
3 *
4 * Copyright (c) 2007, NLnet Labs. All rights reserved.
5 *
6 * This software is open source.
7 *
8 * Redistribution and use in source and binary forms, with or without

--- 100 unchanged lines hidden (view full) ---

109 return -1;
110 return 1;
111 }
112 log_assert(lab1 == lab2 && lab1 != 0);
113 /* compare lowercased labels. */
114 while(lab1--) {
115 /* compare bytes first for speed */
116 if(*d1 != *d2 &&
1/*
2 * util/data/dname.h - domain name handling
3 *
4 * Copyright (c) 2007, NLnet Labs. All rights reserved.
5 *
6 * This software is open source.
7 *
8 * Redistribution and use in source and binary forms, with or without

--- 100 unchanged lines hidden (view full) ---

109 return -1;
110 return 1;
111 }
112 log_assert(lab1 == lab2 && lab1 != 0);
113 /* compare lowercased labels. */
114 while(lab1--) {
115 /* compare bytes first for speed */
116 if(*d1 != *d2 &&
117 tolower((int)*d1) != tolower((int)*d2)) {
118 if(tolower((int)*d1) < tolower((int)*d2))
117 tolower((unsigned char)*d1) != tolower((unsigned char)*d2)) {
118 if(tolower((unsigned char)*d1) < tolower((unsigned char)*d2))
119 return -1;
120 return 1;
121 }
122 d1++;
123 d2++;
124 }
125 /* next pair of labels. */
126 lab1 = *d1++;

--- 6 unchanged lines hidden (view full) ---

133query_dname_tolower(uint8_t* dname)
134{
135 /* the dname is stored uncompressed */
136 uint8_t labellen;
137 labellen = *dname;
138 while(labellen) {
139 dname++;
140 while(labellen--) {
119 return -1;
120 return 1;
121 }
122 d1++;
123 d2++;
124 }
125 /* next pair of labels. */
126 lab1 = *d1++;

--- 6 unchanged lines hidden (view full) ---

133query_dname_tolower(uint8_t* dname)
134{
135 /* the dname is stored uncompressed */
136 uint8_t labellen;
137 labellen = *dname;
138 while(labellen) {
139 dname++;
140 while(labellen--) {
141 *dname = (uint8_t)tolower((int)*dname);
141 *dname = (uint8_t)tolower((unsigned char)*dname);
142 dname++;
143 }
144 labellen = *dname;
145 }
146}
147
148void
149pkt_dname_tolower(sldns_buffer* pkt, uint8_t* dname)

--- 12 unchanged lines hidden (view full) ---

162 lablen = *dname++;
163 if(count++ > MAX_COMPRESS_PTRS)
164 return;
165 continue;
166 }
167 if(dname+lablen >= sldns_buffer_end(pkt))
168 return;
169 while(lablen--) {
142 dname++;
143 }
144 labellen = *dname;
145 }
146}
147
148void
149pkt_dname_tolower(sldns_buffer* pkt, uint8_t* dname)

--- 12 unchanged lines hidden (view full) ---

162 lablen = *dname++;
163 if(count++ > MAX_COMPRESS_PTRS)
164 return;
165 continue;
166 }
167 if(dname+lablen >= sldns_buffer_end(pkt))
168 return;
169 while(lablen--) {
170 *dname = (uint8_t)tolower((int)*dname);
170 *dname = (uint8_t)tolower((unsigned char)*dname);
171 dname++;
172 }
173 if(dname >= sldns_buffer_end(pkt))
174 return;
175 lablen = *dname++;
176 }
177}
178

--- 72 unchanged lines hidden (view full) ---

251 log_assert(len2 <= LDNS_MAX_LABELLEN);
252 if(len1 != len2) {
253 if(len1 < len2) return -1;
254 return 1;
255 }
256 log_assert(len1 == len2 && len1 != 0);
257 /* compare labels */
258 while(len1--) {
171 dname++;
172 }
173 if(dname >= sldns_buffer_end(pkt))
174 return;
175 lablen = *dname++;
176 }
177}
178

--- 72 unchanged lines hidden (view full) ---

251 log_assert(len2 <= LDNS_MAX_LABELLEN);
252 if(len1 != len2) {
253 if(len1 < len2) return -1;
254 return 1;
255 }
256 log_assert(len1 == len2 && len1 != 0);
257 /* compare labels */
258 while(len1--) {
259 if(tolower((int)*d1++) != tolower((int)*d2++)) {
260 if(tolower((int)d1[-1]) < tolower((int)d2[-1]))
259 if(tolower((unsigned char)*d1++) != tolower((unsigned char)*d2++)) {
260 if(tolower((unsigned char)d1[-1]) < tolower((unsigned char)d2[-1]))
261 return -1;
262 return 1;
263 }
264 }
265 len1 = *d1++;
266 len2 = *d2++;
267 }
268 return 0;

--- 8 unchanged lines hidden (view full) ---

277
278 /* preserve case of query, make hash label by label */
279 lablen = *dname++;
280 while(lablen) {
281 log_assert(lablen <= LDNS_MAX_LABELLEN);
282 labuf[0] = lablen;
283 i=0;
284 while(lablen--)
261 return -1;
262 return 1;
263 }
264 }
265 len1 = *d1++;
266 len2 = *d2++;
267 }
268 return 0;

--- 8 unchanged lines hidden (view full) ---

277
278 /* preserve case of query, make hash label by label */
279 lablen = *dname++;
280 while(lablen) {
281 log_assert(lablen <= LDNS_MAX_LABELLEN);
282 labuf[0] = lablen;
283 i=0;
284 while(lablen--)
285 labuf[++i] = (uint8_t)tolower((int)*dname++);
285 labuf[++i] = (uint8_t)tolower((unsigned char)*dname++);
286 h = hashlittle(labuf, labuf[0] + 1, h);
287 lablen = *dname++;
288 }
289
290 return h;
291}
292
293hashvalue_t

--- 11 unchanged lines hidden (view full) ---

305 dname = sldns_buffer_at(pkt, PTR_OFFSET(lablen, *dname));
306 lablen = *dname++;
307 continue;
308 }
309 log_assert(lablen <= LDNS_MAX_LABELLEN);
310 labuf[0] = lablen;
311 i=0;
312 while(lablen--)
286 h = hashlittle(labuf, labuf[0] + 1, h);
287 lablen = *dname++;
288 }
289
290 return h;
291}
292
293hashvalue_t

--- 11 unchanged lines hidden (view full) ---

305 dname = sldns_buffer_at(pkt, PTR_OFFSET(lablen, *dname));
306 lablen = *dname++;
307 continue;
308 }
309 log_assert(lablen <= LDNS_MAX_LABELLEN);
310 labuf[0] = lablen;
311 i=0;
312 while(lablen--)
313 labuf[++i] = (uint8_t)tolower((int)*dname++);
313 labuf[++i] = (uint8_t)tolower((unsigned char)*dname++);
314 h = hashlittle(labuf, labuf[0] + 1, h);
315 lablen = *dname++;
316 }
317
318 return h;
319}
320
321void dname_pkt_copy(sldns_buffer* pkt, uint8_t* to, uint8_t* dname)

--- 96 unchanged lines hidden (view full) ---

418 * @param p2: label 2
419 * @param len: number of bytes to compare.
420 * @return: 0, -1, +1 comparison result.
421 */
422static int
423memlowercmp(uint8_t* p1, uint8_t* p2, uint8_t len)
424{
425 while(len--) {
314 h = hashlittle(labuf, labuf[0] + 1, h);
315 lablen = *dname++;
316 }
317
318 return h;
319}
320
321void dname_pkt_copy(sldns_buffer* pkt, uint8_t* to, uint8_t* dname)

--- 96 unchanged lines hidden (view full) ---

418 * @param p2: label 2
419 * @param len: number of bytes to compare.
420 * @return: 0, -1, +1 comparison result.
421 */
422static int
423memlowercmp(uint8_t* p1, uint8_t* p2, uint8_t len)
424{
425 while(len--) {
426 if(*p1 != *p2 && tolower((int)*p1) != tolower((int)*p2)) {
427 if(tolower((int)*p1) < tolower((int)*p2))
426 if(*p1 != *p2 && tolower((unsigned char)*p1) != tolower((unsigned char)*p2)) {
427 if(tolower((unsigned char)*p1) < tolower((unsigned char)*p2))
428 return -1;
429 return 1;
430 }
431 p1++;
432 p2++;
433 }
434 return 0;
435}

--- 39 unchanged lines hidden (view full) ---

475 d1 += len1;
476 d2 += len2;
477 } else {
478 /* memlowercmp is inlined here; or just like
479 * if((c=memlowercmp(d1, d2, len1)) != 0) {
480 * lastdiff = c;
481 * lastmlabs = atlabel; } apart from d1++,d2++ */
482 while(len1) {
428 return -1;
429 return 1;
430 }
431 p1++;
432 p2++;
433 }
434 return 0;
435}

--- 39 unchanged lines hidden (view full) ---

475 d1 += len1;
476 d2 += len2;
477 } else {
478 /* memlowercmp is inlined here; or just like
479 * if((c=memlowercmp(d1, d2, len1)) != 0) {
480 * lastdiff = c;
481 * lastmlabs = atlabel; } apart from d1++,d2++ */
482 while(len1) {
483 if(*d1 != *d2 && tolower((int)*d1)
484 != tolower((int)*d2)) {
485 if(tolower((int)*d1) <
486 tolower((int)*d2)) {
483 if(*d1 != *d2 && tolower((unsigned char)*d1)
484 != tolower((unsigned char)*d2)) {
485 if(tolower((unsigned char)*d1) <
486 tolower((unsigned char)*d2)) {
487 lastdiff = -1;
488 lastmlabs = atlabel;
489 d1 += len1;
490 d2 += len1;
491 break;
492 }
493 lastdiff = 1;
494 lastmlabs = atlabel;

--- 61 unchanged lines hidden (view full) ---

556 }
557 len += lablen+1;
558 if(len >= LDNS_MAX_DOMAINLEN-1) {
559 *s++ = '&';
560 *s = 0;
561 return;
562 }
563 while(lablen--) {
487 lastdiff = -1;
488 lastmlabs = atlabel;
489 d1 += len1;
490 d2 += len1;
491 break;
492 }
493 lastdiff = 1;
494 lastmlabs = atlabel;

--- 61 unchanged lines hidden (view full) ---

556 }
557 len += lablen+1;
558 if(len >= LDNS_MAX_DOMAINLEN-1) {
559 *s++ = '&';
560 *s = 0;
561 return;
562 }
563 while(lablen--) {
564 if(isalnum((int)*dname)
564 if(isalnum((unsigned char)*dname)
565 || *dname == '-' || *dname == '_'
566 || *dname == '*')
567 *s++ = *(char*)dname++;
568 else {
569 *s++ = '?';
570 dname++;
571 }
572 }

--- 210 unchanged lines hidden ---
565 || *dname == '-' || *dname == '_'
566 || *dname == '*')
567 *s++ = *(char*)dname++;
568 else {
569 *s++ = '?';
570 dname++;
571 }
572 }

--- 210 unchanged lines hidden ---