#!/usr/bin/perl
+
package C4::SIP::SIPServer;
use strict;
use C4::SIP::Logger qw(set_logger);
use Koha::Caches;
-
use Koha::Logger;
+
use C4::SIP::Trapper;
tie *STDERR, "C4::SIP::Trapper";
use constant LOG_SIP => "local6"; # Local alias for the logging facility
+
+set_logger( Koha::Logger->get( { interface => 'sip' } ) );
+
#
# Main # not really, since package SIPServer
#
$self->{account} = undef; # Clear out the account from the last request, it may be different
$self->{logger} = set_logger( Koha::Logger->get( { interface => 'sip' } ) );
+ # Flush previous MDCs to prevent accidentally leaking incorrect MDC-entries
+ Koha::Logger->clear_mdc();
+
my $sockname = getsockname(STDIN);
# Check if socket connection is IPv6 before resolving address
)
);
+ # Set MDCs after properly authenticating
+ Koha::Logger->put_mdc( "accountid", $self->{account}->{id} );
+ Koha::Logger->put_mdc( "peeraddr", $self->{server}->{peeraddr} );
+
siplog("LOG_DEBUG", "raw_transport: uname/inst: '%s/%s'",
$self->{account}->{id},
$self->{account}->{institution});
my $raw_length;
local $/ = "\015";
+ # SIP connections might be active for weeks, clear L1 cache on every request
+ Koha::Caches->flush_L1_caches();
+
# proper SPEC: (octal) \015 = (hex) x0D = (dec) 13 = (ascii) carriage return
my $buffer = <STDIN>;
if ( defined $buffer ) {