Diffstat (limited to 'noncore/net/opie-smb/qsmb.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | noncore/net/opie-smb/qsmb.cpp | 33 |
1 files changed, 27 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*/ ) | |||
194 | QString comment; | 194 | QString comment; |
195 | QString mount; | ||
195 | QString tmp = s.readLine(); | 196 | QString tmp = s.readLine(); |
@@ -202,3 +203,6 @@ void Qsmb::hostSelected(int /*index*/ ) | |||
202 | comment = comment.stripWhiteSpace(); | 203 | comment = comment.stripWhiteSpace(); |
203 | element = new QListViewItem(ListViewScan, share, comment); | 204 | // if(isMounted(share)) |
205 | |||
206 | mount = getMount(share); | ||
207 | element = new QListViewItem(ListViewScan, share, comment, mount); | ||
204 | element->setOpen(true); | 208 | element->setOpen(true); |
@@ -322,4 +326,2 @@ void Qsmb::DoIt() | |||
322 | 326 | ||
323 | TextViewOutput->append(ccmd.join(" ").latin1()); | ||
324 | |||
325 | if(onbootBtn->isChecked()) { | 327 | if(onbootBtn->isChecked()) { |
@@ -337,3 +339,3 @@ void Qsmb::DoIt() | |||
337 | 339 | ||
338 | if(noerr) { | 340 | if(noerr && isMounted(mount)) { |
339 | element->setText(2, mount); | 341 | element->setText(2, mount); |
@@ -400,3 +402,4 @@ bool Qsmb::runCommand(const QStringList & command) { | |||
400 | 402 | ||
401 | bool Qsmb::isMounted(const QString &mountPoint) { | 403 | bool Qsmb::isMounted(const QString &mountPoint) |
404 | { | ||
402 | struct mntent *me; | 405 | struct mntent *me; |
@@ -409,3 +412,3 @@ bool Qsmb::isMounted(const QString &mountPoint) { | |||
409 | QString fsType = me->mnt_type; | 412 | QString fsType = me->mnt_type; |
410 | if( fsType == "smbfs" && mountDir.find(mountPoint) !=-1) | 413 | if( fsType == "smbfs" && (mountDir.find(mountPoint) != -1 | deviceName.find(mountPoint) != -1)) |
411 | mounted = true; | 414 | mounted = true; |
@@ -416 +419,19 @@ bool Qsmb::isMounted(const QString &mountPoint) { | |||
416 | } | 419 | } |
420 | |||
421 | QString Qsmb::getMount(const QString &shareName) | ||
422 | { | ||
423 | struct mntent *me; | ||
424 | QString mount; | ||
425 | FILE *mntfp = setmntent( "/etc/mtab", "r" ); | ||
426 | if ( mntfp ){ | ||
427 | while ( (me = getmntent( mntfp )) != 0 ) { | ||
428 | QString deviceName = me->mnt_fsname; | ||
429 | QString mountDir = me->mnt_dir; | ||
430 | QString fsType = me->mnt_type; | ||
431 | if( fsType == "smbfs" && deviceName.find(shareName) != -1) | ||
432 | mount = mountDir; | ||
433 | } | ||
434 | } | ||
435 | endmntent( mntfp ); | ||
436 | return mount; | ||
437 | } | ||