Haineko
view release on metacpan or search on metacpan
lib/Haineko/HTTPD.pm view on Meta::CPAN
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
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
package Haineko::Sample;
use feature ':5.10';
use strict;
use warnings;
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
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 1.201 second using v1.01-cache-2.11-cpan-26ccb49234f )