105 |
#if (defined(SOLARIS) || defined (__hpux) || defined(__BEOS__)) |
#if (defined(SOLARIS) || defined (__hpux) || defined(__BEOS__)) |
106 |
#include <sys/statvfs.h> /* solaris statvfs */ |
#include <sys/statvfs.h> /* solaris statvfs */ |
107 |
#include <sys/mntent.h> |
#include <sys/mntent.h> |
108 |
#define HAVE_MNTENT_H |
/* TODO: Fix mntent-handling for solaris */ |
109 |
|
#undef HAVE_MNTENT_H |
110 |
#define MNTENT_PATH "/etc/mnttab" |
#define MNTENT_PATH "/etc/mnttab" |
111 |
#define STATFS_FN(path, buf) (statvfs(path,buf)) |
#define STATFS_FN(path, buf) (statvfs(path,buf)) |
112 |
#define STATFS_T statvfs |
#define STATFS_T statvfs |
648 |
if (fchmod(handle, mode)) |
if (fchmod(handle, mode)) |
649 |
return STATUS_ACCESS_DENIED; |
return STATUS_ACCESS_DENIED; |
650 |
|
|
|
/* prevents start of writing if not enough space left on device */ |
|
|
if (STATFS_FN(g_rdpdr_device[pfinfo->device_id].local_path, &stat_fs) == 0) |
|
|
if (stat_fs.f_bsize * stat_fs.f_bfree < length) |
|
|
return STATUS_DISK_FULL; |
|
|
|
|
651 |
break; |
break; |
652 |
|
|
653 |
case 10: /* FileRenameInformation */ |
case 10: /* FileRenameInformation */ |
701 |
in_uint8s(in, 28); /* unknown */ |
in_uint8s(in, 28); /* unknown */ |
702 |
in_uint32_le(in, length); /* file size */ |
in_uint32_le(in, length); /* file size */ |
703 |
|
|
704 |
printf("FileEndOfFileInformation length = %d\n", length); |
/* prevents start of writing if not enough space left on device */ |
705 |
// ???????????? |
if (STATFS_FN(g_rdpdr_device[pfinfo->device_id].local_path, &stat_fs) == 0) |
706 |
|
if (stat_fs.f_bsize * stat_fs.f_bfree < length) |
707 |
|
return STATUS_DISK_FULL; |
708 |
|
|
709 |
unimpl("IRP Set File Information class: FileEndOfFileInformation\n"); |
//printf("FileEndOfFileInformation length = %d\n", length); |
710 |
|
// ???????????? |
711 |
|
//unimpl("IRP Set File Information class: FileEndOfFileInformation\n"); |
712 |
break; |
break; |
713 |
default: |
default: |
714 |
|
|