---
name: "Net::SFTP::Foreign::Constants"
section: "3pm"
platform: "linux"
package: "libnet-sftp-foreign-perl"
version: "1.93+dfsg-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Net::SFTP::Foreign::Constants"
---

# Net::SFTP::Foreign::Constants(3pm)

Constant definitions for Net::SFTP::Foreign

## NAME

Net::SFTP::Foreign::Constants - Constant definitions for Net::SFTP::Foreign

## SYNOPSIS

```
    use Net::SFTP::Foreign::Constants qw(:tag SSH2_FILEXFER_VERSION);
    print "Protocol version is ", SSH2_FILEXFER_VERSION;
```

## DESCRIPTION

Net::SFTP::Foreign::Constants provides a list of exportable SFTP constants: for SFTP messages and commands, for file-open flags, for status messages, etc. Constants can be exported individually, or in sets identified by tag names.

Net::SFTP::Foreign::Constants provides values for all of the constants listed in the SFTP protocol version 3 draft; the only thing to note is that the constants are listed with the prefix `"SSH2_"` instead of `"SSH_"`. So, for example, to import the constant for the file-open command, you would write:

```
    use Net::SFTP::Foreign::Constants qw( SSH2_FXP_OPEN );
```

## TAGS

As mentioned above, constants can either be imported individually or in sets grouped by tag names. The tag names are:

- :fxp

  Imports all of the `"SSH2_FXP_*"` constants: these are the constants used in the messaging protocol.

- :flags

  Imports all of the `"SSH2_FXF_*"` constants: these are constants used as flags sent to the server when opening files.

- :att

  Imports all of the `"SSH2_FILEXFER_ATTR_*"` constants: these are the constants used to construct the flag in the serialized attributes. The flag describes what types of file attributes are listed in the buffer.

- :status

  Imports all of the `"SSH2_FX_*"` constants: these are constants returned from a server `"SSH2_FXP_STATUS"` message and indicate the status of a particular operation.

- :error

  Imports all the `"SFTP_ERR_*"` constants used to represent high level errors: `"SFTP_ERR_LOCAL_ALREADY_EXISTS"`, `"SFTP_ERR_LOCAL_CHMOD_FAILED"`, `"SFTP_ERR_LOCAL_OPEN_FAILED"`, `"SFTP_ERR_LOCAL_READ_ERROR"`, `"SFTP_ERR_LOCAL_STAT_FAILED"`, `"SFTP_ERR_LOCAL_UTIME_FAILED"`, `"SFTP_ERR_LOCAL_WRITE_FAILED"`, `"SFTP_ERR_REMOTE_BAD_PACKET_SEQUENCE"`, `"SFTP_ERR_REMOTE_BAD_PERMISSIONS"`, `"SFTP_ERR_REMOTE_BAD_TIME"`, `"SFTP_ERR_REMOTE_BLOCK_TOO_SMALL"`, `"SFTP_ERR_REMOTE_CLOSE_FAILED"`, `"SFTP_ERR_REMOTE_FSETSTAT_FAILED"`, `"SFTP_ERR_REMOTE_FSTAT_FAILED"`, `"SFTP_ERR_REMOTE_LSTAT_FAILED"`, `"SFTP_ERR_REMOTE_MKDIR_FAILED"`, `"SFTP_ERR_REMOTE_OPENDIR_FAILED"`, `"SFTP_ERR_REMOTE_OPEN_FAILED"`, `"SFTP_ERR_REMOTE_READDIR_FAILED"`, `"SFTP_ERR_REMOTE_READ_FAILED"`, `"SFTP_ERR_REMOTE_REALPATH_FAILED"`, `"SFTP_ERR_REMOTE_REMOVE_FAILED"`, `"SFTP_ERR_REMOTE_RENAME_FAILED"`, `"SFTP_ERR_REMOTE_RMDIR_FAILED"`, `"SFTP_ERR_REMOTE_READLINK_FAILED"`, `"SFTP_ERR_REMOTE_SYMLINK_FAILED"`, `"SFTP_ERR_REMOTE_SETSTAT_FAILED"`, `"SFTP_ERR_REMOTE_STAT_FAILED"`, `"SFTP_ERR_REMOTE_WRITE_FAILED"` and `"SFTP_ERR_REMOTE_HARDLINK_FAILED"`.

  Note: these constants are not defined on the SFTP draft.

- :ext

  Import all the `"SSH2_FXE_*"` constants: there are the constants defined for usage with SFTP extensions.

  Currently, these are supported: `"SSH2_FXE_STATVFS_ST_RDONLY"`, `"SSH_FXE_STATVFS_ST_NOSUID"`.

There is one constant that does not fit into any of the tag sets: `"SSH2_FILEXFER_VERSION"`, which holds the value of the SFTP protocol implemented by Net::SFTP::Foreign.

## AUTHOR & COPYRIGHTS

Please see the Net::SFTP::Foreign manpage for author, copyright, and license information.
