---
name: "GSSAPI::Status"
section: "3pm"
platform: "linux"
package: "perl-gssapi"
version: "0.28-24"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/GSSAPI::Status"
---

# GSSAPI::Status(3pm)

methods for handlings GSSAPI statuses

## NAME

GSSAPI::Status - methods for handlings GSSAPI statuses

## SYNOPSIS

```
  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";
  }
```

## DESCRIPTION

`"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.

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.

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"`.

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.

## BUGS

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.

## AUTHOR

Philip Guenther \<pguen@cpan.org\>

## SEE ALSO

[**perl**(1)](/perl/1.md) RFC2743
