---
name: "CURLOPT_GSSAPI_DELEGATION"
section: "3"
platform: "linux"
package: "curl"
version: "8.23.0-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux", "macos"]
url: "https://new.carta.tech/CURLOPT_GSSAPI_DELEGATION"
---

# CURLOPT\_GSSAPI\_DELEGATION(3)

allowed GSS-API delegation

## NAME

CURLOPT\_GSSAPI\_DELEGATION - allowed GSS-API delegation

## SYNOPSIS

```
#include <curl/curl.h>
CURLcode curl_easy_setopt(CURL *handle, CURLOPT_GSSAPI_DELEGATION, long level);
```

## DESCRIPTION

Set the long parameter *level* to **CURLGSSAPI\_DELEGATION\_FLAG** to allow unconditional GSSAPI credential delegation. The delegation is disabled by default since 7.21.7. Set the parameter to **CURLGSSAPI\_DELEGATION\_POLICY\_FLAG** to delegate only if the OK-AS-DELEGATE flag is set in the service ticket in case this feature is supported by the GSS-API implementation and the definition of *GSS\_C\_DELEG\_POLICY\_FLAG* was available at compile-time.

## DEFAULT

CURLGSSAPI\_DELEGATION\_NONE

## PROTOCOLS

This functionality affects http only

## EXAMPLE

```
int main(void)
{
  CURL *curl = curl_easy_init();
  if(curl) {
    CURLcode result;
    curl_easy_setopt(curl, CURLOPT_URL, "https://example.com/");
    /* delegate if okayed by policy */
    curl_easy_setopt(curl, CURLOPT_GSSAPI_DELEGATION,
                     CURLGSSAPI_DELEGATION_POLICY_FLAG);
    result = curl_easy_perform(curl);
  }
}
```

## HISTORY

**CURLGSSAPI\_DELEGATION\_**\* macros became *long* types in 8.16.0, prior to this version a *long* cast was necessary when passed to *[curl\_easy\_setopt(3)](/curl_easy_setopt/3.md)*.

## AVAILABILITY

Added in curl 7.22.0

## RETURN VALUE

*[curl\_easy\_setopt(3)](/curl_easy_setopt/3.md)* returns a CURLcode indicating success or error.

CURLE\_OK (0) means everything was OK, non-zero means an error occurred, see *[libcurl-errors(3)](/libcurl-errors/3.md)*.

## SEE ALSO

[**CURLOPT\_HTTPAUTH**(3)](/CURLOPT_HTTPAUTH/3.md), [**CURLOPT\_PROXYAUTH**(3)](/CURLOPT_PROXYAUTH/3.md)
