@@ -, +, @@
separator characters to spaces
set the value to " -- "
---
C4/SIP/Sip.pm | 19 +++++++++----------
C4/SIP/Sip/MsgType.pm | 34 +++++++++++++++++-----------------
etc/SIPconfig.xml | 2 ++
3 files changed, 28 insertions(+), 27 deletions(-)
--- a/C4/SIP/Sip.pm
+++ a/C4/SIP/Sip.pm
@@ -187,11 +187,16 @@ sub boolspace {
#
sub write_msg {
- my ($self, $msg, $file, $terminator, $encoding) = @_;
+ my ($self, $msg, $server) = @_;
+ my $terminator = $server->{account}->{terminator};
+ my $encoding = $server->{account}->{encoding};
$terminator ||= q{};
$terminator = ( $terminator eq 'CR' ) ? $CR : $CRLF;
+ my $separator = $server->{account}->{convert_nonprinting_characters};
+ $msg =~ s/[^[:print:]]/$separator/g if defined $separator;
+
$msg = encode($encoding, $msg) if ( $encoding );
my $cksum;
@@ -206,15 +211,9 @@ sub write_msg {
$msg .= sprintf('%04.4X', $cksum);
}
-
- if ($file) {
- $file->autoflush(1);
- print $file $msg, $terminator;
- } else {
- STDOUT->autoflush(1);
- print $msg, $terminator;
- siplog("LOG_INFO", "OUTPUT MSG: '$msg'");
- }
+ STDOUT->autoflush(1);
+ print $msg, $terminator;
+ siplog("LOG_INFO", "OUTPUT MSG: '$msg'");
$last_response = $msg;
}
--- a/C4/SIP/Sip/MsgType.pm
+++ a/C4/SIP/Sip/MsgType.pm
@@ -509,7 +509,7 @@ sub handle_patron_status {
$koha_patron->update_lastseen('connection');
}
$resp = build_patron_status( $patron, $lang, $fields, $server );
- $self->write_msg( $resp, undef, $server->{account}->{terminator}, $server->{account}->{encoding} );
+ $self->write_msg( $resp, $server );
return (PATRON_STATUS_REQ);
}
@@ -649,7 +649,7 @@ sub handle_checkout {
}
}
- $self->write_msg( $resp, undef, $server->{account}->{terminator}, $server->{account}->{encoding} );
+ $self->write_msg( $resp, $server );
return (CHECKOUT);
}
@@ -748,7 +748,7 @@ sub handle_checkin {
$resp .= maybe_add( FID_SCREEN_MSG, $status->screen_msg, $server );
$resp .= maybe_add( FID_PRINT_LINE, $status->print_line, $server );
- $self->write_msg( $resp, undef, $server->{account}->{terminator}, $server->{account}->{encoding} );
+ $self->write_msg( $resp, $server );
return (CHECKIN);
}
@@ -795,7 +795,7 @@ sub handle_block_patron {
}
$resp = build_patron_status( $patron, $patron->language, $fields, $server );
- $self->write_msg( $resp, undef, $server->{account}->{terminator}, $server->{account}->{encoding} );
+ $self->write_msg( $resp, $server );
return (BLOCK_PATRON);
}
@@ -836,7 +836,7 @@ sub handle_request_acs_resend {
# We haven't sent anything yet, so respond with a
# REQUEST_SC_RESEND msg (p. 16)
- $self->write_msg( REQUEST_SC_RESEND, undef, $server->{account}->{terminator}, $server->{account}->{encoding} );
+ $self->write_msg( REQUEST_SC_RESEND, $server );
} elsif ( ( length($last_response) < 9 )
|| substr( $last_response, -9, 2 ) ne 'AY' ) {
@@ -850,7 +850,7 @@ sub handle_request_acs_resend {
# Cut out the sequence number and checksum, since the old
# checksum is wrong for the resent message.
my $rebuilt = substr( $last_response, 0, -9 );
- $self->write_msg( $rebuilt, undef, $server->{account}->{terminator}, $server->{account}->{encoding} );
+ $self->write_msg( $rebuilt, $server );
}
return REQUEST_ACS_RESEND;
@@ -932,7 +932,7 @@ sub handle_login {
$status = login_core( $server, $uid, $pwd );
}
- $self->write_msg( LOGIN_RESP . $status, undef, $server->{account}->{terminator}, $server->{account}->{encoding} );
+ $self->write_msg( LOGIN_RESP . $status, $server );
return $status ? LOGIN : '';
}
@@ -1101,7 +1101,7 @@ sub handle_patron_info {
$resp .= maybe_add( FID_SCREEN_MSG, INVALID_CARD, $server );
}
- $self->write_msg( $resp, undef, $server->{account}->{terminator}, $server->{account}->{encoding} );
+ $self->write_msg( $resp, $server );
return (PATRON_INFO);
}
@@ -1128,7 +1128,7 @@ sub handle_end_patron_session {
$resp .= maybe_add( FID_SCREEN_MSG, $screen_msg, $server );
$resp .= maybe_add( FID_PRINT_LINE, $print_line, $server );
- $self->write_msg( $resp, undef, $server->{account}->{terminator}, $server->{account}->{encoding} );
+ $self->write_msg( $resp, $server );
return (END_PATRON_SESSION);
}
@@ -1210,7 +1210,7 @@ sub handle_fee_paid {
$resp .= maybe_add( FID_SCREEN_MSG, $status->screen_msg, $server );
$resp .= maybe_add( FID_PRINT_LINE, $status->print_line, $server );
- $self->write_msg( $resp, undef, $server->{account}->{terminator}, $server->{account}->{encoding} );
+ $self->write_msg( $resp, $server );
return (FEE_PAID);
}
@@ -1303,7 +1303,7 @@ sub handle_item_information {
$resp .= $item->build_custom_field_string( $server );
}
- $self->write_msg( $resp, undef, $server->{account}->{terminator}, $server->{account}->{encoding} );
+ $self->write_msg( $resp, $server );
return (ITEM_INFORMATION);
}
@@ -1353,7 +1353,7 @@ sub handle_item_status_update {
$resp .= maybe_add( FID_SCREEN_MSG, $status->screen_msg, $server );
$resp .= maybe_add( FID_PRINT_LINE, $status->print_line, $server );
- $self->write_msg( $resp, undef, $server->{account}->{terminator}, $server->{account}->{encoding} );
+ $self->write_msg( $resp, $server );
return (ITEM_STATUS_UPDATE);
}
@@ -1407,7 +1407,7 @@ sub handle_patron_enable {
$resp .= add_field( FID_INST_ID, $ils->institution, $server );
- $self->write_msg( $resp, undef, $server->{account}->{terminator}, $server->{account}->{encoding} );
+ $self->write_msg( $resp, $server );
return (PATRON_ENABLE);
}
@@ -1472,7 +1472,7 @@ sub handle_hold {
$resp .= maybe_add( FID_SCREEN_MSG, $status->screen_msg, $server );
$resp .= maybe_add( FID_PRINT_LINE, $status->print_line, $server );
- $self->write_msg( $resp, undef, $server->{account}->{terminator}, $server->{account}->{encoding} );
+ $self->write_msg( $resp, $server );
return (HOLD);
}
@@ -1559,7 +1559,7 @@ sub handle_renew {
$resp .= maybe_add( FID_SCREEN_MSG, $status->screen_msg, $server );
$resp .= maybe_add( FID_PRINT_LINE, $status->print_line, $server );
- $self->write_msg( $resp, undef, $server->{account}->{terminator}, $server->{account}->{encoding} );
+ $self->write_msg( $resp, $server );
return (RENEW);
}
@@ -1612,7 +1612,7 @@ sub handle_renew_all {
$resp .= maybe_add( FID_SCREEN_MSG, $status->screen_msg, $server );
$resp .= maybe_add( FID_PRINT_LINE, $status->print_line, $server );
- $self->write_msg( $resp, undef, $server->{account}->{terminator}, $server->{account}->{encoding} );
+ $self->write_msg( $resp, $server );
return (RENEW_ALL);
}
@@ -1718,7 +1718,7 @@ sub send_acs_status {
# Do we want to tell the terminal its location?
- $self->write_msg( $msg, undef, $server->{account}->{terminator}, $server->{account}->{encoding} );
+ $self->write_msg( $msg, $server );
return 1;
}
--- a/etc/SIPconfig.xml
+++ a/etc/SIPconfig.xml
@@ -59,6 +59,7 @@
+
--