/[rdesktop]/sourceforge.net/trunk/rdesktop/disk.c
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /sourceforge.net/trunk/rdesktop/disk.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 653 by astrand, Thu Apr 15 20:53:32 2004 UTC revision 661 by astrand, Fri Apr 16 13:03:13 2004 UTC
# Line 608  disk_set_information(HANDLE handle, uint Line 608  disk_set_information(HANDLE handle, uint
608                          break;                          break;
609    
610                  case FileDispositionInformation:                  case FileDispositionInformation:
611                            /* As far as I understand it, the correct
612                          //unimpl("IRP Set File Information class: FileDispositionInformation\n");                             thing to do here is to *schedule* a delete,
613                               so it will be deleted when the file is
614                               closed. Subsequent
615                               FileDispositionInformation requests with
616                               DeleteFile set to FALSE should unschedule
617                               the delete. See
618                               http://www.osronline.com/article.cfm?article=245. Currently,
619                               we are deleting the file immediately. I
620                               guess this is a FIXME. */
621    
622                          //in_uint32_le(in, delete_on_close);                          //in_uint32_le(in, delete_on_close);
623                          // disk_close(handle);  
624                            /* Make sure we close the file before
625                               unlinking it. Not doing so would trigger
626                               silly-delete if using NFS, which might fail
627                               on FAT floppies, for example. */
628                            disk_close(handle);
629    
630                          if ((pfinfo->flags_and_attributes & FILE_DIRECTORY_FILE))       // remove a directory                          if ((pfinfo->flags_and_attributes & FILE_DIRECTORY_FILE))       // remove a directory
631                          {                          {
632                                  if (rmdir(pfinfo->path) < 0)                                  if (rmdir(pfinfo->path) < 0)
# Line 624  disk_set_information(HANDLE handle, uint Line 638  disk_set_information(HANDLE handle, uint
638                          break;                          break;
639    
640                  case FileAllocationInformation:                  case FileAllocationInformation:
641                            /* Fall through to FileEndOfFileInformation,
642                          unimpl("IRP Set File Information class: FileAllocationInformation\n");                             which uses ftrunc. This is like Samba with
643                          break;                             "strict allocation = false", and means that
644                               we won't detect out-of-quota errors, for
645                               example. */
646    
647                  case FileEndOfFileInformation:                  case FileEndOfFileInformation:
648                          in_uint8s(in, 28);      /* unknown */                          in_uint8s(in, 28);      /* unknown */
# Line 637  disk_set_information(HANDLE handle, uint Line 653  disk_set_information(HANDLE handle, uint
653                                  if (stat_fs.f_bsize * stat_fs.f_bfree < length)                                  if (stat_fs.f_bsize * stat_fs.f_bfree < length)
654                                          return STATUS_DISK_FULL;                                          return STATUS_DISK_FULL;
655    
656                          //printf("FileEndOfFileInformation length = %d\n", length);                          if (ftruncate(handle, length) != 0)
657                          // ????????????                          {
658                          //unimpl("IRP Set File Information class: FileEndOfFileInformation\n");                                  perror("ftruncate");
659                                    return STATUS_DISK_FULL;
660                            }
661    
662                          break;                          break;
663                  default:                  default:
664    

Legend:
Removed from v.653  
changed lines
  Added in v.661

  ViewVC Help
Powered by ViewVC 1.1.26