Added code to support the FLOWCONTROL setting

git-svn-id: file:///home/svn/framework3/trunk@6124 4d416f70-5f16-0410-b530-b9f4589650da
unstable
druid 2009-01-11 07:23:43 +00:00
parent a11df5fbbf
commit a9a7700121
1 changed files with 13 additions and 7 deletions

View File

@ -1,4 +1,3 @@
require 'serialport'
require 'telephony'
@ -17,7 +16,7 @@ module Exploit::Remote::Dialup
OptString.new('DIALSUFFIX', [false, 'Dial Suffix', nil]),
OptInt.new( 'DIALTIMEOUT', [true, 'Dial Timeout in seconds', 60]),
OptBool.new( 'DISPLAYMODEM', [true, 'Displays modem commands and responses on the console', false]),
OptEnum.new( 'FLOWCONTROL', [true, 'Flow Control', 'None', ['None', 'Hardware', 'Software'], 'None']),
OptEnum.new( 'FLOWCONTROL', [true, 'Flow Control', 'None', ['None', 'Hardware', 'Software', 'Both'], 'None']),
OptString.new('INITSTRING', [true, 'Initialization String', 'AT X6 S11=80']),
OptString.new('NUMBER', [true, 'Number to Dial (e.g. 1.800.950.9955, (202) 358-1234, 358.1234 etc.)', nil]),
OptEnum.new( 'PARITY', [true, 'Parity (Mark & Space are Windows Only)', 'None', ['None', 'Even', 'Odd', 'Mark', 'Space'], 'None']),
@ -35,11 +34,17 @@ module Exploit::Remote::Dialup
data_bits = datastore['DATABITS'].to_i
stop_bits = datastore['STOPBITS'].to_i
parity = case datastore['PARITY']
when 'Even' : SerialPort::EVEN
when 'Odd' : SerialPort::ODD
when 'Mark' : SerialPort::MARK
when 'Space': SerialPort::SPACE
else SerialPort::NONE
when 'Even' : Modem::EVEN
when 'Odd' : Modem::ODD
when 'Mark' : Modem::MARK
when 'Space': Modem::SPACE
else Modem::NONE
end
flowcontrol = case datastore['FLOWCONTROL']
when 'Hardware' : Modem::HARD
when 'Software' : Modem::SOFT
when 'Both' : Modem::HARD | Modem::SOFT
else : Modem::NONE
end
initstring = datastore['INITSTRING']
dialprefix = datastore['DIALPREFIX']
@ -54,6 +59,7 @@ module Exploit::Remote::Dialup
'parity' => parity,
'stop_bits' => stop_bits
}
modem.flow_control = flowcontrol
modem.display = datastore['DISPLAYMODEM']
print_status("Initializing Modem")