---
name: "libssh2_channel_direct_streamlocal_ex"
section: "3"
platform: "linux"
package: "libssh2"
version: "1.11.1-7"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/libssh2_channel_direct_streamlocal_ex"
---

# libssh2\_channel\_direct\_streamlocal\_ex(3)

Tunnel a UNIX socket connection through an SSH session

## NAME

libssh2\_channel\_direct\_streamlocal\_ex - Tunnel a UNIX socket connection through an SSH session

## SYNOPSIS

```
#include <libssh2.h>
LIBSSH2_CHANNEL *
libssh2_channel_direct_streamlocal_ex(LIBSSH2_SESSION *session,
                                      const char *socket_path,
                                      const char *shost, int sport);
```

## DESCRIPTION

*session* - Session instance as returned by **[libssh2\_session\_init\_ex(3)](/libssh2_session_init_ex/3.md)**

*socket\_path* - UNIX socket to connect to using the SSH host as a proxy.

*shost* - Host to tell the SSH server the connection originated on.

*sport* - Port to tell the SSH server the connection originated from.

Tunnel a UNIX socket connection through the SSH transport via the remote host to a third party. Communication from the client to the SSH server remains encrypted, communication from the server to the 3rd party host travels in cleartext.

## RETURN VALUE

Pointer to a newly allocated LIBSSH2\_CHANNEL instance, or NULL on errors.

## ERRORS

*LIBSSH2\_ERROR\_ALLOC* - An internal memory allocation call failed.

## SEE ALSO

**[libssh2\_session\_init\_ex(3)](/libssh2_session_init_ex/3.md)**
