137 |
} |
} |
138 |
g_fileinfo[MAX_OPEN_FILES]; |
g_fileinfo[MAX_OPEN_FILES]; |
139 |
|
|
|
|
|
140 |
time_t |
time_t |
141 |
get_create_time(struct stat *st) |
get_create_time(struct stat *st) |
142 |
{ |
{ |
181 |
|
|
182 |
/* Enumeration of devices from rdesktop.c */ |
/* Enumeration of devices from rdesktop.c */ |
183 |
/* returns numer of units found and initialized. */ |
/* returns numer of units found and initialized. */ |
184 |
/* optarg looks like ':h:=/mnt/floppy,b:=/mnt/usbdevice1' */ |
/* optarg looks like ':h=/mnt/floppy,b=/mnt/usbdevice1' */ |
185 |
/* when it arrives to this function. */ |
/* when it arrives to this function. */ |
186 |
int |
int |
187 |
disk_enum_devices(uint32 * id, char *optarg) |
disk_enum_devices(uint32 * id, char *optarg) |
340 |
case ENOENT: |
case ENOENT: |
341 |
|
|
342 |
return STATUS_NO_SUCH_FILE; |
return STATUS_NO_SUCH_FILE; |
343 |
|
case EEXIST: |
344 |
|
|
345 |
|
return STATUS_OBJECT_NAME_COLLISION; |
346 |
default: |
default: |
347 |
|
|
348 |
perror("open"); |
perror("open"); |
549 |
struct stat filestat; |
struct stat filestat; |
550 |
time_t write_time, change_time, access_time, mod_time; |
time_t write_time, change_time, access_time, mod_time; |
551 |
struct utimbuf tvs; |
struct utimbuf tvs; |
552 |
|
struct STATFS_T stat_fs; |
553 |
|
|
554 |
pfinfo = &(g_fileinfo[handle]); |
pfinfo = &(g_fileinfo[handle]); |
555 |
|
|
632 |
|
|
633 |
if (fchmod(handle, mode)) |
if (fchmod(handle, mode)) |
634 |
return STATUS_ACCESS_DENIED; |
return STATUS_ACCESS_DENIED; |
635 |
|
|
636 |
|
/* prevents start of writing if not enough space left on device */ |
637 |
|
if (STATFS_FN(g_rdpdr_device[pfinfo->device_id].local_path, &stat_fs) == 0) |
638 |
|
if (stat_fs.f_bsize * stat_fs.f_bfree < length) |
639 |
|
return STATUS_DISK_FULL; |
640 |
|
|
641 |
break; |
break; |
642 |
|
|
643 |
case 10: /* FileRenameInformation */ |
case 10: /* FileRenameInformation */ |