#!/usr/bin/eperl -w
###
#
# Copyright (c) Ensim Corporation 2000, 2001   All Rights Reserved.
#
# This software is furnished under a license and may be used and copied
# only  in  accordance  with  the  terms  of such  license and with the
# inclusion of the above copyright notice. This software or any other
# copies thereof may not be provided or otherwise made available to any
# other person. No title to and ownership of the software is hereby
# transferred.
#
# The information in this software is subject to change without notice
# and  should  not be  construed  as  a commitment by Ensim Corporation.
# Ensim assumes no responsibility for the use or  reliability  of its
# software on equipment which is not supplied by Ensim.
#
# Exit codes (on failure error message goes to stderr):
#  0 - success
#  1 - failure
# 
# Boolean arguments on the command line are given as 0 or 1. All the
# command line arguments are encoded to avoid problems with escapes.
#
# All functions defined here either return an error message if an
# error occured and "" if everything went well or allways return a
# valid value, but exit (with code 1) printing an error message if an
# error occurs. This second type of functions have _e appended to
# their name. Functions are allowed to print results onto stdout, but
# errors are printed only in the main program.
#
# --------------------------------------------------------------------------
# $Id: set_relay_domains,v 1.16 2003/05/17 02:45:14 naris Exp $
# $Name:  $
# --------------------------------------------------------------------------

push @INC, ($ENV{'OCW_SVCPATH'} || "/usr/lib/opcenter")."/sendmail";

use strict;
require sendmailconf;

use lib ($ENV{OCW_SVCPATH} or "/usr/lib/opcenter") . "/sendmail";
use lib ($ENV{OCW_SVCPATH} or "/usr/lib/opcenter") . "/cmdline_common";
use ERRORS;
use Carper;

use lib ($ENV{OCW_SVCPATH} or "/usr/lib/opcenter") . "/apache";
use apache;

my (@lines);
my ($domain) = "";
my ($err_line) = "";

while (<STDIN>) {

    $err_line = $_;
    chomp($err_line);
    if(apache::is_valid_domain($err_line)) 
    {
        $err_line .= "\n";   
	push @lines, $err_line;
    } 
    else 
    {
        $cerr += $E_INVALIDLINE and $cerr += { line => $err_line } ;
    	die "Invalid line: $err_line\n";
    }
}

open (RELAY,">$sendmailconf::config{'relay_domains'}") or 
  $cerr += $E_UNABLEWRITEFILE and 
  $cerr += { file => $sendmailconf::config{'relay_domains'} } and 
  die "Cannot write to $sendmailconf::config{'relay_domains'} .\n";
print RELAY @lines;
close(RELAY);
system("$sendmailconf::config{'sendmail_command'} restart >/dev/null 2>/dev/null");
exit 0;
