УРА!!!! убив день всё таки всё получилось)))
/var/log/pptp.log:
Код: Выделить всё
Renamed interface ppp1 to 1234
Using interface 1234
Connect: 1234 <--> /dev/pts/18
Как спросишь ты....а я возьму и отвечу...и так по порядку!!!
1. Пропатчил pppd-2.4.4 для использования ifname....нашел лишь под чуть старее версию, ну да благо всё обошлось без косяков)))
2. Заварив n-ый литраж чаю взялся за сорцы pptpd-1.3.4 и нашел...в итоге организовал перенаправление всех параметров передаваемых pppd в свой скрипт под кодовым названием pptp_ifnameиз которого pppd и стартует
pptp_ifname:
Код: Выделить всё
#!/usr/bin/perl
use DBI;
my $dbh = DBI->connect("DBI:mysql:database=abills;host=localhost","root", "MyFuckingPass") || die $DBI::errstr;
my $result = $dbh->prepare("SELECT uid FROM dhcphosts_hosts WHERE ip=INET_ATON('$ARGV[6]')");
$result->execute();
my $ln = $result->fetchrow_hashref();
my $result = $dbh->prepare("SELECT id FROM users WHERE uid=$ln->{'uid'}");
$result->execute();
my $ln = $result->fetchrow_hashref();
print $ln->{'id'};
exec('/usr/sbin/pppd',$ARGV[1],$ARGV[2],$ARGV[3],$ARGV[4],$ARGV[5],$ARGV[6],$ARGV[7],$ARGV[8],'ifname',$ln->{'id'});
$dbh->disconnect();
чуть поясню суть скрипта...в скрипт поступают параметры от pptpd вместе с которыми и ip адрес клиента, по Ip адресу определяется uid клиента в абиллсе, а по uid`у уж и его логин, который и передается pppd в качестве аргумента параметра ifname
P.S. За возможные косяки в скрипте прошу не пинать, ибо на перле пишу ооочччеенннььь не часто...прост захотелось)))
P.S.S. патчи не оформлял, а по сему не выкладываю...да и...нужно еще подправить сорцы pptpd да бы в скрипт пердавалось и количество параметров

но если есть интузиасты - выложу)))
P.S.S.S.
ran у тебя похожая история...дерзайте судырь)))