git: 96d5b400b7c3 - main - net/udp-over-tcp: New port: Proxy UDP traffic over a TCP stream
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 02 Apr 2024 03:12:36 UTC
The branch main has been updated by yuri: URL: https://cgit.FreeBSD.org/ports/commit/?id=96d5b400b7c309861dbf4cb17d29cd8e742ae6af commit 96d5b400b7c309861dbf4cb17d29cd8e742ae6af Author: Yuri Victorovich <yuri@FreeBSD.org> AuthorDate: 2024-04-02 03:12:01 +0000 Commit: Yuri Victorovich <yuri@FreeBSD.org> CommitDate: 2024-04-02 03:12:01 +0000 net/udp-over-tcp: New port: Proxy UDP traffic over a TCP stream --- net/Makefile | 1 + net/udp-over-tcp/Makefile | 113 ++++++++++++++++++++++++++++++ net/udp-over-tcp/distinfo | 169 +++++++++++++++++++++++++++++++++++++++++++++ net/udp-over-tcp/pkg-descr | 18 +++++ 4 files changed, 301 insertions(+) diff --git a/net/Makefile b/net/Makefile index 689285bf1f69..7659be658fa5 100644 --- a/net/Makefile +++ b/net/Makefile @@ -1574,6 +1574,7 @@ SUBDIR += turnserver SUBDIR += u6rd SUBDIR += ucarp + SUBDIR += udp-over-tcp SUBDIR += udpbroadcastrelay SUBDIR += udptunnel SUBDIR += udpxy diff --git a/net/udp-over-tcp/Makefile b/net/udp-over-tcp/Makefile new file mode 100644 index 000000000000..baa85062240a --- /dev/null +++ b/net/udp-over-tcp/Makefile @@ -0,0 +1,113 @@ +PORTNAME= udp-over-tcp +DISTVERSIONPREFIX= v +DISTVERSION= 0.4.0 +CATEGORIES= net + +MAINTAINER= yuri@FreeBSD.org +COMMENT= Proxy UDP traffic over a TCP stream +WWW= https://github.com/mullvad/udp-over-tcp + +LICENSE= MIT + +USES= cargo + +USE_GITHUB= yes +GH_ACCOUNT= mullvad + +CARGO_CRATES= addr2line-0.21.0 \ + adler-1.0.2 \ + aho-corasick-1.1.1 \ + anstream-0.6.4 \ + anstyle-1.0.4 \ + anstyle-parse-0.2.2 \ + anstyle-query-1.0.0 \ + anstyle-wincon-3.0.1 \ + autocfg-1.1.0 \ + backtrace-0.3.69 \ + bitflags-2.4.0 \ + bytes-1.5.0 \ + cadence-1.0.0 \ + cc-1.0.83 \ + cfg-if-1.0.0 \ + clap-4.4.6 \ + clap_builder-4.4.6 \ + clap_derive-4.4.2 \ + clap_lex-0.5.1 \ + colorchoice-1.0.0 \ + crossbeam-channel-0.5.8 \ + crossbeam-utils-0.8.16 \ + env_logger-0.10.0 \ + err-context-0.1.0 \ + errno-0.3.4 \ + errno-dragonfly-0.1.2 \ + futures-0.3.28 \ + futures-channel-0.3.28 \ + futures-core-0.3.28 \ + futures-executor-0.3.28 \ + futures-io-0.3.28 \ + futures-macro-0.3.28 \ + futures-sink-0.3.28 \ + futures-task-0.3.28 \ + futures-util-0.3.28 \ + gimli-0.28.0 \ + heck-0.4.1 \ + hermit-abi-0.3.3 \ + humantime-2.1.0 \ + is-terminal-0.4.9 \ + lazy_static-1.4.0 \ + libc-0.2.148 \ + linux-raw-sys-0.4.8 \ + log-0.4.20 \ + memchr-2.6.4 \ + memoffset-0.9.0 \ + miniz_oxide-0.7.1 \ + mio-0.8.8 \ + nix-0.27.1 \ + num_cpus-1.16.0 \ + object-0.32.1 \ + pin-project-lite-0.2.13 \ + pin-utils-0.1.0 \ + proc-macro2-1.0.67 \ + quote-1.0.33 \ + regex-1.9.6 \ + regex-automata-0.3.9 \ + regex-syntax-0.7.5 \ + rustc-demangle-0.1.23 \ + rustix-0.38.17 \ + slab-0.4.9 \ + socket2-0.5.4 \ + strsim-0.10.0 \ + syn-2.0.37 \ + termcolor-1.3.0 \ + tokio-1.32.0 \ + tokio-macros-2.1.0 \ + unicode-ident-1.0.12 \ + utf8parse-0.2.1 \ + wasi-0.11.0+wasi-snapshot-preview1 \ + winapi-0.3.9 \ + winapi-i686-pc-windows-gnu-0.4.0 \ + winapi-util-0.1.6 \ + winapi-x86_64-pc-windows-gnu-0.4.0 \ + windows-sys-0.48.0 \ + windows-targets-0.48.5 \ + windows_aarch64_gnullvm-0.48.5 \ + windows_aarch64_msvc-0.48.5 \ + windows_i686_gnu-0.48.5 \ + windows_i686_msvc-0.48.5 \ + windows_x86_64_gnu-0.48.5 \ + windows_x86_64_gnullvm-0.48.5 \ + windows_x86_64_msvc-0.48.5 +CARGO_BUILD_ARGS= --all-features +CARGO_INSTALL_ARGS= --all-features + +BINARIES= bin/udp2tcp \ + bin/tcp2udp + +PLIST_FILES= ${BINARIES} + +post-install: +.for bin in ${BINARIES} + @${STRIP_CMD} ${STAGEDIR}${PREFIX}/${bin} +.endfor + +.include <bsd.port.mk> diff --git a/net/udp-over-tcp/distinfo b/net/udp-over-tcp/distinfo new file mode 100644 index 000000000000..c017fc784b07 --- /dev/null +++ b/net/udp-over-tcp/distinfo @@ -0,0 +1,169 @@ +TIMESTAMP = 1712026517 +SHA256 (rust/crates/addr2line-0.21.0.crate) = 8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb +SIZE (rust/crates/addr2line-0.21.0.crate) = 40807 +SHA256 (rust/crates/adler-1.0.2.crate) = f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe +SIZE (rust/crates/adler-1.0.2.crate) = 12778 +SHA256 (rust/crates/aho-corasick-1.1.1.crate) = ea5d730647d4fadd988536d06fecce94b7b4f2a7efdae548f1cf4b63205518ab +SIZE (rust/crates/aho-corasick-1.1.1.crate) = 182812 +SHA256 (rust/crates/anstream-0.6.4.crate) = 2ab91ebe16eb252986481c5b62f6098f3b698a45e34b5b98200cf20dd2484a44 +SIZE (rust/crates/anstream-0.6.4.crate) = 20593 +SHA256 (rust/crates/anstyle-1.0.4.crate) = 7079075b41f533b8c61d2a4d073c4676e1f8b249ff94a393b0595db304e0dd87 +SIZE (rust/crates/anstyle-1.0.4.crate) = 13998 +SHA256 (rust/crates/anstyle-parse-0.2.2.crate) = 317b9a89c1868f5ea6ff1d9539a69f45dffc21ce321ac1fd1160dfa48c8e2140 +SIZE (rust/crates/anstyle-parse-0.2.2.crate) = 24696 +SHA256 (rust/crates/anstyle-query-1.0.0.crate) = 5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b +SIZE (rust/crates/anstyle-query-1.0.0.crate) = 8620 +SHA256 (rust/crates/anstyle-wincon-3.0.1.crate) = f0699d10d2f4d628a98ee7b57b289abbc98ff3bad977cb3152709d4bf2330628 +SIZE (rust/crates/anstyle-wincon-3.0.1.crate) = 11279 +SHA256 (rust/crates/autocfg-1.1.0.crate) = d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa +SIZE (rust/crates/autocfg-1.1.0.crate) = 13272 +SHA256 (rust/crates/backtrace-0.3.69.crate) = 2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837 +SIZE (rust/crates/backtrace-0.3.69.crate) = 77299 +SHA256 (rust/crates/bitflags-2.4.0.crate) = b4682ae6287fcf752ecaabbfcc7b6f9b72aa33933dc23a554d853aea8eea8635 +SIZE (rust/crates/bitflags-2.4.0.crate) = 36954 +SHA256 (rust/crates/bytes-1.5.0.crate) = a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223 +SIZE (rust/crates/bytes-1.5.0.crate) = 58909 +SHA256 (rust/crates/cadence-1.0.0.crate) = eab51a759f502097abe855100b81b421d3a104b62a2c3209f751d90ce6dd2ea1 +SIZE (rust/crates/cadence-1.0.0.crate) = 50247 +SHA256 (rust/crates/cc-1.0.83.crate) = f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0 +SIZE (rust/crates/cc-1.0.83.crate) = 68343 +SHA256 (rust/crates/cfg-if-1.0.0.crate) = baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd +SIZE (rust/crates/cfg-if-1.0.0.crate) = 7934 +SHA256 (rust/crates/clap-4.4.6.crate) = d04704f56c2cde07f43e8e2c154b43f216dc5c92fc98ada720177362f953b956 +SIZE (rust/crates/clap-4.4.6.crate) = 54823 +SHA256 (rust/crates/clap_builder-4.4.6.crate) = 0e231faeaca65ebd1ea3c737966bf858971cd38c3849107aa3ea7de90a804e45 +SIZE (rust/crates/clap_builder-4.4.6.crate) = 162450 +SHA256 (rust/crates/clap_derive-4.4.2.crate) = 0862016ff20d69b84ef8247369fabf5c008a7417002411897d40ee1f4532b873 +SIZE (rust/crates/clap_derive-4.4.2.crate) = 29019 +SHA256 (rust/crates/clap_lex-0.5.1.crate) = cd7cc57abe963c6d3b9d8be5b06ba7c8957a930305ca90304f24ef040aa6f961 +SIZE (rust/crates/clap_lex-0.5.1.crate) = 11793 +SHA256 (rust/crates/colorchoice-1.0.0.crate) = acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7 +SIZE (rust/crates/colorchoice-1.0.0.crate) = 6857 +SHA256 (rust/crates/crossbeam-channel-0.5.8.crate) = a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200 +SIZE (rust/crates/crossbeam-channel-0.5.8.crate) = 90455 +SHA256 (rust/crates/crossbeam-utils-0.8.16.crate) = 5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294 +SIZE (rust/crates/crossbeam-utils-0.8.16.crate) = 42508 +SHA256 (rust/crates/env_logger-0.10.0.crate) = 85cdab6a89accf66733ad5a1693a4dcced6aeff64602b634530dd73c1f3ee9f0 +SIZE (rust/crates/env_logger-0.10.0.crate) = 36574 +SHA256 (rust/crates/err-context-0.1.0.crate) = 449aad22b1364e927ff3bf50f55404efd705c40065fb47f73f28704de707c89e +SIZE (rust/crates/err-context-0.1.0.crate) = 12453 +SHA256 (rust/crates/errno-0.3.4.crate) = add4f07d43996f76ef320709726a556a9d4f965d9410d8d0271132d2f8293480 +SIZE (rust/crates/errno-0.3.4.crate) = 10589 +SHA256 (rust/crates/errno-dragonfly-0.1.2.crate) = aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf +SIZE (rust/crates/errno-dragonfly-0.1.2.crate) = 1810 +SHA256 (rust/crates/futures-0.3.28.crate) = 23342abe12aba583913b2e62f22225ff9c950774065e4bfb61a19cd9770fec40 +SIZE (rust/crates/futures-0.3.28.crate) = 53229 +SHA256 (rust/crates/futures-channel-0.3.28.crate) = 955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2 +SIZE (rust/crates/futures-channel-0.3.28.crate) = 32281 +SHA256 (rust/crates/futures-core-0.3.28.crate) = 4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c +SIZE (rust/crates/futures-core-0.3.28.crate) = 14780 +SHA256 (rust/crates/futures-executor-0.3.28.crate) = ccecee823288125bd88b4d7f565c9e58e41858e47ab72e8ea2d64e93624386e0 +SIZE (rust/crates/futures-executor-0.3.28.crate) = 17743 +SHA256 (rust/crates/futures-io-0.3.28.crate) = 4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964 +SIZE (rust/crates/futures-io-0.3.28.crate) = 8910 +SHA256 (rust/crates/futures-macro-0.3.28.crate) = 89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72 +SIZE (rust/crates/futures-macro-0.3.28.crate) = 11272 +SHA256 (rust/crates/futures-sink-0.3.28.crate) = f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e +SIZE (rust/crates/futures-sink-0.3.28.crate) = 7852 +SHA256 (rust/crates/futures-task-0.3.28.crate) = 76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65 +SIZE (rust/crates/futures-task-0.3.28.crate) = 11848 +SHA256 (rust/crates/futures-util-0.3.28.crate) = 26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533 +SIZE (rust/crates/futures-util-0.3.28.crate) = 158510 +SHA256 (rust/crates/gimli-0.28.0.crate) = 6fb8d784f27acf97159b40fc4db5ecd8aa23b9ad5ef69cdd136d3bc80665f0c0 +SIZE (rust/crates/gimli-0.28.0.crate) = 269277 +SHA256 (rust/crates/heck-0.4.1.crate) = 95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8 +SIZE (rust/crates/heck-0.4.1.crate) = 11567 +SHA256 (rust/crates/hermit-abi-0.3.3.crate) = d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7 +SIZE (rust/crates/hermit-abi-0.3.3.crate) = 14253 +SHA256 (rust/crates/humantime-2.1.0.crate) = 9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4 +SIZE (rust/crates/humantime-2.1.0.crate) = 16749 +SHA256 (rust/crates/is-terminal-0.4.9.crate) = cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b +SIZE (rust/crates/is-terminal-0.4.9.crate) = 8109 +SHA256 (rust/crates/lazy_static-1.4.0.crate) = e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646 +SIZE (rust/crates/lazy_static-1.4.0.crate) = 10443 +SHA256 (rust/crates/libc-0.2.148.crate) = 9cdc71e17332e86d2e1d38c1f99edcb6288ee11b815fb1a4b049eaa2114d369b +SIZE (rust/crates/libc-0.2.148.crate) = 690988 +SHA256 (rust/crates/linux-raw-sys-0.4.8.crate) = 3852614a3bd9ca9804678ba6be5e3b8ce76dfc902cae004e3e0c44051b6e88db +SIZE (rust/crates/linux-raw-sys-0.4.8.crate) = 1407619 +SHA256 (rust/crates/log-0.4.20.crate) = b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f +SIZE (rust/crates/log-0.4.20.crate) = 38307 +SHA256 (rust/crates/memchr-2.6.4.crate) = f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167 +SIZE (rust/crates/memchr-2.6.4.crate) = 94439 +SHA256 (rust/crates/memoffset-0.9.0.crate) = 5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c +SIZE (rust/crates/memoffset-0.9.0.crate) = 9033 +SHA256 (rust/crates/miniz_oxide-0.7.1.crate) = e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7 +SIZE (rust/crates/miniz_oxide-0.7.1.crate) = 55194 +SHA256 (rust/crates/mio-0.8.8.crate) = 927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2 +SIZE (rust/crates/mio-0.8.8.crate) = 94264 +SHA256 (rust/crates/nix-0.27.1.crate) = 2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053 +SIZE (rust/crates/nix-0.27.1.crate) = 286494 +SHA256 (rust/crates/num_cpus-1.16.0.crate) = 4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43 +SIZE (rust/crates/num_cpus-1.16.0.crate) = 15713 +SHA256 (rust/crates/object-0.32.1.crate) = 9cf5f9dd3933bd50a9e1f149ec995f39ae2c496d31fd772c1fd45ebc27e902b0 +SIZE (rust/crates/object-0.32.1.crate) = 275463 +SHA256 (rust/crates/pin-project-lite-0.2.13.crate) = 8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58 +SIZE (rust/crates/pin-project-lite-0.2.13.crate) = 29141 +SHA256 (rust/crates/pin-utils-0.1.0.crate) = 8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184 +SIZE (rust/crates/pin-utils-0.1.0.crate) = 7580 +SHA256 (rust/crates/proc-macro2-1.0.67.crate) = 3d433d9f1a3e8c1263d9456598b16fec66f4acc9a74dacffd35c7bb09b3a1328 +SIZE (rust/crates/proc-macro2-1.0.67.crate) = 43683 +SHA256 (rust/crates/quote-1.0.33.crate) = 5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae +SIZE (rust/crates/quote-1.0.33.crate) = 28090 +SHA256 (rust/crates/regex-1.9.6.crate) = ebee201405406dbf528b8b672104ae6d6d63e6d118cb10e4d51abbc7b58044ff +SIZE (rust/crates/regex-1.9.6.crate) = 254981 +SHA256 (rust/crates/regex-automata-0.3.9.crate) = 59b23e92ee4318893fa3fe3e6fb365258efbfe6ac6ab30f090cdcbb7aa37efa9 +SIZE (rust/crates/regex-automata-0.3.9.crate) = 610489 +SHA256 (rust/crates/regex-syntax-0.7.5.crate) = dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da +SIZE (rust/crates/regex-syntax-0.7.5.crate) = 343366 +SHA256 (rust/crates/rustc-demangle-0.1.23.crate) = d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76 +SIZE (rust/crates/rustc-demangle-0.1.23.crate) = 28970 +SHA256 (rust/crates/rustix-0.38.17.crate) = f25469e9ae0f3d0047ca8b93fc56843f38e6774f0914a107ff8b41be8be8e0b7 +SIZE (rust/crates/rustix-0.38.17.crate) = 353766 +SHA256 (rust/crates/slab-0.4.9.crate) = 8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67 +SIZE (rust/crates/slab-0.4.9.crate) = 17108 +SHA256 (rust/crates/socket2-0.5.4.crate) = 4031e820eb552adee9295814c0ced9e5cf38ddf1e8b7d566d6de8e2538ea989e +SIZE (rust/crates/socket2-0.5.4.crate) = 54663 +SHA256 (rust/crates/strsim-0.10.0.crate) = 73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623 +SIZE (rust/crates/strsim-0.10.0.crate) = 11355 +SHA256 (rust/crates/syn-2.0.37.crate) = 7303ef2c05cd654186cb250d29049a24840ca25d2747c25c0381c8d9e2f582e8 +SIZE (rust/crates/syn-2.0.37.crate) = 243250 +SHA256 (rust/crates/termcolor-1.3.0.crate) = 6093bad37da69aab9d123a8091e4be0aa4a03e4d601ec641c327398315f62b64 +SIZE (rust/crates/termcolor-1.3.0.crate) = 18799 +SHA256 (rust/crates/tokio-1.32.0.crate) = 17ed6077ed6cd6c74735e21f37eb16dc3935f96878b1fe961074089cc80893f9 +SIZE (rust/crates/tokio-1.32.0.crate) = 725004 +SHA256 (rust/crates/tokio-macros-2.1.0.crate) = 630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e +SIZE (rust/crates/tokio-macros-2.1.0.crate) = 11472 +SHA256 (rust/crates/unicode-ident-1.0.12.crate) = 3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b +SIZE (rust/crates/unicode-ident-1.0.12.crate) = 42168 +SHA256 (rust/crates/utf8parse-0.2.1.crate) = 711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a +SIZE (rust/crates/utf8parse-0.2.1.crate) = 13435 +SHA256 (rust/crates/wasi-0.11.0+wasi-snapshot-preview1.crate) = 9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423 +SIZE (rust/crates/wasi-0.11.0+wasi-snapshot-preview1.crate) = 28131 +SHA256 (rust/crates/winapi-0.3.9.crate) = 5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419 +SIZE (rust/crates/winapi-0.3.9.crate) = 1200382 +SHA256 (rust/crates/winapi-i686-pc-windows-gnu-0.4.0.crate) = ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6 +SIZE (rust/crates/winapi-i686-pc-windows-gnu-0.4.0.crate) = 2918815 +SHA256 (rust/crates/winapi-util-0.1.6.crate) = f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596 +SIZE (rust/crates/winapi-util-0.1.6.crate) = 12234 +SHA256 (rust/crates/winapi-x86_64-pc-windows-gnu-0.4.0.crate) = 712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f +SIZE (rust/crates/winapi-x86_64-pc-windows-gnu-0.4.0.crate) = 2947998 +SHA256 (rust/crates/windows-sys-0.48.0.crate) = 677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9 +SIZE (rust/crates/windows-sys-0.48.0.crate) = 2628884 +SHA256 (rust/crates/windows-targets-0.48.5.crate) = 9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c +SIZE (rust/crates/windows-targets-0.48.5.crate) = 6904 +SHA256 (rust/crates/windows_aarch64_gnullvm-0.48.5.crate) = 2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8 +SIZE (rust/crates/windows_aarch64_gnullvm-0.48.5.crate) = 418492 +SHA256 (rust/crates/windows_aarch64_msvc-0.48.5.crate) = dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc +SIZE (rust/crates/windows_aarch64_msvc-0.48.5.crate) = 798483 +SHA256 (rust/crates/windows_i686_gnu-0.48.5.crate) = a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e +SIZE (rust/crates/windows_i686_gnu-0.48.5.crate) = 844891 +SHA256 (rust/crates/windows_i686_msvc-0.48.5.crate) = 8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406 +SIZE (rust/crates/windows_i686_msvc-0.48.5.crate) = 864300 +SHA256 (rust/crates/windows_x86_64_gnu-0.48.5.crate) = 53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e +SIZE (rust/crates/windows_x86_64_gnu-0.48.5.crate) = 801619 +SHA256 (rust/crates/windows_x86_64_gnullvm-0.48.5.crate) = 0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc +SIZE (rust/crates/windows_x86_64_gnullvm-0.48.5.crate) = 418486 +SHA256 (rust/crates/windows_x86_64_msvc-0.48.5.crate) = ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538 +SIZE (rust/crates/windows_x86_64_msvc-0.48.5.crate) = 798412 +SHA256 (mullvad-udp-over-tcp-v0.4.0_GH0.tar.gz) = 0338b65bd979ec6ccd50e6d7642fc371bed9ea2c173a54cdd98af1ca3b25f2d0 +SIZE (mullvad-udp-over-tcp-v0.4.0_GH0.tar.gz) = 22004 diff --git a/net/udp-over-tcp/pkg-descr b/net/udp-over-tcp/pkg-descr new file mode 100644 index 000000000000..43ddb60fa64c --- /dev/null +++ b/net/udp-over-tcp/pkg-descr @@ -0,0 +1,18 @@ +udp-over-tcp is a library and binaries for tunneling UDP datagrams over +a TCP stream. + +Some programs/protocols only work over UDP. And some networks only allow TCP. +This is where `udp-over-tcp` comes in handy. This library comes in two parts: + +* `udp2tcp` - Forwards incoming UDP datagrams over a TCP stream. The return + stream is translated back to datagrams and sent back out over UDP again. + This part can be easily used as both a library and a binary. + So it can be run standalone, but can also easily be included in other + Rust programs. The UDP socket is connected to the peer address of the first + incoming datagram. So one [`Udp2Tcp`] instance can handle traffic from a + single peer only. +* `tcp2udp` - Accepts connections over TCP and translates + forwards the + incoming stream as UDP datagrams to the destination specified during setup + and on the command line. + Designed mostly to be a standalone executable to run on servers. But can be + consumed as a Rust library as well.