summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/wellenreiter/gui/mainwindow.cpp60
1 files changed, 51 insertions, 9 deletions
diff --git a/noncore/net/wellenreiter/gui/mainwindow.cpp b/noncore/net/wellenreiter/gui/mainwindow.cpp
index 88a474d..bb46dd7 100644
--- a/noncore/net/wellenreiter/gui/mainwindow.cpp
+++ b/noncore/net/wellenreiter/gui/mainwindow.cpp
@@ -16,28 +16,32 @@
#include "configwindow.h"
#include "gps.h"
#include "logwindow.h"
#include "hexwindow.h"
#include "mainwindow.h"
#include "wellenreiter.h"
#include "scanlist.h"
#include <qcombobox.h>
#include <qdatastream.h>
#include <qfile.h>
#include <qfileinfo.h>
+#include <qlabel.h>
+#include <qlayout.h>
+#include <qlineedit.h>
#include <qiconset.h>
#include <qmenubar.h>
#include <qmessagebox.h>
#include <qpopupmenu.h>
+#include <qpushbutton.h>
#include <qstatusbar.h>
#include <qtextstream.h>
#include <qtoolbutton.h>
#ifdef QWS
#include <qpe/resource.h>
#include <opie/ofiledialog.h>
#else
#include "resource.h"
#include <qapplication.h>
#include <qfiledialog.h>
#endif
@@ -78,26 +82,26 @@ WellenreiterMainWindow::WellenreiterMainWindow( QWidget * parent, const char * n
QToolButton* d = new QToolButton( 0 );
#ifdef QWS
d->setAutoRaise( true );
#endif
d->setIconSet( Resource::loadIconSet( "wellenreiter/SettingsIcon" ) );
connect( d, SIGNAL( clicked() ), this, SLOT( showConfigure() ) );
uploadButton = new QToolButton( 0 );
#ifdef QWS
uploadButton->setAutoRaise( true );
#endif
uploadButton->setIconSet( Resource::loadIconSet( "up" ) );
- //uploadButton->setEnabled( false );
- uploadButton->setEnabled( true );
+ uploadButton->setEnabled( false );
+ //uploadButton->setEnabled( true ); // DEBUGGING
connect( uploadButton, SIGNAL( clicked() ), this, SLOT( uploadSession() ) );
// setup menu bar
int id;
QMenuBar* mb = menuBar();
QPopupMenu* fileSave = new QPopupMenu( mb );
fileSave->insertItem( tr( "&Session..." ), this, SLOT( fileSaveSession() ) );
fileSave->insertItem( tr( "&Text Log..." ), this, SLOT( fileSaveLog() ) );
fileSave->insertItem( tr( "&Hex Log..." ), this, SLOT( fileSaveHex() ) );
@@ -367,44 +371,76 @@ void WellenreiterMainWindow::closeEvent( QCloseEvent* e )
}
}
static const char* CAP_hostname = "www.vanille.de";
#include <netdb.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/socket.h>
void WellenreiterMainWindow::uploadSession()
{
+ QLineEdit* from;
+ QLineEdit* location;
+ QLineEdit* comments;
+ QPushButton* accept;
+ QPushButton* reject;
+
+ QDialog* d = new QDialog( 0, "session upload", true );
+ d->setCaption( tr( "Upload Session" ) );
+ QGridLayout* g = new QGridLayout( d, 4, 2, 3 );
+ g->addWidget( new QLabel( tr( "From: " ), d ), 0, 0 );
+ g->addWidget( from = new QLineEdit( d ), 0, 1 );
+ g->addWidget( new QLabel( tr( "Location: " ), d ), 1, 0 );
+ g->addWidget( location = new QLineEdit( d ), 1, 1 );
+ g->addWidget( new QLabel( tr( "Comments: " ), d ), 2, 0 );
+ g->addWidget( comments = new QLineEdit( d ), 2, 1 );
+ g->addWidget( accept = new QPushButton( tr( "&Ok" ), d ), 3, 0 );
+ g->addWidget( reject = new QPushButton( tr( "&Cancel" ), d ), 3, 1 );
+ accept->setDefault( true );
+ accept->setAutoDefault( true );
+ from->setText( "WL II User" );
+ location->setText( "WL II Location" );
+ comments->setText( "No Comments." );
+ connect( accept, SIGNAL( clicked() ), d, SLOT( accept() ) );
+ connect( reject, SIGNAL( clicked() ), d, SLOT( reject() ) );
+ int result = d->exec();
+
+ if ( !result )
+ {
+ qDebug( "Session upload cancelled :(" );
+ return;
+ }
+
qDebug( "Starting upload..." );
struct sockaddr_in raddr;
struct hostent *rhost_info;
int sock = -1;
bool ok = false;
rhost_info = (struct hostent *) ::gethostbyname( CAP_hostname );
if ( rhost_info )
{
if ( !QFile::exists( "/var/log/dump.wellenreiter" ) )
{
- qDebug( "no file to upload!" );
+ QMessageBox::warning( 0, tr( "Error" ), tr( "<p>Logfile doesn't exist</p>") );
return;
}
QFile f( "/var/log/dump.wellenreiter" );
if ( !f.open( IO_ReadOnly ) )
{
- qDebug( "can't open file!" );
+ QMessageBox::warning( 0, tr( "Error" ), tr( "<p>Can't open Logfile</p>") );
return;
}
int content_length = f.size();
::memset( &raddr, 0, sizeof (struct sockaddr_in) );
::memcpy( &raddr. sin_addr, rhost_info-> h_addr, rhost_info-> h_length );
raddr.sin_family = rhost_info-> h_addrtype;
raddr.sin_port = htons ( 80 );
sock = ::socket( AF_INET, SOCK_STREAM, 0 );
@@ -426,41 +462,45 @@ void WellenreiterMainWindow::uploadSession()
"Accept-Charset: us-ascii,utf-8;q=0.7,*;q=0.7\r\n"
"Keep-Alive: 300\r\n"
"Connection: keep-alive\r\n"
"Referer: http://www.vanille.de/projects/capturedump.spy\r\n"
"Content-Type: multipart/form-data; boundary=---------------------------97267758015830030481215568065\r\n"
"Content-Length: %1\r\n"
"\r\n";
content = ""
"-----------------------------97267758015830030481215568065\r\n"
"Content-Disposition: form-data; name=\"Name\"\r\n"
"\r\n"
- "Anonymous Wellenreiter II User\r\n"
+ "%1\r\n"
"-----------------------------97267758015830030481215568065\r\n"
"Content-Disposition: form-data; name=\"Location\"\r\n"
"\r\n"
- "Anonymous Wellenreiter II Location\r\n"
+ "%2\r\n"
"-----------------------------97267758015830030481215568065\r\n"
"Content-Disposition: form-data; name=\"Comments\"\r\n"
"\r\n"
- "Anonymous Wellenreiter II Comments\r\n"
+ "%3\r\n"
"-----------------------------97267758015830030481215568065\r\n"
"Content-Disposition: form-data; name=\"upfile\"; filename=\"/var/log/dump.wellenreiter\"\r\n"
"Content-Type: application/octet-stream\r\n"
"\r\n";
preambel = ""
"\r\n-----------------------------97267758015830030481215568065--\r\n";
+ content = content.arg( from->text().isEmpty() ? QString( "Anonymous Wellenreiter II User" ) : from->text() );
+ content = content.arg( location->text().isEmpty() ? QString( "Anonymous Wellenreiter II Location" ) : location->text() );
+ content = content.arg( comments->text().isEmpty() ? QString( "Anonymous Wellenreiter II Comments" ) : comments->text() );
+
header = header.arg( QString::number( content.length() + f.size() + preambel.length() ) );
// write header
const char* ascii = header.latin1();
uint ascii_len = ::strlen( ascii );
::write ( sock, ascii, ascii_len );
// write fixed content
ascii = content.latin1();
ascii_len = ::strlen( ascii );
@@ -480,17 +520,19 @@ void WellenreiterMainWindow::uploadSession()
ascii = preambel.latin1();
ascii_len = ::strlen( ascii );
::write ( sock, ascii, ascii_len );
// done!
ok = true;
}
}
::close ( sock );
}
if ( ok )
- QMessageBox::information ( 0, tr( "Success" ), QString ( "<p>%1</p>" ). arg( tr( "Capture Dump was uploaded to %1" )).arg ( CAP_hostname ));
+ QMessageBox::information( 0, tr( "Success" ),
+ QString ( "<p>%1</p>" ).arg( tr( "Capture Dump was uploaded to %1" ) ).arg( CAP_hostname ) );
else
- QMessageBox::warning ( 0, tr( "Error" ), QString ( "<p>%1</p>" ). arg ( tr( "Connection to %1 failed." )). arg ( CAP_hostname ));
+ QMessageBox::warning( 0, tr( "Error" ),
+ QString ( "<p>%1</p>" ).arg ( tr( "Connection to %1 failed" ) ).arg( CAP_hostname ) );
}