>а если заменить на
>int nset = sigmask(SIGALRM) | sigmask(SIGUSR1); Спасибо! Так компиляция прошла дальше и tac_plus.c откомпилировался, но вылезла другая ошибка:
make@tiss:/home/bs/at+.n#
gcc -pipe -O2 -g -DLINUX -DGLIBC -D_GNU_SOURCE -DTAC_PLUS_PIDFILE=\"/var/run/tac_plus.pid\" -DWHOLOG=\"/var/run/utmp\" -DMAXSESS -DAEXT -DESERV -DONEVENT -c -o default_fn.o default_fn.c
default_fn.c:31: warning: static declaration for `login' follows non-static
default_fn.c: In function `default_fn':
default_fn.c:129: warning: passing arg 1 of `login' from incompatible pointer type
default_fn.c:129: error: too many arguments to function `login'
default_fn.c: In function `login':
default_fn.c:183: error: argument `data' doesn't match prototype
default_fn.c:31: error: prototype declaration
default_fn.c:183: error: number of arguments doesn't match prototype
default_fn.c:31: error: prototype declaration
make: *** [default_fn.o] Error 1
root@tiss:/home/bs/at+.n#
Привожу указанные строки:
31: static void login();
129: login(data, p);
static void
login(data, p)
struct authen_data *data;
struct private_data *p;
183: {
char *name, *passwd, *cfg_passwd;
int pwlen;
name = data->NAS_id->username;
if (!name[0]) {
/* something awful has happened. Give up and die */
report(LOG_ERR, "%s %s: no username for login",
session.peer, session.port);
data->status = TAC_PLUS_AUTHEN_STATUS_ERROR;
return;
}