From 176489286dd8330948385eb3dc344339bd934d20 Mon Sep 17 00:00:00 2001 From: Jilles Tjoelker Date: Thu, 6 Dec 2007 22:45:26 +0100 Subject: [PATCH 1/2] Mention vhost in serverlog connect log message. --- src/s_serv.c | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/src/s_serv.c b/src/s_serv.c index df8dfe4..d460e2d 100644 --- a/src/s_serv.c +++ b/src/s_serv.c @@ -1476,6 +1476,7 @@ serv_connect(struct server_conf *server_p, struct Client *by) struct Client *client_p; struct irc_sockaddr_storage myipnum; int fd; + char vhoststr[HOSTIPLEN]; s_assert(server_p != NULL); if(server_p == NULL) @@ -1565,13 +1566,6 @@ serv_connect(struct server_conf *server_p, struct Client *by) SetConnecting(client_p); dlinkAddTail(client_p, &client_p->node, &global_client_list); - /* log */ - ilog(L_SERVER, "Connecting to %s[%s] port %d (%s)", server_p->name, server_p->host, server_p->port, -#ifdef IPV6 - server_p->aftype == AF_INET6 ? "IPv6" : -#endif - (server_p->aftype == AF_INET ? "IPv4" : "?")); - if(ServerConfVhosted(server_p)) { memcpy(&myipnum, &server_p->my_ipnum, sizeof(myipnum)); @@ -1598,6 +1592,13 @@ serv_connect(struct server_conf *server_p, struct Client *by) #endif else { + /* log */ + ilog(L_SERVER, "Connecting to %s[%s] port %d (%s)", server_p->name, server_p->host, server_p->port, +#ifdef IPV6 + server_p->aftype == AF_INET6 ? "IPv6" : +#endif + (server_p->aftype == AF_INET ? "IPv4" : "?")); + comm_connect_tcp(client_p->localClient->fd, server_p->host, server_p->port, NULL, 0, serv_connect_callback, client_p, server_p->aftype, @@ -1605,6 +1606,15 @@ serv_connect(struct server_conf *server_p, struct Client *by) return 1; } + /* log */ + inetntop_sock((struct sockaddr *)&myipnum, vhoststr, sizeof vhoststr); + ilog(L_SERVER, "Connecting to %s[%s] port %d (%s) (vhost %s)", server_p->name, server_p->host, server_p->port, +#ifdef IPV6 + server_p->aftype == AF_INET6 ? "IPv6" : +#endif + (server_p->aftype == AF_INET ? "IPv4" : "?"), vhoststr); + + comm_connect_tcp(client_p->localClient->fd, server_p->host, server_p->port, (struct sockaddr *) &myipnum, GET_SS_LEN(myipnum), serv_connect_callback, client_p, From 1cda7a9cb29987c393cb338eba0eb703ed9a095f Mon Sep 17 00:00:00 2001 From: Jilles Tjoelker Date: Sat, 8 Dec 2007 19:44:18 +0100 Subject: [PATCH 2/2] Change meaning of "bits" in FNV hash functions to bitlen instead of 32-bitlen. Do reduction like recommended by http://www.isthe.com/chongo/tech/comp/fnv/index.html#xor-fold --- include/hash.h | 8 ++++---- src/hash.c | 12 ++++++++---- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/include/hash.h b/include/hash.h index 38319f0..4a6e72e 100644 --- a/include/hash.h +++ b/include/hash.h @@ -44,19 +44,19 @@ extern struct Dictionary *nd_dict; #define FNV1_32_INIT 0x811c9dc5UL /* Client hash table size, used in hash.c/s_debug.c */ -#define U_MAX_BITS (32-17) +#define U_MAX_BITS 17 #define U_MAX 131072 /* 2^17 */ /* Channel hash table size, hash.c/s_debug.c */ -#define CH_MAX_BITS (32-16) +#define CH_MAX_BITS 16 #define CH_MAX 65536 /* 2^16 */ /* hostname hash table size */ -#define HOST_MAX_BITS (32-17) +#define HOST_MAX_BITS 17 #define HOST_MAX 131072 /* 2^17 */ /* RESV/XLINE hash table size, used in hash.c */ -#define R_MAX_BITS (32-10) +#define R_MAX_BITS 10 #define R_MAX 1024 /* 2^10 */ diff --git a/src/hash.c b/src/hash.c index 6f2bd65..9ff4b12 100644 --- a/src/hash.c +++ b/src/hash.c @@ -109,7 +109,8 @@ fnv_hash_upper(const unsigned char *s, int bits) h ^= ToUpper(*s++); h += (h<<1) + (h<<4) + (h<<7) + (h << 8) + (h << 24); } - h = (h >> bits) ^ (h & ((2^bits)-1)); + if (bits < 32) + h = ((h >> bits) ^ h) & ((1<> bits) ^ (h & ((2^bits)-1)); + if (bits < 32) + h = ((h >> bits) ^ h) & ((1<> bits) ^ (h & ((2^bits)-1)); + if (bits < 32) + h = ((h >> bits) ^ h) & ((1<> bits) ^ (h & ((2^bits)-1)); + if (bits < 32) + h = ((h >> bits) ^ h) & ((1<