Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
H
HTTP.sh
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
7
Issues
7
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Incidents
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Laura x Dominika x Patrycja
HTTP.sh
Commits
8f0d48a5
Commit
8f0d48a5
authored
Oct 11, 2020
by
Dominika Liberda
💽
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ncat is bork bugfix
parent
4a2a0bb8
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
43 additions
and
11 deletions
+43
-11
http.sh
http.sh
+29
-7
src/dependencies.optional
src/dependencies.optional
+2
-0
src/dependencies.required
src/dependencies.required
+9
-0
src/server.sh
src/server.sh
+3
-4
No files found.
http.sh
View file @
8f0d48a5
...
...
@@ -3,8 +3,9 @@ trap ctrl_c INT
source
config/master.sh
function
ctrl_c
()
{
[[
$socket
!=
''
]]
&&
rm
$socket
pkill
-P
$$
echo
-e
"
Killed all remaining processes
.
\n
Have an awesome day!!"
echo
-e
"
Cleaned up, exitting
.
\n
Have an awesome day!!"
}
if
[[
!
-f
"
$(
pwd
)
/http.sh"
]]
;
then
...
...
@@ -12,6 +13,25 @@ if [[ ! -f "$(pwd)/http.sh" ]]; then
exit
1
fi
echo
"-= HTTP.sh =-"
for
i
in
$(
cat
src/dependencies.required
)
;
do
which
$i
>
/dev/null 2>&1
if
[[
$?
!=
0
]]
;
then
echo
"ERROR: can't find
$i
"
error
=
true
fi
done
for
i
in
$(
cat
src/dependencies.optional
)
;
do
which
$i
>
/dev/null 2>&1
[[
$?
!=
0
]]
&&
echo
"WARNING: can't find
$i
"
done
if
[[
$error
==
true
]]
;
then
echo
"Fix above dependencies, and we might just let you pass."
exit
0
fi
if
[[
$1
==
"init"
]]
;
then
# will get replaced with proper parameter parsing in 1.0
mkdir
-p
"
${
cfg
[namespace]
}
/
${
cfg
[root]
}
"
"
${
cfg
[namespace]
}
/workers/example"
touch
"
${
cfg
[namespace]
}
/config.sh"
"
${
cfg
[namespace]
}
/workers/example/control"
...
...
@@ -46,8 +66,6 @@ LauraIsCute
exit
0
fi
echo
"HTTP.sh"
source
src/worker.sh
if
[[
-f
"
${
cfg
[namespace]
}
/config.sh"
]]
;
then
...
...
@@ -55,16 +73,20 @@ if [[ -f "${cfg[namespace]}/config.sh" ]]; then
fi
if
[[
${
cfg
[http]
}
==
true
]]
;
then
echo
"[HTTP] listening on
${
cfg
[ip]
}
:
${
cfg
[port]
}
"
ncat
-v
-l
${
cfg
[ip]
}
${
cfg
[port]
}
-c
./src/server.sh
-k
2>> /dev/null &
# this is a workaround because ncat kept messing up large (<150KB) files over HTTP - but not over HTTPS!
socket
=
$(
mktemp
-u
/tmp/XXXX.socket
)
ncat
-l
-U
"
$socket
"
-c
src/server.sh
-k
2>> /dev/null &
socat TCP-LISTEN:
${
cfg
[port]
}
,fork,bind
=
${
cfg
[ip]
}
UNIX-CLIENT:
$socket
&
echo
"[HTTP] listening on
${
cfg
[ip]
}
:
${
cfg
[port]
}
through '
$socket
'"
#ncat -v -l ${cfg[ip]} ${cfg[port]} -c ./src/server.sh -k 2>> /dev/null &
fi
if
[[
${
cfg
[ssl]
}
==
true
]]
;
then
echo
"[SSL] listening on port
${
cfg
[ip]
}
:
${
cfg
[ssl_port]
}
"
if
[[
${
cfg
[ssl_key]
}
!=
''
&&
${
cfg
[ssl_cert]
}
!=
''
]]
;
then
ncat
-
v
-
l
${
cfg
[ip]
}
${
cfg
[ssl_port]
}
-c
./src/server.sh
-k
--ssl
--ssl-cert
${
cfg
[ssl_cert]
}
--ssl-key
${
cfg
[ssl_key]
}
2>> /dev/null &
ncat
-l
${
cfg
[ip]
}
${
cfg
[ssl_port]
}
-c
./src/server.sh
-k
--ssl
--ssl-cert
${
cfg
[ssl_cert]
}
--ssl-key
${
cfg
[ssl_key]
}
2>> /dev/null &
else
ncat
-
v
-
l
${
cfg
[ip]
}
${
cfg
[ssl_port]
}
-c
./src/server.sh
-k
--ssl
2>> /dev/null &
ncat
-l
${
cfg
[ip]
}
${
cfg
[ssl_port]
}
-c
./src/server.sh
-k
--ssl
2>> /dev/null &
fi
fi
...
...
src/dependencies.optional
0 → 100644
View file @
8f0d48a5
sha1sum
sha256sum
src/dependencies.required
0 → 100644
View file @
8f0d48a5
bash
ncat
socat
grep
sed
mktemp
date
dd
file
src/server.sh
View file @
8f0d48a5
...
...
@@ -88,13 +88,12 @@ done
r[uri]
=
$(
realpath
"
${
cfg
[namespace]
}
/
${
cfg
[root]
}
$(
echo
${
r
[url]
}
|
sed
-E
's/\?(.*)$//'
)
"
)
[[
-d
"
${
r
[uri]
}
/"
]]
&&
pwd
=
"
${
r
[uri]
}
"
||
pwd
=
$(
dirname
"
${
r
[uri]
}
"
)
r[ip]
=
"
$NCAT_REMOTE_ADDR
:
$NCAT_REMOTE_PORT
"
if
[[
$NCAT_LOCAL_PORT
==
${
cfg
[port]
}
]]
;
then
if
[[
$NCAT_LOCAL_PORT
==
''
]]
;
then
r[proto]
=
'http'
r[ip]
=
"NCAT_IS_BORK"
else
r[proto]
=
'https'
r[ip]
=
"
$NCAT_REMOTE_ADDR
:
$NCAT_REMOTE_PORT
"
fi
echo
"
$(
date
)
- IP:
${
r
[ip]
}
, PROTO:
${
r
[proto]
}
, URL:
${
r
[url]
}
, GET_data:
${
get_data
[@]
}
, POST_data:
${
post_data
[@]
}
, POST_multipart:
${
post_multipart
[@]
}
"
>>
"
${
cfg
[namespace]
}
/
${
cfg
[log]
}
"
...
...
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