Haineko

 view release on metacpan or  search on metacpan

lib/Haineko/HTTPD.pm  view on Meta::CPAN

127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
unless( $mesg ) {
    # If the second argument is omitted, use "404 Not found" as a JSON.
    require Haineko::SMTPD::Response;
    $mesg = Haineko::SMTPD::Response->r( 'http', 'not-found' )->damn;
}
 
if( ref $mesg eq 'HASH' ) {
    # Respond as a JSON
    require Haineko::SMTPD::Session;
    my $addr = [ split( ',', $self->req->header('X-Forwarded-For') || q() ) ];
    my $sess = Haineko::SMTPD::Session->new(
                    'referer'    => $self->req->referer // undef,
                    'response'   => [ $mesg ],
                    'remoteaddr' => pop @$addr || $self->req->address // undef,
                    'remoteport' => $self->req->env->{'REMOTE_ADDR'} // undef,
                    'useragent'  => $self->req->user_agent // undef,
               )->damn;
    $sess->{'queueid'} = undef;
    return $self->response->json( $code, $sess );

lib/Haineko/Root.pm  view on Meta::CPAN

11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
    my $neko1 = { 'name' => $httpd->name, 'version' => $Haineko::VERSION };
 
    return $httpd->res->json( 200, $neko1 );
}
 
sub info {
    # GET /dump, /conf
    my $class = shift;
    my $httpd = shift;
 
    my $xforwarded = [ split( ',', $httpd->req->header('X-Forwarded-For') || q() ) ];
    my $remoteaddr = pop @$xforwarded || $httpd->req->address // undef;
    my $ip4network = undef;
 
    # Only 127.0.0.1 is permitted
    use Net::CIDR::Lite;
    $ip4network = Net::CIDR::Lite->new( '127.0.0.1/32' );
 
    if( $ip4network->find( $remoteaddr ) ) {
 
        my $requesturl = $httpd->req->path_info;

lib/Haineko/Sample.pm  view on Meta::CPAN

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
use feature ':5.10';
use strict;
use utf8;
 
sub mail {
    my $class = shift;
    my $httpd = shift;
 
    my $xforwarded = [ split( ',', $httpd->req->header('X-Forwarded-For') || q() ) ];
    my $remoteaddr = pop @$xforwarded || $httpd->req->address // undef;
    my $samplemail = [
        {
            'mail' => 'envelope-sender-address@example.org',
            'rcpt' => [ 'envelope-recipient-address-1@example.jp' ],
            'ehlo' => sprintf( "[%s]", $remoteaddr ),
            'body' => 'Email message body',
            'header' => {
                'from' => 'Your Name <email-from-addr@example.com>',
                'subject' => 'Email subject',

lib/Haineko/Sendmail.pm  view on Meta::CPAN

20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
my $defaultset = Haineko::Default->conf;
my $responsecn = 'Haineko::SMTPD::Response';
my $responsejk = 'response';    # (String) Response json key name
my $exceptions = 0;             # (Integer) Flag, be set in try {...} catch { ... }
my $tmpsession = undef;         # (Haineko::SMTPD::Session) Temporary session object
 
# Create a queue id (session id)
my $queueident = Haineko::SMTPD::Session->make_queueid;
 
# Variables related user information such as hostname or port number.
my $xforwarded = [ split( ',', $httpd->req->header('X-Forwarded-For') || q() ) ];
my $remoteaddr = pop @$xforwarded || $httpd->req->address // undef;
my $remoteport = $httpd->req->env->{'REMOTE_PORT'} // undef;
my $remotehost = $httpd->req->env->{'REMOTE_HOST'} // undef;
my $remoteuser = $httpd->req->env->{'REMOTE_USER'} // undef;
my $useragent1 = $httpd->req->user_agent // undef;
 
# Syslog object
my $syslogargv = {
    'queueid'    => $queueident,
    'facility'   => $serverconf->{'syslog'}->{'facility'},



( run in 0.389 second using v1.01-cache-2.11-cpan-eab888a1d7d )