SCP server. More...
Go to the source code of this file.
Data Structures | |
| struct | ScpServerSettings |
| SCP server settings. More... | |
| struct | _ScpServerSession |
| SCP session. More... | |
| struct | _ScpServerContext |
| SCP server context. More... | |
Macros | |
| #define | SCP_SERVER_SUPPORT DISABLED |
| #define | SCP_SERVER_STACK_SIZE 650 |
| #define | SCP_SERVER_PRIORITY OS_TASK_PRIORITY_NORMAL |
| #define | SCP_SERVER_MAX_SESSIONS 10 |
| #define | SCP_SERVER_TICK_INTERVAL 1000 |
| #define | SCP_SERVER_BUFFER_SIZE 512 |
| #define | SCP_SERVER_MAX_ROOT_DIR_LEN 63 |
| #define | SCP_SERVER_MAX_HOME_DIR_LEN 63 |
| #define | SCP_SERVER_MAX_PATH_LEN 255 |
| #define | SCP_SERVER_MAX_RECURSION_LEVEL 4 |
| #define | ScpServerContext struct _ScpServerContext |
| #define | ScpServerSession struct _ScpServerSession |
Typedefs | |
| typedef ScpAccessStatus(* | ScpServerCheckUserCallback) (ScpServerSession *session, const char_t *user) |
| User verification callback function. More... | |
| typedef uint_t(* | ScpServerGetFilePermCallback) (ScpServerSession *session, const char_t *user, const char_t *path) |
| Callback used to retrieve file permissions. More... | |
Enumerations | |
| enum | ScpAccessStatus { SCP_ACCESS_DENIED = 0, SCP_ACCESS_ALLOWED = 1 } |
| Access status. More... | |
| enum | ScpFilePerm { SCP_FILE_PERM_LIST = 0x01, SCP_FILE_PERM_READ = 0x02, SCP_FILE_PERM_WRITE = 0x04 } |
| File permissions. More... | |
| enum | ScpServerSessionState { SCP_SERVER_SESSION_STATE_CLOSED = 0, SCP_SERVER_SESSION_STATE_WRITE_INIT = 1, SCP_SERVER_SESSION_STATE_WRITE_COMMAND = 2, SCP_SERVER_SESSION_STATE_WRITE_ACK = 3, SCP_SERVER_SESSION_STATE_WRITE_DATA = 4, SCP_SERVER_SESSION_STATE_WRITE_STATUS = 5, SCP_SERVER_SESSION_STATE_WRITE_FIN = 6, SCP_SERVER_SESSION_STATE_READ_INIT = 7, SCP_SERVER_SESSION_STATE_READ_COMMAND = 8, SCP_SERVER_SESSION_STATE_READ_ACK = 9, SCP_SERVER_SESSION_STATE_READ_DATA = 10, SCP_SERVER_SESSION_STATE_READ_STATUS = 11, SCP_SERVER_SESSION_STATE_READ_FIN = 12, SCP_SERVER_SESSION_STATE_ERROR = 13, SCP_SERVER_SESSION_STATE_CLOSING = 14 } |
| SCP session state. More... | |
Functions | |
| void | scpServerGetDefaultSettings (ScpServerSettings *settings) |
| Initialize settings with default values. More... | |
| error_t | scpServerInit (ScpServerContext *context, const ScpServerSettings *settings) |
| Initialize SCP server context. More... | |
| error_t | scpServerStart (ScpServerContext *context) |
| Start SCP server. More... | |
| error_t | scpServerStop (ScpServerContext *context) |
| Stop SCP server. More... | |
| error_t | scpServerSetRootDir (ScpServerSession *session, const char_t *rootDir) |
| Set user's root directory. More... | |
| error_t | scpServerSetHomeDir (ScpServerSession *session, const char_t *homeDir) |
| Set user's home directory. More... | |
| void | scpServerTask (void *param) |
| SCP server task. More... | |
| void | scpServerDeinit (ScpServerContext *context) |
| Release SCP server context. More... | |
Detailed Description
SCP server.
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 scp_server.h.
Macro Definition Documentation
◆ SCP_SERVER_BUFFER_SIZE
| #define SCP_SERVER_BUFFER_SIZE 512 |
Definition at line 74 of file scp_server.h.
◆ SCP_SERVER_MAX_HOME_DIR_LEN
| #define SCP_SERVER_MAX_HOME_DIR_LEN 63 |
Definition at line 88 of file scp_server.h.
◆ SCP_SERVER_MAX_PATH_LEN
| #define SCP_SERVER_MAX_PATH_LEN 255 |
Definition at line 95 of file scp_server.h.
◆ SCP_SERVER_MAX_RECURSION_LEVEL
| #define SCP_SERVER_MAX_RECURSION_LEVEL 4 |
Definition at line 102 of file scp_server.h.
◆ SCP_SERVER_MAX_ROOT_DIR_LEN
| #define SCP_SERVER_MAX_ROOT_DIR_LEN 63 |
Definition at line 81 of file scp_server.h.
◆ SCP_SERVER_MAX_SESSIONS
| #define SCP_SERVER_MAX_SESSIONS 10 |
Definition at line 60 of file scp_server.h.
◆ SCP_SERVER_PRIORITY
| #define SCP_SERVER_PRIORITY OS_TASK_PRIORITY_NORMAL |
Definition at line 55 of file scp_server.h.
◆ SCP_SERVER_STACK_SIZE
| #define SCP_SERVER_STACK_SIZE 650 |
Definition at line 48 of file scp_server.h.
◆ SCP_SERVER_SUPPORT
| #define SCP_SERVER_SUPPORT DISABLED |
Definition at line 41 of file scp_server.h.
◆ SCP_SERVER_TICK_INTERVAL
| #define SCP_SERVER_TICK_INTERVAL 1000 |
Definition at line 67 of file scp_server.h.
◆ ScpServerContext
| #define ScpServerContext struct _ScpServerContext |
Definition at line 109 of file scp_server.h.
◆ ScpServerSession
| #define ScpServerSession struct _ScpServerSession |
Definition at line 113 of file scp_server.h.
Typedef Documentation
◆ ScpServerCheckUserCallback
| typedef ScpAccessStatus(* ScpServerCheckUserCallback) (ScpServerSession *session, const char_t *user) |
User verification callback function.
Definition at line 172 of file scp_server.h.
◆ ScpServerGetFilePermCallback
| typedef uint_t(* ScpServerGetFilePermCallback) (ScpServerSession *session, const char_t *user, const char_t *path) |
Callback used to retrieve file permissions.
Definition at line 180 of file scp_server.h.
Enumeration Type Documentation
◆ ScpAccessStatus
| enum ScpAccessStatus |
Access status.
| Enumerator | |
|---|---|
| SCP_ACCESS_DENIED | |
| SCP_ACCESS_ALLOWED | |
Definition at line 125 of file scp_server.h.
◆ ScpFilePerm
| enum ScpFilePerm |
File permissions.
| Enumerator | |
|---|---|
| SCP_FILE_PERM_LIST | |
| SCP_FILE_PERM_READ | |
| SCP_FILE_PERM_WRITE | |
Definition at line 136 of file scp_server.h.
◆ ScpServerSessionState
SCP session state.
Definition at line 148 of file scp_server.h.
Function Documentation
◆ scpServerDeinit()
| void scpServerDeinit | ( | ScpServerContext * | context | ) |
Release SCP server context.
- Parameters
-
[in] context Pointer to the SCP server context
Definition at line 438 of file scp_server.c.
◆ scpServerGetDefaultSettings()
| void scpServerGetDefaultSettings | ( | ScpServerSettings * | settings | ) |
Initialize settings with default values.
- Parameters
-
[out] settings Structure that contains SCP server settings
Definition at line 50 of file scp_server.c.
◆ scpServerInit()
| error_t scpServerInit | ( | ScpServerContext * | context, |
| const ScpServerSettings * | settings | ||
| ) |
Initialize SCP server context.
- Parameters
-
[in] context Pointer to the SCP server context [in] settings SCP server specific settings
- Returns
- Error code
Definition at line 81 of file scp_server.c.
◆ scpServerSetHomeDir()
| error_t scpServerSetHomeDir | ( | ScpServerSession * | session, |
| const char_t * | homeDir | ||
| ) |
Set user's home directory.
- Parameters
-
[in] session Handle referencing an SCP session [in] homeDir NULL-terminated string specifying the home directory
- Returns
- Error code
Definition at line 312 of file scp_server.c.
◆ scpServerSetRootDir()
| error_t scpServerSetRootDir | ( | ScpServerSession * | session, |
| const char_t * | rootDir | ||
| ) |
Set user's root directory.
- Parameters
-
[in] session Handle referencing an SCP session [in] rootDir NULL-terminated string specifying the root directory
- Returns
- Error code
Definition at line 278 of file scp_server.c.
◆ scpServerStart()
| error_t scpServerStart | ( | ScpServerContext * | context | ) |
Start SCP server.
- Parameters
-
[in] context Pointer to the SCP server context
- Returns
- Error code
Definition at line 164 of file scp_server.c.
◆ scpServerStop()
| error_t scpServerStop | ( | ScpServerContext * | context | ) |
Stop SCP server.
- Parameters
-
[in] context Pointer to the SCP server context
- Returns
- Error code
Definition at line 223 of file scp_server.c.
◆ scpServerTask()
| void scpServerTask | ( | void * | param | ) |
SCP server task.
- Parameters
-
[in] param Pointer to the SCP server context
Definition at line 341 of file scp_server.c.
