diff --git a/data/autorun.atr b/data/autorun.atr index e4f591e26..6f66bf67b 100644 Binary files a/data/autorun.atr and b/data/autorun.atr differ diff --git a/include/version.h b/include/version.h index 703f1352c..f201d80c9 100644 --- a/include/version.h +++ b/include/version.h @@ -10,8 +10,8 @@ #define FN_VERSION_MAJOR 0 #define FN_VERSION_MINOR 5 -#define FN_VERSION_BUILD "31f01cdd" +#define FN_VERSION_BUILD "be0c875e" -#define FN_VERSION_DATE "2021-04-19 04:19:41" +#define FN_VERSION_DATE "2021-04-21 04:21:51" -#define FN_VERSION_FULL "0.5.31f01cdd" +#define FN_VERSION_FULL "0.5.be0c875e" diff --git a/lib/network-protocol/SMB.cpp b/lib/network-protocol/SMB.cpp index ddec73fef..7e16c582b 100644 --- a/lib/network-protocol/SMB.cpp +++ b/lib/network-protocol/SMB.cpp @@ -104,7 +104,7 @@ bool NetworkProtocolSMB::mount(EdUrlParser *url) smb2_set_security_mode(smb, SMB2_NEGOTIATE_SIGNING_ENABLED); - if (!login->empty()) + if (login != nullptr) { smb2_set_user(smb, login->c_str()); smb2_set_password(smb, password->c_str()); @@ -247,11 +247,31 @@ bool NetworkProtocolSMB::del(EdUrlParser *url, cmdFrame_t *cmdFrame) bool NetworkProtocolSMB::mkdir(EdUrlParser *url, cmdFrame_t *cmdFrame) { + mount(url); + + if (smb2_mkdir(smb, smb_url->path) != 0) + { + fserror_to_error(); + Debug_printf("NetworkProtocolSMB::mkdir(%s) SMB error: %s\n",url->mRawUrl.c_str(), smb2_get_error(smb)); + } + + umount(); + return false; } bool NetworkProtocolSMB::rmdir(EdUrlParser *url, cmdFrame_t *cmdFrame) { + mount(url); + + if (smb2_rmdir(smb, smb_url->path) != 0) + { + fserror_to_error(); + Debug_printf("NetworkProtocolSMB::rmdir(%s) SMB error: %s\n",url->mRawUrl.c_str(), smb2_get_error(smb)); + } + + umount(); + return false; } @@ -259,10 +279,10 @@ bool NetworkProtocolSMB::stat() { struct smb2_stat_64 st; - smb2_stat(smb, smb_url->path, &st); + int ret = smb2_stat(smb, smb_url->path, &st); fileSize = st.smb2_size; - return false; + return ret != 0; } bool NetworkProtocolSMB::lock(EdUrlParser *url, cmdFrame_t *cmdFrame)