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 ) ;
		}
	}
}
Beispiel #2
0
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);
}