GSSAPI::Status - methods for handlings GSSAPI statuses
use GSSAPI; $status = GSSAPI::Status->new(GSS_S_COMPLETE, 0); if (GSS_ERROR($status->major)) { die "a horrible death"; } if (! $status) { # another way of writing the above die "a horrible death"; } $status = $some_GSSAPI->someop($args1, etc); if ($status) { foreach ($status->generic_message, $status->specific_message) { print "GSSAPI error: $_\n"; } die "help me"; }
GSSAPI::Status objects are returned by most other GSSAPI operations. Such statuses consist of a GSSAPI generic code and, for most operations, a mechanism specific code. These numeric codes can be accessed via the methods major and minor. The standard textual messages that go with the current status can be obtained via the generic_message and specific_message methods. Each of these returns a list of text which should presumably be displayed in order.
GSSAPI::Status
major
minor
generic_message
specific_message
The generic code part of a GSSAPI::Status is composed of three subfields that can be accessed with the GSS_CALLING_ERROR, GSS_ROUTINE_ERROR, and GSS_SUPPLEMENTARY_INFO functions. The returned values can be compared against the constants whose names start with GSS_S_ if your code wants to handle particular errors itself. The GSS_ERROR function returns true if and only if the given generic code contains neither a calling error nor a routine error.
GSS_CALLING_ERROR
GSS_ROUTINE_ERROR
GSS_SUPPLEMENTARY_INFO
GSS_S_
GSS_ERROR
When evaluated in a boolean context, a GSSAPI::Status object will be true if and only if the major status code is GSS_S_COMPLETE.
GSS_S_COMPLETE
When evaluated in a string contect, a GSSAPI::Status object will return the generic and specific messages all joined together with newlines. This may or may not make die $status work usefully.
die $status
The base objects are currently implmented as a blessed C structure containing the major and minor status codes. It should probably be a blessed array or hash instead, thereby cutting down on the amount of C code involved and making it more flexible.
Philip Guenther <pguen@cpan.org>
perl(1) RFC2743
To install GSSAPI, copy and paste the appropriate command in to your terminal.
cpanm
cpanm GSSAPI
CPAN shell
perl -MCPAN -e shell install GSSAPI
For more information on module installation, please visit the detailed CPAN module installation guide.