Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package croc for openSUSE:Factory checked in at 2023-07-07 15:47:48 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/croc (Old) and /work/SRC/openSUSE:Factory/.croc.new.23466 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "croc" Fri Jul 7 15:47:48 2023 rev:2 rq:1097435 version:9.6.5 Changes: -------- --- /work/SRC/openSUSE:Factory/croc/croc.changes 2023-07-03 17:43:33.208989893 +0200 +++ /work/SRC/openSUSE:Factory/.croc.new.23466/croc.changes 2023-07-07 15:49:06.580835509 +0200 @@ -1,0 +2,19 @@ +Thu Jul 06 15:32:06 UTC 2023 - Joshua Smith <[email protected]> + +- Update to version 9.6.5: + * update deps + * croc.service: use DynamicUser + * upgrade dependencies + * Update: update error messages for http proxy + * Feat: support http proxy as a complementary way to use in + network limited environments. + * Fix some typos + * localhost -> 127.0.0.1 Fixes #513 + * Bump actions/setup-go from 2 to 4 + * Enhance tab completion + * Bump docker/setup-buildx-action from 1 to 2 + * add dependabot + * add Winget installation instructions + * add winget releaser workflow + +------------------------------------------------------------------- Old: ---- croc-9.6.4.tar.xz New: ---- croc-9.6.5.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ croc.spec ++++++ --- /var/tmp/diff_new_pack.RljKyi/_old 2023-07-07 15:49:07.324839941 +0200 +++ /var/tmp/diff_new_pack.RljKyi/_new 2023-07-07 15:49:07.328839965 +0200 @@ -1,5 +1,7 @@ +# # spec file for package croc # +# Copyright (c) 2023 SUSE LLC # Copyright (c) 2021 Orville Q. Song <[email protected]> # # All modifications and additions to the file contributed by third parties @@ -14,6 +16,7 @@ # Please submit bugfixes or comments via https://bugs.opensuse.org/ # + %global provider github %global provider_tld com %global project schollz @@ -22,7 +25,7 @@ %global import_path %{provider_prefix}/%{repo} Name: croc -Version: 9.6.4 +Version: 9.6.5 Release: 0 Summary: Easily and securely send things from one computer to another License: MIT ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.RljKyi/_old 2023-07-07 15:49:07.372840226 +0200 +++ /var/tmp/diff_new_pack.RljKyi/_new 2023-07-07 15:49:07.376840250 +0200 @@ -1,6 +1,6 @@ <servicedata> <service name="tar_scm"> <param name="url">https://github.com/schollz/croc.git</param> - <param name="changesrevision">3ae46c3c18feaa43044abefc67c41ba5ab3599fd</param></service></servicedata> + <param name="changesrevision">ef68dfa54c3266fd2033f2ee8e16754fb91d888f</param></service></servicedata> (No newline at EOF) ++++++ croc-9.6.4.tar.xz -> croc-9.6.5.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/croc-9.6.4/.github/dependabot.yml new/croc-9.6.5/.github/dependabot.yml --- old/croc-9.6.4/.github/dependabot.yml 1970-01-01 01:00:00.000000000 +0100 +++ new/croc-9.6.5/.github/dependabot.yml 2023-07-06 19:10:57.000000000 +0200 @@ -0,0 +1,10 @@ +version: 2 +updates: + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "daily" + - package-ecosystem: "gomod" + directory: "/" + schedule: + interval: "daily" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/croc-9.6.4/.github/workflows/ci.yml new/croc-9.6.5/.github/workflows/ci.yml --- old/croc-9.6.4/.github/workflows/ci.yml 2023-03-14 12:52:15.000000000 +0100 +++ new/croc-9.6.5/.github/workflows/ci.yml 2023-07-06 19:10:57.000000000 +0200 @@ -11,7 +11,7 @@ runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - - uses: actions/setup-go@v2 + - uses: actions/setup-go@v4 with: go-version: '1.20' - run: go version diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/croc-9.6.4/.github/workflows/deploy.yml new/croc-9.6.5/.github/workflows/deploy.yml --- old/croc-9.6.4/.github/workflows/deploy.yml 2023-03-14 12:52:15.000000000 +0100 +++ new/croc-9.6.5/.github/workflows/deploy.yml 2023-07-06 19:10:57.000000000 +0200 @@ -34,7 +34,7 @@ uses: docker/setup-qemu-action@v1 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v1 + uses: docker/setup-buildx-action@v2 - name: Login to DockerHub if: github.event_name != 'pull_request' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/croc-9.6.4/.github/workflows/winget.yml new/croc-9.6.5/.github/workflows/winget.yml --- old/croc-9.6.4/.github/workflows/winget.yml 1970-01-01 01:00:00.000000000 +0100 +++ new/croc-9.6.5/.github/workflows/winget.yml 2023-07-06 19:10:57.000000000 +0200 @@ -0,0 +1,14 @@ +name: Publish to Winget +on: + release: + types: [released] + +jobs: + publish: + runs-on: windows-latest # Action can only run on Windows + steps: + - uses: vedantmgoyal2009/winget-releaser@v2 + with: + identifier: schollz.croc + installers-regex: '_Windows-\w+\.zip$' + token: ${{ secrets.WINGET_TOKEN }} \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/croc-9.6.4/README.md new/croc-9.6.5/README.md --- old/croc-9.6.4/README.md 2023-03-14 12:52:15.000000000 +0100 +++ new/croc-9.6.5/README.md 2023-07-06 19:10:57.000000000 +0200 @@ -4,7 +4,7 @@ src="https://user-images.githubusercontent.com/6550035/46709024-9b23ad00-cbf6-11e8-9fb2-ca8b20b7dbec.jpg" width="408px" border="0" alt="croc"> <br> -<a href="https://github.com/schollz/croc/releases/latest"><img src="https://img.shields.io/badge/version-v9.6.4-brightgreen.svg?style=flat-square" alt="Version"></a> +<a href="https://github.com/schollz/croc/releases/latest"><img src="https://img.shields.io/badge/version-v9.6.5-brightgreen.svg?style=flat-square" alt="Version"></a> <a href="https://coveralls.io/github/schollz/croc"><img src="https://img.shields.io/badge/coverage-81%25-green.svg?style=flat-square" alt="Coverage"></a> <a href="https://travis-ci.org/schollz/croc"><img src="https://img.shields.io/travis/schollz/croc.svg?style=flat-square" alt="Build @@ -48,7 +48,7 @@ sudo port install croc ``` -On Windows you can install the latest release with [Scoop](https://scoop.sh/) or [Chocolatey](https://chocolatey.org): +On Windows you can install the latest release with [Scoop](https://scoop.sh/), [Chocolatey](https://chocolatey.org), or [Winget](https://learn.microsoft.com/en-us/windows/package-manager/): ``` scoop install croc @@ -58,6 +58,10 @@ choco install croc ``` +``` +winget install schollz.croc +``` + On Unix you can install the latest release with [Nix](https://nixos.org/nix): ``` diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/croc-9.6.4/croc.service new/croc-9.6.5/croc.service --- old/croc-9.6.4/croc.service 2023-03-14 12:52:15.000000000 +0100 +++ new/croc-9.6.5/croc.service 2023-07-06 19:10:57.000000000 +0200 @@ -4,7 +4,7 @@ [Service] Type=simple -User=nobody +DynamicUser=yes CapabilityBoundingSet=CAP_NET_BIND_SERVICE ExecStart=/usr/bin/croc relay diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/croc-9.6.4/go.mod new/croc-9.6.5/go.mod --- old/croc-9.6.4/go.mod 2023-03-14 12:52:15.000000000 +0100 +++ new/croc-9.6.5/go.mod 2023-07-06 19:10:57.000000000 +0200 @@ -14,8 +14,8 @@ github.com/schollz/peerdiscovery v1.7.0 github.com/schollz/progressbar/v3 v3.13.1 github.com/stretchr/testify v1.8.2 - golang.org/x/crypto v0.7.0 - golang.org/x/net v0.8.0 + golang.org/x/crypto v0.11.0 + golang.org/x/net v0.12.0 golang.org/x/time v0.3.0 ) @@ -23,17 +23,18 @@ github.com/OneOfOne/xxhash v1.2.8 // indirect github.com/cpuguy83/go-md2man/v2 v2.0.2 // indirect github.com/davecgh/go-spew v1.1.1 // indirect + github.com/magisterquis/connectproxy v0.0.0-20200725203833-3582e84f0c9b github.com/mattn/go-runewidth v0.0.14 // indirect github.com/mitchellh/colorstring v0.0.0-20190213212951-d06e56a500db // indirect github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/rivo/uniseg v0.2.0 // indirect + github.com/rivo/uniseg v0.4.4 // indirect github.com/russross/blackfriday/v2 v2.1.0 // indirect github.com/spaolacci/murmur3 v1.1.0 // indirect github.com/tscholl2/siec v0.0.0-20210707234609-9bdfc483d499 // indirect - github.com/twmb/murmur3 v1.1.6 // indirect - golang.org/x/sys v0.6.0 // indirect - golang.org/x/term v0.6.0 // indirect - golang.org/x/text v0.8.0 // indirect + github.com/twmb/murmur3 v1.1.8 // indirect + golang.org/x/sys v0.10.0 // indirect + golang.org/x/term v0.10.0 // indirect + golang.org/x/text v0.11.0 // indirect gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/croc-9.6.4/go.sum new/croc-9.6.5/go.sum --- old/croc-9.6.4/go.sum 2023-03-14 12:52:15.000000000 +0100 +++ new/croc-9.6.5/go.sum 2023-07-06 19:10:57.000000000 +0200 @@ -26,6 +26,8 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/magisterquis/connectproxy v0.0.0-20200725203833-3582e84f0c9b h1:xZ59n7Frzh8CwyfAapUZLSg+gXH5m63YEaFCMpDHhpI= +github.com/magisterquis/connectproxy v0.0.0-20200725203833-3582e84f0c9b/go.mod h1:uDd4sYVYsqcxAB8j+Q7uhL6IJCs/r1kxib1HV4bgOMg= github.com/mattn/go-isatty v0.0.17/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= github.com/mattn/go-runewidth v0.0.14 h1:+xnbZSEeDbOIg5/mE6JF0w6n9duR1l3/WmbinWVwUuU= github.com/mattn/go-runewidth v0.0.14/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= @@ -33,8 +35,9 @@ github.com/mitchellh/colorstring v0.0.0-20190213212951-d06e56a500db/go.mod h1:l0dey0ia/Uv7NcFFVbCLtqEBQbrT4OCwCSKTEv6enCw= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= +github.com/rivo/uniseg v0.4.4 h1:8TfxU8dW6PdqD27gjM8MVNuicgxIjxpm4K7x4jp8sis= +github.com/rivo/uniseg v0.4.4/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= @@ -66,20 +69,20 @@ github.com/tscholl2/siec v0.0.0-20210707234609-9bdfc483d499 h1:bPQ48TuiAuGTZDm54H2EV/2+eRRBHP61bKDkKSEPW4A= github.com/tscholl2/siec v0.0.0-20210707234609-9bdfc483d499/go.mod h1:KL9+ubr1JZdaKjgAaHr+tCytEncXBa1pR6FjbTsOJnw= github.com/twmb/murmur3 v1.1.5/go.mod h1:Qq/R7NUyOfr65zD+6Q5IHKsJLwP7exErjN6lyyq3OSQ= -github.com/twmb/murmur3 v1.1.6 h1:mqrRot1BRxm+Yct+vavLMou2/iJt0tNVTTC0QoIjaZg= -github.com/twmb/murmur3 v1.1.6/go.mod h1:Qq/R7NUyOfr65zD+6Q5IHKsJLwP7exErjN6lyyq3OSQ= +github.com/twmb/murmur3 v1.1.8 h1:8Yt9taO/WN3l08xErzjeschgZU2QSrwm1kclYq+0aRg= +github.com/twmb/murmur3 v1.1.8/go.mod h1:Qq/R7NUyOfr65zD+6Q5IHKsJLwP7exErjN6lyyq3OSQ= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.7.0 h1:AvwMYaRytfdeVt3u6mLaxYtErKYjxA2OXjJ1HHq6t3A= -golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU= +golang.org/x/crypto v0.11.0 h1:6Ewdq3tDic1mg5xRO4milcWCfMVQhI4NkqWWvqejpuA= +golang.org/x/crypto v0.11.0/go.mod h1:xgJhtzW8F9jGdVFWZESrid1U1bjeNy4zgy5cRr/CIio= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.4.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE= -golang.org/x/net v0.8.0 h1:Zrh2ngAOFYneWTAIAPethzeaQLuHwhuBkuV6ZiRnUaQ= -golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= +golang.org/x/net v0.12.0 h1:cfawfvKITfUsFCeJIHJrbSxpeu/E81khclypR0GVT50= +golang.org/x/net v0.12.0/go.mod h1:zEVYFnQC7m/vmpQFELhcD1EWkZlX69l4oqgmer6hfKA= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -90,19 +93,21 @@ golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.6.0 h1:MVltZSvRTcU2ljQOhs94SXPftV6DCNnZViHeQps87pQ= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.10.0 h1:SqMFp9UcQJZa+pmYuAKjd9xq1f0j5rLcDIk0mj4qAsA= +golang.org/x/sys v0.10.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.3.0/go.mod h1:q750SLmJuPmVoN1blW3UFBPREJfb1KmY3vwxfr+nFDA= -golang.org/x/term v0.6.0 h1:clScbb1cHjoCkyRbWwBEUZ5H/tIFu5TAXIqaZD0Gcjw= golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= +golang.org/x/term v0.10.0 h1:3R7pNqamzBraeqj/Tj8qt1aQ2HpmlC+Cx/qL/7hn4/c= +golang.org/x/term v0.10.0/go.mod h1:lpqdcUyK/oCiQxvxVrppt5ggO2KCZ5QblwqPnfZ6d5o= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.5.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.8.0 h1:57P1ETyNKtuIjB4SRd15iJxuhj8Gc416Y78H3qgMh68= -golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= +golang.org/x/text v0.11.0 h1:LAntKIrcmeSKERyiOh0XMV39LXS8IE9UL2yP7+f5ij4= +golang.org/x/text v0.11.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/croc-9.6.4/src/cli/cli.go new/croc-9.6.5/src/cli/cli.go --- old/croc-9.6.4/src/cli/cli.go 2023-03-14 12:52:15.000000000 +0100 +++ new/croc-9.6.5/src/cli/cli.go 2023-07-06 19:10:57.000000000 +0200 @@ -9,6 +9,7 @@ "path" "path/filepath" "runtime" + "strconv" "strings" "time" @@ -35,7 +36,7 @@ app := cli.NewApp() app.Name = "croc" if Version == "" { - Version = "v9.6.4-1fce28e" + Version = "v9.6.5-8ab65d0" } app.Version = Version app.Compiled = time.Now() @@ -105,6 +106,7 @@ &cli.StringFlag{Name: "out", Value: ".", Usage: "specify an output folder to receive the file"}, &cli.StringFlag{Name: "pass", Value: models.DEFAULT_PASSPHRASE, Usage: "password for the relay", EnvVars: []string{"CROC_PASS"}}, &cli.StringFlag{Name: "socks5", Value: "", Usage: "add a socks5 proxy", EnvVars: []string{"SOCKS5_PROXY"}}, + &cli.StringFlag{Name: "connect", Value: "", Usage: "add a http proxy", EnvVars: []string{"HTTP_PROXY"}}, &cli.StringFlag{Name: "throttleUpload", Value: "", Usage: "Throttle the upload speed e.g. 500k"}, } app.EnableBashCompletion = true @@ -169,6 +171,7 @@ func send(c *cli.Context) (err error) { setDebugLevel(c) comm.Socks5Proxy = c.String("socks5") + comm.HttpProxy = c.String("connect") portsString := c.String("ports") if portsString == "" { portsString = "9009,9010,9011,9012,9013" @@ -365,10 +368,21 @@ // No completion return [][]rune{[]rune("")}, 0 } + if len(words) == 1 && nbCharacter == utils.NbPinNumbers { + // Check if word is indeed a number + _, err := strconv.Atoi(lastPartialWord) + if err == nil { + return [][]rune{[]rune("-")}, nbCharacter + } + } var strArray [][]rune for _, s := range mnemonicode.WordList { if strings.HasPrefix(s, lastPartialWord) { - strArray = append(strArray, []rune(s[nbCharacter:])) + var completionCandidate = s[nbCharacter:] + if len(words) <= mnemonicode.WordsRequired(utils.NbBytesWords) { + completionCandidate += "-" + } + strArray = append(strArray, []rune(completionCandidate)) } } return strArray, nbCharacter @@ -376,6 +390,7 @@ func receive(c *cli.Context) (err error) { comm.Socks5Proxy = c.String("socks5") + comm.HttpProxy = c.String("connect") crocOptions := croc.Options{ SharedSecret: c.String("code"), IsSender: false, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/croc-9.6.4/src/comm/comm.go new/croc-9.6.5/src/comm/comm.go --- old/croc-9.6.4/src/comm/comm.go 2023-03-14 12:52:15.000000000 +0100 +++ new/croc-9.6.5/src/comm/comm.go 2023-07-06 19:10:57.000000000 +0200 @@ -10,12 +10,14 @@ "strings" "time" + "github.com/magisterquis/connectproxy" "github.com/schollz/croc/v9/src/utils" log "github.com/schollz/logger" "golang.org/x/net/proxy" ) var Socks5Proxy = "" +var HttpProxy = "" var MAGIC_BYTES = []byte("croc") @@ -51,6 +53,27 @@ } log.Debug("dialing with dialer.Dial") connection, err = dialer.Dial("tcp", address) + } else if HttpProxy != "" && !utils.IsLocalIP(address) { + var dialer proxy.Dialer + // prepend schema if no schema is given + if !strings.Contains(HttpProxy, `://`) { + HttpProxy = `http://` + HttpProxy + } + HttpProxyURL, urlParseError := url.Parse(HttpProxy) + if urlParseError != nil { + err = fmt.Errorf("unable to parse http proxy url: %s", urlParseError) + log.Debug(err) + return + } + dialer, err = connectproxy.New(HttpProxyURL, proxy.Direct) + if err != nil { + err = fmt.Errorf("proxy failed: %w", err) + log.Debug(err) + return + } + log.Debug("dialing with dialer.Dial") + connection, err = dialer.Dial("tcp", address) + } else { log.Debugf("dialing to %s with timelimit %s", address, tlimit) connection, err = net.DialTimeout("tcp", address, tlimit) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/croc-9.6.4/src/comm/comm_test.go new/croc-9.6.5/src/comm/comm_test.go --- old/croc-9.6.4/src/comm/comm_test.go 2023-03-14 12:52:15.000000000 +0100 +++ new/croc-9.6.5/src/comm/comm_test.go 2023-07-06 19:10:57.000000000 +0200 @@ -49,7 +49,7 @@ }() time.Sleep(300 * time.Millisecond) - a, err := NewConnection("localhost:"+port, 10*time.Minute) + a, err := NewConnection("127.0.0.1:"+port, 10*time.Minute) assert.Nil(t, err) data, err := a.Receive() assert.Equal(t, []byte("hello, world"), data) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/croc-9.6.4/src/croc/croc.go new/croc-9.6.5/src/croc/croc.go --- old/croc-9.6.4/src/croc/croc.go 2023-03-14 12:52:15.000000000 +0100 +++ new/croc-9.6.5/src/croc/croc.go 2023-07-06 19:10:57.000000000 +0200 @@ -251,7 +251,7 @@ return false, nil } -// This function retrives the important file informations +// This function retrieves the important file information // for every file that will be transferred func GetFilesInfo(fnames []string, zipfolder bool) (filesInfo []FileInfo, emptyFolders []FileInfo, totalNumberFolders int, err error) { // fnames: the relative/absolute paths of files/folders that will be transferred @@ -428,7 +428,7 @@ func (c *Client) setupLocalRelay() { // setup the relay locally firstPort, _ := strconv.Atoi(c.Options.RelayPorts[0]) - openPorts := utils.FindOpenPorts("localhost", firstPort, len(c.Options.RelayPorts)) + openPorts := utils.FindOpenPorts("127.0.0.1", firstPort, len(c.Options.RelayPorts)) if len(openPorts) < len(c.Options.RelayPorts) { panic("not enough open ports to run local relay") } @@ -441,7 +441,7 @@ if c.Options.Debug { debugString = "debug" } - err := tcp.Run(debugString, "localhost", portStr, c.Options.RelayPassword, strings.Join(c.Options.RelayPorts[1:], ",")) + err := tcp.Run(debugString, "127.0.0.1", portStr, c.Options.RelayPassword, strings.Join(c.Options.RelayPorts[1:], ",")) if err != nil { panic(err) } @@ -480,10 +480,10 @@ time.Sleep(500 * time.Millisecond) log.Debug("establishing connection") var banner string - conn, banner, ipaddr, err := tcp.ConnectToTCPServer("localhost:"+c.Options.RelayPorts[0], c.Options.RelayPassword, c.Options.SharedSecret[:3]) + conn, banner, ipaddr, err := tcp.ConnectToTCPServer("127.0.0.1:"+c.Options.RelayPorts[0], c.Options.RelayPassword, c.Options.SharedSecret[:3]) log.Debugf("banner: %s", banner) if err != nil { - err = fmt.Errorf("could not connect to localhost:%s: %w", c.Options.RelayPorts[0], err) + err = fmt.Errorf("could not connect to 127.0.0.1:%s: %w", c.Options.RelayPorts[0], err) log.Debug(err) // not really an error because it will try to connect over the actual relay return @@ -501,7 +501,7 @@ } c.conn[0] = conn log.Debug("exchanged header message") - c.Options.RelayAddress = "localhost" + c.Options.RelayAddress = "127.0.0.1" c.Options.RelayPorts = strings.Split(banner, ",") if c.Options.NoMultiplexing { log.Debug("no multiplexing") @@ -1160,7 +1160,7 @@ go func(j int) { defer wg.Done() var host string - if c.Options.RelayAddress == "localhost" { + if c.Options.RelayAddress == "127.0.0.1" { host = c.Options.RelayAddress } else { host, _, err = net.SplitHostPort(c.Options.RelayAddress) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/croc-9.6.4/src/croc/croc_test.go new/croc-9.6.5/src/croc/croc_test.go --- old/croc-9.6.4/src/croc/croc_test.go 2023-03-14 12:52:15.000000000 +0100 +++ new/croc-9.6.5/src/croc/croc_test.go 2023-07-06 19:10:57.000000000 +0200 @@ -17,11 +17,11 @@ func init() { log.SetLevel("trace") - go tcp.Run("debug", "localhost", "8281", "pass123", "8282,8283,8284,8285") - go tcp.Run("debug", "localhost", "8282", "pass123") - go tcp.Run("debug", "localhost", "8283", "pass123") - go tcp.Run("debug", "localhost", "8284", "pass123") - go tcp.Run("debug", "localhost", "8285", "pass123") + go tcp.Run("debug", "127.0.0.1", "8281", "pass123", "8282,8283,8284,8285") + go tcp.Run("debug", "127.0.0.1", "8282", "pass123") + go tcp.Run("debug", "127.0.0.1", "8283", "pass123") + go tcp.Run("debug", "127.0.0.1", "8284", "pass123") + go tcp.Run("debug", "127.0.0.1", "8285", "pass123") time.Sleep(1 * time.Second) } @@ -33,7 +33,7 @@ IsSender: true, SharedSecret: "8123-testingthecroc", Debug: true, - RelayAddress: "localhost:8281", + RelayAddress: "127.0.0.1:8281", RelayPorts: []string{"8281"}, RelayPassword: "pass123", Stdout: false, @@ -51,7 +51,7 @@ IsSender: false, SharedSecret: "8123-testingthecroc", Debug: true, - RelayAddress: "localhost:8281", + RelayAddress: "127.0.0.1:8281", RelayPassword: "pass123", Stdout: false, NoPrompt: true, @@ -99,7 +99,7 @@ IsSender: true, SharedSecret: "8123-testingthecroc", Debug: true, - RelayAddress: "localhost:8281", + RelayAddress: "127.0.0.1:8281", RelayPorts: []string{"8281"}, RelayPassword: "pass123", Stdout: false, @@ -117,7 +117,7 @@ IsSender: false, SharedSecret: "8123-testingthecroc", Debug: true, - RelayAddress: "localhost:8281", + RelayAddress: "127.0.0.1:8281", RelayPassword: "pass123", Stdout: false, NoPrompt: true, @@ -166,7 +166,7 @@ IsSender: true, SharedSecret: "8124-testingthecroc", Debug: true, - RelayAddress: "localhost:8281", + RelayAddress: "127.0.0.1:8281", RelayPorts: []string{"8281"}, RelayPassword: "pass123", Stdout: false, @@ -184,7 +184,7 @@ IsSender: false, SharedSecret: "8124-testingthecroc", Debug: true, - RelayAddress: "localhost:8281", + RelayAddress: "127.0.0.1:8281", RelayPassword: "pass123", Stdout: false, NoPrompt: true, @@ -241,7 +241,7 @@ IsSender: true, SharedSecret: "8123-testingthecroc", Debug: true, - RelayAddress: "localhost:8181", + RelayAddress: "127.0.0.1:8181", RelayPorts: []string{"8181", "8182"}, RelayPassword: "pass123", Stdout: true, @@ -260,7 +260,7 @@ IsSender: false, SharedSecret: "8123-testingthecroc", Debug: true, - RelayAddress: "localhost:8181", + RelayAddress: "127.0.0.1:8181", RelayPassword: "pass123", Stdout: true, NoPrompt: true, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/croc-9.6.4/src/install/default.txt new/croc-9.6.5/src/install/default.txt --- old/croc-9.6.4/src/install/default.txt 2023-03-14 12:52:15.000000000 +0100 +++ new/croc-9.6.5/src/install/default.txt 2023-07-06 19:10:57.000000000 +0200 @@ -156,7 +156,7 @@ #--- FUNCTION ---------------------------------------------------------------- # NAME: determine_os -# DESCRIPTION: Attempts to determin host os using uname +# DESCRIPTION: Attempts to determine host os using uname # PARAMETERS: none # RETURNS: 0 = OS Detected. Also prints detected os to stdout # 1 = Unknown OS @@ -180,7 +180,7 @@ #--- FUNCTION ---------------------------------------------------------------- # NAME: determine_arch -# DESCRIPTION: Attempt to determin architecture of host +# DESCRIPTION: Attempt to determine architecture of host # PARAMETERS: none # RETURNS: 0 = Arch Detected. Also prints detected arch to stdout # 1 = Unknown arch @@ -528,7 +528,7 @@ local autocomplete_install_rcode croc_bin_name="croc" - croc_version="9.6.4" + croc_version="9.6.5" croc_dl_ext="tar.gz" croc_base_url="https://github.com/schollz/croc/releases/download" prefix="${1}" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/croc-9.6.4/src/message/message_test.go new/croc-9.6.5/src/message/message_test.go --- old/croc-9.6.4/src/message/message_test.go 2023-03-14 12:52:15.000000000 +0100 +++ new/croc-9.6.5/src/message/message_test.go 2023-07-06 19:10:57.000000000 +0200 @@ -85,7 +85,7 @@ }() time.Sleep(300 * time.Millisecond) - a, err := comm.NewConnection("localhost:"+port, 10*time.Minute) + a, err := comm.NewConnection("127.0.0.1:"+port, 10*time.Minute) assert.Nil(t, err) m := Message{Type: TypeMessage, Message: "hello, world"} e, salt, err := crypt.New([]byte("pass"), nil) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/croc-9.6.4/src/tcp/tcp_test.go new/croc-9.6.5/src/tcp/tcp_test.go --- old/croc-9.6.4/src/tcp/tcp_test.go 2023-03-14 12:52:15.000000000 +0100 +++ new/croc-9.6.5/src/tcp/tcp_test.go 2023-07-06 19:10:57.000000000 +0200 @@ -12,11 +12,11 @@ func BenchmarkConnection(b *testing.B) { log.SetLevel("trace") - go Run("debug", "localhost", "8283", "pass123", "8284") + go Run("debug", "127.0.0.1", "8283", "pass123", "8284") time.Sleep(100 * time.Millisecond) b.ResetTimer() for i := 0; i < b.N; i++ { - c, _, _, _ := ConnectToTCPServer("localhost:8283", "pass123", fmt.Sprintf("testroom%d", i), 1*time.Minute) + c, _, _, _ := ConnectToTCPServer("127.0.0.1:8283", "pass123", fmt.Sprintf("testroom%d", i), 1*time.Minute) c.Close() } } @@ -24,22 +24,22 @@ func TestTCP(t *testing.T) { log.SetLevel("error") timeToRoomDeletion = 100 * time.Millisecond - go Run("debug", "localhost", "8381", "pass123", "8382") + go Run("debug", "127.0.0.1", "8381", "pass123", "8382") time.Sleep(timeToRoomDeletion) - err := PingServer("localhost:8381") + err := PingServer("127.0.0.1:8381") assert.Nil(t, err) - err = PingServer("localhost:8333") + err = PingServer("127.0.0.1:8333") assert.NotNil(t, err) time.Sleep(timeToRoomDeletion) - c1, banner, _, err := ConnectToTCPServer("localhost:8381", "pass123", "testRoom", 1*time.Minute) + c1, banner, _, err := ConnectToTCPServer("127.0.0.1:8381", "pass123", "testRoom", 1*time.Minute) assert.Equal(t, banner, "8382") assert.Nil(t, err) - c2, _, _, err := ConnectToTCPServer("localhost:8381", "pass123", "testRoom") + c2, _, _, err := ConnectToTCPServer("127.0.0.1:8381", "pass123", "testRoom") assert.Nil(t, err) - _, _, _, err = ConnectToTCPServer("localhost:8381", "pass123", "testRoom") + _, _, _, err = ConnectToTCPServer("127.0.0.1:8381", "pass123", "testRoom") assert.NotNil(t, err) - _, _, _, err = ConnectToTCPServer("localhost:8381", "pass123", "testRoom", 1*time.Nanosecond) + _, _, _, err = ConnectToTCPServer("127.0.0.1:8381", "pass123", "testRoom", 1*time.Nanosecond) assert.NotNil(t, err) // try sending data diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/croc-9.6.4/src/utils/utils.go new/croc-9.6.5/src/utils/utils.go --- old/croc-9.6.4/src/utils/utils.go 2023-03-14 12:52:15.000000000 +0100 +++ new/croc-9.6.5/src/utils/utils.go 2023-07-06 19:10:57.000000000 +0200 @@ -27,6 +27,9 @@ "github.com/schollz/mnemonicode" ) +const NbPinNumbers = 4 +const NbBytesWords = 4 + // Get or create home directory func GetConfigDir() (homedir string, err error) { homedir, err = os.UserHomeDir() @@ -186,7 +189,7 @@ s := "" max := new(big.Int) max.SetInt64(9) - for i := 0; i < 4; i++ { + for i := 0; i < NbPinNumbers; i++ { v, err := rand.Int(rand.Reader, max) if err != nil { panic(err) @@ -199,7 +202,7 @@ // GetRandomName returns mnemonicoded random name func GetRandomName() string { var result []string - bs := make([]byte, 4) + bs := make([]byte, NbBytesWords) rand.Read(bs) result = mnemonicode.EncodeWordList(result, bs) return GenerateRandomPin() + "-" + strings.Join(result, "-") @@ -356,7 +359,7 @@ } func IsLocalIP(ipaddress string) bool { - if strings.Contains(ipaddress, "localhost") { + if strings.Contains(ipaddress, "127.0.0.1") { return true } host, _, _ := net.SplitHostPort(ipaddress) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/croc-9.6.4/src/utils/utils_test.go new/croc-9.6.5/src/utils/utils_test.go --- old/croc-9.6.4/src/utils/utils_test.go 2023-03-14 12:52:15.000000000 +0100 +++ new/croc-9.6.5/src/utils/utils_test.go 2023-07-06 19:10:57.000000000 +0200 @@ -209,7 +209,7 @@ } func TestFindOpenPorts(t *testing.T) { - openPorts := FindOpenPorts("localhost", 9009, 4) + openPorts := FindOpenPorts("127.0.0.1", 9009, 4) assert.Equal(t, []int{9009, 9010, 9011, 9012}, openPorts) } ++++++ vendor.tar.xz ++++++ ++++ 22095 lines of diff (skipped)
