diff options
| author | Reiner Herrmann <reiner@reiner-h.de> | 2021-08-06 14:26:20 +0200 |
|---|---|---|
| committer | Reiner Herrmann <reiner@reiner-h.de> | 2021-08-06 14:28:00 +0200 |
| commit | c335d423e3b49b923bdd4d1dbe242f252f335d01 (patch) | |
| tree | 8101f65c55b1a8e12667a15d2570a113112410b0 /README.md | |
| parent | 7d93ab2083bde51512946b1ec9406ded384d0fa8 (diff) | |
Convert README to Markdown
Diffstat (limited to 'README.md')
| -rw-r--r-- | README.md | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/README.md b/README.md new file mode 100644 index 0000000..b700a07 --- /dev/null +++ b/README.md @@ -0,0 +1,75 @@ +RusTFTP +======= + +A client and server implementation of the Trivial File Transfer Protocol, +written in Rust. + + +Currently supported: +* RFC 1350 (TFTP revision 2) +* RFC 2347 (Option Extension) +* RFC 2348 (Blocksize Option) +* RFC 2349 (Timeout Interval and Transfer Size Options) + +Non-standard options: +* blksize2: block size as a power of 2 +* utimeout: timeout in microseconds + + +Use cargo to build the binaries (output dir is `target/release/`): +``` +$ cargo build --release +``` + + +### Client + +``` +$ ./rtftpc --help +RusTFTP + +./rtftpc [options] <remote>[:port] + +Options: + -h, --help display usage information + -g, --get FILE download file from remote server + -p, --put FILE upload file to remote server + -b, --blksize SIZE negotiate a different block size (default: 1428) + -n, --netascii use netascii mode (instead of octet) +``` + + +### Server + +``` +$ ./rtftpd --help +RusTFTP + +./rtftpd [options] [directory] + +Options: + -h, --help display usage information + -p, --port PORT port to listen on (default: 69) + -u, --uid UID user id to run as (default: 65534) + -g, --gid GID group id to run as (default: 65534) + -r, --read-only allow only reading/downloading of files (RRQ) + -w, --write-only allow only writing/uploading of files (WRQ) + -t, --threads N number of worker threads (default: 2) +``` + + +## Notes + +As the block number is two bytes long, the number of blocks is limited +to 65535 (with the first block starting at 1). +To support the transfer of files larger than 65535 blocks, it will wrap around +after reaching the maximum and start at 0 again, which is not defined in the +standard. + + +## License + +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 3 of the License, or +(at your option) any later version. |
