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 --- |