int zuluCryptOpenPlain( const char * device,const char * mapper,const char * mode,const char * pass,size_t pass_size ) { int lmode ; string_t st ; int fd ; int r ; if( StringPrefixMatch( device,"/dev/",5 ) ){ return _open_plain( device,mapper,mode,pass,pass_size ) ; }else{ if( StringHasComponent( mode,"ro" ) ){ lmode = O_RDONLY ; }else{ lmode = O_RDWR ; } /* * zuluCryptAttachLoopDeviceToFile() is defined in ./create_loop.c */ if( zuluCryptAttachLoopDeviceToFile( device,lmode,&fd,&st ) ){ r = _open_plain( device,mapper,mode,pass,pass_size ) ; StringDelete( &st ) ; close( fd ) ; return r ; }else{ return 2 ; } } }
int zuluCryptOpenPlain_1( const open_struct_t * opt ) { int mode ; string_t st ; int fd ; int r ; if( StringPrefixEqual( opt->device,"/dev/" ) ){ return _open_plain( opt->device,opt ) ; }else{ if( StringHasComponent( opt->m_opts,"ro" ) ){ mode = O_RDONLY ; }else{ mode = O_RDWR ; } /* * zuluCryptAttachLoopDeviceToFile() is defined in ./create_loop.c */ if( zuluCryptAttachLoopDeviceToFile( opt->device,mode,&fd,&st ) ){ r = _open_plain( StringContent( st ),opt ) ; StringDelete( &st ) ; close( fd ) ; return r ; }else{ return 2 ; } } }