~mdw
/
become
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
88c62e2
)
Use rewritten class handler. Support `none' class.
author
mdw
<mdw>
Wed, 17 Sep 1997 10:26:11 +0000
(10:26 +0000)
committer
mdw
<mdw>
Wed, 17 Sep 1997 10:26:11 +0000
(10:26 +0000)
src/name.c
patch
|
blob
|
blame
|
history
src/name.h
patch
|
blob
|
blame
|
history
diff --git
a/src/name.c
b/src/name.c
index
02e0241
..
91f045a
100644
(file)
--- a/
src/name.c
+++ b/
src/name.c
@@
-1,6
+1,6
@@
/* -*-c-*-
*
/* -*-c-*-
*
- * $Id: name.c,v 1.
4 1997/08/20 16:17:59
mdw Exp $
+ * $Id: name.c,v 1.
5 1997/09/17 10:26:11
mdw Exp $
*
* Looking up of names in symbol tables
*
*
* Looking up of names in symbol tables
*
@@
-29,7
+29,10
@@
/*----- Revision history --------------------------------------------------*
*
* $Log: name.c,v $
/*----- Revision history --------------------------------------------------*
*
* $Log: name.c,v $
- * Revision 1.4 1997/08/20 16:17:59 mdw
+ * Revision 1.5 1997/09/17 10:26:11 mdw
+ * Use rewritten class handler. Support `none' class.
+ *
+ * Revision 1.4 1997/08/20 16:17:59 mdw
* Replace `name_reinit' by `name_end' for more sensible restart.
*
* Revision 1.3 1997/08/07 09:49:39 mdw
* Replace `name_reinit' by `name_end' for more sensible restart.
*
* Revision 1.3 1997/08/07 09:49:39 mdw
@@
-99,12
+102,9
@@
static name *name__get(const char *p, unsigned type)
{
unsigned f;
name *n = sym_find(&name__table, p, -1, sizeof(*n), &f);
{
unsigned f;
name *n = sym_find(&name__table, p, -1, sizeof(*n), &f);
- if (!f) {
- sym_table *t = xmalloc(sizeof(*t));
- sym_createTable(t);
- n->c = class_create(type, t);
- }
- return (n->c->type == type ? n : 0);
+ if (!f)
+ n->c = 0;
+ return ((n->c && !(n->c->type & type)) ? 0 : n);
}
/* --- @name__sanitise@ --- *
}
/* --- @name__sanitise@ --- *
@@
-156,20
+156,20
@@
static void name__users(void)
userdb_iterateUsers();
while ((pw = userdb_nextUser()) != 0) {
name *n;
userdb_iterateUsers();
while ((pw = userdb_nextUser()) != 0) {
name *n;
-
in
t u = pw->pw_uid;
+
uid_
t u = pw->pw_uid;
/* --- First, add the user to the table --- */
if (name__sanitise(pw->pw_name, buf, sizeof(buf)) &&
(n = name__get(buf, clType_user)) != 0)
/* --- First, add the user to the table --- */
if (name__sanitise(pw->pw_name, buf, sizeof(buf)) &&
(n = name__get(buf, clType_user)) != 0)
-
sym_find(n->c->t, (char *)&u, sizeof(u), sizeof(sym_base), 0
);
+
n->c = class_addUser(n->c, u
);
/* --- Now handle the user's default group --- */
if ((gr = userdb_groupById(pw->pw_gid)) != 0 &&
name__sanitise(gr->gr_name, buf, sizeof(buf)) &&
(n = name__get(buf, clType_user)) != 0)
/* --- Now handle the user's default group --- */
if ((gr = userdb_groupById(pw->pw_gid)) != 0 &&
name__sanitise(gr->gr_name, buf, sizeof(buf)) &&
(n = name__get(buf, clType_user)) != 0)
-
sym_find(n->c->t, (char *)&u, sizeof(u), sizeof(sym_base), 0
);
+
n->c = class_addUser(n->c, u
);
}
}
}
}
@@
-192,7
+192,6
@@
static void name__groups(void)
userdb_iterateGroups();
while ((gr = userdb_nextGroup()) != 0) {
name *n;
userdb_iterateGroups();
while ((gr = userdb_nextGroup()) != 0) {
name *n;
- int u;
if (name__sanitise(gr->gr_name, buf, sizeof(buf)) &&
(n = name__get(buf, clType_user)) != 0) {
if (name__sanitise(gr->gr_name, buf, sizeof(buf)) &&
(n = name__get(buf, clType_user)) != 0) {
@@
-200,10
+199,8
@@
static void name__groups(void)
/* --- Now add all of the members --- */
for (p = gr->gr_mem; *p; p++) {
/* --- Now add all of the members --- */
for (p = gr->gr_mem; *p; p++) {
- if ((pw = userdb_userByName(*p)) != 0) {
- u = pw->pw_uid;
- sym_find(n->c->t, (char *)&u, sizeof(u), sizeof(sym_base), 0);
- }
+ if ((pw = userdb_userByName(*p)) != 0)
+ n->c = class_addUser(n->c, pw->pw_uid);
}
}
}
}
}
}
@@
-269,7
+266,7
@@
static int name__scan(netg *n, const char *host, const char *user,
memcpy(&in, h->h_addr, sizeof(in));
if ((a = inet_ntoa(in)) == 0)
goto done_host;
memcpy(&in, h->h_addr, sizeof(in));
if ((a = inet_ntoa(in)) == 0)
goto done_host;
- s
ym_find(sc->h->c->t, a, -1, sizeof(sym_base), 0
);
+ s
c->h->c = class_addString(sc->h->c, a
);
done_host:;
}
done_host:;
}
@@
-277,7
+274,6
@@
static int name__scan(netg *n, const char *host, const char *user,
if (sc->f & f_user && user) {
struct passwd *pw;
if (sc->f & f_user && user) {
struct passwd *pw;
- int u;
/* --- First ensure that I have a user class --- */
/* --- First ensure that I have a user class --- */
@@
-294,8
+290,7
@@
static int name__scan(netg *n, const char *host, const char *user,
if ((pw = userdb_userByName(user)) == 0)
goto done_user;
if ((pw = userdb_userByName(user)) == 0)
goto done_user;
- u = pw->pw_uid;
- sym_find(sc->u->c->t, (char *)&u, sizeof(u), sizeof(sym_base), 0);
+ sc->u->c = class_addUser(sc->u->c, pw->pw_uid);
done_user:;
}
done_user:;
}
@@
-354,9
+349,9
@@
void name_init(void)
name__groups();
name__netgroups();
name__groups();
name__netgroups();
- /* --- Finally add in the `all'
clas
s --- *
+ /* --- Finally add in the `all'
and `none' classe
s --- *
*
*
- * Do that now, to prevent
it
being overwritten by the above.
+ * Do that now, to prevent
them
being overwritten by the above.
*/
{
*/
{
@@
-367,6
+362,11
@@
void name_init(void)
if (f)
class_dec(n->c);
n->c = class_all;
if (f)
class_dec(n->c);
n->c = class_all;
+
+ n = sym_find(&name__table, "none", -1, sizeof(name), &f);
+ if (f)
+ class_dec(n->c);
+ n->c = class_none;
}
}
}
}
@@
-438,7
+438,7
@@
void name_dump(void)
trace(TRACE_DEBUG, "name: dumping names");
for (sym_createIter(&i, &name__table); (n = sym_next(&i)) != 0; ) {
trace(TRACE_DEBUG, "name: dumping `%s'", n->base.name);
trace(TRACE_DEBUG, "name: dumping names");
for (sym_createIter(&i, &name__table); (n = sym_next(&i)) != 0; ) {
trace(TRACE_DEBUG, "name: dumping `%s'", n->base.name);
- class_dump(n->c);
+ class_dump(n->c
, 1
);
}
#endif
}
}
#endif
}
diff --git
a/src/name.h
b/src/name.h
index
85e170e
..
bc24d65
100644
(file)
--- a/
src/name.h
+++ b/
src/name.h
@@
-1,6
+1,6
@@
/* -*-c-*-
*
/* -*-c-*-
*
- * $Id: name.h,v 1.
3 1997/08/20 16:18:05
mdw Exp $
+ * $Id: name.h,v 1.
4 1997/09/17 10:26:11
mdw Exp $
*
* Looking up of names in symbol tables
*
*
* Looking up of names in symbol tables
*
@@
-29,7
+29,10
@@
/*----- Revision history --------------------------------------------------*
*
* $Log: name.h,v $
/*----- Revision history --------------------------------------------------*
*
* $Log: name.h,v $
- * Revision 1.3 1997/08/20 16:18:05 mdw
+ * Revision 1.4 1997/09/17 10:26:11 mdw
+ * Use rewritten class handler. Support `none' class.
+ *
+ * Revision 1.3 1997/08/20 16:18:05 mdw
* Replace `name_reinit' by `name_end' for more sensible restart.
*
* Revision 1.2 1997/08/04 10:24:24 mdw
* Replace `name_reinit' by `name_end' for more sensible restart.
*
* Revision 1.2 1997/08/04 10:24:24 mdw
@@
-61,7
+64,7
@@
typedef struct name {
sym_base base; /* Base block for symbol table */
typedef struct name {
sym_base base; /* Base block for symbol table */
- class
def *c;
/* Base class pointer */
+ class
_node *c;
/* Base class pointer */
} name;
/*----- Functions provided ------------------------------------------------*/
} name;
/*----- Functions provided ------------------------------------------------*/