*** adcomplain.pl.old Tue Mar 3 03:20:37 1998 --- adcomplain.pl Tue Mar 3 03:23:52 1998 *************** *** 1,3 **** --- 1,4 ---- + #!/usr/bin/perl #! /bin/sh -- # -*- perl -*- # first line invokes sh. Some systems may need to refer to perl directly, i.e.: *************** *** 7,14 **** # allows perl to be _anywhere_ in the user's path. The intent is to reduce # the need to edit this file. ! eval 'exec perl $0 ${1+"$@"}' ! if 0; # tee hee! This is on a separate line, so /bin/sh never sees it. #----------------------------------------------- # DESCRIPTION --- 8,15 ---- # allows perl to be _anywhere_ in the user's path. The intent is to reduce # the need to edit this file. ! #eval 'exec perl $0 ${1+"$@"}' ! #if 0; # tee hee! This is on a separate line, so /bin/sh never sees it. #----------------------------------------------- # DESCRIPTION *************** *** 633,648 **** &moref($tempname); } - if ($batchmode) { - $ok = &send_to_list($from, $send_to, $tempname); - unlink $tempname; - exit 1 if !$ok; - } - else { ## send, abort, edit, or list the message for (;;) { ! print "\n"; ! $ans = &get_answer("Send, abort, edit, or list (s/a/e/l)?", "a"); if ($ans =~ /s.*/ || $ans =~ /y.*/) { # re-extract the addressee from the body open(F, "<$tempname") || die "temp file $tempname has disappeared!"; --- 634,647 ---- &moref($tempname); } ## send, abort, edit, or list the message for (;;) { ! if ($batchmode) { ! $ans = "s"; ! } else { ! print "\n"; ! $ans = &get_answer("Send, abort, edit, or list (s/a/e/l)?", "a"); ! } if ($ans =~ /s.*/ || $ans =~ /y.*/) { # re-extract the addressee from the body open(F, "<$tempname") || die "temp file $tempname has disappeared!"; *************** *** 659,669 **** --- 658,676 ---- } } if ($send_to eq "") { + if ($batchmode) { + print "no addressee!\n"; + last; + } print "no addressee! re-edit and continue\n"; next; } $ok = &send_to_list($from, $send_to, $tempname); + if ($batchmode && !$ok) { + print "can't send to $send_to!\n"; + last; + } next if !$ok; print "sent to $send_to\n"; *************** *** 687,693 **** print "what?\n"; } } # for - } print "\n"; unlink $tempname; --- 694,699 ---- *************** *** 726,731 **** --- 732,738 ---- local($local_inetaddr, $remote_inetaddr); local($targetPort) = "smtp"; # or 25, world-wide standard local($response); + local($local_prot) = (getprotobyname('tcp'))[2]; if (defined($mailscript) && $mailscript ne "") { $name = "$mailscript $body "; *************** *** 764,774 **** } } ! $local_inetaddr = pack($sockaddr, $AF_INET, 0, $thisaddr); ! $remote_inetaddr = pack($sockaddr, $AF_INET, $targetPort, $thataddr); #MAKE the socket filehandle. ! if ( ! socket( S, $AF_INET, $SOCK_STREAM, 0)) { print STDERR "socket() failure: $!\n"; return 0; } --- 771,781 ---- } } ! $local_inetaddr = pack($sockaddr, &AF_INET, 0, $thisaddr); ! $remote_inetaddr = pack($sockaddr, &AF_INET, $targetPort, $thataddr); #MAKE the socket filehandle. ! if ( ! socket( S, &PF_INET, &SOCK_STREAM, $local_prot)) { print STDERR "socket() failure: $!\n"; return 0; } *************** *** 1490,1496 **** local ($name, $aliases, $addrtype, $length, @addrs); local ($addr_int); local ($a, $b, $c, $d); - local ($AF_INET) = 2; # not portable, but pretty common $name = $ips_to_hosts{$text}; return $name if defined($name) && $name ne ""; --- 1497,1502 ---- *************** *** 1506,1512 **** $addr_int = pack("C4", $a, $b, $c, $d); ($name, $aliases, $addrtype, $length, @addrs) = ! gethostbyaddr($addr_int, $AF_INET); if (defined($name) && $name ne "") { &log_mapping($name, $text, "gethostbyaddr"); return $name; --- 1512,1518 ---- $addr_int = pack("C4", $a, $b, $c, $d); ($name, $aliases, $addrtype, $length, @addrs) = ! gethostbyaddr($addr_int, &AF_INET); if (defined($name) && $name ne "") { &log_mapping($name, $text, "gethostbyaddr"); return $name; *************** *** 2317,2323 **** # Windows 95, as opposed to Windows NT which would pass previous test $os_kind = "win32"; } ! elsif (-x "/bin/uname") { # $^O would work with perl5, but then I would have to distinguish # between AIX, HP-UX, Solaris, SunOS, Linux, SINIX, SVr4, etc. $os_kind = "unix"; --- 2323,2329 ---- # Windows 95, as opposed to Windows NT which would pass previous test $os_kind = "win32"; } ! elsif (-x "/bin/uname" || -x "/usr/bin/uname") { # $^O would work with perl5, but then I would have to distinguish # between AIX, HP-UX, Solaris, SunOS, Linux, SINIX, SVr4, etc. $os_kind = "unix"; *************** *** 2333,2339 **** # years ago by someone who _really_ didn't know what he was doing. # All of the host-specific libraries are really a mess, and disentangling # it for our different architectures is not practical. ! $junk = `/bin/uname -rs`; if ($junk =~ /^SunOS 5.*/) { # Solaris $AF_INET = 2; $SOCK_STREAM = 2; # they just _had_ to be different. --- 2339,2345 ---- # years ago by someone who _really_ didn't know what he was doing. # All of the host-specific libraries are really a mess, and disentangling # it for our different architectures is not practical. ! $junk = -x "/bin/uname" ? `/bin/uname -rs` : `/usr/bin/uname -rs`; if ($junk =~ /^SunOS 5.*/) { # Solaris $AF_INET = 2; $SOCK_STREAM = 2; # they just _had_ to be different. *************** *** 2411,2422 **** $local_hostname = $name if defined($name) && $name ne ""; if (!defined($mailhost) || $mailhost eq "") { ! local($name, $aliases, $type, $len, $addr) = gethostbyname("mailhost"); ! $addr = $addr; # shut up perl5 -w ! if (defined($name) && $name ne "") { ! $mailhost = $name; ! } ! elsif ($os_kind eq "unix") { $mailhost = $local_hostname; # $mailhost = "localhost"; } --- 2417,2423 ---- $local_hostname = $name if defined($name) && $name ne ""; if (!defined($mailhost) || $mailhost eq "") { ! if ($os_kind eq "unix") { $mailhost = $local_hostname; # $mailhost = "localhost"; }