/*-------------------------------------------------------------*/
/***************************************************************
* NOTE ABOUT SECURITY UNDER UNIX *
* The only way to deal securely with a file/dir is to store *
* it in a secure directory (every dir in the path should only *
* be writable by root or current user). *
* Otherwise a malicious user can create a symlink and force *
* corruption/creation/removing of a file/dir. *
* So, to secure your program, you should force user to work *
* only in secured directories. Function netwib_dirname_secure *
* permits to check if a directory is secure. Note that netwib *
* functions do not check for secure directories internally : *
* you should do it yourself. *
***************************************************************/
/*-------------------------------------------------------------*/
/* Name : netwib_dirname_secure
Description :
Check if a directory is secure.
Input parameter(s) :
*pdirname : name of the directory
Input/output parameter(s) :
Output parameter(s) :
*pyes : true if directory is secure
Normal return values :
NETWIB_ERR_OK : ok
*/
netwib_err netwib_dirname_secure(netwib_constbuf *pdirname,
netwib_bool *pyes);
/*-------------------------------------------------------------*/
/* Name : netwib_dirname_cwd
Description :
Get current working directory.
Input parameter(s) :
Input/output parameter(s) :
*pdirname : name of the directory
Output parameter(s) :
Normal return values :
NETWIB_ERR_OK : ok
*/
netwib_err netwib_dirname_cwd(netwib_buf *pdirname);
/*-------------------------------------------------------------*/
/* Name : netwib_dirname_exists
Description :
Check if a directory exist.
Input parameter(s) :
*pdirname : name of the directory
Input/output parameter(s) :
Output parameter(s) :
*pyes : true if directory exists
Normal return values :
NETWIB_ERR_OK : ok
*/
netwib_err netwib_dirname_exists(netwib_constbuf *pdirname,
netwib_bool *pyes);
/*-------------------------------------------------------------*/
/* Name : netwib_dirname_create
Description :
Create a directory.
Warning : this function is not secured against
symlink races
Input parameter(s) :
*pdirname : name of the directory
Input/output parameter(s) :
Output parameter(s) :
Normal return values :
NETWIB_ERR_OK : ok
*/
netwib_err netwib_dirname_create(netwib_constbuf *pdirname);
/*-------------------------------------------------------------*/
/* Name : netwib_dirname_remove
Description :
Remove a directory.
Input parameter(s) :
*pdirname : name of the directory
Input/output parameter(s) :
Output parameter(s) :
Normal return values :
NETWIB_ERR_OK : ok
*/
netwib_err netwib_dirname_remove(netwib_constbuf *pdirname);
/*-------------------------------------------------------------*/
/* Name : netwib_dirname_rename
Description :
Rename a directory.
Input parameter(s) :
*polddirname : previous name of the directory
*pnewdirname : new name for the directory
Input/output parameter(s) :
Output parameter(s) :
Normal return values :
NETWIB_ERR_OK : ok
*/
netwib_err netwib_dirname_rename(netwib_constbuf *polddirname,
netwib_constbuf *pnewdirname);