give the timeout a default value. fixes everything that uses shell_command_token_* with one arg
git-svn-id: file:///home/svn/framework3/trunk@11800 4d416f70-5f16-0410-b530-b9f4589650daunstable
parent
aa859e2f68
commit
f647088fba
|
@ -41,7 +41,7 @@ module SingleCommandShell
|
||||||
#
|
#
|
||||||
# Read data until we find the token
|
# Read data until we find the token
|
||||||
#
|
#
|
||||||
def shell_read_until_token(token, wanted_idx = 0, timeout = 10)
|
def shell_read_until_token(token, wanted_idx=0, timeout=10)
|
||||||
if (wanted_idx == 0)
|
if (wanted_idx == 0)
|
||||||
parts_needed = 2
|
parts_needed = 2
|
||||||
else
|
else
|
||||||
|
@ -75,11 +75,11 @@ module SingleCommandShell
|
||||||
nil
|
nil
|
||||||
end
|
end
|
||||||
|
|
||||||
def shell_command_token(cmd,timeout = 10)
|
def shell_command_token(cmd, timeout=10)
|
||||||
if platform =~ /win/
|
if platform =~ /win/
|
||||||
output = shell_command_token_win32(cmd,timeout)
|
output = shell_command_token_win32(cmd, timeout)
|
||||||
else
|
else
|
||||||
output = shell_command_token_unix(cmd,timeout)
|
output = shell_command_token_unix(cmd, timeout)
|
||||||
end
|
end
|
||||||
output
|
output
|
||||||
end
|
end
|
||||||
|
@ -88,7 +88,7 @@ module SingleCommandShell
|
||||||
# Explicitly run a single command and return the output.
|
# Explicitly run a single command and return the output.
|
||||||
# This version uses a marker to denote the end of data (instead of a timeout).
|
# This version uses a marker to denote the end of data (instead of a timeout).
|
||||||
#
|
#
|
||||||
def shell_command_token_unix(cmd,timeout)
|
def shell_command_token_unix(cmd, timeout=10)
|
||||||
# read any pending data
|
# read any pending data
|
||||||
buf = shell_read(-1, 0.01)
|
buf = shell_read(-1, 0.01)
|
||||||
token = ::Rex::Text.rand_text_alpha(32)
|
token = ::Rex::Text.rand_text_alpha(32)
|
||||||
|
@ -96,14 +96,14 @@ module SingleCommandShell
|
||||||
# Send the command to the session's stdin.
|
# Send the command to the session's stdin.
|
||||||
# NOTE: if the session echoes input we don't need to echo the token twice.
|
# NOTE: if the session echoes input we don't need to echo the token twice.
|
||||||
shell_write(cmd + ";echo #{token}\n")
|
shell_write(cmd + ";echo #{token}\n")
|
||||||
shell_read_until_token(token,0,timeout)
|
shell_read_until_token(token, 0, timeout)
|
||||||
end
|
end
|
||||||
|
|
||||||
#
|
#
|
||||||
# Explicitly run a single command and return the output.
|
# Explicitly run a single command and return the output.
|
||||||
# This version uses a marker to denote the end of data (instead of a timeout).
|
# This version uses a marker to denote the end of data (instead of a timeout).
|
||||||
#
|
#
|
||||||
def shell_command_token_win32(cmd,timeout)
|
def shell_command_token_win32(cmd, timeout=10)
|
||||||
# read any pending data
|
# read any pending data
|
||||||
buf = shell_read(-1, 0.01)
|
buf = shell_read(-1, 0.01)
|
||||||
token = ::Rex::Text.rand_text_alpha(32)
|
token = ::Rex::Text.rand_text_alpha(32)
|
||||||
|
@ -111,7 +111,7 @@ module SingleCommandShell
|
||||||
# Send the command to the session's stdin.
|
# Send the command to the session's stdin.
|
||||||
# NOTE: if the session echoes input we don't need to echo the token twice.
|
# NOTE: if the session echoes input we don't need to echo the token twice.
|
||||||
shell_write(cmd + "&echo #{token}\n")
|
shell_write(cmd + "&echo #{token}\n")
|
||||||
shell_read_until_token(token, 1,timeout)
|
shell_read_until_token(token, 1, timeout)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue