#ifndef GNUNET_DISK_LIB_H
#define GNUNET_DISK_LIB_H
-#if WINDOWS
-#define OFF_T uint64_t
-#else
-#define OFF_T off_t
-#endif
-
/**
* Handle used to manage a pipe.
*/
* Checks whether a handle is invalid
*
* @param h handle to check
- * @return GNUNET_YES if invalid, GNUNET_NO if valid
+ * @return #GNUNET_YES if invalid, #GNUNET_NO if valid
*/
int
GNUNET_DISK_handle_invalid (const struct GNUNET_DISK_FileHandle *h);
* @param whence specification to which position the offset parameter relates to
* @return the new position on success, GNUNET_SYSERR otherwise
*/
-OFF_T
-GNUNET_DISK_file_seek (const struct GNUNET_DISK_FileHandle *h, OFF_T offset,
+off_t
+GNUNET_DISK_file_seek (const struct GNUNET_DISK_FileHandle *h, off_t offset,
enum GNUNET_DISK_Seek whence);
*/
int
GNUNET_DISK_file_handle_size (struct GNUNET_DISK_FileHandle *fh,
- OFF_T *size);
+ off_t *size);
/**
*/
struct GNUNET_DISK_FileHandle *
GNUNET_DISK_get_handle_from_w32_handle (HANDLE osfh);
+#else
+
+/**
+ * Update POSIX permissions mask of a file on disk. If both argumets
+ * are #GNUNET_NO, the file is made world-read-write-executable (777).
+ *
+ * @param fn name of the file to update
+ * @param require_uid_match #GNUNET_YES means 700
+ * @param require_gid_match #GNUNET_YES means 770 unless @a require_uid_match is set
+ */
+void
+GNUNET_DISK_fix_permissions (const char *fn,
+ int require_uid_match,
+ int require_gid_match);
+
#endif
*/
int
GNUNET_DISK_file_lock (struct GNUNET_DISK_FileHandle *fh,
- OFF_T lock_start,
- OFF_T lock_end, int excl);
+ off_t lock_start,
+ off_t lock_end, int excl);
/**
*/
int
GNUNET_DISK_file_unlock (struct GNUNET_DISK_FileHandle *fh,
- OFF_T unlock_start,
- OFF_T unlock_end);
+ off_t unlock_start,
+ off_t unlock_end);
/**
GNUNET_DISK_file_change_owner (const char *filename, const char *user);
-/**
- * Construct full path to a file inside of the private
- * directory used by GNUnet. Also creates the corresponding
- * directory. If the resulting name is supposed to be
- * a directory, end the last argument in '/' (or pass
- * DIR_SEPARATOR_STR as the last argument before NULL).
- *
- * @param cfg configuration to use
- * @param service_name name of the service asking
- * @param ... is NULL-terminated list of
- * path components to append to the
- * private directory name.
- * @return the constructed filename
- */
-char *
-GNUNET_DISK_get_home_filename (const struct GNUNET_CONFIGURATION_Handle *cfg,
- const char *service_name, ...);
-
-
/**
* Opaque handle for a memory-mapping operation.
*/