Merge lp:~carlos-mazieri/ubuntu-filemanager-app/samba-improvements-06 into lp:ubuntu-filemanager-app

Proposed by Carlos Jose Mazieri
Status: Merged
Approved by: Arto Jalkanen
Approved revision: 479
Merged at revision: 490
Proposed branch: lp:~carlos-mazieri/ubuntu-filemanager-app/samba-improvements-06
Merge into: lp:ubuntu-filemanager-app
Prerequisite: lp:~carlos-mazieri/ubuntu-filemanager-app/samba-improvements-05
Diff against target: 131 lines (+26/-24)
4 files modified
src/plugin/folderlistmodel/smb/qsambaclient/src/smbiteminfo.cpp (+2/-12)
src/plugin/folderlistmodel/smb/qsambaclient/src/smblocationitemfile.cpp (+7/-4)
src/plugin/folderlistmodel/smb/qsambaclient/src/smbutil.cpp (+15/-6)
src/plugin/folderlistmodel/smb/qsambaclient/src/smbutil.h (+2/-2)
To merge this branch: bzr merge lp:~carlos-mazieri/ubuntu-filemanager-app/samba-improvements-06
Reviewer Review Type Date Requested Status
Arto Jalkanen Approve
Ubuntu Phone Apps Jenkins Bot continuous-integration Approve
Jenkins Bot continuous-integration Needs Fixing
Review via email: mp+275831@code.launchpad.net

Commit message

some cleanup in SmbItemInfo::setInfo(), work around for directories is not necessary after fixing stat problem on device

Description of the change

some cleanup in SmbItemInfo::setInfo(), work around for directories is not necessary after fixing stat problem on device

To post a comment you must log in.
Revision history for this message
Jenkins Bot (ubuntu-core-apps-jenkins-bot) wrote :
review: Needs Fixing (continuous-integration)
Revision history for this message
Ubuntu Phone Apps Jenkins Bot (ubuntu-phone-apps-jenkins-bot) wrote :
review: Approve (continuous-integration)
Revision history for this message
Arto Jalkanen (ajalkane) :
review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'src/plugin/folderlistmodel/smb/qsambaclient/src/smbiteminfo.cpp'
--- src/plugin/folderlistmodel/smb/qsambaclient/src/smbiteminfo.cpp 2015-09-13 14:20:30 +0000
+++ src/plugin/folderlistmodel/smb/qsambaclient/src/smbiteminfo.cpp 2015-10-27 11:06:41 +0000
@@ -50,9 +50,8 @@
50void SmbItemInfo::setInfo(const QString& smb_path)50void SmbItemInfo::setInfo(const QString& smb_path)
51{ 51{
52 SmbUtil *smb = const_cast<SmbUtil*> (m_smb);52 SmbUtil *smb = const_cast<SmbUtil*> (m_smb);
53 //getStatInfo() is supposed to clear the struct stat unless the item does not exist53 //getStatInfo() is supposed to clear the struct stat
54 struct stat st;54 struct stat st;
55 ::memset(&st, 0, sizeof(struct stat));
56 int ret = smb->getStatInfo(smb_path, &st);55 int ret = smb->getStatInfo(smb_path, &st);
57 //lets start with true56 //lets start with true
58 d_ptr->_exists = d_ptr->_isReadable = true;57 d_ptr->_exists = d_ptr->_isReadable = true;
@@ -64,16 +63,7 @@
64 d_ptr->_isHost = false;63 d_ptr->_isHost = false;
65 d_ptr->_exists = d_ptr->_isReadable = false;64 d_ptr->_exists = d_ptr->_isReadable = false;
66 break;65 break;
67 case SmbUtil::StatDir: 66 case SmbUtil::StatDir:
68 //if directories does not have permissions lets set default
69 //some smb stat functions does not work, this code will not hurt
70 if ((st.st_mode & S_IFMT) == 0)
71 {
72 st.st_mode |= S_IRUSR | S_IWUSR | S_IXUSR |
73 S_IRGRP | S_IWGRP | S_IXGRP |
74 S_IROTH | S_IXOTH;
75 }
76 st.st_mode |= S_IFDIR;
77 break;67 break;
78 case SmbUtil::StatHost:68 case SmbUtil::StatHost:
79 d_ptr->_isHost = true;69 d_ptr->_isHost = true;
8070
=== modified file 'src/plugin/folderlistmodel/smb/qsambaclient/src/smblocationitemfile.cpp'
--- src/plugin/folderlistmodel/smb/qsambaclient/src/smblocationitemfile.cpp 2015-08-15 18:38:28 +0000
+++ src/plugin/folderlistmodel/smb/qsambaclient/src/smblocationitemfile.cpp 2015-10-27 11:06:41 +0000
@@ -232,13 +232,16 @@
232 SmbUtil::StatReturn ret = SmbUtil::StatInvalid;232 SmbUtil::StatReturn ret = SmbUtil::StatInvalid;
233 if (isOpen())233 if (isOpen())
234 { 234 {
235 ret = smbObj()->getFstat(m_context,m_fd, &st);235 ret = static_cast<SmbUtil::StatReturn> (smbObj()->getFstat(m_context,m_fd,&st));
236 }236 }
237 else237 else
238 {238 {
239 SmbLocationItemFile *mySelf = const_cast<SmbLocationItemFile*> (this);239 if (m_context != 0) {
240 mySelf->createContext();240 ret = static_cast<SmbUtil::StatReturn> (smbObj()->getStat(m_context,cleanUrl(),&st));
241 ret = smbObj()->getStat(m_context,cleanUrl(), &st);241 }
242 else {
243 ret = smbObj()->getStatInfo(cleanUrl(),&st);
244 }
242 }245 }
243 if(ret == SmbUtil::StatDone)246 if(ret == SmbUtil::StatDone)
244 {247 {
245248
=== modified file 'src/plugin/folderlistmodel/smb/qsambaclient/src/smbutil.cpp'
--- src/plugin/folderlistmodel/smb/qsambaclient/src/smbutil.cpp 2015-10-27 11:06:41 +0000
+++ src/plugin/folderlistmodel/smb/qsambaclient/src/smbutil.cpp 2015-10-27 11:06:41 +0000
@@ -38,11 +38,17 @@
3838
39#if defined(SHOW_MESSAGES)39#if defined(SHOW_MESSAGES)
40# define DBG(more_items) qDebug() << Q_FUNC_INFO more_items40# define DBG(more_items) qDebug() << Q_FUNC_INFO more_items
41# define DBG_STAT(ret) qDebug() << Q_FUNC_INFO \
42 << "return:" << ret \
43 << "mode:" << st->st_mode \
44 << "mtime:" << st->st_mtime \
45 << "size:" << st->st_size
41#else46#else
42#define DBG(none)47#define DBG(none)
48#define DBG_STAT(ret)
43#endif49#endif
4450
45#define SHOW_ERRNO(path) if (errno != 0 && errno != ENOENT) \51#define SHOW_ERRNO(path) if (errno != 0) \
46 { \52 { \
47 qWarning() << Q_FUNC_INFO << "path:" << path << "errno:" << errno << strerror(errno); \53 qWarning() << Q_FUNC_INFO << "path:" << path << "errno:" << errno << strerror(errno); \
48 }54 }
@@ -358,7 +364,7 @@
358 else if (errno != EACCES && errno != ECONNREFUSED) // perhaps is a file364 else if (errno != EACCES && errno != ECONNREFUSED) // perhaps is a file
359 {365 {
360 errno = 0;366 errno = 0;
361 ret = getStat(context, smb_path,st);367 ret = static_cast<SmbUtil::StatReturn> (getStat(context, smb_path,st));
362 }368 }
363369
364 if (errno != 0)370 if (errno != 0)
@@ -740,19 +746,22 @@
740}746}
741747
742748
743SmbUtil::StatReturn749int
744SmbUtil::getFstat(Smb::Context context, Smb::FileHandler fd, struct stat* st)750SmbUtil::getFstat(Smb::Context context, Smb::FileHandler fd, struct stat* st)
745{751{
746 ::memset(st,0,sizeof(struct stat));752 ::memset(st,0,sizeof(struct stat));
747 int ret = ::smbc_getFunctionFstat(context)(context,fd, st);753 int ret = ::smbc_getFunctionFstat(context)(context,fd, st);
748 return static_cast<SmbUtil::StatReturn> (ret);754 DBG_STAT(ret);
755 return ret;
749}756}
750757
751758
752SmbUtil::StatReturn759int
753SmbUtil::getStat(Smb::Context context, const QString& smb_path, struct stat* st)760SmbUtil::getStat(Smb::Context context, const QString& smb_path, struct stat* st)
754{761{
755 ::memset(st,0,sizeof(struct stat));762 ::memset(st,0,sizeof(struct stat));
763 DBG(<< smb_path);
756 int ret = ::smbc_getFunctionStat(context)(context,smb_path.toLocal8Bit().constData(), st);764 int ret = ::smbc_getFunctionStat(context)(context,smb_path.toLocal8Bit().constData(), st);
757 return static_cast<SmbUtil::StatReturn> (ret);765 DBG_STAT(ret);
766 return ret;
758}767}
759768
=== modified file 'src/plugin/folderlistmodel/smb/qsambaclient/src/smbutil.h'
--- src/plugin/folderlistmodel/smb/qsambaclient/src/smbutil.h 2015-07-15 13:00:56 +0000
+++ src/plugin/folderlistmodel/smb/qsambaclient/src/smbutil.h 2015-10-27 11:06:41 +0000
@@ -94,8 +94,8 @@
94 bool recursive = false,94 bool recursive = false,
95 QDir::Filters filters = QDir::AllEntries | QDir::NoDotAndDotDot,95 QDir::Filters filters = QDir::AllEntries | QDir::NoDotAndDotDot,
96 const QStringList& filterNames = QStringList());96 const QStringList& filterNames = QStringList());
97 StatReturn getFstat(Smb::Context context, Smb::FileHandler fd, struct stat* st);97 int getFstat(Smb::Context context, Smb::FileHandler fd, struct stat* st);
98 StatReturn getStat(Smb::Context context, const QString& smb_path, struct stat* st);98 int getStat(Smb::Context context, const QString& smb_path, struct stat* st);
9999
100private: 100private:
101 StatReturn guessDirType(Smb::Context context, Smb::FileHandler fd);101 StatReturn guessDirType(Smb::Context context, Smb::FileHandler fd);

Subscribers

People subscribed via source and target branches