#!/usr/bin/perl

require '/var/smoothwall/header.pl';

my %pppsettings;

# read vars back from file.
&readhash("${swroot}/ppp/settings", \%pppsettings);

if ($pppsettings{'COMPORT'} =~ /ttyS[0-3]/)
{
	$lockfile = "/var/lock/LCK..${pppsettings{'COMPORT'}}";
	if (! -e $lockfile)
	{
		&domodemdial();
	}
}

sub domodemdial
{
	my $pppoptions = '';
	my $loginscript = '';

	my $device = "/dev/${pppsettings{'COMPORT'}}";

	if ($pppsettings{'DNS'} eq 'Automatic') {
		$pppoptions = "$pppoptions usepeerdns"; }

	if ($pppsettings{'AUTH'} eq 'standard-login-script') {
		$loginscript = 'standardloginscript'; }
	elsif ($pppsettings{'AUTH'} eq 'demon-login-script') {
		$loginscript = 'demonloginscript'; }
	else {
		$loginscript = $pppsettings{'LOGINSCRIPT'}; }

	if ($pppsettings{'PERSISTANT'} eq 'on') {
		$pppoptions = "$pppoptions persist"; }
	
	$extrapppoptions = 'novj novjccomp holdoff 1';

	$args = "debug lock modem crtscts $device $pppsettings{'DTERATE'} \
		asyncmap 20A0000 escape FF kdebug 0 defaultroute user \
		$pppsettings{'USERNAME'} maxfail $pppsettings{'MAXRETRIES'} 
		connect /etc/ppp/dialer $pppoptions $extrapppoptions";

	$args =~ s/[ \n\r\t]+/ /g;

	@commandlist = split / /, $args;

	@commands = ('/usr/sbin/pppd', @commandlist);

	system @commands;
}
