SFTP packet parsing and formatting. More...
#include "ssh/ssh_misc.h"#include "sftp/sftp_server.h"#include "sftp/sftp_server_file.h"#include "sftp/sftp_server_directory.h"#include "sftp/sftp_server_packet.h"#include "sftp/sftp_server_misc.h"#include "path.h"#include "debug.h"Go to the source code of this file.
Macros | |
| #define | TRACE_LEVEL SFTP_TRACE_LEVEL |
Functions | |
| error_t | sftpServerParseFxpInit (SftpServerSession *session, const uint8_t *packet, size_t length) |
| Parse SSH_FXP_INIT packet. More... | |
| error_t | sftpServerParseFxpOpen (SftpServerSession *session, const uint8_t *packet, size_t length) |
| Parse SSH_FXP_OPEN packet. More... | |
| error_t | sftpServerParseFxpClose (SftpServerSession *session, const uint8_t *packet, size_t length) |
| Parse SSH_FXP_CLOSE packet. More... | |
| error_t | sftpServerParseFxpRead (SftpServerSession *session, const uint8_t *packet, size_t length) |
| Parse SSH_FXP_READ packet. More... | |
| error_t | sftpServerParseFxpWrite (SftpServerSession *session, const uint8_t *packet, size_t fragLen, size_t totalLen) |
| Parse SSH_FXP_WRITE packet. More... | |
| error_t | sftpServerParseFxpOpenDir (SftpServerSession *session, const uint8_t *packet, size_t length) |
| Parse SSH_FXP_OPENDIR packet. More... | |
| error_t | sftpServerParseFxpReadDir (SftpServerSession *session, const uint8_t *packet, size_t length) |
| Parse SSH_FXP_READDIR packet. More... | |
| error_t | sftpServerParseFxpRemove (SftpServerSession *session, const uint8_t *packet, size_t length) |
| Parse SSH_FXP_REMOVE packet. More... | |
| error_t | sftpServerParseFxpMkDir (SftpServerSession *session, const uint8_t *packet, size_t length) |
| Parse SSH_FXP_MKDIR packet. More... | |
| error_t | sftpServerParseFxpRmDir (SftpServerSession *session, const uint8_t *packet, size_t length) |
| Parse SSH_FXP_RMDIR packet. More... | |
| error_t | sftpServerParseFxpRealPath (SftpServerSession *session, const uint8_t *packet, size_t length) |
| Parse SSH_FXP_REALPATH packet. More... | |
| error_t | sftpServerParseFxpStat (SftpServerSession *session, const uint8_t *packet, size_t length) |
| Parse SSH_FXP_STAT packet. More... | |
| error_t | sftpServerParseFxpFstat (SftpServerSession *session, const uint8_t *packet, size_t length) |
| Parse SSH_FXP_FSTAT packet. More... | |
| error_t | sftpServerParseFxpSetStat (SftpServerSession *session, const uint8_t *packet, size_t length) |
| Parse SSH_FXP_SETSTAT packet. More... | |
| error_t | sftpServerParseFxpSetFstat (SftpServerSession *session, const uint8_t *packet, size_t length) |
| Parse SSH_FXP_FSETSTAT packet. More... | |
| error_t | sftpServerParseFxpRename (SftpServerSession *session, const uint8_t *packet, size_t length) |
| Parse SSH_FXP_RENAME packet. More... | |
| error_t | sftpServerParseFxpExtended (SftpServerSession *session, const uint8_t *packet, size_t length) |
| Parse SSH_FXP_EXTENDED packet. More... | |
| error_t | sftpFormatFxpVersion (SftpServerSession *session, uint32_t version) |
| Format SSH_FXP_VERSION packet. More... | |
| error_t | sftpFormatFxpStatus (SftpServerSession *session, uint32_t id, uint32_t statusCode, const char_t *message) |
| Format SSH_FXP_STATUS message. More... | |
| error_t | sftpFormatFxpHandle (SftpServerSession *session, uint32_t id, uint32_t handle) |
| Format SSH_FXP_HANDLE message. More... | |
| error_t | sftpFormatFxpData (SftpServerSession *session, uint32_t id, size_t dataLen) |
| Format SSH_FXP_DATA message. More... | |
| error_t | sftpFormatFxpName (SftpServerSession *session, uint32_t id, const SftpName *name) |
| Format SSH_FXP_NAME packet. More... | |
| error_t | sftpFormatFxpAttrs (SftpServerSession *session, uint32_t id, const SftpFileAttrs *attributes) |
| Format SSH_FXP_ATTRS packet. More... | |
Detailed Description
SFTP packet parsing and formatting.
License
SPDX-License-Identifier: GPL-2.0-or-later
Copyright (C) 2019-2025 Oryx Embedded SARL. All rights reserved.
This file is part of CycloneSSH Open.
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- Version
- 2.5.4
Definition in file sftp_server_packet.c.
Macro Definition Documentation
◆ TRACE_LEVEL
| #define TRACE_LEVEL SFTP_TRACE_LEVEL |
Definition at line 32 of file sftp_server_packet.c.
Function Documentation
◆ sftpFormatFxpAttrs()
| error_t sftpFormatFxpAttrs | ( | SftpServerSession * | session, |
| uint32_t | id, | ||
| const SftpFileAttrs * | attributes | ||
| ) |
Format SSH_FXP_ATTRS packet.
- Parameters
-
[in] session Handle referencing an SFTP session [in] id Request identifier [in] attributes File attributes
- Returns
- Error code
Definition at line 1637 of file sftp_server_packet.c.
◆ sftpFormatFxpData()
| error_t sftpFormatFxpData | ( | SftpServerSession * | session, |
| uint32_t | id, | ||
| size_t | dataLen | ||
| ) |
Format SSH_FXP_DATA message.
- Parameters
-
[in] session Handle referencing an SFTP session [in] id Request identifier [in] dataLen Length of the data string, in bytes
- Returns
- Error code
Definition at line 1507 of file sftp_server_packet.c.
◆ sftpFormatFxpHandle()
| error_t sftpFormatFxpHandle | ( | SftpServerSession * | session, |
| uint32_t | id, | ||
| uint32_t | handle | ||
| ) |
Format SSH_FXP_HANDLE message.
- Parameters
-
[in] session Handle referencing an SFTP session [in] id Request identifier [in] handle Opaque value that identifies a file or directory
- Returns
- Error code
Definition at line 1445 of file sftp_server_packet.c.
◆ sftpFormatFxpName()
| error_t sftpFormatFxpName | ( | SftpServerSession * | session, |
| uint32_t | id, | ||
| const SftpName * | name | ||
| ) |
Format SSH_FXP_NAME packet.
- Parameters
-
[in] session Handle referencing an SFTP session [in] id Request identifier [in] name Pointer to the name structure
- Returns
- Error code
Definition at line 1567 of file sftp_server_packet.c.
◆ sftpFormatFxpStatus()
| error_t sftpFormatFxpStatus | ( | SftpServerSession * | session, |
| uint32_t | id, | ||
| uint32_t | statusCode, | ||
| const char_t * | message | ||
| ) |
Format SSH_FXP_STATUS message.
- Parameters
-
[in] session Handle referencing an SFTP session [in] id Request identifier [in] statusCode Result of the requested operation [in] message NULL-terminating description string
- Returns
- Error code
Definition at line 1365 of file sftp_server_packet.c.
◆ sftpFormatFxpVersion()
| error_t sftpFormatFxpVersion | ( | SftpServerSession * | session, |
| uint32_t | version | ||
| ) |
Format SSH_FXP_VERSION packet.
- Parameters
-
[in] session Handle referencing an SFTP session [in] version Protocol version number
- Returns
- Error code
Definition at line 1313 of file sftp_server_packet.c.
◆ sftpServerParseFxpClose()
| error_t sftpServerParseFxpClose | ( | SftpServerSession * | session, |
| const uint8_t * | packet, | ||
| size_t | length | ||
| ) |
Parse SSH_FXP_CLOSE packet.
- Parameters
-
[in] session Handle referencing an SFTP session [in] packet Pointer to packet [in] length Length of the packet, in bytes
- Returns
- Error code
Definition at line 195 of file sftp_server_packet.c.
◆ sftpServerParseFxpExtended()
| error_t sftpServerParseFxpExtended | ( | SftpServerSession * | session, |
| const uint8_t * | packet, | ||
| size_t | length | ||
| ) |
Parse SSH_FXP_EXTENDED packet.
- Parameters
-
[in] session Handle referencing an SFTP session [in] packet Pointer to packet [in] length Length of the packet, in bytes
- Returns
- Error code
Definition at line 1262 of file sftp_server_packet.c.
◆ sftpServerParseFxpFstat()
| error_t sftpServerParseFxpFstat | ( | SftpServerSession * | session, |
| const uint8_t * | packet, | ||
| size_t | length | ||
| ) |
Parse SSH_FXP_FSTAT packet.
- Parameters
-
[in] session Handle referencing an SFTP session [in] packet Pointer to packet [in] length Length of the packet, in bytes
- Returns
- Error code
Definition at line 959 of file sftp_server_packet.c.
◆ sftpServerParseFxpInit()
| error_t sftpServerParseFxpInit | ( | SftpServerSession * | session, |
| const uint8_t * | packet, | ||
| size_t | length | ||
| ) |
Parse SSH_FXP_INIT packet.
- Parameters
-
[in] session Handle referencing an SFTP session [in] packet Pointer to packet [in] length Length of the packet, in bytes
- Returns
- Error code
Definition at line 56 of file sftp_server_packet.c.
◆ sftpServerParseFxpMkDir()
| error_t sftpServerParseFxpMkDir | ( | SftpServerSession * | session, |
| const uint8_t * | packet, | ||
| size_t | length | ||
| ) |
Parse SSH_FXP_MKDIR packet.
- Parameters
-
[in] session Handle referencing an SFTP session [in] packet Pointer to packet [in] length Length of the packet, in bytes
- Returns
- Error code
Definition at line 679 of file sftp_server_packet.c.
◆ sftpServerParseFxpOpen()
| error_t sftpServerParseFxpOpen | ( | SftpServerSession * | session, |
| const uint8_t * | packet, | ||
| size_t | length | ||
| ) |
Parse SSH_FXP_OPEN packet.
- Parameters
-
[in] session Handle referencing an SFTP session [in] packet Pointer to packet [in] length Length of the packet, in bytes
- Returns
- Error code
Definition at line 98 of file sftp_server_packet.c.
◆ sftpServerParseFxpOpenDir()
| error_t sftpServerParseFxpOpenDir | ( | SftpServerSession * | session, |
| const uint8_t * | packet, | ||
| size_t | length | ||
| ) |
Parse SSH_FXP_OPENDIR packet.
- Parameters
-
[in] session Handle referencing an SFTP session [in] packet Pointer to packet [in] length Length of the packet, in bytes
- Returns
- Error code
Definition at line 462 of file sftp_server_packet.c.
◆ sftpServerParseFxpRead()
| error_t sftpServerParseFxpRead | ( | SftpServerSession * | session, |
| const uint8_t * | packet, | ||
| size_t | length | ||
| ) |
Parse SSH_FXP_READ packet.
- Parameters
-
[in] session Handle referencing an SFTP session [in] packet Pointer to packet [in] length Length of the packet, in bytes
- Returns
- Error code
Definition at line 269 of file sftp_server_packet.c.
◆ sftpServerParseFxpReadDir()
| error_t sftpServerParseFxpReadDir | ( | SftpServerSession * | session, |
| const uint8_t * | packet, | ||
| size_t | length | ||
| ) |
Parse SSH_FXP_READDIR packet.
- Parameters
-
[in] session Handle referencing an SFTP session [in] packet Pointer to packet [in] length Length of the packet, in bytes
- Returns
- Error code
Definition at line 534 of file sftp_server_packet.c.
◆ sftpServerParseFxpRealPath()
| error_t sftpServerParseFxpRealPath | ( | SftpServerSession * | session, |
| const uint8_t * | packet, | ||
| size_t | length | ||
| ) |
Parse SSH_FXP_REALPATH packet.
- Parameters
-
[in] session Handle referencing an SFTP session [in] packet Pointer to packet [in] length Length of the packet, in bytes
- Returns
- Error code
Definition at line 825 of file sftp_server_packet.c.
◆ sftpServerParseFxpRemove()
| error_t sftpServerParseFxpRemove | ( | SftpServerSession * | session, |
| const uint8_t * | packet, | ||
| size_t | length | ||
| ) |
Parse SSH_FXP_REMOVE packet.
- Parameters
-
[in] session Handle referencing an SFTP session [in] packet Pointer to packet [in] length Length of the packet, in bytes
- Returns
- Error code
Definition at line 612 of file sftp_server_packet.c.
◆ sftpServerParseFxpRename()
| error_t sftpServerParseFxpRename | ( | SftpServerSession * | session, |
| const uint8_t * | packet, | ||
| size_t | length | ||
| ) |
Parse SSH_FXP_RENAME packet.
- Parameters
-
[in] session Handle referencing an SFTP session [in] packet Pointer to packet [in] length Length of the packet, in bytes
- Returns
- Error code
Definition at line 1184 of file sftp_server_packet.c.
◆ sftpServerParseFxpRmDir()
| error_t sftpServerParseFxpRmDir | ( | SftpServerSession * | session, |
| const uint8_t * | packet, | ||
| size_t | length | ||
| ) |
Parse SSH_FXP_RMDIR packet.
- Parameters
-
[in] session Handle referencing an SFTP session [in] packet Pointer to packet [in] length Length of the packet, in bytes
- Returns
- Error code
Definition at line 758 of file sftp_server_packet.c.
◆ sftpServerParseFxpSetFstat()
| error_t sftpServerParseFxpSetFstat | ( | SftpServerSession * | session, |
| const uint8_t * | packet, | ||
| size_t | length | ||
| ) |
Parse SSH_FXP_FSETSTAT packet.
- Parameters
-
[in] session Handle referencing an SFTP session [in] packet Pointer to packet [in] length Length of the packet, in bytes
- Returns
- Error code
Definition at line 1105 of file sftp_server_packet.c.
◆ sftpServerParseFxpSetStat()
| error_t sftpServerParseFxpSetStat | ( | SftpServerSession * | session, |
| const uint8_t * | packet, | ||
| size_t | length | ||
| ) |
Parse SSH_FXP_SETSTAT packet.
- Parameters
-
[in] session Handle referencing an SFTP session [in] packet Pointer to packet [in] length Length of the packet, in bytes
- Returns
- Error code
Definition at line 1025 of file sftp_server_packet.c.
◆ sftpServerParseFxpStat()
| error_t sftpServerParseFxpStat | ( | SftpServerSession * | session, |
| const uint8_t * | packet, | ||
| size_t | length | ||
| ) |
Parse SSH_FXP_STAT packet.
- Parameters
-
[in] session Handle referencing an SFTP session [in] packet Pointer to packet [in] length Length of the packet, in bytes
- Returns
- Error code
Definition at line 892 of file sftp_server_packet.c.
◆ sftpServerParseFxpWrite()
| error_t sftpServerParseFxpWrite | ( | SftpServerSession * | session, |
| const uint8_t * | packet, | ||
| size_t | fragLen, | ||
| size_t | totalLen | ||
| ) |
Parse SSH_FXP_WRITE packet.
- Parameters
-
[in] session Handle referencing an SFTP session [in] packet Pointer to packet [in] fragLen Number of bytes available on hand [in] totalLen Total length of the packet, in bytes
- Returns
- Error code
Definition at line 375 of file sftp_server_packet.c.
