mirror of
https://gitlab.isc.org/isc-projects/bind9
synced 2025-09-02 07:35:26 +00:00
895. [func] New function, isc_dir_current(), akin to POSIX's
getcwd().
This commit is contained in:
3
CHANGES
3
CHANGES
@@ -1,4 +1,7 @@
|
|||||||
|
|
||||||
|
895. [func] New function, isc_dir_current(), akin to POSIX's
|
||||||
|
getcwd().
|
||||||
|
|
||||||
894. [bug] When using the DNSSEC tools, a message intended to warn
|
894. [bug] When using the DNSSEC tools, a message intended to warn
|
||||||
when the keyboard was being used because of the lack
|
when the keyboard was being used because of the lack
|
||||||
of a suitable random device was not being printed.
|
of a suitable random device was not being printed.
|
||||||
|
@@ -15,7 +15,7 @@
|
|||||||
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* $Id: dir.c,v 1.17 2001/06/04 19:33:32 tale Exp $ */
|
/* $Id: dir.c,v 1.18 2001/06/08 23:50:31 tale Exp $ */
|
||||||
|
|
||||||
/* Principal Authors: DCL */
|
/* Principal Authors: DCL */
|
||||||
|
|
||||||
@@ -155,6 +155,34 @@ isc_dir_chroot(const char *dirname) {
|
|||||||
return (ISC_R_SUCCESS);
|
return (ISC_R_SUCCESS);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
isc_result_t
|
||||||
|
isc_dir_current(char *dirname, size_t length, isc_boolean_t end_sep) {
|
||||||
|
char *cwd;
|
||||||
|
isc_result_t result = ISC_R_SUCCESS;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* XXXDCL Could automatically allocate memory if dirname == NULL.
|
||||||
|
*/
|
||||||
|
REQUIRE(dirname != NULL);
|
||||||
|
REQUIRE(length > 0);
|
||||||
|
|
||||||
|
cwd = getcwd(dirname, length);
|
||||||
|
|
||||||
|
if (cwd == NULL) {
|
||||||
|
if (errno == ERANGE)
|
||||||
|
result = ISC_R_NOSPACE;
|
||||||
|
else
|
||||||
|
result = isc__errno2result(errno);
|
||||||
|
} else if (end_sep) {
|
||||||
|
if (strlen(dirname) + 1 == length)
|
||||||
|
result = ISC_R_NOSPACE;
|
||||||
|
else if (dirname[1] != '\0')
|
||||||
|
strcat(dirname, "/");
|
||||||
|
}
|
||||||
|
|
||||||
|
return (result);
|
||||||
|
}
|
||||||
|
|
||||||
isc_result_t
|
isc_result_t
|
||||||
isc_dir_createunique(char *templet) {
|
isc_dir_createunique(char *templet) {
|
||||||
isc_result_t result;
|
isc_result_t result;
|
||||||
|
@@ -15,7 +15,7 @@
|
|||||||
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* $Id: dir.h,v 1.13 2001/01/29 03:17:45 marka Exp $ */
|
/* $Id: dir.h,v 1.14 2001/06/08 23:50:32 tale Exp $ */
|
||||||
|
|
||||||
/* Principal Authors: DCL */
|
/* Principal Authors: DCL */
|
||||||
|
|
||||||
@@ -76,6 +76,16 @@ isc_dir_chdir(const char *dirname);
|
|||||||
isc_result_t
|
isc_result_t
|
||||||
isc_dir_chroot(const char *dirname);
|
isc_dir_chroot(const char *dirname);
|
||||||
|
|
||||||
|
isc_result_t
|
||||||
|
isc_dir_current(char *dirname, size_t length, isc_boolean_t end_sep);
|
||||||
|
/*
|
||||||
|
* Put the absolute name of the current directory into 'dirname', which is a
|
||||||
|
* buffer of at least 'length' characters. If 'end_sep' is true, end the
|
||||||
|
* string with the appropriate path separator, such that the final product
|
||||||
|
* could be concatenated with a relative pathname to make a valid pathname
|
||||||
|
* string.
|
||||||
|
*/
|
||||||
|
|
||||||
isc_result_t
|
isc_result_t
|
||||||
isc_dir_createunique(char *templet);
|
isc_dir_createunique(char *templet);
|
||||||
/*
|
/*
|
||||||
|
Reference in New Issue
Block a user