summaryrefslogtreecommitdiff
path: root/server/zserver.h
diff options
context:
space:
mode:
authorGravatar Jeffrey Hutzelman <jhutz@cmu.edu>2012-11-25 16:12:19 -0500
committerGravatar Jeffrey Hutzelman <jhutz@cmu.edu>2013-02-17 22:34:40 -0500
commit5f860ea89afb6c51b87e905d7354c7353d0a4066 (patch)
tree5097e0858d0d3a50245fa7db48df100be6bfe315 /server/zserver.h
parentc62bf1b7533ad07647828b82ad1600200378f492 (diff)
Use interned strings for realm and server names
Use interned strings instead of strdup() and fixed-size arrays for names of other realms and their servers. This gives immediate improvement in the form of doing fewer string compares when loading the realm.list, plus the obvious benefit of eliminating some fixed char arrays. It also paves the way for efficiently identifying existing realms and servers to be updated when reloading the realm.list.
Diffstat (limited to 'server/zserver.h')
-rw-r--r--server/zserver.h7
1 files changed, 4 insertions, 3 deletions
diff --git a/server/zserver.h b/server/zserver.h
index bb1f722..6cefe5d 100644
--- a/server/zserver.h
+++ b/server/zserver.h
@@ -112,14 +112,15 @@ struct _Destlist {
};
struct _ZRealm_server {
- char *name; /* server's hostname */
+ String *name; /* server's hostname */
struct sockaddr_in addr; /* server's address */
unsigned int usable :1; /* set once entry is usable */
unsigned int dontsend :1; /* private server, do not send */
};
struct _ZRealm {
- char name[REALM_SZ];
+ String *namestr; /* realm's name */
+ char *name; /* always namestr->string */
int count;
ZRealm_server *srvrs;
int idx; /* which server we are connected to */
@@ -132,7 +133,7 @@ struct _ZRealm {
};
struct _ZRealmname {
- char name[REALM_SZ];
+ String *name;
struct _ZRealm_server *servers;
int nused;
int nservers;