Skip to content

Latest commit

 

History

7 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Landrop

GOPAL KATARIA 2023112006

Simple LAN file transfer utility for Linux written in C.

The idea is to send files directly between devices on the same network without using any cloud service.

Features

  • Discover devices on LAN using UDP broadcast
  • Send files directly over TCP
  • TLS encryption using OpenSSL
  • Trust on First Use (TOFU)
  • Uses epoll for handling multiple connections
  • SHA-256 checksum verification after transfer

Requirements

  • Linux
  • GCC/Clang
  • CMake
  • OpenSSL
  • cJSON

Build

git clone <repo-url>
cd landrop

cmake -B build
cmake --build build

Binary will be inside build/.

Usage

Start daemon

landrop daemon

List available peers

landrop peers

Send a file

landrop send file.txt user@hostname

Trust management

landrop trust

Configuration

landrop config

Project Structure

src/
├── discovery/
├── network/
├── crypto/
├── transfer/
├── utils/
└── main.c

How it works

  • Peers announce themselves using UDP broadcasts.
  • When sending a file, a TCP connection is established.
  • TLS is used for encryption.
  • The receiver verifies the sender's certificate using TOFU.
  • File is transferred in chunks.
  • SHA-256 checksum is verified after completion.

Configuration

Configuration is stored under:

~/.config/landrop/

Files include

  • settings.json
  • known_hosts.json
  • certificate.pem
  • private_key.pem

Received files are saved to ~/Downloads by default.

TODO

  • Resume interrupted transfers
  • Progress bar
  • Multiple file transfer
  • Directory transfer
  • IPv6 support

License

MIT

About

Simple LAN file transfer utility for Linux written in C. (simple clone of landrop from scratch, only basic cli functions)

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Used by

Contributors

Languages