@@ -12,8 +12,8 @@ use log::*;
12
12
13
13
use crate :: cpython:: { python_attach, CPythonProbe , CPythonProbeState } ;
14
14
use crate :: golang:: { golang_attach, GolangProbe , GolangProbeState } ;
15
- use crate :: jvm:: { java_attach, java_detach, JVMProbe , JVMProbeState } ;
16
- use crate :: nodejs:: { nodejs_attach, NodeJSProbe } ;
15
+ use crate :: jvm:: { check_java_version , java_attach, java_detach, JVMProbe , JVMProbeState } ;
16
+ use crate :: nodejs:: { check_nodejs_version , nodejs_attach, NodeJSProbe } ;
17
17
use crate :: php:: { php_attach, PHPProbeState } ;
18
18
use crate :: {
19
19
comm:: { Control , EbpfMode , ProcessMode , RASPComm , ThreadMode , check_need_mount} ,
@@ -334,6 +334,14 @@ impl RASPManager {
334
334
Ok ( true )
335
335
}
336
336
ProbeState :: NotAttach => {
337
+ if !runtime_info. version . is_empty ( ) {
338
+ match check_java_version ( & runtime_info. version , pid) {
339
+ Ok ( _) => { }
340
+ Err ( e) => {
341
+ return Err ( anyhow ! ( e) ) ;
342
+ }
343
+ }
344
+ }
337
345
if self . can_copy ( mnt_namespace) {
338
346
for from in JVMProbe :: names ( ) . 0 . iter ( ) {
339
347
self . copy_file_from_to_dest ( from. clone ( ) , root_dir. clone ( ) ) ?;
@@ -342,9 +350,19 @@ impl RASPManager {
342
350
self . copy_dir_from_to_dest ( from. clone ( ) , root_dir. clone ( ) ) ?;
343
351
}
344
352
}
353
+
345
354
java_attach ( process_info. pid )
355
+
346
356
}
347
357
ProbeState :: AttachedVersionNotMatch => {
358
+ if !runtime_info. version . is_empty ( ) {
359
+ match check_java_version ( & runtime_info. version , pid) {
360
+ Ok ( _) => { }
361
+ Err ( e) => {
362
+ return Err ( anyhow ! ( e) ) ;
363
+ }
364
+ }
365
+ }
348
366
let mut diff_ns: bool = false ;
349
367
match check_need_mount ( mnt_namespace) {
350
368
Ok ( value) => {
@@ -473,6 +491,14 @@ impl RASPManager {
473
491
}
474
492
} ,
475
493
"NodeJS" => {
494
+ if !runtime_info. version . is_empty ( ) {
495
+ match check_nodejs_version ( & runtime_info. version ) {
496
+ Ok ( _) => { }
497
+ Err ( e) => {
498
+ return Err ( anyhow ! ( e) ) ;
499
+ }
500
+ }
501
+ }
476
502
if self . can_copy ( mnt_namespace) {
477
503
for from in NodeJSProbe :: names ( ) . 0 . iter ( ) {
478
504
self . copy_file_from_to_dest ( from. clone ( ) , root_dir. clone ( ) ) ?;
0 commit comments