summaryrefslogtreecommitdiffstats
path: root/util/uhash_loader.c
diff options
context:
space:
mode:
authorin2 <in2@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2002-06-07 05:35:23 +0800
committerin2 <in2@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2002-06-07 05:35:23 +0800
commite8fc08b9800ba86163e5bf43469cdc9f4b478b13 (patch)
treeeb2dcd75cad19ac57b7e9d9cc29c63a850d8ad86 /util/uhash_loader.c
parentc0a6419aeceaeb93d5d9ccde393236d67ff8c72f (diff)
downloadpttbbs-e8fc08b9800ba86163e5bf43469cdc9f4b478b13.tar
pttbbs-e8fc08b9800ba86163e5bf43469cdc9f4b478b13.tar.gz
pttbbs-e8fc08b9800ba86163e5bf43469cdc9f4b478b13.tar.bz2
pttbbs-e8fc08b9800ba86163e5bf43469cdc9f4b478b13.tar.lz
pttbbs-e8fc08b9800ba86163e5bf43469cdc9f4b478b13.tar.xz
pttbbs-e8fc08b9800ba86163e5bf43469cdc9f4b478b13.tar.zst
pttbbs-e8fc08b9800ba86163e5bf43469cdc9f4b478b13.zip
only one shared memory
git-svn-id: http://opensvn.csie.org/pttbbs/pttbbs/trunk/pttbbs@296 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
Diffstat (limited to 'util/uhash_loader.c')
-rw-r--r--util/uhash_loader.c28
1 files changed, 14 insertions, 14 deletions
diff --git a/util/uhash_loader.c b/util/uhash_loader.c
index 1a963829..5fadd48e 100644
--- a/util/uhash_loader.c
+++ b/util/uhash_loader.c
@@ -1,4 +1,4 @@
-/* $Id: uhash_loader.c,v 1.2 2002/03/09 17:44:30 in2 Exp $ */
+/* $Id: uhash_loader.c,v 1.3 2002/06/06 21:34:14 in2 Exp $ */
/* standalone uhash loader -- jochang */
#include <stdio.h>
#include <unistd.h>
@@ -24,7 +24,7 @@ void add_to_uhash(int n, userec_t *id);
void fill_uhash(void);
void load_uhash(void);
-uhash_t *uhash;
+SHM_t *SHM;
int main() {
setgid(BBSGID);
@@ -36,7 +36,7 @@ int main() {
void load_uhash(void) {
int shmid;
- shmid = shmget(UHASH_KEY, sizeof(uhash_t), IPC_CREAT | 0600);
+ shmid = shmget(SHM_KEY, sizeof(SHM_t), IPC_CREAT | 0600);
/* note we didn't use IPC_EXCL here.
so if the loading fails,
(like .PASSWD doesn't exist)
@@ -48,20 +48,20 @@ void load_uhash(void) {
exit(1);
}
- uhash = (void *) shmat(shmid, NULL, 0);
- if (uhash == (void *) -1)
+ SHM = (void *) shmat(shmid, NULL, 0);
+ if (SHM == (void *) -1)
{
perror("shmat");
exit(1);
}
/* in case it's not assumed zero, this becomes a race... */
- uhash->loaded = 0;
+ SHM->loaded = 0;
fill_uhash();
/* ok... */
- uhash->loaded = 1;
+ SHM->loaded = 1;
}
void fill_uhash(void)
@@ -70,7 +70,7 @@ void fill_uhash(void)
usernumber = 0;
for (fd = 0; fd < (1 << HASH_BITS); fd++)
- uhash->hash_head[fd] = -1;
+ SHM->hash_head[fd] = -1;
if ((fd = open(FN_PASSWD, O_RDONLY)) > 0)
{
@@ -101,7 +101,7 @@ void fill_uhash(void)
perror("open");
exit(1);
}
- uhash->number = usernumber;
+ SHM->number = usernumber;
printf("total %d names loaded.\n", usernumber);
}
unsigned string_hash(unsigned char *s)
@@ -118,12 +118,12 @@ unsigned string_hash(unsigned char *s)
void add_to_uhash(int n, userec_t *user)
{
int *p, h = string_hash(user->userid);
- strcpy(uhash->userid[n], user->userid);
- uhash->money[n] = user->money;
- p = &(uhash->hash_head[h]);
+ strcpy(SHM->userid[n], user->userid);
+ SHM->money[n] = user->money;
+ p = &(SHM->hash_head[h]);
while (*p != -1)
- p = &(uhash->next_in_hash[*p]);
+ p = &(SHM->next_in_hash[*p]);
- uhash->next_in_hash[*p = n] = -1;
+ SHM->next_in_hash[*p = n] = -1;
}