>странный софт, там #ifdef вокруг стр. 31 не наблюдается ?
>
>>31: static void login();
>заменить на
>static void login(struct authen_data *data, struct private_data *p);
>если не поможет закоментировать эту строку совсем
нет #ifdef вокруг стр. 31 не наблюдается, там вот так:
static void chap_verify();
static void arap_verify();
static void pap_verify();
static void login();
если просто закомментировать строку то вываливалось много ошибок, после того как я заменил на static void login(struct authen_data *data, struct private_data *p); выскочила вот эта ошибка:
root@tiss:/home/bs/at+.n# make
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:32: error: conflicting types for `login'
/usr/include/utmp.h:46: error: previous declaration of `login'
make: *** [default_fn.o] Error 1
root@tiss:/home/bs/at+.n#
после того как я залез в utmp.h и закоментировал 46 строку, вот эту:
extern void login (__const struct utmp *__entry) __THROW;
компиляция прошла дальше и остановилась на:
root@tiss:/home/bs/at+.n# make
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 crypt.o crypt.c
crypt.c:922: error: conflicting types for `encrypt'
/usr/include/unistd.h:1024: error: previous declaration of `encrypt'
make: *** [crypt.o] Error 1
root@tiss:/home/bs/at+.n#
после того как я залез в файл unistd.h и аналогичным образом закоментировал 1024 строку (вопрос можно ли так делать) компиляция прошла дальше и остановилась на :
root@tiss:/home/bs/at+.n# make
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 dbstuff.o dbstuff.c
dbstuff.c: In function `db_register':
dbstuff.c:46: error: `O_SHLOCK' undeclared (first use in this function)
dbstuff.c:46: error: (Each undeclared identifier is reported only once
dbstuff.c:46: error: for each function it appears in.)
dbstuff.c:52: error: too few arguments to function
dbstuff.c: In function `db_replace':
dbstuff.c:87: warning: passing arg 2 of pointer to function from incompatible pointer type
dbstuff.c:87: error: too few arguments to function
dbstuff.c: In function `db_closeall':
dbstuff.c:154: error: too few arguments to function
dbstuff.c: In function `db_inuse':
dbstuff.c:169: error: too few arguments to function
dbstuff.c: In function `db_checkmt':
dbstuff.c:195: error: too few arguments to function
dbstuff.c:196: error: `O_SHLOCK' undeclared (first use in this function)
make: *** [dbstuff.o] Error 1
root@tiss:/home/bs/at+.n#
указанные строки содержат:
46: hdl = (DB *) dbopen(dbname, O_RDONLY|O_SHLOCK, 0555, DB_HASH, NULL);
52: fstat((*hdl->fd)(hdl), &dp->st);
87: if ((ret = (*db->get) (db, k, d, 0)) < 0) {
154: (*dp->hdl->close) (dp->hdl);
169: if (dp->hdl && (*dp->hdl->fd) (dp->hdl) == desc)
195: (*dp->hdl->close) (dp->hdl);
196: dp->hdl = (DB *) dbopen(dp->dbname, O_RDONLY|O_SHLOCK,
0555, DB_HASH, NULL);
и на этом я остановился