+my($vs, $ss) = ("x" x 100, "x" x 100); # allocate space for these strings
+my $version = Net::Z3950::ZOOM::yaz_version($vs, $ss);
+if ($version < 0x02010B && ! -f "/tmp/ignore-ZOOM-YAZ-version-mismatch") {
+ warn <<__EOT__;
+*** WARNING!
+ZOOM-Perl requires at least version 2.0.11 of YAZ, but is currently
+running against only version $vs (sys-string '$ss').
+Some things may not work.
+__EOT__
+}
+
+# The only thing this module does is define the following constants,
+# which MUST BE KEPT SYNCHRONISED with the definitions in <yaz/zoom.h>
+
+# Error codes, as returned from connection_error()
+sub ERROR_NONE { 0 }
+sub ERROR_CONNECT { 10000 }
+sub ERROR_MEMORY { 10001 }
+sub ERROR_ENCODE { 10002 }
+sub ERROR_DECODE { 10003 }
+sub ERROR_CONNECTION_LOST { 10004 }
+sub ERROR_INIT { 10005 }
+sub ERROR_INTERNAL { 10006 }
+sub ERROR_TIMEOUT { 10007 }
+sub ERROR_UNSUPPORTED_PROTOCOL { 10008 }
+sub ERROR_UNSUPPORTED_QUERY { 10009 }
+sub ERROR_INVALID_QUERY { 10010 }
+sub ERROR_CQL_PARSE { 10011 }
+sub ERROR_CQL_TRANSFORM { 10012 }
+
+# Event types, as returned from connection_last_event()
+sub EVENT_NONE { 0 }
+sub EVENT_CONNECT { 1 }
+sub EVENT_SEND_DATA { 2 }
+sub EVENT_RECV_DATA { 3 }
+sub EVENT_TIMEOUT { 4 }
+sub EVENT_UNKNOWN { 5 }
+sub EVENT_SEND_APDU { 6 }
+sub EVENT_RECV_APDU { 7 }
+sub EVENT_RECV_RECORD { 8 }
+sub EVENT_RECV_SEARCH { 9 }