freebsd-ports/net/tac_plus4/files/patch-maxsess.c
Andreas Klemm 828b215af2 From Sergey:
"Using tacacs I found that ckfinger() function from maxsess.c module
 returns wrong count of current sessions for users with "maxsess"
 parameter established in tac_plus.conf. It happens if Cisco access
 server works with IOS v 12.x.
 On the other hand ckfinger() works well with IOS v 11.x
 Here are patches for both maxsess.c and port's Makefile to fix
 this problem (but it is just workaround, ckfinger() should be
 fully rewritten)."
From me:
 changed variable name by prepending string "TAC_", so that tacacs+
 ports variables follow an unique scheme.
Please note: this doesn't compile with the new TAC_IOS_VERSION variable
if you have CFLAGS redefined in /etc/make.conf as:
CFLAGS=-pipe -O (or whatever)
You have to use
CFLAGS+=-pipe -O (or whatever)
Mailed to -developers. Am really not sure, what's the culprit here.
Fact is, that a part of CFLAGS get lost when compiling the port,
if you redefine CFLAGS in /etc/make.conf without the "+" sign ...
I personally removed my CFLAGS define in /etc/make.conf as it
defaults to -pipe -O, which is fine for me.

Submitted by:	Sergey E. Levov (serg@informika.ru)
2001-01-24 08:06:55 +00:00

29 lines
888 B
C

Using tacacs I found that ckfinger() function from maxsess.c module
returns wrong count of current sessions for users with "maxsess"
parameter established in tac_plus.conf. It happens if Cisco access
server works with IOS v 12.x.
On the other hand ckfinger() works well with IOS v 11.x
Here are patches for both maxsess.c and port's Makefile to fix
this problem (but it is just workaround, ckfinger() should be
fully rewritten).
Best regards,
Sergey E. Levov (serg@informika.ru)
*** maxsess.c.orig Fri Jan 19 17:16:46 2001
--- maxsess.c Fri Jan 19 17:25:51 2001
***************
*** 470,476 ****
--- 470,480 ----
}
/* Extract username, up to 10 chars wide, starting at char 13 */
nmlen = 0;
+ #if (TAC_IOS_VERSION == 11)
name = p + 13;
+ #else
+ name = p + 15;
+ #endif
for (i = 0; *name && !isspace(*name) && (i < 10); i++) {
nmbuf[nmlen++] = *name++;
}