summaryrefslogtreecommitdiff
authorllornkcor <llornkcor>2005-08-16 09:32:25 (UTC)
committer llornkcor <llornkcor>2005-08-16 09:32:25 (UTC)
commit8c44cc4fdb67ea6b96cf7e49ec648de4049a9f1c (patch) (side-by-side diff)
tree28fbe8466b5b93173513402f7b46e6c7ce5222ac
parent2176aa6c353e794798aa8ecddc28be365e94989c (diff)
downloadopie-8c44cc4fdb67ea6b96cf7e49ec648de4049a9f1c.zip
opie-8c44cc4fdb67ea6b96cf7e49ec648de4049a9f1c.tar.gz
opie-8c44cc4fdb67ea6b96cf7e49ec648de4049a9f1c.tar.bz2
add current mount when selecting server
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/opie-smb/qsmb.cpp33
-rw-r--r--noncore/net/opie-smb/qsmb.h1
2 files changed, 28 insertions, 6 deletions
diff --git a/noncore/net/opie-smb/qsmb.cpp b/noncore/net/opie-smb/qsmb.cpp
index e2ddc7f..7f3ae89 100644
--- a/noncore/net/opie-smb/qsmb.cpp
+++ b/noncore/net/opie-smb/qsmb.cpp
@@ -194,2 +194,3 @@ void Qsmb::hostSelected(int /*index*/ )
QString comment;
+ QString mount;
QString tmp = s.readLine();
@@ -202,3 +203,6 @@ void Qsmb::hostSelected(int /*index*/ )
comment = comment.stripWhiteSpace();
- element = new QListViewItem(ListViewScan, share, comment);
+// if(isMounted(share))
+
+ mount = getMount(share);
+ element = new QListViewItem(ListViewScan, share, comment, mount);
element->setOpen(true);
@@ -322,4 +326,2 @@ void Qsmb::DoIt()
- TextViewOutput->append(ccmd.join(" ").latin1());
-
if(onbootBtn->isChecked()) {
@@ -337,3 +339,3 @@ void Qsmb::DoIt()
- if(noerr) {
+ if(noerr && isMounted(mount)) {
element->setText(2, mount);
@@ -400,3 +402,4 @@ bool Qsmb::runCommand(const QStringList & command) {
-bool Qsmb::isMounted(const QString &mountPoint) {
+bool Qsmb::isMounted(const QString &mountPoint)
+{
struct mntent *me;
@@ -409,3 +412,3 @@ bool Qsmb::isMounted(const QString &mountPoint) {
QString fsType = me->mnt_type;
- if( fsType == "smbfs" && mountDir.find(mountPoint) !=-1)
+ if( fsType == "smbfs" && (mountDir.find(mountPoint) != -1 | deviceName.find(mountPoint) != -1))
mounted = true;
@@ -416 +419,19 @@ bool Qsmb::isMounted(const QString &mountPoint) {
}
+
+QString Qsmb::getMount(const QString &shareName)
+{
+ struct mntent *me;
+ QString mount;
+ FILE *mntfp = setmntent( "/etc/mtab", "r" );
+ if ( mntfp ){
+ while ( (me = getmntent( mntfp )) != 0 ) {
+ QString deviceName = me->mnt_fsname;
+ QString mountDir = me->mnt_dir;
+ QString fsType = me->mnt_type;
+ if( fsType == "smbfs" && deviceName.find(shareName) != -1)
+ mount = mountDir;
+ }
+ }
+ endmntent( mntfp );
+ return mount;
+}
diff --git a/noncore/net/opie-smb/qsmb.h b/noncore/net/opie-smb/qsmb.h
index fba94d0..abf27da 100644
--- a/noncore/net/opie-smb/qsmb.h
+++ b/noncore/net/opie-smb/qsmb.h
@@ -29,2 +29,3 @@ private:
bool isMounted(const QString &);
+ QString getMount(const QString &);