|
|
|
@ -47,7 +47,7 @@ fn parse_u16(i: &[u8]) -> IResult<&[u8], u16> {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// PORT 192,168,0,13,234,10
|
|
|
|
|
pub fn ftp_active_port(i: &[u8]) -> IResult<&[u8], u16> {
|
|
|
|
|
fn ftp_active_port(i: &[u8]) -> IResult<&[u8], u16> {
|
|
|
|
|
let (i, _) = tag("PORT")(i)?;
|
|
|
|
|
let (i, _) = delimited(multispace0, digit1, multispace0)(i)?;
|
|
|
|
|
let (i, _) = tuple((
|
|
|
|
@ -66,7 +66,7 @@ pub fn ftp_active_port(i: &[u8]) -> IResult<&[u8], u16> {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 227 Entering Passive Mode (212,27,32,66,221,243).
|
|
|
|
|
pub fn ftp_pasv_response(i: &[u8]) -> IResult<&[u8], u16> {
|
|
|
|
|
fn ftp_pasv_response(i: &[u8]) -> IResult<&[u8], u16> {
|
|
|
|
|
let (i, _) = tag("227")(i)?;
|
|
|
|
|
let (i, _) = take_until("(")(i)?;
|
|
|
|
|
let (i, _) = tag("(")(i)?;
|
|
|
|
@ -90,7 +90,7 @@ pub fn ftp_pasv_response(i: &[u8]) -> IResult<&[u8], u16> {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#[no_mangle]
|
|
|
|
|
pub unsafe extern "C" fn rs_ftp_active_port(input: *const u8, len: u32) -> u16 {
|
|
|
|
|
pub unsafe extern "C" fn SCFTPParsePort(input: *const u8, len: u32) -> u16 {
|
|
|
|
|
if input.is_null() {
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
@ -110,7 +110,7 @@ pub unsafe extern "C" fn rs_ftp_active_port(input: *const u8, len: u32) -> u16 {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#[no_mangle]
|
|
|
|
|
pub unsafe extern "C" fn rs_ftp_pasv_response(input: *const u8, len: u32) -> u16 {
|
|
|
|
|
pub unsafe extern "C" fn SCFTPParsePortPasv(input: *const u8, len: u32) -> u16 {
|
|
|
|
|
if input.is_null() {
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
@ -141,7 +141,7 @@ pub fn ftp_epsv_response(i: &[u8]) -> IResult<&[u8], u16> {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// EPRT |2|2a01:e34:ee97:b130:8c3e:45ea:5ac6:e301|41813|
|
|
|
|
|
pub fn ftp_active_eprt(i: &[u8]) -> IResult<&[u8], u16> {
|
|
|
|
|
fn ftp_active_eprt(i: &[u8]) -> IResult<&[u8], u16> {
|
|
|
|
|
let (i, _) = tag("EPRT")(i)?;
|
|
|
|
|
let (i, _) = take_until("|")(i)?;
|
|
|
|
|
let (i, _) = tag("|")(i)?;
|
|
|
|
@ -155,7 +155,7 @@ pub fn ftp_active_eprt(i: &[u8]) -> IResult<&[u8], u16> {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#[no_mangle]
|
|
|
|
|
pub unsafe extern "C" fn rs_ftp_active_eprt(input: *const u8, len: u32) -> u16 {
|
|
|
|
|
pub unsafe extern "C" fn SCFTPParsePortEprt(input: *const u8, len: u32) -> u16 {
|
|
|
|
|
if input.is_null() {
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
@ -174,7 +174,7 @@ pub unsafe extern "C" fn rs_ftp_active_eprt(input: *const u8, len: u32) -> u16 {
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
#[no_mangle]
|
|
|
|
|
pub unsafe extern "C" fn rs_ftp_epsv_response(input: *const u8, len: u32) -> u16 {
|
|
|
|
|
pub unsafe extern "C" fn SCFTPParsePortEpsv(input: *const u8, len: u32) -> u16 {
|
|
|
|
|
if input.is_null() {
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|