]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
rust/mingw: fix missing IPPROTO_* declarations
authorVictor Julien <victor@inliniac.net>
Thu, 28 Mar 2019 10:51:43 +0000 (11:51 +0100)
committerVictor Julien <victor@inliniac.net>
Fri, 29 Mar 2019 14:09:05 +0000 (15:09 +0100)
The libc crate doesn't provide these on MinGW, so define them in
our 'core' instead. We only use IPPROTO_TCP and IPPROTO_UDP.

Bug #2733

rust/src/applayertemplate/template.rs
rust/src/core.rs
rust/src/dhcp/dhcp.rs
rust/src/ikev2/ikev2.rs
rust/src/krb/krb5.rs
rust/src/ntp/ntp.rs
rust/src/parser.rs

index fdfab3cd5a68937608682cf62f318ccad0192219..bfa1a2409e0457fdc775bb587b58d32bcc031360 100644 (file)
@@ -16,7 +16,7 @@
  */
 
 use std;
-use core::{self, ALPROTO_UNKNOWN, AppProto, Flow};
+use core::{self, ALPROTO_UNKNOWN, AppProto, Flow, IPPROTO_TCP};
 use libc;
 use log::*;
 use std::mem::transmute;
@@ -515,7 +515,7 @@ pub unsafe extern "C" fn rs_template_register_parser() {
     let parser = RustParser {
         name: PARSER_NAME.as_ptr() as *const libc::c_char,
         default_port: default_port.as_ptr(),
-        ipproto: libc::IPPROTO_TCP,
+        ipproto: IPPROTO_TCP,
         probe_ts: rs_template_probing_parser,
         probe_tc: rs_template_probing_parser,
         min_depth: 0,
index c529f57d19b4c67486a6a70e6a17c953dde2b741..bf334b0cae911148609d668b2c83e2222be8f5b1 100644 (file)
@@ -46,6 +46,9 @@ pub type AppProto = libc::c_int;
 pub const ALPROTO_UNKNOWN : AppProto = 0;
 pub static mut ALPROTO_FAILED : AppProto = 0; // updated during init
 
+pub const IPPROTO_TCP : i32 = 6;
+pub const IPPROTO_UDP : i32 = 17;
+
 macro_rules!BIT_U64 {
     ($x:expr) => (1 << $x);
 }
index 5f22f8c2bc01a97366e25d146289da85e03deea2..21e99fc3296482032f7c124cc2984f8032762149 100644 (file)
@@ -17,7 +17,7 @@
 
 use applayer;
 use core;
-use core::{ALPROTO_UNKNOWN, AppProto, Flow};
+use core::{ALPROTO_UNKNOWN, AppProto, Flow, IPPROTO_UDP};
 use core::{sc_detect_engine_state_free, sc_app_layer_decoder_events_free_events};
 use dhcp::parser::*;
 use libc;
@@ -400,7 +400,7 @@ pub unsafe extern "C" fn rs_dhcp_register_parser() {
     let parser = RustParser {
         name: PARSER_NAME.as_ptr() as *const libc::c_char,
         default_port: ports.as_ptr(),
-        ipproto: libc::IPPROTO_UDP,
+        ipproto: IPPROTO_UDP,
         probe_ts: rs_dhcp_probing_parser,
         probe_tc: rs_dhcp_probing_parser,
         min_depth: 0,
index dcbf581f26a73a2388a9e6c88958c04a993a2929..c0dfc978273d1480f53bb2ec6ce8946d428b068f 100644 (file)
@@ -666,7 +666,7 @@ pub unsafe extern "C" fn rs_register_ikev2_parser() {
     let parser = RustParser {
         name              : PARSER_NAME.as_ptr() as *const libc::c_char,
         default_port      : default_port.as_ptr(),
-        ipproto           : libc::IPPROTO_UDP,
+        ipproto           : core::IPPROTO_UDP,
         probe_ts          : rs_ikev2_probing_parser,
         probe_tc          : rs_ikev2_probing_parser,
         min_depth         : 0,
index bab1e584eca5d678db53f5b9e82ff4ea37847407..d997c5625807b0ca7d8f1d069d98328305bd1257 100644 (file)
@@ -617,7 +617,7 @@ pub unsafe extern "C" fn rs_register_krb5_parser() {
     let mut parser = RustParser {
         name              : PARSER_NAME.as_ptr() as *const libc::c_char,
         default_port      : default_port.as_ptr(),
-        ipproto           : libc::IPPROTO_UDP,
+        ipproto           : core::IPPROTO_UDP,
         probe_ts          : rs_krb5_probing_parser,
         probe_tc          : rs_krb5_probing_parser,
         min_depth         : 0,
@@ -657,7 +657,7 @@ pub unsafe extern "C" fn rs_register_krb5_parser() {
         SCLogDebug!("Protocol detecter and parser disabled for KRB5/UDP.");
     }
     // register TCP parser
-    parser.ipproto = libc::IPPROTO_TCP;
+    parser.ipproto = core::IPPROTO_TCP;
     parser.probe_ts = rs_krb5_probing_parser_tcp;
     parser.probe_tc = rs_krb5_probing_parser_tcp;
     parser.parse_ts = rs_krb5_parse_request_tcp;
index 0d449f3f9525d23631c9ff74c2903d4c98e2774f..f88e12599446c4826ee42bd72437d46743c4bb50 100644 (file)
@@ -375,7 +375,7 @@ pub unsafe extern "C" fn rs_register_ntp_parser() {
     let parser = RustParser {
         name              : PARSER_NAME.as_ptr() as *const libc::c_char,
         default_port      : default_port.as_ptr(),
-        ipproto           : libc::IPPROTO_UDP,
+        ipproto           : core::IPPROTO_UDP,
         probe_ts          : ntp_probing_parser,
         probe_tc          : ntp_probing_parser,
         min_depth         : 0,
index ab2efec6956de3a2a5b4043f73df1b458412c9d7..1f9102bf8d44c131f83648b21b3138e8beccc39e 100644 (file)
@@ -33,7 +33,7 @@ pub struct RustParser {
     /// Default port
     pub default_port:      *const c_char,
 
-    /// IP Protocol (libc::IPPROTO_UDP, libc::IPPROTO_TCP, etc.)
+    /// IP Protocol (core::IPPROTO_UDP, core::IPPROTO_TCP, etc.)
     pub ipproto:           c_int,
 
     /// Probing function, for packets going to server