@@ -6,7 +6,7 @@ pub use handler::handler;
66
77use std:: {
88 env, io,
9- net:: { SocketAddr , TcpListener , TcpStream } ,
9+ net:: { IpAddr , SocketAddr , TcpListener , TcpStream } ,
1010 path:: PathBuf ,
1111 process:: { Command , Stdio } ,
1212} ;
@@ -64,8 +64,8 @@ pub fn txc_log_level() -> i32 {
6464 }
6565}
6666
67- pub fn read_handler_params ( ) -> ah:: Result < ( TcpStream , PathBuf , PathBuf ) > {
68- // 'master' process ensures that the handler 'fork' is passed the 'dll_path' and 'log_dir '
67+ pub fn read_handler_params ( ) -> ah:: Result < ( TcpStream , PathBuf , PathBuf , IpAddr ) > {
68+ // 'master' process ensures that the handler 'fork' is run with the 'dll_path', 'log_dir' and 'addr '
6969 // as positional arguments, and client socket handle is written to 'stdin'
7070
7171 // init winsock2
@@ -75,7 +75,9 @@ pub fn read_handler_params() -> ah::Result<(TcpStream, PathBuf, PathBuf)> {
7575 . context ( "Не удалось получить дескриптор подключения через 'stdin'" ) ?;
7676
7777 match env:: args ( ) . collect :: < Vec < String > > ( ) . as_slice ( ) {
78- [ .., log_dir, dll_path] => Ok ( ( con, log_dir. into ( ) , dll_path. into ( ) ) ) ,
78+ [ .., log_dir, dll_path, addr] => {
79+ Ok ( ( con, log_dir. into ( ) , dll_path. into ( ) , addr. parse ( ) . expect ( "infallible" ) ) )
80+ }
7981 _ => unreachable ! ( "unexpected number of arguments" ) ,
8082 }
8183}
@@ -100,6 +102,7 @@ pub fn master<A: Into<SocketAddr>>(addr: A, log_dir: PathBuf, dll_path: PathBuf)
100102 . stdout ( Stdio :: null ( ) )
101103 . arg ( dll_path. to_string_lossy ( ) . to_string ( ) )
102104 . arg ( log_dir. to_string_lossy ( ) . to_string ( ) )
105+ . arg ( addr. ip ( ) . to_string ( ) )
103106 . spawn ( )
104107 . context ( "Ошибка запуска обработчика клиентcкого подключения" ) ?;
105108
0 commit comments