|
Lines 32-37
Link Here
|
| 32 |
#include <arpa/inet.h> |
32 |
#include <arpa/inet.h> |
| 33 |
#include <stdio.h> |
33 |
#include <stdio.h> |
| 34 |
#include <grp.h> |
34 |
#include <grp.h> |
|
|
35 |
#include <pwd.h> |
| 35 |
#include <ctype.h> |
36 |
#include <ctype.h> |
| 36 |
#include <syslog.h> |
37 |
#include <syslog.h> |
| 37 |
#include <unistd.h> |
38 |
#include <unistd.h> |
|
Lines 152-158
Link Here
|
| 152 |
int i; |
153 |
int i; |
| 153 |
|
154 |
|
| 154 |
for (i = 0; login_info.internet_addr[i].s_addr; i++) |
155 |
for (i = 0; login_info.internet_addr[i].s_addr; i++) |
| 155 |
printf("%s%s", login_info.internet_addr[i].s_addr == -1 ? |
156 |
printf("%s%s", login_info.internet_addr[i].s_addr == INADDR_NONE ? |
| 156 |
"(see error log)" : inet_ntoa(login_info.internet_addr[i]), |
157 |
"(see error log)" : inet_ntoa(login_info.internet_addr[i]), |
| 157 |
login_info.internet_addr[i + 1].s_addr ? " " : "\n"); |
158 |
login_info.internet_addr[i + 1].s_addr ? " " : "\n"); |
| 158 |
} |
159 |
} |
|
Lines 261-271
Link Here
|
| 261 |
static int match_group(login_info) |
262 |
static int match_group(login_info) |
| 262 |
struct login_info *login_info; |
263 |
struct login_info *login_info; |
| 263 |
{ |
264 |
{ |
|
|
265 |
struct passwd *passwd; |
| 264 |
struct group *group; |
266 |
struct group *group; |
| 265 |
char *tok; |
267 |
char *tok; |
| 266 |
char **memp; |
268 |
char **memp; |
| 267 |
|
269 |
|
| 268 |
if ((tok = need_token()) && (group = getgrnam(tok))) { |
270 |
if ((tok = need_token()) && |
|
|
271 |
(passwd = getpwnam(login_info->user)) && (group = getgrnam(tok))) { |
| 272 |
if (passwd->pw_gid == group->gr_gid) |
| 273 |
return (1); |
| 269 |
for (memp = group->gr_mem; *memp; memp++) |
274 |
for (memp = group->gr_mem; *memp; memp++) |
| 270 |
if (strcmp(login_info->user, *memp) == 0) |
275 |
if (strcmp(login_info->user, *memp) == 0) |
| 271 |
return (1); |
276 |
return (1); |
|
Lines 454-459
Link Here
|
| 454 |
|
459 |
|
| 455 |
#ifdef TEST |
460 |
#ifdef TEST |
| 456 |
|
461 |
|
|
|
462 |
int |
| 457 |
main(argc, argv) |
463 |
main(argc, argv) |
| 458 |
int argc; |
464 |
int argc; |
| 459 |
char **argv; |
465 |
char **argv; |
|
Lines 469-475
Link Here
|
| 469 |
exit(0); |
475 |
exit(0); |
| 470 |
} |
476 |
} |
| 471 |
if (_PATH_SKEYACCESS[0] != '/') |
477 |
if (_PATH_SKEYACCESS[0] != '/') |
| 472 |
printf("Warning: this program uses control file: %s\n", KEYACCESS); |
478 |
printf("Warning: this program uses control file: %s\n", _PATH_SKEYACCESS); |
| 473 |
openlog("login", LOG_PID, LOG_AUTH); |
479 |
openlog("login", LOG_PID, LOG_AUTH); |
| 474 |
|
480 |
|
| 475 |
user = argv[1]; |
481 |
user = argv[1]; |