---
name: "sasl_listmech"
section: "3"
platform: "linux"
package: "libsasl2-dev"
version: "2.1.28+dfsg1-9"
release: "Debian 13 (Trixie)"
platforms: ["linux", "macos"]
url: "https://new.carta.tech/sasl_listmech"
---

# sasl\_listmech(3)

Cyrus SASL documentation

## NAME

sasl\_listmech - Cyrus SASL documentation

## SYNOPSIS

```
#include <sasl/sasl.h>
int sasl_listmech(sasl_conn_t *conn,
                 const char *user,
                 const char *prefix,
                 const char *sep,
                 const char *suffix,
                 const char **result,
                 unsigned *plen,
                 int *pcount);
```

## DESCRIPTION

- **int sasl\_listmech(sasl\_conn\_t \*conn,**

  - **const char \*user,**

  - **const char \*prefix,**

  - **const char \*sep,**

  - **const char \*suffix,**

  - **const char \*\*result,**

  - **unsigned \*plen,**

  - **int \*pcount);**

  **sasl\_listmech** returns a string listing the SASL names of all the mechanisms available to the specified user. This is typically given to the client through a capability command or initial server response. Client applications need this list so that they know what mechanisms the server supports.

  - **Parameters**

    - •

      **conn** – the SASL context for this connection

    - •

      **user** – (optional) restricts the mechanism list to only those available to the user.

    - •

      **prefix** – appended to beginning of result

    - •

      **sep** – appended between mechanisms

    - •

      **suffix** – appended to end of result

    - •

      **result** – NULL terminated result string (allocated/freed by library)

    - •

      **plen** – length of result filled in by library. May be NULL

    - •

      **pcount** – Number of mechanisms available (filled in by library). May be NULL

## EXAMPLE

```
sasl_listmech(conn,NULL,"(",",",")",&mechlist,NULL,NULL);
```

may give the following string as a result:

*(ANONYMOUS,KERBEROS\_V4,DIGEST‐MD5)*

## RETURN VALUE

SASL functions should return SASL return codes. See sasl.h for a complete list. *SASL\_OK* indicates success.

## SEE ALSO

*RFC 4422*,:saslman:*[sasl(3)](/sasl/3.md)*, *[sasl\_server\_new(3)](/sasl_server_new/3.md)*, *[sasl\_errors(3)](/sasl_errors/3.md)*, *[sasl\_client\_new(3)](/sasl_client_new/3.md)*

## AUTHOR

The Cyrus Team

## COPYRIGHT

1993-2016, The Cyrus Team
