Expand description
Multithreaded TFTP daemon implemented in pure Rust.
This server implements RFC 1350, The TFTP Protocol (Revision 2). It also supports the following RFC 2347 TFTP Option Extensions:
- RFC 2348 Blocksize Option
- RFC 2349 Timeout Interval Option
- RFC 2349 Transfer Size Option
- RFC 7440 Windowsize Option
§Security
Since TFTP servers do not offer any type of login or access control mechanisms, this server only allows transfer and receiving inside a chosen folder, and disallows external file access.
Structs§
- Configuration
structused for parsing TFTP options from user input. - Allows conversions between byte arrays and other types.
- Server
structis used for handling incoming TFTP requests. - ServerSocket
structis used as an abstraction layer for a serverSocket. Thisstructis used for abstraction of single socket communication. - TransferOption
structrepresents the TFTP transfer options. - Window
structis used to store chunks of data from a file. It is used to help store the data that is being sent or received for the RFC 7440 Windowsize option. - Worker
structis used for multithreaded file sending and receiving. It creates a new socket using the Server’s IP and a random port requested from the OS to communicate with the requesting client.
Enums§
- ErrorCode
enumrepresents the error codes used in the TFTP definition. - Opcode
enumrepresents the opcodes used in the TFTP definition. - OptionType
enumrepresents the TFTP option types - Packet
enumrepresents the valid TFTP packet types.
Traits§
- Socket
traitis used to allow building custom sockets to be used for TFTP communication.