net: tftp: Adding support for TFTP Client.
Adding RFC1350 compliant support for TFTP Client in Zephyr. The current implementation is minimal and only supports the ability to get a file from the server. Things for the future include support for putting files to server and adding support for RFC2347. Signed-off-by: Bilal Wasim <bilalwasim676@gmail.com>
This commit is contained in:
parent
91c20e313d
commit
220b664617
7 changed files with 455 additions and 0 deletions
50
include/net/tftp.h
Normal file
50
include/net/tftp.h
Normal file
|
@ -0,0 +1,50 @@
|
|||
/*
|
||||
* Copyright (c) 2020 InnBlue
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
/** @file tftp.h
|
||||
*
|
||||
* @brief Zephyr TFTP Implementation
|
||||
*/
|
||||
|
||||
#ifndef ZEPHYR_INCLUDE_NET_TFTP_H_
|
||||
#define ZEPHYR_INCLUDE_NET_TFTP_H_
|
||||
|
||||
#include <zephyr.h>
|
||||
#include <net/socket.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
struct tftpc {
|
||||
u8_t *user_buf;
|
||||
u32_t user_buf_size;
|
||||
};
|
||||
|
||||
/* TFTP Client Error codes. */
|
||||
#define TFTPC_SUCCESS 0
|
||||
#define TFTPC_DUPLICATE_DATA -1
|
||||
#define TFTPC_BUFFER_OVERFLOW -2
|
||||
#define TFTPC_UNKNOWN_FAILURE -3
|
||||
#define TFTPC_REMOTE_ERROR -4
|
||||
#define TFTPC_RETRIES_EXHAUSTED -5
|
||||
|
||||
/* @brief This function gets "file" from the remote server.
|
||||
*
|
||||
* @param server Control Block that represents the remote server.
|
||||
* @param client Client Buffer Information.
|
||||
* @param remote_file Name of the remote file to get.
|
||||
* @param mode TFTP Client "mode" setting
|
||||
*
|
||||
* @return TFTPC_SUCCESS if the operation completed successfully.
|
||||
* TFTPC_BUFFER_OVERFLOW if the file is larger than the user buffer.
|
||||
* TFTPC_REMOTE_ERROR if the server failed to process our request.
|
||||
* TFTPC_RETRIES_EXHAUSTED if the client timed out waiting for server.
|
||||
*/
|
||||
int tftp_get(struct sockaddr *server, struct tftpc *client,
|
||||
const char *remote_file, const char *mode);
|
||||
|
||||
#endif /* ZEPHYR_INCLUDE_NET_TFTP_H_ */
|
Loading…
Add table
Add a link
Reference in a new issue