string_t zuluCryptCreateMountPoint( const char * device,const char * label,const char * m_opts,uid_t uid ) { if( home_mount_prefix() ){ return create_home_mount_point( device,label,uid ) ; }else{ if( StringHasComponent( m_opts,"mount-prefix=home" ) ){ if( zuluCryptUserIsAMemberOfAGroup( uid,"zulumount" ) ){ return create_home_mount_point( device,label,uid ) ; }else{ return StringVoid ; } }else{ return create_mount_point( device,label,uid ) ; } } }
void action_w(char *optarg) { char device_name[50], *mountpoint, mountpointpath[50], mountpointname[200], *filename=NULL; int lastslashpos, toumount=NO; if (optarg==NULL) { strcpy(device_name, "/dev/sr0"); } else { strcpy(device_name, optarg); } mountpoint=get_mount_point(device_name); fprintf(stderr, "%s", mountpoint); if (*mountpoint=='\0') { mountpoint=create_mount_point(device_name); toumount=YES; } filename = get_cd_label(device_name); create_file(filename); lastslashpos=getlastcharpos(mountpoint, '/'); #ifdef Daction_w //fprintf(stderr, "%d", lastslashpos); #endif strncpy(mountpointpath, mountpoint, lastslashpos+1); strcpy(mountpointname, mountpoint+lastslashpos+1); #ifdef DEBUG fprintf(stderr, "\n%s %s %s\n", __func__, mountpointpath, mountpointname); #endif write_structure(mountpointpath, mountpointname, filename); if (toumount==YES) { unmount_device(mountpoint); } add_master_file(get_cd_label(device_name), filename); }