SIP code uses UNIVERSAL modules that do not tolerate the circular deps in
C4, specifically, in Auth.pm. Changing the order so that UNIVERSAL follows
the other imports is important to avoiding failures like:
perl -w -e 'use UNIVERSAL qw(can); use C4::Auth;'
"MarkIssueReturned" is not exported by the C4::Circulation module
This patch should resolve the problem earlier seen with Shelves too.
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
ILS::Patron is where most of the intelligence for SIP's representation
is lodged. Currently there is difficulty with C4::Members functions.
GetMemberDetails is required for the needed flags, but it returns
empty structure on bad barcodes, where it should be undef.
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
The basic problem is that the SIP logic doesn't know where the
input is coming from. It might be a RAW socket, and it might
be telnet. If it is telnet, although the specs declare a
character set (from MS, unfortunately), they do not specify a telnet
implementation. So you might get telnet handshaking or
renegotiations in the middle of an otherwise peaceful session and
these should not be taken as SIP commands. Patches include a move
towards using $CRLF from Socket to avoid problems w/ foreign platform
mapping \n and \r to \015 or \012.
Signed-off-by: Joshua Ferraro <jmf@liblime.com>