summaryrefslogtreecommitdiff
path: root/noncore/net/opie-smb
authorllornkcor <llornkcor>2005-08-15 08:31:15 (UTC)
committer llornkcor <llornkcor>2005-08-15 08:31:15 (UTC)
commit75eb12d42636cbd837d49f9c1347387e96e4174b (patch) (side-by-side diff)
treec49c0aa4f126888fdf3b6cc107b9452be3bec2f3 /noncore/net/opie-smb
parentfb0e4444f79ad253998f1a2e5c706e3fcf29ad08 (diff)
downloadopie-75eb12d42636cbd837d49f9c1347387e96e4174b.zip
opie-75eb12d42636cbd837d49f9c1347387e96e4174b.tar.gz
opie-75eb12d42636cbd837d49f9c1347387e96e4174b.tar.bz2
better way for get ip
Diffstat (limited to 'noncore/net/opie-smb') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/opie-smb/qsmb.cpp77
1 files changed, 39 insertions, 38 deletions
diff --git a/noncore/net/opie-smb/qsmb.cpp b/noncore/net/opie-smb/qsmb.cpp
index 8aa4987..d6d1b23 100644
--- a/noncore/net/opie-smb/qsmb.cpp
+++ b/noncore/net/opie-smb/qsmb.cpp
@@ -1,12 +1,13 @@
#include "qsmb.h"
#include <qpushbutton.h>
#include <qpe/qpeapplication.h>
#include <string.h>
#include <qstring.h>
+#include <qstringlist.h>
#include <qdir.h>
#include <qfileinfo.h>
#include <qpe/process.h>
#include <qlabel.h>
#include <qlineedit.h>
@@ -19,12 +20,18 @@
#include <pthread.h>
#include <signal.h>
#include <ctype.h>
+#include <netinet/in.h>
+#include <arpa/inet.h>
+
+#include <rpc/clnt.h>
+
+
#include <opie2/odebug.h>
using namespace Opie::Core;
Qsmb::Qsmb( QWidget* parent, const char* name, WFlags fl )
: FormQPESMBBase( parent, name, fl )
@@ -89,37 +96,29 @@ void Qsmb::scan()
{
int i;
if (scanning) return;
scanning = true;
- char match[512], lmhosts[512];
+ QString match;
+ char lmhosts[512];
QString cmd;
char result[256];
FILE *pipe, *pipe2;
LScan->setText("Scanning...");
qApp->processEvents();
- cmd = "ifconfig |grep 'addr:'|awk '{print $2}'|awk 'BEGIN{FS=\":\"}{print $2}'|sed 's/\\.[0-9]*$//'|head -n1";
+ sockaddr_in my_addr;
+ get_myaddress( &my_addr);
- owarn << "cmd: " << cmd << oendl;
+ QString ip = inet_ntoa( my_addr.sin_addr);
+ owarn << "IP Address : " << ip<< oendl;
- /* run findsmb & read output */
- if ((pipe = popen(cmd.latin1(), "r")) == NULL) {
- snprintf(result, 256, "Error: Can't run %s", cmd.latin1());
- TextViewOutput->append(result);
- return;
- }
- while(fgets(result, 256, pipe) != NULL) {
- strcpy( match, result);
- match[5]='\0';
- break;
- }
- owarn << "match: " << match << oendl;
+ match = ip.left(5);
cmd = "smbfind";
owarn <<"cmd: " << cmd << oendl;
TextViewOutput->append(cmd);
@@ -140,13 +139,13 @@ void Qsmb::scan()
/* parse output and display in ListViewScan */
while(fgets(result, 256, pipe) != NULL) {
/* put result into TextViewOutput */
TextViewOutput->append(result);
- if( strstr(result, match) != NULL ) {
+ if( strstr(result, match.latin1()) != NULL ) {
char ip_addr[256], host[256], *ptr1;
strcpy( ip_addr, result);
ptr1 = strchr(ip_addr,' ');
strcpy( host, ptr1);
ip_addr[ptr1 - ip_addr]='\0';
@@ -280,12 +279,13 @@ void Qsmb::DoIt()
}
if (scanning) return;
scanning = true;
int i;
+ bool err = false;
char share[512];
QString cmd;
QString cmd2;
char result[256];
// QString result;
@@ -295,25 +295,32 @@ void Qsmb::DoIt()
LScan->setText("Mounting...");
qApp->processEvents();
if(! QFileInfo(text).exists()) {
- cmd = "mkdir -p "+ text;
- owarn<<"cmd: "<< cmd << oendl;
- /* make sure mount exists! */
- if ((pipe2 = popen(cmd.latin1(), "r")) == NULL) {
- snprintf(result, 256, "Error: Can't run %s", cmd.latin1());
- // result = "Error: Can't run " + cmd;
- TextViewOutput->append(result);
- return;
- }
- while(fgets(result, 256, pipe2) != NULL) {
- /* put result into TextViewOutput */
- TextViewOutput->append(result);
- }
+// /* 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;
+ ccmd << "mkdir";
+ ccmd << "-p";
+ ccmd << text;
+
+ owarn<<"cmd: "<< ccmd << oendl;
+ runCommand(ccmd);
}
strcpy(share,(const char *)element->text(0));
for(i = 0; i < 256; i++) {
@@ -329,43 +336,37 @@ void Qsmb::DoIt()
TextViewOutput->append(cmd.latin1());
if(onbootBtn->isChecked()) {
owarn << "Saving Setting permanently..." << oendl;
cmd2 = "echo '" + cmd + "'>/opt/QtPalmtop/etc/samba.env";
-
/* run command & read output */
if ((pipe = popen(cmd2.latin1(), "r")) == NULL) {
-
snprintf(result, 256, "Error: Can't run %s", cmd.latin1());
-// result = "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);
}
}
+
/* run command & read output */
if ((pipe = popen(cmd.latin1(), "r")) == NULL) {
-
-// result = "Error: Can't run "+ cmd;
snprintf(result, 256, "Error: Can't run %s", cmd.latin1());
-
TextViewOutput->append(result);
return;
}
/* parse output and display in ListViewScan */
while(fgets(result, 256, pipe) != NULL) {
/* put result into TextViewOutput */
TextViewOutput->append(result);
}
+
+
TextViewOutput->append("\n\n================CheckMounts==================\n");
LScan->setText("");
cmd = "/bin/mount 2>&1";
owarn << "cmd: " << cmd << oendl;