Jeff Godin [Tue, 19 Jun 2012 18:12:56 +0000 (14:12 -0400)]
Derefrence fixed fields in handle_fee_paid
Properly dereference fixed fields in handle_fee_paid so that the ILS layer receives fixed fields fee type, payment type, currency type
Fixes LP
1015227
Signed-off-by: Jeff Godin <jgodin@tadl.org>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Thomas Berezansky [Tue, 18 Oct 2011 19:08:50 +0000 (15:08 -0400)]
Return proper renewal OK field on checkout fail
This will allow (hopefully) the self check to know that a renewal was
attempted on checkout failure (if the flag is set).
Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Jason Stephenson [Thu, 30 Jun 2011 21:02:43 +0000 (17:02 -0400)]
Support "chargeable loans" via SIP2.
Pass FID_FEE_ACK to checkout message in MsgType.pm.
Also return fee info when checkout fails, so patron can
acknowledge the fee.
Signed-off-by: Jason Stephenson <jstephenson@mvlc.org>
Signed-off-by: Bill Erickson <berick@esilibrary.com>
Dan Scott [Thu, 30 Jun 2011 18:39:49 +0000 (14:39 -0400)]
Replace failing unit tests with 17 valid checkout tests
These 17 checkout tests came from a 3M Vseries checkout running with the
UTF8 encoding set.
Signed-off-by: Dan Scott <dscott@laurentian.ca>
Signed-off-by: Jason Stephenson <jstephenson@mvlc.org>
Jason Stephenson [Thu, 30 Jun 2011 18:02:47 +0000 (14:02 -0400)]
AZ field also needs to be in the output message.
Signed-off-by: Jason Stephenson <jstephenson@mvlc.org>
Signed-off-by: Dan Scott <dan@coffeecode.net>
Dan Scott [Thu, 23 Jun 2011 19:59:19 +0000 (15:59 -0400)]
Checksum calc needs to include the 'AZ' portion
Signed-off-by: Dan Scott <dscott@laurentian.ca>
Signed-off-by: Jason Stephenson <jstephenson@mvlc.org>
Dan Scott [Tue, 21 Jun 2011 02:11:38 +0000 (22:11 -0400)]
Convert checksum to hex value inside checksum() function
Rather than returning the integer value of the checksum and converting
that to a hex value only when it is appended to the returned message,
return the hex value from checksum() itself. This enables the unit tests
for Sip::Checksum to be run meaningfully.
Signed-off-by: Dan Scott <dan@coffeecode.net>
Dan Scott [Wed, 15 Jun 2011 19:22:09 +0000 (15:22 -0400)]
Restore Unicode checksum algorithm
This checksum algorithm was verified to work with
3M V-series self-check machines running with encoding
Unicode, which is important to sites with large
collections of non-English materials.
Signed-off-by: Dan Scott <dscott@laurentian.ca>
Dan Scott [Fri, 17 Jun 2011 17:50:26 +0000 (13:50 -0400)]
encode to UTF8 consistently
In read_SIP_packet(), we decode the incoming packet as UTF8 and then
encode it again before writing to the log, but not before returning the
message. We were instead encoding the incoming message in a subsequent
call, which is not the recommended Perl practice of decoding input and
encoding output.
Signed-off-by: Dan Scott <dscott@laurentian.ca>
Dan Scott [Wed, 15 Jun 2011 19:17:31 +0000 (15:17 -0400)]
Prevent corruption of SIP messages in logs
Non-ASCII characters were not being decoded before being
written to the logs, thus resulting in heinous corruption
in the logs. decode_utf8() is our friend.
Signed-off-by: Dan Scott <dscott@laurentian.ca>
Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Thomas Berezansky [Sat, 21 May 2011 01:11:20 +0000 (21:11 -0400)]
Item extra ILS-defined fields
Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Thomas Berezansky [Fri, 29 Apr 2011 20:45:55 +0000 (16:45 -0400)]
Support ILS-defined extension fields
Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Jason Stephenson [Tue, 17 May 2011 18:01:08 +0000 (14:01 -0400)]
Restore the debug code that was deleted in a previous commit,
per Joe Atzberger's suggestion.
Signed-off-by: Jason Stephenson <jstephenson@mvlc.org>
Jason Stephenson [Thu, 12 May 2011 19:27:30 +0000 (15:27 -0400)]
Fix the properties of the Fee Paid message in MsgType.pm so that
the server actually parses the messages.
Signed-off-by: Jason Stephenson <jstephenson@mvlc.org>
Jason Stephenson [Thu, 12 May 2011 19:26:17 +0000 (15:26 -0400)]
Fix checksum generation so that it actually works with clients.
Signed-off-by: Jason Stephenson <jstephenson@mvlc.org>
Thomas Berezansky [Thu, 31 Mar 2011 13:21:13 +0000 (09:21 -0400)]
Check for sip_expire before trying to use it.
Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Jason Stephenson [Thu, 31 Mar 2011 13:19:52 +0000 (09:19 -0400)]
Add FID_PATRON_EXPIRE where required for export.
Thomas Berezansky [Thu, 31 Mar 2011 12:39:28 +0000 (08:39 -0400)]
Patron Expiration in PA
Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Joe Atzberger [Thu, 7 Oct 2010 19:48:56 +0000 (19:48 +0000)]
Allow whitespace "lines" to be skipped during login
This keeps clients who might have bad line-endings in the game.
In particular, this would help systems where an expect-driven login
process might be different than the rest of the client interaction.
Joe Atzberger [Thu, 7 Oct 2010 19:40:38 +0000 (19:40 +0000)]
Die if no listeners in config, give better log messages
Also tighten debug messages: one warning at the end listing all failed is good enough.
Certainly better than just throwaway debug messages listing what we are going to try.
Otherwise if we succeeded, we don't need to know about the ones that failed, just
report the successful one.
Joe Atzberger [Thu, 7 Oct 2010 19:34:54 +0000 (19:34 +0000)]
Perltidy and cleanup.
Joe Atzberger [Fri, 1 Oct 2010 23:21:17 +0000 (23:21 +0000)]
VERSIONing, it's good for you.
Joe Atzberger [Fri, 1 Oct 2010 19:57:55 +0000 (19:57 +0000)]
Extension for exposing patron internal ID via Patron Information
Used by some AMH systems
Joe Atzberger [Thu, 30 Sep 2010 23:31:19 +0000 (23:31 +0000)]
Spec compliance on line-endings
\r not CRLF
Joe Atzberger [Fri, 24 Sep 2010 01:34:17 +0000 (01:34 +0000)]
An extra test from CASSIE
Note: checksumming is still NOT recommendedl
Joe Atzberger [Wed, 30 Jun 2010 17:32:33 +0000 (17:32 +0000)]
Adjust comment
Joe Atzberger [Wed, 23 Jun 2010 17:54:19 +0000 (17:54 +0000)]
Item Info extensions and general cleanup
Joe Atzberger [Wed, 23 Jun 2010 17:40:24 +0000 (17:40 +0000)]
Cleanup and adjustment
bad_barcode is is better than berick for clarity.
Joe Atzberger [Wed, 23 Jun 2010 17:38:11 +0000 (17:38 +0000)]
Update to current default EG values.
Joe Atzberger [Tue, 22 Jun 2010 21:43:53 +0000 (21:43 +0000)]
Startup and shutdown scripts
Adapted from the versions I wrote for Koha SIP
Joe Atzberger [Tue, 22 Jun 2010 15:55:33 +0000 (15:55 +0000)]
Perltidy/whitespace cleanup
Joe Atzberger [Tue, 22 Jun 2010 15:38:30 +0000 (15:38 +0000)]
Tiny comment
Joe Atzberger [Fri, 11 Jun 2010 13:39:04 +0000 (13:39 +0000)]
Disable checksums in tests
Holds test disabled by default (for evergreen)
Joe Atzberger [Thu, 3 Jun 2010 20:45:14 +0000 (20:45 +0000)]
Propagate $inst_id to checkout handler
Needed for holds routing logic
Joe Atzberger [Tue, 1 Jun 2010 18:51:28 +0000 (18:51 +0000)]
At least attempt to use the same formatting....
Joe Atzberger [Tue, 1 Jun 2010 18:50:39 +0000 (18:50 +0000)]
Catch undef parameter (avoid warning/failure on substr)
Joe Atzberger [Tue, 1 Jun 2010 18:00:53 +0000 (18:00 +0000)]
Use common vars from SIPtest (stop hardcoding individual tests)
Joe Atzberger [Tue, 1 Jun 2010 17:57:57 +0000 (17:57 +0000)]
Whitespace and stylistic cleanup only.
Joe Atzberger [Tue, 1 Jun 2010 17:51:32 +0000 (17:51 +0000)]
Use more of SIPtest.pm exported values, avoid hardcoding
Joe Atzberger [Tue, 1 Jun 2010 17:50:35 +0000 (17:50 +0000)]
Not an Exporter and not implemented
Joe Atzberger [Tue, 1 Jun 2010 17:48:24 +0000 (17:48 +0000)]
Avoid undef warning, provide lanuage failover to 000 (unknown/default)
Joe Atzberger [Tue, 1 Jun 2010 17:48:07 +0000 (17:48 +0000)]
Pure stylistic and whitespace changes
Joe Atzberger [Tue, 1 Jun 2010 17:45:03 +0000 (17:45 +0000)]
Failover to language '000' (unknown/default)
Joe Atzberger [Fri, 28 May 2010 18:38:07 +0000 (18:38 +0000)]
Tighter indent
Joe Atzberger [Fri, 28 May 2010 18:29:55 +0000 (18:29 +0000)]
Executable python script
Joe Atzberger [Mon, 24 May 2010 22:52:21 +0000 (22:52 +0000)]
Checksum computation overhaul
This adds advanced debugging of checksum computation.
Note: good sample data is lacking. I think most of the actual
checksum lines included in the test are questionable. The only
one that computes accurately seems to be the example from the
3M SIP Developers Guide that specifically addresses checksum
computation. The others from the same guide seem invalid!
I think the debugging output suggests the implementation is
consistent with the specified instructions, despite unavailability
of sample data to confirm.
Joe Atzberger [Mon, 24 May 2010 22:51:27 +0000 (22:51 +0000)]
Debug output capability
Joe Atzberger [Mon, 24 May 2010 22:50:58 +0000 (22:50 +0000)]
whitespace cleanup
Joe Atzberger [Wed, 12 May 2010 22:07:36 +0000 (22:07 +0000)]
Extra read_it catches telnet confirmation prompt
Joe Atzberger [Wed, 12 May 2010 21:49:47 +0000 (21:49 +0000)]
Tests are executable
Joe Atzberger [Wed, 12 May 2010 16:15:25 +0000 (16:15 +0000)]
Robust string cleaning and flexible CRLF from Socket
Joe Atzberger [Wed, 12 May 2010 15:54:05 +0000 (15:54 +0000)]
Simple test showing telnet vs. RAW handling.
Joe Atzberger [Tue, 11 May 2010 15:25:01 +0000 (15:25 +0000)]
Cleanup and more paranoid whitespace filtering
Joe Atzberger [Tue, 11 May 2010 04:55:33 +0000 (04:55 +0000)]
Kill useless sub _count_tests
Joe Atzberger [Tue, 11 May 2010 03:09:29 +0000 (03:09 +0000)]
Correct log message: Sip::MsgType::_initialize
not Sip::MsgType:_initialize (one colon)
Joe Atzberger [Tue, 11 May 2010 01:56:37 +0000 (01:56 +0000)]
Get rid of weird evals, useless use's
There are no scripts committed that use DATA handles, so those
eval blocks are not part of a known application. And that
behavior is super sketchy, especially with multiple scripts, likely
in combination!
Joe Atzberger [Mon, 10 May 2010 22:27:12 +0000 (22:27 +0000)]
LOG_ERROR is not a valid loglevel.
LOG_ERR is.
Joe Atzberger [Mon, 10 May 2010 22:11:18 +0000 (22:11 +0000)]
Append extensions fields to checkin response
Joe Atzberger [Mon, 10 May 2010 22:10:07 +0000 (22:10 +0000)]
Add back FID_HOME_LIBRARY
Joe Atzberger [Mon, 10 May 2010 21:47:59 +0000 (21:47 +0000)]
Patron password is a required field
Alert type is part of the checkin extensions
Joe Atzberger [Mon, 10 May 2010 21:37:13 +0000 (21:37 +0000)]
Add 3M extension constants and structuralize EXPORT_TAGS
Joe Atzberger [Fri, 7 May 2010 01:22:35 +0000 (01:22 +0000)]
LOG_WARN is not a valid syslog loglevel
LOG_WARNING is.
Joe Atzberger [Fri, 7 May 2010 01:09:27 +0000 (01:09 +0000)]
Proper id (copy/paste error)
Joe Atzberger [Fri, 7 May 2010 00:11:08 +0000 (00:11 +0000)]
Script should be executable.
Joe Atzberger [Fri, 7 May 2010 00:09:22 +0000 (00:09 +0000)]
Alarm messages that mean something.
Additional log messages, or log message content borrowed from my work on Koha.
Also some blasts of perltidy.
Joe Atzberger [Fri, 7 May 2010 00:02:24 +0000 (00:02 +0000)]
Allow log ident string to be pulled from ENV
This supports running multiple SIP interfaces on the same box,
even as the same user.
Joe Atzberger [Tue, 4 May 2010 19:21:23 +0000 (19:21 +0000)]
Initial Commit
From openncip.cvs.sourceforge.net:/cvsroot/openncip
.gitignore added
djfiander [Wed, 13 Jan 2010 01:39:30 +0000 (01:39 +0000)]
Dan Scott's patch:
Item status response 18 was returning CJ0|CM0| which are invalid
according to the SIP2 specification; they should either be
18-char fixed fields or not there at all (as they're optional).
It looks like it was just a reversed test. In looking through
Sip/MsgType.pm in that area, I put together a patch which
prevents those fields from being generated if the incoming value
is 0 - and separates out the value assignment & test into
separate statements, which should make the code a bit easier to
read.
As an aside, I believe the same problem was preventing the due
date (AH) from being returned in the item status response.
djfiander [Wed, 13 Jan 2010 01:38:31 +0000 (01:38 +0000)]
Minor fix to UTF8 support
djfiander [Fri, 8 Jan 2010 23:46:07 +0000 (23:46 +0000)]
Various utf8 fixes
djfiander [Thu, 7 Jan 2010 01:24:02 +0000 (01:24 +0000)]
Restore the byte-by-byte checksum method, since the Unicode-aware
version breaks with very new 3M self-check units, according to dbs.
djfiander [Tue, 9 Jun 2009 01:43:07 +0000 (01:43 +0000)]
Fix missing parens in hash dereference
djfiander [Wed, 11 Feb 2009 01:05:04 +0000 (01:05 +0000)]
Log incoming connections promptly
djfiander [Fri, 17 Oct 2008 23:57:52 +0000 (23:57 +0000)]
Only try to strip off the leading newline if there's actually
content in the record at all (eliminate perl 'Use of
uninitialized value' warning).
djfiander [Fri, 17 Oct 2008 23:48:02 +0000 (23:48 +0000)]
Untested fix for dealing with the incorrect record terminators
transmitted by Cen-Tec self-check hardware.
djfiander [Wed, 18 Jun 2008 22:25:52 +0000 (22:25 +0000)]
Handle various dates associated with items consistently.
djfiander [Wed, 19 Mar 2008 01:26:00 +0000 (01:26 +0000)]
Add copyright statements
djfiander [Wed, 19 Mar 2008 01:23:43 +0000 (01:23 +0000)]
Update dependencies
djfiander [Tue, 11 Mar 2008 21:37:05 +0000 (21:37 +0000)]
Add support for PINES requested extension: Patron Info Response
now includes AQ "Home Library" field.
djfiander [Tue, 11 Mar 2008 21:35:22 +0000 (21:35 +0000)]
Add support for "home_library" field in patron database
djfiander [Tue, 11 Mar 2008 21:32:54 +0000 (21:32 +0000)]
Check the protocol of the client connection properly.
djfiander [Fri, 27 Apr 2007 00:46:04 +0000 (00:46 +0000)]
Clean up field parsing so it's more perlish and less C-ish
djfiander [Tue, 24 Apr 2007 23:05:31 +0000 (23:05 +0000)]
Force the key to the 'listeners' hash to be all lowercase, and
force the key for which we search at runtime to be lowercase, so
that searches of the hash are case-insensitive.
djfiander [Tue, 24 Apr 2007 23:00:39 +0000 (23:00 +0000)]
Fix code so that it will run with Net::Server 0.96. This is just
eliminating a dependency on the internals of the Net::Server
object, so this code will continue to run with older versions of
Net::Server as well.
djfiander [Fri, 6 Apr 2007 20:49:06 +0000 (20:49 +0000)]
Apply Bill Erickson's patch to clean up matching an incoming
connection against the configuration file. There's no longer a
special case for 127.0.0.1, so it will not longer match
'localhost', but it doesn't match any other hostnames anyway.
djfiander [Sat, 16 Sep 2006 13:50:14 +0000 (13:50 +0000)]
Move code that connects to ILS back end out of
sip_protocol_loop() and into handle_login(). This way, if
there's a problem loading or initializing the ILS implementation,
the client will be told that login failed, rather than
"successfully" logging in and then having the server die later.
djfiander [Sat, 16 Sep 2006 13:04:13 +0000 (13:04 +0000)]
Test logging in with invalid username and invalid password
djfiander [Thu, 31 Aug 2006 23:06:14 +0000 (23:06 +0000)]
Log both raw input and raw output messages.
Zero-pad the checksum that we transmit.
djfiander [Thu, 31 Aug 2006 21:53:18 +0000 (21:53 +0000)]
Cope with trailing whitespace on the titles returned from the
ILS, since that seems to be a problem for PINES
djfiander [Wed, 30 Aug 2006 23:48:12 +0000 (23:48 +0000)]
Properly transmit the patron's fee amount and currency. Make a
note of the missing limit fields until the OPAC supports them.
djfiander [Mon, 28 Aug 2006 22:01:54 +0000 (22:01 +0000)]
Tighten up test for value of the BX field in the ACS status message
djfiander [Mon, 28 Aug 2006 22:01:17 +0000 (22:01 +0000)]
Added missing value for whether the server supports the SC/ACS
resend messages.
djfiander [Sun, 27 Aug 2006 11:49:52 +0000 (11:49 +0000)]
Transmit screen message and print line in Patron Information
Response messages.
djfiander [Sat, 26 Aug 2006 18:50:42 +0000 (18:50 +0000)]
Go back to using unpack to generate the checksums, except that
I'm using the 'U'TF encoding instead of the 'C'har encoding.
This seems to work, at least in my test environment.
djfiander [Fri, 25 Aug 2006 01:23:11 +0000 (01:23 +0000)]
Add test case for checking titles that have a diacritical in the title.
djfiander [Fri, 25 Aug 2006 01:22:20 +0000 (01:22 +0000)]
Add entry to "catalogue" that has a diacritical in the title, for
testing the checksum algorithm.
djfiander [Fri, 25 Aug 2006 01:21:37 +0000 (01:21 +0000)]
Replace idiomatic perl checksum code, which seems to fail on
strings with diacriticals in them, with an explicit sum of the
ordinal values of the characters in the string, which seems to cope.
djfiander [Tue, 22 Aug 2006 23:16:41 +0000 (23:16 +0000)]
Make two shut down messages different, to simplify debugging
djfiander [Thu, 3 Aug 2006 00:05:41 +0000 (00:05 +0000)]
Use correct boolean format for 'OK' field of Checkin Response
message.
djfiander [Sat, 29 Jul 2006 18:45:55 +0000 (18:45 +0000)]
Don't rely on clients sending the exactly protocol strings '1.00'
and '2.00'. Anything that starts with a '1.' is a "revision 1"
protocol string and anything that begins with a '2.' is a
"revision 2" protocol string. That way, when a clients reports
that they support protocol revision '2.0S', we will properly
react and send revision 2.00 messages.