mirror of
https://github.com/NLnetLabs/unbound.git
synced 2026-02-18 10:09:27 -05:00
- rpz-zone-load, optimise canonical name compare tolower calls.
This commit is contained in:
parent
9cf1344960
commit
17f64b818e
1 changed files with 13 additions and 10 deletions
|
|
@ -100,6 +100,7 @@ int
|
|||
query_dname_compare(register uint8_t* d1, register uint8_t* d2)
|
||||
{
|
||||
register uint8_t lab1, lab2;
|
||||
register char ld1, ld2;
|
||||
log_assert(d1 && d2);
|
||||
lab1 = *d1++;
|
||||
lab2 = *d2++;
|
||||
|
|
@ -116,8 +117,8 @@ query_dname_compare(register uint8_t* d1, register uint8_t* d2)
|
|||
while(lab1--) {
|
||||
/* compare bytes first for speed */
|
||||
if(*d1 != *d2 &&
|
||||
tolower((unsigned char)*d1) != tolower((unsigned char)*d2)) {
|
||||
if(tolower((unsigned char)*d1) < tolower((unsigned char)*d2))
|
||||
(ld1=tolower((unsigned char)*d1)) != (ld2=tolower((unsigned char)*d2))) {
|
||||
if(ld1 < ld2)
|
||||
return -1;
|
||||
return 1;
|
||||
}
|
||||
|
|
@ -233,6 +234,7 @@ int
|
|||
dname_pkt_compare(sldns_buffer* pkt, uint8_t* d1, uint8_t* d2)
|
||||
{
|
||||
uint8_t len1, len2;
|
||||
register char ld1, ld2;
|
||||
int count1 = 0, count2 = 0;
|
||||
log_assert(pkt && d1 && d2);
|
||||
len1 = *d1++;
|
||||
|
|
@ -269,8 +271,8 @@ dname_pkt_compare(sldns_buffer* pkt, uint8_t* d1, uint8_t* d2)
|
|||
log_assert(len1 == len2 && len1 != 0);
|
||||
/* compare labels */
|
||||
while(len1--) {
|
||||
if(tolower((unsigned char)*d1) != tolower((unsigned char)*d2)) {
|
||||
if(tolower((unsigned char)*d1) < tolower((unsigned char)*d2))
|
||||
if((ld1=tolower((unsigned char)*d1)) != (ld2=tolower((unsigned char)*d2))) {
|
||||
if(ld1 < ld2)
|
||||
return -1;
|
||||
return 1;
|
||||
}
|
||||
|
|
@ -470,9 +472,10 @@ dname_count_size_labels(uint8_t* dname, size_t* size)
|
|||
static int
|
||||
memlowercmp(uint8_t* p1, uint8_t* p2, uint8_t len)
|
||||
{
|
||||
register char lp1, lp2;
|
||||
while(len--) {
|
||||
if(*p1 != *p2 && tolower((unsigned char)*p1) != tolower((unsigned char)*p2)) {
|
||||
if(tolower((unsigned char)*p1) < tolower((unsigned char)*p2))
|
||||
if(*p1 != *p2 && (lp1=tolower((unsigned char)*p1)) != (lp2=tolower((unsigned char)*p2))) {
|
||||
if(lp1 < lp2)
|
||||
return -1;
|
||||
return 1;
|
||||
}
|
||||
|
|
@ -523,15 +526,15 @@ dname_lab_cmp(uint8_t* d1, int labs1, uint8_t* d2, int labs2, int* mlabs)
|
|||
d1 += len1;
|
||||
d2 += len2;
|
||||
} else {
|
||||
register char ld1, ld2;
|
||||
/* memlowercmp is inlined here; or just like
|
||||
* if((c=memlowercmp(d1, d2, len1)) != 0) {
|
||||
* lastdiff = c;
|
||||
* lastmlabs = atlabel; } apart from d1++,d2++ */
|
||||
while(len1) {
|
||||
if(*d1 != *d2 && tolower((unsigned char)*d1)
|
||||
!= tolower((unsigned char)*d2)) {
|
||||
if(tolower((unsigned char)*d1) <
|
||||
tolower((unsigned char)*d2)) {
|
||||
if(*d1 != *d2 && (ld1=tolower((unsigned char)*d1))
|
||||
!= (ld2=tolower((unsigned char)*d2))) {
|
||||
if(ld1 < ld2) {
|
||||
lastdiff = -1;
|
||||
lastmlabs = atlabel;
|
||||
d1 += len1;
|
||||
|
|
|
|||
Loading…
Reference in a new issue