[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: kdebase/kioslave/smb
From: Stephan Kulow <coolo () kde ! org>
Date: 2003-03-25 15:58:47
[Download RAW message or body]
CVS commit by coolo:
some more work on correct browsing behaviour
M +48 -21 kio_smb_browse.cpp 1.17
M +2 -2 kio_smb_internal.cpp 1.13
--- kdebase/kioslave/smb/kio_smb_browse.cpp #1.16:1.17
@@ -152,8 +152,10 @@ void SMBSlave::stat( const KURL& kurl )
else {
kdDebug(KIO_SMB) << "SMBSlave::stat ERROR!!"<< endl;
+ finished();
return;
}
default:
kdDebug(KIO_SMB) << "SMBSlave::stat UNKNOWN " << url.url() << endl;
+ finished();
return;
}
@@ -167,7 +169,21 @@ void SMBSlave::stat( const KURL& kurl )
// TODO: complete checking
KURL SMBSlave::checkURL(const KURL& kurl) const {
+
+ kdDebug(KIO_SMB) << "checkURL " << kurl << endl;
+ QString surl = kurl.url();
+ if (surl.startsWith("smb:/")) {
+ if (surl.length() == 5) // just the above
+ return kurl; // unchanged
+
+ if (surl.at(5) != '/') {
+ surl = "smb://" + surl.mid(5);
+ kdDebug(KIO_SMB) << "checkURL return1 " << surl << " " << \
KURL(surl).url() << endl; + return KURL(surl);
+ }
+ }
+
// smb:/ normaly have no userinfo
// we must redirect ourself to remove the username and password
- if (kurl.url().contains('@') && !kurl.url().contains("smb://")) {
+ if (surl.contains('@') && !surl.contains("smb://")) {
KURL url(kurl);
url.setPath("/"+kurl.url().right( kurl.url().length()-kurl.url().find('@') -1));
@@ -180,4 +196,5 @@ KURL SMBSlave::checkURL(const KURL& kurl
url.setUser(userinfo);
}
+ kdDebug() << "checkURL return2 " << url.url() << endl;
return url;
}
@@ -188,7 +205,9 @@ KURL SMBSlave::checkURL(const KURL& kurl
KURL url(kurl);
url.setPath("/");
+ kdDebug() << "checkURL return3 " << url.url() << endl;
return url;
}
+ kdDebug() << "checkURL return3 " << kurl.url() << endl;
return kurl;
}
@@ -305,4 +324,13 @@ void SMBSlave::listDir( const KURL& kurl
udsentry.append(atom);
+ if (dirp->smbc_type == SMBC_SERVER) {
+ atom.m_uds = KIO::UDS_URL;
+ QString workgroup = m_current_url.host().upper();
+ // when libsmbclient knows
+ // atom.m_str = \
QString("smb://%1?WORKGROUP=%2").arg(dirpName).arg(workgroup.upper()); + \
atom.m_str = QString("smb://%1").arg(dirpName); + \
udsentry.append(atom); + }
+
// Call base class to list entry
listEntry(udsentry, false);
--- kdebase/kioslave/smb/kio_smb_internal.cpp #1.12:1.13
@@ -81,6 +81,6 @@ void SMBUrl::updateCache()
// we have to use pretty here as smbc is unable to handle e.g. %20
m_surl = fromUnicode(KURL::url());
- if (m_surl.left(5) == "smb:/" && m_surl.at(6) != '/')
- m_surl = "smb://" + m_surl.mid(6);
+ if (m_surl == "smb:/")
+ m_surl = "smb://";
m_type = SMBURLTYPE_UNKNOWN;
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic