Необходимо выполнить SQL запрос, да бы увеличить вместимость поля CID
Код: Выделить всё
ALTER TABLE `dv_main` CHANGE `cid` `cid` VARCHAR( 90 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '';
В конфиг (./libexec/config.pl) необходимо добавить
Код: Выделить всё
$conf{MAC_AUTO_ASSIGN_MAX}=3;
Небольшой патчик для Abills 0.54b ("patch -p0 < code.patch" из /usr/abills/)
Код: Выделить всё
*** Abills/mysql/Auth.pm.orig 2012-06-19 10:08:17.139171001 +0700
--- Abills/mysql/Auth.pm 2012-06-19 10:27:33.549171002 +0700
***************
*** 757,770 ****
}
#Auto assing MAC in first connect
if ( $CONF->{MAC_AUTO_ASSIGN}
! && $self->{CID} eq ''
&& $RAD->{CALLING_STATION_ID}
&& $RAD->{CALLING_STATION_ID} =~ /:|\-/
&& $RAD->{CALLING_STATION_ID} !~ /\//)
{
$self->query(
! $db, "UPDATE dv_main SET cid='$RAD->{CALLING_STATION_ID}'
WHERE uid='$self->{UID}';", 'do'
);
}
--- 757,773 ----
}
#Auto assing MAC in first connect
+ my @AUTO_CID_POOL = split(/;/, $self->{CID});
if ( $CONF->{MAC_AUTO_ASSIGN}
! && @AUTO_CID_POOL lt $CONF->{MAC_AUTO_ASSIGN_MAX}
! && !($RAD->{CALLING_STATION_ID} ~~ @AUTO_CID_POOL)
&& $RAD->{CALLING_STATION_ID}
&& $RAD->{CALLING_STATION_ID} =~ /:|\-/
&& $RAD->{CALLING_STATION_ID} !~ /\//)
{
+ my $CIDS = join(';',@AUTO_CID_POOL,$RAD->{CALLING_STATION_ID});
$self->query(
! $db, "UPDATE dv_main SET cid='$CIDS'
WHERE uid='$self->{UID}';", 'do'
);
}
***************
*** 825,830 ****
--- 828,836 ----
}
my @CID_POOL = split(/;/, $self->{CID});
+ if ( @CID_POOL lt $CONF->{MAC_AUTO_ASSIGN_MAX} ){
+ @CID_POOL = $RAD->{CALLING_STATION_ID}
+ }
#If auth from DHCP
if ($CONF->{DHCP_CID_IP} || $CONF->{DHCP_CID_MAC} || $CONF->{DHCP_CID_MPD}) {