@@ -13,9 +13,9 @@ use uinput_ioctls::*;
1313
1414use crate :: cuse_device:: { get_vuinput_state, VuFileHandle } ;
1515use crate :: job_engine:: JOB_DISPATCHER ;
16- use crate :: jobs:: emit_udev_event_in_container_job :: EmitUdevEventInContainerJob ;
17- use crate :: jobs:: mknod_device_in_container_job :: MknodDeviceInContainerJob ;
18- use crate :: jobs:: remove_from_container_job :: RemoveFromContainerJob ;
16+ use crate :: jobs:: emit_udev_event_job :: EmitUdevEventJob ;
17+ use crate :: jobs:: mknod_device_job :: MknodDeviceJob ;
18+ use crate :: jobs:: remove_device_job :: RemoveDeviceJob ;
1919use crate :: process_tools:: SELF_NAMESPACES ;
2020use crate :: { cuse_device:: * , jobs} ;
2121
@@ -164,7 +164,7 @@ pub unsafe extern "C" fn vuinput_ioctl(
164164 CStr :: from_ptr( resultbuf. as_ptr( ) ) . to_string_lossy( )
165165 ) ;
166166 debug ! ( "fh {}: syspath: {}" , fh, sysname) ;
167- let devnode = fetch_device_node ( & sysname) . unwrap ( ) ;
167+ let ( devname , devnode) = fetch_device_node ( & sysname) . unwrap ( ) ;
168168 debug ! ( "fh {}: devnode: {}" , fh, devnode) ;
169169 let ( major, minor) = fetch_major_minor ( & devnode) . unwrap ( ) ;
170170 debug ! ( "fh {}: major: {} minor: {} " , fh, major, minor) ;
@@ -181,9 +181,9 @@ pub unsafe extern "C" fn vuinput_ioctl(
181181 . unwrap ( )
182182 . equal_mnt_and_net ( & vuinput_state. requesting_process . namespaces )
183183 {
184- let mknod_job = MknodDeviceInContainerJob :: new (
184+ let mknod_job = MknodDeviceJob :: new (
185185 vuinput_state. requesting_process . clone ( ) ,
186- devnode . clone ( ) ,
186+ devname . clone ( ) ,
187187 sysname. clone ( ) ,
188188 major,
189189 minor,
@@ -195,12 +195,12 @@ pub unsafe extern "C" fn vuinput_ioctl(
195195 . lock ( )
196196 . unwrap ( )
197197 . dispatch ( Box :: new ( mknod_job) ) ;
198- awaiter ( & jobs:: mknod_device_in_container_job :: State :: Finished ) ;
198+ awaiter ( & jobs:: mknod_device_job :: State :: Finished ) ;
199199 debug ! ( "fh {}: mknod_device in container has been finished " , fh) ;
200200 fuse_lowlevel:: fuse_reply_ioctl ( _req, 0 , std:: ptr:: null ( ) , 0 ) ;
201201
202202 // we do not wait for the udev stuff
203- let emit_udev_event_job = EmitUdevEventInContainerJob :: new (
203+ let emit_udev_event_job = EmitUdevEventJob :: new (
204204 vuinput_state. requesting_process . clone ( ) ,
205205 devnode. clone ( ) ,
206206 sysname. clone ( ) ,
@@ -229,7 +229,7 @@ pub unsafe extern "C" fn vuinput_ioctl(
229229 . equal_mnt_and_net ( & vuinput_state. requesting_process . namespaces )
230230 {
231231 let input_device = input_device. unwrap ( ) ;
232- let remove_job = RemoveFromContainerJob :: new (
232+ let remove_job = RemoveDeviceJob :: new (
233233 vuinput_state. requesting_process . clone ( ) ,
234234 input_device. devnode . clone ( ) ,
235235 input_device. syspath . clone ( ) ,
@@ -243,7 +243,7 @@ pub unsafe extern "C" fn vuinput_ioctl(
243243 . lock ( )
244244 . unwrap ( )
245245 . dispatch ( Box :: new ( remove_job) ) ;
246- awaiter ( & jobs:: remove_from_container_job :: State :: Finished ) ;
246+ awaiter ( & jobs:: remove_device_job :: State :: Finished ) ;
247247 debug ! (
248248 "fh {}: removing dev-nodes from container has been finished " ,
249249 fh
@@ -415,12 +415,12 @@ pub unsafe extern "C" fn vuinput_ioctl(
415415 }
416416}
417417
418- pub fn fetch_device_node ( path : & str ) -> io:: Result < String > {
418+ pub fn fetch_device_node ( path : & str ) -> io:: Result < ( String , String ) > {
419419 for entry in fs:: read_dir ( path) ? {
420420 let entry = entry?; // propagate per-entry errors
421421 if let Some ( name) = entry. file_name ( ) . to_str ( ) {
422422 if name. starts_with ( "event" ) {
423- return Ok ( format ! ( "/dev/input/{}" , name) ) ;
423+ return Ok ( ( name . to_string ( ) , format ! ( "/dev/input/{}" , name) ) ) ;
424424 }
425425 }
426426 }
0 commit comments