/*
This file is part of GNUnet.
- (C) 2001-2012 Christian Grothoff (and other contributing authors)
+ Copyright (C) 2001-2012 Christian Grothoff (and other contributing authors)
GNUnet is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published
You should have received a copy of the GNU General Public License
along with GNUnet; see the file COPYING. If not, write to the
- Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA.
+ Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA.
*/
/**
* @file include/gnunet_disk_lib.h
*/
enum GNUNET_FILE_Type
{
+ /**
+ * Handle represents an event.
+ */
+ GNUNET_DISK_HANLDE_TYPE_EVENT,
+
/**
* Handle represents a file.
*/
* 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 filename name of the file
* @param dev set to the device ID
* @param ino set to the inode ID
- * @return GNUNET_OK on success
+ * @return #GNUNET_OK on success
*/
int
GNUNET_DISK_file_get_identifiers (const char *filename,
GNUNET_DISK_get_handle_from_w32_handle (HANDLE osfh);
#endif
+/**
+ * Update POSIX permissions mask of a file on disk. If both argumets
+ * are #GNUNET_NO, the file is made world-read-write-executable (777).
+ * Does nothing on W32.
+ *
+ * @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);
+
/**
* Get a handle from a native integer FD.
* @return #GNUNET_OK on success, #GNUNET_SYSERR on error
*/
int
-GNUNET_DISK_file_copy (const char *src, const char *dst);
+GNUNET_DISK_file_copy (const char *src,
+ const char *dst);
/**
* @param filename complete filename (absolute path)
* @param dirname directory name (absolute path)
*/
-typedef void (*GNUNET_DISK_DirectoryIteratorCallback) (void *cls,
- struct GNUNET_DISK_DirectoryIterator *di,
- const char *filename,
- const char *dirname);
+typedef void
+(*GNUNET_DISK_DirectoryIteratorCallback) (void *cls,
+ struct GNUNET_DISK_DirectoryIterator *di,
+ const char *filename,
+ const char *dirname);
/**
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.
*/