diff options
author | kcwu <kcwu@63ad8ddf-47c3-0310-b6dd-a9e9d9715204> | 2009-05-24 23:39:22 +0800 |
---|---|---|
committer | kcwu <kcwu@63ad8ddf-47c3-0310-b6dd-a9e9d9715204> | 2009-05-24 23:39:22 +0800 |
commit | a04771ffc6435c1dc838e599a66f66fcc981b3ad (patch) | |
tree | 402721e117e96e1fdeddb646bc5b5d212ec713d5 | |
parent | 976a9b5362a02669041bbdf0666ca9d403de7dd0 (diff) | |
download | pttbbs-a04771ffc6435c1dc838e599a66f66fcc981b3ad.tar pttbbs-a04771ffc6435c1dc838e599a66f66fcc981b3ad.tar.gz pttbbs-a04771ffc6435c1dc838e599a66f66fcc981b3ad.tar.bz2 pttbbs-a04771ffc6435c1dc838e599a66f66fcc981b3ad.tar.lz pttbbs-a04771ffc6435c1dc838e599a66f66fcc981b3ad.tar.xz pttbbs-a04771ffc6435c1dc838e599a66f66fcc981b3ad.tar.zst pttbbs-a04771ffc6435c1dc838e599a66f66fcc981b3ad.zip |
- optimize ip->desc lookup loop
git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@4475 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
-rw-r--r-- | daemon/fromd/ip_desc_db.c | 3 | ||||
-rw-r--r-- | mbbsd/mbbsd.c | 3 |
2 files changed, 4 insertions, 2 deletions
diff --git a/daemon/fromd/ip_desc_db.c b/daemon/fromd/ip_desc_db.c index bd1b85d6..1870a9d3 100644 --- a/daemon/fromd/ip_desc_db.c +++ b/daemon/fromd/ip_desc_db.c @@ -91,9 +91,10 @@ int ip_desc_db_reload(const char * cfgfile) const char * ip_desc_db_lookup(const char * ip) { int i; + uint32_t ipaddr = htonl(ipstr2int(ip)); for (i = 0; i < db_len; i++) { - if (db[i].network == (htonl(ipstr2int(ip)) & db[i].netmask)) { + if (db[i].network == (ipaddr & db[i].netmask)) { return db[i].desc; } } diff --git a/mbbsd/mbbsd.c b/mbbsd/mbbsd.c index 1deaee01..4ae920a4 100644 --- a/mbbsd/mbbsd.c +++ b/mbbsd/mbbsd.c @@ -924,9 +924,10 @@ static int where(const char *from) { int i; + uint32_t ipaddr = ipstr2int(from); for (i = 0; i < SHM->home_num; i++) { - if ((SHM->home_ip[i] & SHM->home_mask[i]) == (ipstr2int(from) & SHM->home_mask[i])) { + if ((SHM->home_ip[i] & SHM->home_mask[i]) == (ipaddr & SHM->home_mask[i])) { return i; } } |