mirror of
https://github.com/hackerschoice/segfault.git
synced 2024-06-29 18:21:22 +00:00
portd exhaustion fix
This commit is contained in:
parent
cb213b5316
commit
e4a62fc9dd
2
Makefile
2
Makefile
@ -1,4 +1,4 @@
|
||||
VER := 0.3.3c
|
||||
VER := 0.3.3d
|
||||
|
||||
all:
|
||||
make -C guest
|
||||
|
@ -25,21 +25,25 @@ do_exit_err()
|
||||
|
||||
xmkdir()
|
||||
{
|
||||
[[ -z $1 ]] && return 255
|
||||
[[ -d "$1" ]] && return
|
||||
mkdir "$1"
|
||||
}
|
||||
|
||||
# [name] [secdir] [rawdir]
|
||||
# Return 1 when already mounted.
|
||||
encfs_mkdir()
|
||||
{
|
||||
local name
|
||||
local secdir
|
||||
local rawdir
|
||||
name="$1"
|
||||
secdir="$2"
|
||||
rawdir="$3"
|
||||
|
||||
[[ -d "${secdir}" ]] && mountpoint "${secdir}" >/dev/null && {
|
||||
echo "[encfs-${name}] Already mounted."
|
||||
[[ ! -e "${secdir}/${MARK_FN}" ]] && return 0
|
||||
[[ ! -e "${secdir}/${MARK_FN}" ]] && return 1
|
||||
ERR "[encfs-${name}] Mounted but markfile exist showing not encrypted."
|
||||
return 255
|
||||
}
|
||||
@ -72,8 +76,6 @@ encfs_mount()
|
||||
opts="$5"
|
||||
info="$6"
|
||||
|
||||
# is_tracked "${l}" && return 0 # Already mounted. Success.
|
||||
|
||||
[[ ! -e "${secdir}/${MARK_FN}" ]] && { echo "THIS-IS-NOT-ENCRYPTED *** DO NOT USE *** " >"${secdir}/${MARK_FN}" || { BAD 0 "Could not create Markfile"; return 255; } }
|
||||
|
||||
# local cpid
|
||||
@ -123,6 +125,12 @@ load_limits()
|
||||
[[ -f "/config/db/db-${lid}/limits.conf" ]] && eval "$(grep ^SF_ "/config/db/db-${lid}/limits.conf")"
|
||||
}
|
||||
|
||||
# [name] [reqid]
|
||||
mount_done()
|
||||
{
|
||||
redis-cli -h sf-redis RPUSH "encfs-${1}-${2}" "OK" >/dev/null
|
||||
}
|
||||
|
||||
redis_loop_forever()
|
||||
{
|
||||
local secdir
|
||||
@ -153,8 +161,11 @@ redis_loop_forever()
|
||||
|
||||
secdir="/encfs/sec/user-${name}"
|
||||
rawdir="/encfs/raw/user/user-${name}"
|
||||
encfs_mkdir "${name}" "${secdir}" "${rawdir}" || return
|
||||
encfs_mkdir "${name}" "${secdir}" "${rawdir}"
|
||||
[[ $? -eq 1 ]] && mount_done "${name}" "${reqid}"
|
||||
[[ $? -ne 0 ]] && continue
|
||||
|
||||
# HERE: Not yet mounted.
|
||||
# Set XFS limits
|
||||
load_limits "${name}"
|
||||
[[ -n $SF_USER_FS_INODE_MAX ]] || [[ -n $SF_USER_FS_BYTES_MAX ]] && {
|
||||
@ -183,8 +194,7 @@ redis_loop_forever()
|
||||
}
|
||||
|
||||
# Success. Tell the guest that EncFS is ready (newly mounted or was mounted)
|
||||
# prints "1" to stdout.
|
||||
redis-cli -h sf-redis RPUSH "encfs-${name}-${reqid}" "OK" >/dev/null
|
||||
mount_done "${name}" "${reqid}"
|
||||
done
|
||||
}
|
||||
|
||||
|
@ -201,6 +201,7 @@ remport_provider()
|
||||
lid="$1"
|
||||
provider="$2"
|
||||
|
||||
[[ "${provider,,}" != "cryptostorm" ]] && return
|
||||
shift 2
|
||||
[[ ${#@} -lt 1 ]] && return
|
||||
|
||||
@ -214,6 +215,10 @@ remport_provider()
|
||||
# DELIPPORTS+=($@)
|
||||
docker exec "sf-${provider,,}" /sf/bin/rportfw.sh delipports "$@"
|
||||
|
||||
# Might have encountered an error in cmd_fillstock() and remove the provider.
|
||||
# Add provider back. This will trigger a re-fill eventuallly.
|
||||
redr SADD portd:providers "${provider}" >/dev/null
|
||||
|
||||
# Delete from assgned-$provider list the specifuc IPPORT
|
||||
local ipport
|
||||
local members
|
||||
|
@ -288,10 +288,14 @@ print_goodbye()
|
||||
[[ -z $IS_PTY ]] && return
|
||||
|
||||
# Restricted shell (-r) wont let us redirect stderr - use a bash-exec trick
|
||||
n="$(bash -c "docker exec \"lg-${LID}\" pgrep . 2>/dev/null|wc -l")"
|
||||
# n="$(bash -c "docker exec \"lg-${LID}\" pgrep . 2>/dev/null|wc -l")"
|
||||
|
||||
n=$(IFS=$'\n' n=($(docker top "lg-${LID}" -o pid )); echo "${#n[@]}")
|
||||
[[ ! $n -gt 1 ]] && n=1
|
||||
((n--))
|
||||
|
||||
DEBUGF "Processes running: $n"
|
||||
if [[ "$n" -gt 2 ]]; then
|
||||
# echo -e "Number of processes running: ${CDY}$((n-2))${CN}"
|
||||
# Display the running processes
|
||||
str="process is"
|
||||
[[ "$n" -gt 3 ]] && str="processes are"
|
||||
@ -371,7 +375,6 @@ mk_hostname()
|
||||
|
||||
SF_HOSTNAME="${english[$m]}"
|
||||
SF_HOSTNAME+="${english[$n]}"
|
||||
DEBUGF "SF_HOSTNAME=$SF_HOSTNAME, SF_NUM=${SF_NUM}, NUM=$NUM"
|
||||
unset NUM
|
||||
unset english
|
||||
}
|
||||
|
@ -170,7 +170,7 @@ cmd_moreports()
|
||||
[[ $members_num -ge $req_num ]] && break
|
||||
done
|
||||
|
||||
# Could be a temporary failure of curl (200) or fatal (255)
|
||||
# Could be a temporary failure of curl (200) or fatal (255, out of ports)
|
||||
[[ $members_num -le 0 ]] && return "$err"
|
||||
|
||||
echo "${members[*]}"
|
||||
|
Loading…
Reference in New Issue
Block a user