[BUILD] auth: don't use unnamed unions
unnamed unions are not compatible with older compilers (eg: gcc 2.95) so
name it "u" instead.
diff --git a/include/types/auth.h b/include/types/auth.h
index d278de6..f7e3dd6 100644
--- a/include/types/auth.h
+++ b/include/types/auth.h
@@ -36,11 +36,9 @@
struct list list;
struct acl_cond *cond; /* acl condition to meet */
unsigned int action;
- union {
- struct {
- char *realm;
- } http_auth;
- };
+ struct {
+ char *realm;
+ } http_auth;
};
struct auth_users {
@@ -50,7 +48,7 @@
union {
char *groups;
unsigned int group_mask;
- };
+ } u;
};
struct userlist {
diff --git a/src/auth.c b/src/auth.c
index 4740ca4..93af8d6 100644
--- a/src/auth.c
+++ b/src/auth.c
@@ -208,7 +208,7 @@
* if user matches but group does not,
* it makes no sens to check passwords
*/
- if (group_mask && !(group_mask & u->group_mask))
+ if (group_mask && !(group_mask & u->u.group_mask))
return 0;
if (!(u->flags & AU_O_INSECURE)) {
diff --git a/src/cfgparse.c b/src/cfgparse.c
index a30a887..0b165e6 100644
--- a/src/cfgparse.c
+++ b/src/cfgparse.c
@@ -4223,7 +4223,7 @@
cur_arg += 2;
continue;
} else if (!strcmp(args[cur_arg], "groups")) {
- newuser->groups = strdup(args[cur_arg + 1]);
+ newuser->u.groups = strdup(args[cur_arg + 1]);
cur_arg += 2;
continue;
} else {
@@ -5110,10 +5110,10 @@
unsigned int group_mask = 0;
char *group = NULL;
- if (!curuser->groups)
+ if (!curuser->u.groups)
continue;
- while ((group = strtok(group?NULL:curuser->groups, ","))) {
+ while ((group = strtok(group?NULL:curuser->u.groups, ","))) {
for (g = 0; g < curuserlist->grpcnt; g++)
if (!strcmp(curuserlist->groups[g], group))
@@ -5129,8 +5129,8 @@
group_mask |= (1 << g);
}
- free(curuser->groups);
- curuser->group_mask = group_mask;
+ free(curuser->u.groups);
+ curuser->u.group_mask = group_mask;
}
for (g = 0; g < curuserlist->grpcnt; g++) {
@@ -5151,7 +5151,7 @@
goto out;
}
- curuser->group_mask |= (1 << g);
+ curuser->u.group_mask |= (1 << g);
}
free(curuserlist->groupusers[g]);