---
name: "CURLOPT_SASL_IR"
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_SASL_IR"
---

# CURLOPT\_SASL\_IR(3)

send initial response in first packet

## NAME

CURLOPT\_SASL\_IR - send initial response in first packet

## SYNOPSIS

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

## DESCRIPTION

Pass a long. If the value is 1, curl sends the initial response to the server in the first authentication packet in order to reduce the number of ping pong requests. Only applicable to the following supporting SASL authentication mechanisms:

\* Login \* Plain \* GSSAPI \* NTLM \* OAuth 2.0

Note: Whilst IMAP supports this option there is no need to explicitly set it, as libcurl can determine the feature itself when the server supports the SASL-IR CAPABILITY.

## DEFAULT

0

## PROTOCOLS

This functionality affects imap and smtp

## EXAMPLE

```
int main(void)
{
  CURL *curl = curl_easy_init();
  if(curl) {
    CURLcode result;
    curl_easy_setopt(curl, CURLOPT_URL, "smtp://example.com/");
    curl_easy_setopt(curl, CURLOPT_SASL_IR, 1L);
    result = curl_easy_perform(curl);
    curl_easy_cleanup(curl);
  }
}
```

## AVAILABILITY

Added in curl 7.31.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\_MAIL\_AUTH**(3)](/CURLOPT_MAIL_AUTH/3.md), [**CURLOPT\_MAIL\_FROM**(3)](/CURLOPT_MAIL_FROM/3.md), [**CURLOPT\_SASL\_AUTHZID**(3)](/CURLOPT_SASL_AUTHZID/3.md)
