1#!/usr/bin/perl
2
3# Copyright 2005 Messiah College. All rights reserved.
4# Jason Long <jlong@messiah.edu>
5
6# Portions copyright (C) 2001 Morgan Stanley Dean Witter.
7# Portions written by Bennett Todd <bet@rahul.net>
8
9use strict;
10use warnings;
11
12package MySmtpServer;
13use base "MSDW::SMTP::Server";
14
15sub new
16{
17    my $class = shift;
18    my %args = @_;
19    my $self = bless \%args, $class;
20	$self->{"in"} = new IO::Handle;
21	$self->{"in"}->fdopen(fileno(STDIN), "r");
22	$self->{"out"} = new IO::Handle;
23	$self->{"out"}->fdopen(fileno(STDOUT), "w");
24	$self->{"out"}->autoflush;
25    $self->{"state"} = " accepted";
26    return $self;
27}
28
29sub getline
30{
31	my ($self) = @_;
32	local $/ = "\015\012";
33	$/ = "\n" if ($self->{Translate});
34
35	my $tmp = $self->{"in"}->getline;
36	if (not defined $tmp)
37	{
38		return $tmp;
39	}
40	if ($self->{debug})
41	{
42		$self->{debug}->print($tmp);
43	}
44	$tmp =~ s/\n$/\015\012/ if ($self->{Translate});
45	return $tmp;
46}
47
48sub print
49{
50	my ($self, @msg) = @_;
51	my @transformed = $self->{Translate} ?
52		( map { s/\015\012$/\n/; $_ } @msg ) : (@msg);
53	$self->{debug}->print(@transformed) if defined $self->{debug};
54	return $self->{"out"}->print(@transformed);
55}
56
571;
58