Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
O
oh-my-zsh
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
JIRA
JIRA
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
github
oh-my-zsh
Commits
eb94df64
Unverified
Commit
eb94df64
authored
3 years ago
by
Bryan Lee
Committed by
GitHub
3 years ago
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat(shell-proxy): support SOCKS protocol based on URI scheme (#10069)
parent
234ad739
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
18 additions
and
3 deletions
+18
-3
ssh-proxy.py
plugins/shell-proxy/ssh-proxy.py
+18
-3
No files found.
plugins/shell-proxy/ssh-proxy.py
View file @
eb94df64
...
...
@@ -2,15 +2,30 @@
import
os
import
subprocess
import
sys
import
urllib.
parse
from
urllib.parse
import
url
parse
proxy
=
next
(
os
.
environ
[
_
]
for
_
in
(
"HTTP_PROXY"
,
"HTTPS_PROXY"
)
if
_
in
os
.
environ
)
parsed
=
urlparse
(
proxy
)
proxy_protocols
=
{
"http"
:
"connect"
,
"https"
:
"connect"
,
"socks"
:
"5"
,
"socks5"
:
"5"
,
"socks4"
:
"4"
,
"socks4a"
:
"4"
,
}
if
parsed
.
scheme
not
in
proxy_protocols
:
raise
TypeError
(
'unsupported proxy protocol: "{}"'
.
format
(
parsed
.
scheme
))
argv
=
[
"nc"
,
"-X"
,
"connect"
,
proxy_protocols
[
parsed
.
scheme
],
# Supported protocols are 4 (SOCKS v4), 5 (SOCKS v5) and connect (HTTP proxy). Default SOCKS v5 is used.
"-x"
,
urllib
.
parse
.
urlparse
(
proxy
)
.
netloc
,
# proxy-host:proxy-port
parsed
.
netloc
,
# proxy-host:proxy-port
sys
.
argv
[
1
],
# host
sys
.
argv
[
2
],
# port
]
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment