summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/opie-smb/qsmb.cpp151
-rw-r--r--noncore/net/opie-smb/qsmbbase.ui20
2 files changed, 93 insertions, 78 deletions
diff --git a/noncore/net/opie-smb/qsmb.cpp b/noncore/net/opie-smb/qsmb.cpp
index c1ee9a9..fbe1c5c 100644
--- a/noncore/net/opie-smb/qsmb.cpp
+++ b/noncore/net/opie-smb/qsmb.cpp
@@ -97,3 +97,3 @@ void Qsmb::scan()
{
- int i;
+// int i;
@@ -125,3 +125,2 @@ void Qsmb::scan()
ccmd = "smbfind";
- owarn <<"cmd: " << ccmd << oendl;
runCommand(ccmd);
@@ -153,4 +152,2 @@ void Qsmb::hostSelected(int index)
owarn << "hostSelected" << oendl;
- int i;
-
QListViewItem *element;
@@ -164,5 +161,3 @@ void Qsmb::hostSelected(int index)
QString cmd;
- char result[256];
-
- FILE *pipe;
+ QStringList ccmd;
@@ -170,17 +165,32 @@ void Qsmb::hostSelected(int index)
- if(username->text().isEmpty())
- cmd = "/usr/bin/smbclient -L //"+CBHost->currentText()+" -N 2>&1 |grep Disk";
- else
- cmd = "/usr/bin/smbclient -L //"+CBHost->currentText()+" -N -U "+username->text()+"\%"+password->text()+" 2>&1 |grep Disk";
+ ccmd << "/usr/bin/smbclient";
+ ccmd << "-L";
+ ccmd << CBHost->currentText();
+ ccmd << "-N";
+
+ if(username->text().isEmpty()) {
+ } else {
+ ccmd << "-U";
+ ccmd << username->text()+"\%"+ password->text();
+ }
+ runCommand(ccmd);
+ QTextStream s(&out, IO_ReadOnly);
-// for(i = 0; i < 512; i++) {
-// if(cmd[i]==':') {
-// cmd[i]='%';
-// break;
-// }
-// if(cmd[i]=='\0')
-// break;
-// }
+ while ( !s.atEnd() ) {
+ QString share;
+ QString comment;
+ QString tmp = s.readLine();
+
+ if( tmp.find("$") == -1 && tmp.find("Disk") != -1) {
+ QStringList token = QStringList::split(' ', tmp );
+ share = token[0];
+ comment = token[2];
+ element = new QListViewItem(ListViewScan,share, comment);
+ element->setOpen(true);
+// top_element = element;
+// parent = element;
+ }
- owarn << "i="<< index << "cmd:" << cmd << oendl;
+ }
+// owarn << "i="<< index << "cmd:" << cmd << oendl;
@@ -189,48 +199,48 @@ void Qsmb::hostSelected(int index)
/* run smbclient & read output */
- if ((pipe = popen(cmd.latin1(), "r")) == NULL) {
- snprintf(result, 256, "Error: Can't run %s", cmd.latin1());
-// cmd = "Error: Can't run "+cmd;
- TextViewOutput->append(result);
- return;
- }
+// if ((pipe = popen(cmd.latin1(), "r")) == NULL) {
+// snprintf(result, 256, "Error: Can't run %s", cmd.latin1());
+// // cmd = "Error: Can't run "+cmd;
+// TextViewOutput->append(result);
+// return;
+// }
/* parse output and display in ListViewScan */
- while(fgets(result, 256, pipe) != NULL) {
- /* put result into TextViewOutput */
- TextViewOutput->append(result);
-
- if( strchr(result, '$') == NULL ) {
- char share[256], *ptr1;
-
- strcpy(share,result);
- ptr1 = strchr(share,' ');
- share[ptr1 - share]='\0';
-
- owarn<< "add share: " << share << oendl;
-
- if(top_element != NULL) {
- bool found = false;
- element = top_element;
-
- while(element != NULL && !found) {
- if(strcmp( element->text(0).ascii(), share)==0) {
- parent = element;
- found = true;
- }
- element = element->nextSibling();
- }
-
- if(!found) {
- element = new QListViewItem(ListViewScan,share);
- element->setOpen(true);
- parent=element;
- }
- } else {
- element = new QListViewItem(ListViewScan,share);
- element->setOpen(true);
- top_element = element;
- parent = element;
- }
- }
- }
+// while(fgets(result, 256, pipe) != NULL) {
+// /* put result into TextViewOutput */
+// TextViewOutput->append(result);
+
+// if( strchr(result, '$') == NULL ) {
+// char share[256], *ptr1;
+
+// strcpy(share,result);
+// ptr1 = strchr(share,' ');
+// share[ptr1 - share]='\0';
+
+// owarn<< "add share: " << share << oendl;
+
+// if(top_element != NULL) {
+// bool found = false;
+// element = top_element;
+
+// while(element != NULL && !found) {
+// if(strcmp( element->text(0).ascii(), share)==0) {
+// parent = element;
+// found = true;
+// }
+// element = element->nextSibling();
+// }
+
+// if(!found) {
+// element = new QListViewItem(ListViewScan,share);
+// element->setOpen(true);
+// parent=element;
+// }
+// } else {
+// element = new QListViewItem(ListViewScan,share);
+// element->setOpen(true);
+// top_element = element;
+// parent = element;
+// }
+// }
+// }
@@ -270,15 +280,2 @@ void Qsmb::DoIt()
if(! QFileInfo(text).exists()) {
-// /* make sure mount exists! */
-
-// cmd = "mkdir -p "+ text;
-// owarn<<"cmd: "<< cmd << oendl;
-// if ((pipe2 = popen(cmd.latin1(), "r")) == NULL) {
-// snprintf(result, 256, "Error: Can't run %s", cmd.latin1());
-// TextViewOutput->append(result);
-// return;
-// }
-// while(fgets(result, 256, pipe2) != NULL) {
-// /* put result into TextViewOutput */
-// TextViewOutput->append(result);
-// }
QStringList ccmd;
diff --git a/noncore/net/opie-smb/qsmbbase.ui b/noncore/net/opie-smb/qsmbbase.ui
index 35a1aec..3107929 100644
--- a/noncore/net/opie-smb/qsmbbase.ui
+++ b/noncore/net/opie-smb/qsmbbase.ui
@@ -13,3 +13,3 @@
<y>0</y>
- <width>254</width>
+ <width>250</width>
<height>352</height>
@@ -124,2 +124,16 @@
</column>
+ <column>
+ <property>
+ <name>text</name>
+ <string>Comment</string>
+ </property>
+ <property>
+ <name>clickable</name>
+ <bool>true</bool>
+ </property>
+ <property>
+ <name>resizeable</name>
+ <bool>true</bool>
+ </property>
+ </column>
<property stdset="1">
@@ -128,2 +142,6 @@
</property>
+ <property stdset="1">
+ <name>allColumnsShowFocus</name>
+ <bool>true</bool>
+ </property>
</widget>