From e6c1689b69e9e0ec530902b550c9e1e2d1cd0aae Mon Sep 17 00:00:00 2001 From: marynate Date: Sun, 25 May 2014 11:34:51 +0800 Subject: Add DirAccess:dir_exist api --- drivers/unix/dir_access_unix.cpp | 20 ++++++++++++++++++++ drivers/unix/dir_access_unix.h | 4 +++- 2 files changed, 23 insertions(+), 1 deletion(-) (limited to 'drivers/unix') diff --git a/drivers/unix/dir_access_unix.cpp b/drivers/unix/dir_access_unix.cpp index fff86c5a7e..452d791d96 100644 --- a/drivers/unix/dir_access_unix.cpp +++ b/drivers/unix/dir_access_unix.cpp @@ -81,6 +81,26 @@ bool DirAccessUnix::file_exists(String p_file) { } +bool DirAccessUnix::dir_exists(String p_dir) { + + GLOBAL_LOCK_FUNCTION + + + if (p_dir.is_rel_path()) + p_dir=current_dir+"/"+p_dir; + else + p_dir=fix_path(p_dir); + + struct stat flags; + bool success = (stat(p_dir.utf8().get_data(),&flags)==0); + + if (success && S_ISDIR(flags.st_mode)) + return true; + + return false; + +} + uint64_t DirAccessUnix::get_modified_time(String p_file) { if (p_file.is_rel_path()) diff --git a/drivers/unix/dir_access_unix.h b/drivers/unix/dir_access_unix.h index 7ede4fc31c..119cb5c3f4 100644 --- a/drivers/unix/dir_access_unix.h +++ b/drivers/unix/dir_access_unix.h @@ -66,7 +66,9 @@ public: virtual String get_current_dir(); ///< return current dir location virtual Error make_dir(String p_dir); - virtual bool file_exists(String p_file); + virtual bool file_exists(String p_file); + virtual bool dir_exists(String p_dir); + virtual uint64_t get_modified_time(String p_file); -- cgit v1.2.3 From 91aa645d8a6d3dfa4e92a7de37a6bee5b8c3b31a Mon Sep 17 00:00:00 2001 From: Theo Hallenius Date: Sat, 31 May 2014 17:13:08 +0200 Subject: Return an error code when address/port already in use --- drivers/unix/tcp_server_posix.cpp | 3 +++ 1 file changed, 3 insertions(+) (limited to 'drivers/unix') diff --git a/drivers/unix/tcp_server_posix.cpp b/drivers/unix/tcp_server_posix.cpp index f91ad36ef9..dfcf479fc0 100644 --- a/drivers/unix/tcp_server_posix.cpp +++ b/drivers/unix/tcp_server_posix.cpp @@ -93,6 +93,9 @@ Error TCPServerPosix::listen(uint16_t p_port,const List *p_accepted_host close(sockfd); ERR_FAIL_V(FAILED); }; + } + else { + return ERR_ALREADY_IN_USE; }; if (listen_sockfd != -1) { -- cgit v1.2.3