summaryrefslogtreecommitdiffstats
path: root/util/shmctl.c
diff options
context:
space:
mode:
authorkcwu <kcwu@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2005-02-26 04:14:25 +0800
committerkcwu <kcwu@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2005-02-26 04:14:25 +0800
commit3b64a185e87fdfd39db71bca063b6efb0c7ec92e (patch)
tree8678540a15b6a541d21f176ab46dbeb48d6cdfde /util/shmctl.c
parent58490fa9b998ccd714de75f48a9c1eb5f914995d (diff)
downloadpttbbs-3b64a185e87fdfd39db71bca063b6efb0c7ec92e.tar
pttbbs-3b64a185e87fdfd39db71bca063b6efb0c7ec92e.tar.gz
pttbbs-3b64a185e87fdfd39db71bca063b6efb0c7ec92e.tar.bz2
pttbbs-3b64a185e87fdfd39db71bca063b6efb0c7ec92e.tar.lz
pttbbs-3b64a185e87fdfd39db71bca063b6efb0c7ec92e.tar.xz
pttbbs-3b64a185e87fdfd39db71bca063b6efb0c7ec92e.tar.zst
pttbbs-3b64a185e87fdfd39db71bca063b6efb0c7ec92e.zip
* use fnv hash function for all hash.
* add version field in SHM. * clean up & reorder SHM, add gaps between arrays. * enlarge USHM_SIZE. * remove unused shmsweep.c. * WARNING, you need to stop bbs and clean old shm before run this revision. git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@2549 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
Diffstat (limited to 'util/shmctl.c')
-rw-r--r--util/shmctl.c31
1 files changed, 13 insertions, 18 deletions
diff --git a/util/shmctl.c b/util/shmctl.c
index 2933006d..afe60293 100644
--- a/util/shmctl.c
+++ b/util/shmctl.c
@@ -551,10 +551,13 @@ char *GV2str[] = {"dymaxactive", "toomanyusers",
int showglobal(int argc, char **argv)
{
int i;
- for( i = 0 ; i < 10 ; ++i )
- printf("GLOBALVAR[%d] = %d\n", i, SHM->GLOBALVAR[i]);
for( i = 0 ; GV2str[i] != NULL ; ++i )
printf("GV2.%s = %d\n", GV2str[i], SHM->GV2.v[i]);
+ if(argv[1]) {
+ int n=atoi(argv[1]);
+ if(n>(sizeof(SHM->GV2.v)/sizeof(int)))
+ n=sizeof(SHM->GV2.v)/sizeof(int);
+ }
return 0;
}
@@ -562,26 +565,18 @@ int setglobal(int argc, char **argv)
{
int where, value;
if( argc != 3 ){
- puts("usage: shmctl setglobal ([0-9]|GV2) newvalue");
+ puts("usage: shmctl setglobal (GV2) newvalue");
return 1;
}
- where = argv[1][0] - '0';
value = atoi(argv[2]);
- if( 0 <= where && where <= 9 ){
- printf("GLOBALVAR[%d] = %d -> ", where, SHM->GLOBALVAR[where]);
- printf("%d\n", SHM->GLOBALVAR[where] = value);
- return 0;
- }
- else{
- for( where = 0 ; GV2str[where] != NULL ; ++where )
- if( strcmp(GV2str[where], argv[1]) == 0 ){
- printf("GV2.%s = %d -> ", GV2str[where], SHM->GV2.v[where]);
- printf("%d\n", SHM->GV2.v[where] = value);
- return 0;
- }
- }
- printf("GLOBALVAR %s not found\n", argv[1]);
+ for( where = 0 ; GV2str[where] != NULL ; ++where )
+ if( strcmp(GV2str[where], argv[1]) == 0 ){
+ printf("GV2.%s = %d -> ", GV2str[where], SHM->GV2.v[where]);
+ printf("%d\n", SHM->GV2.v[where] = value);
+ return 0;
+ }
+ printf("SHM global variable %s not found\n", argv[1]);
return 1;
}