swap back socket address when reply by sendmsg
[hband-ld-preload-libs.git] / README.md
blobde4f22915a20d4b6d04b8f006b8ae251723e18f3
1 # LD_PRELOAD-able shared libraries for Linux
3   * [autossl.so](#autosslso)
4   * [recyclix.so](#recyclixso)
7 ## autossl.so
9 `autossl.so` upgrades plaintext network sockets to SSL/TLS transparently
10 for TCP client applications with the help of external program. See
11 description and usage docs in the source file.
14 ## recyclix.so
16 `recyclix.so` is an `LD_PRELOAD`-able shared library intercepting file deletions and
17 moving files to recycle bin (trash can) folder.
19 It can be configured via environment variable `RECYCLER`, whiches format is:
21 ```
22 RECYCLER=<DIR>[,<SIZE_LIMIT>][,!<EXCLUDE_PATTERN>][:<DIR>[,<SIZE_LIMIT>][,!<EXCLUDE_PATTERN>][:<DIR>...]]
23 ```
25 where `<SIZE_LIMIT>` is `<N><UNIT>[-<N><UNIT>]` indicating minimum and optional maximum file size which
26 recyclix saves; `<EXCLUDE_PATTERN>` is a regexp pattern which if matches to the file name, the file is ignored.
27 Multiple recycle bin definitions are supported, ideally one for each filesystem.
28 Examples:
30 ```
31 RECYCLER='~/.Recycler,10M'
32 RECYCLER='~/Trash,100B-1G,!(\.bak|~)$'
33 RECYCLER='~/.Recycler,1k:/mnt/sdb/home/johndoe/.Recycler,!\.bak$,1k-100M:/var/deleted-files,!(\.bak|-)$'
34 ```
36 ### Behavior and limitations
38 It saves about-to-be deleted files in that recycle bin which is on the same filesystem (partition) as the file.
39 The file is not gonna be saved if there is no recycle bin on the filesystem according to `$RECYCLER`.
40 It keeps the file's path relative to the filesystem's mountpoint in the recycle bin too, so `/home/johndoe/src/xyz/file`
41 goes to `/home/johndoe/.Recycler/johndoe/src/xyz/file` provided that `/home` is the mountpoint. It overwrites
42 the file in the recycle bin if it already exists.
44 The following flow chart illustrates its inner working:
46 <img src="./recyclix-flow.svg" />
48 ### Similar projects
50 - [libtrash](https://github.com/pete4abw/libtrash)
53 # issues
54 Please submit issues via PR to some file `<TITLE>.txt` or `<TITLE>.md` on `issues` branch.