#! /usr/bin/perl
# post install script for the Debian GNU/Linux sendfile package

require DebianNet;

# First modify the services file

open(SERVICES, "/etc/services");
    @services=<SERVICES>;
close(SERVICES);

if (! grep(/^saft.*/, @services)) {
   push (@services, "saft		487/tcp			# simple asynchronous file transfer\n");
   open(SERVICES, ">/etc/services.new");
   print SERVICES @services;
   close (SERVICES);
   system ("mv -f /etc/services.new /etc/services");
}

# Now modify the inetd.conf file

open(INETD, "/etc/inetd.conf");
@inetd=<INETD>;
close(INETD);

if (! grep(/.*sendfiled/, @inetd)) {
    $newentry = 'saft	stream	tcp	nowait	root	/usr/sbin/tcpd	/usr/sbin/sendfiled';
    $DebianNet::sep = "#<off># "; DebianNet::add_service($newentry, "OTHER");
}
undef(@inetd);

for $profile (('/etc/profile')) {
    open(PROFILE, "$profile");
    @profile=<PROFILE>;
    close(PROFILE);

    if (! grep(/^.*check-sendfile/, @profile)) {
	open(PROFILE, ">>$profile");
	print PROFILE "test -x /usr/bin/check-sendfile && /usr/bin/check-sendfile || /bin/true\n";
	close (PROFILE);
    }
}

for $profile (('/etc/csh.login')) {
    open(PROFILE, "$profile");
    @profile=<PROFILE>;
    close(PROFILE);

    if (grep(/^.*check-sendfile/, @profile)) {
	open(PROFILE, ">$profile");
	printf PROFILE "%s", join ('', grep (!/^.*check-sendfile/, @profile));
	close(PROFILE);
    }
}

system "/etc/init.d/netbase reload";
