38 |
return(FALSE); |
return(FALSE); |
39 |
} |
} |
40 |
|
|
41 |
IPACLLIST *ipacllist_new(CONFIGFILECACHE *cf, int section, char *name) |
/* TODO: ... don't just press on if syntax is not good ... */ |
42 |
|
|
43 |
|
IPACLLIST *ipacllist_new(CONFIGFILECACHE *cf, int section, char *name, char acceptchar, int defaultret) |
44 |
{ |
{ |
45 |
int occur; |
int occur; |
46 |
char *setting; |
char *setting; |
48 |
|
|
49 |
occur = 1; |
occur = 1; |
50 |
new->count = 0; |
new->count = 0; |
51 |
|
new->defaultret = defaultret; |
52 |
new->list = NULL; |
new->list = NULL; |
53 |
|
|
54 |
while ((setting = getconfigdata(cf, section, name, |
while ((setting = getconfigdata(cf, section, name, |
66 |
netmask = strchr(ipaddr, '/'); |
netmask = strchr(ipaddr, '/'); |
67 |
reallocwrapper(sizeof(IPACL) * (new->count + 1), |
reallocwrapper(sizeof(IPACL) * (new->count + 1), |
68 |
(void *)&(new->list)); |
(void *)&(new->list)); |
69 |
new->list[new->count].accept = (*settingt == 'A') || |
new->list[new->count].accept = (*settingt == acceptchar) || |
70 |
(*settingt == 'a'); |
(*settingt == (char)tolower((int)acceptchar)); |
71 |
|
|
72 |
if ((*ipaddr == '(') && (ipaddr[strlen(ipaddr)-1] == ')')) |
if ((*ipaddr == '(') && (ipaddr[strlen(ipaddr)-1] == ')')) |
73 |
{ |
{ |
121 |
freewrapper(list); |
freewrapper(list); |
122 |
} |
} |
123 |
|
|
124 |
int user_allowed(IPACLLIST *list, int ip, char *hostname) |
int ipacllist_query(IPACLLIST *list, int ip, char *hostname) |
125 |
{ |
{ |
126 |
int pos = 0; |
int pos = 0; |
127 |
int mip, mip2; |
int mip, mip2; |
147 |
break; |
break; |
148 |
} |
} |
149 |
} |
} |
150 |
return(FALSE); |
return(list->defaultret); |
151 |
} |
} |