summaryrefslogtreecommitdiff
authormickeyl <mickeyl>2002-10-12 15:37:56 (UTC)
committer mickeyl <mickeyl>2002-10-12 15:37:56 (UTC)
commit83aed438ec060307bf5562d91bd8b61fe60f860b (patch) (side-by-side diff)
treeb5156e2be374491e0dbf587b48272c1ae121660d
parentfe2f3c3b72dfcffe0b6ab02cea37f6dcb300b218 (diff)
downloadopie-83aed438ec060307bf5562d91bd8b61fe60f860b.zip
opie-83aed438ec060307bf5562d91bd8b61fe60f860b.tar.gz
opie-83aed438ec060307bf5562d91bd8b61fe60f860b.tar.bz2
- dhcp renew now really functions
- added dhcp renew support for udhcp
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--noncore/applets/wirelessapplet/wireless.cpp34
1 files changed, 30 insertions, 4 deletions
diff --git a/noncore/applets/wirelessapplet/wireless.cpp b/noncore/applets/wirelessapplet/wireless.cpp
index 649cf20..fb9522a 100644
--- a/noncore/applets/wirelessapplet/wireless.cpp
+++ b/noncore/applets/wirelessapplet/wireless.cpp
@@ -31,49 +31,49 @@
#include <qpixmap.h>
#include <qstring.h>
#include <qfile.h>
#include <qtextstream.h>
#include <sys/types.h>
#include <signal.h>
#include "networkinfo.h"
#include "mgraph.h"
#include "advancedconfig.h"
#include "connect0.xpm"
#include "connect1.xpm"
#include "connect2.xpm"
#include "connect3.xpm"
#include "connect4.xpm"
#include "connect5.xpm"
#include "nowireless.xpm"
#define STYLE_BARS 0
#define STYLE_ANTENNA 1
-//#define MDEBUG 0
+//#define MDEBUG
#undef MDEBUG
WirelessControl::WirelessControl( WirelessApplet *applet, QWidget *parent, const char *name )
: QFrame( parent, name, WStyle_StaysOnTop | WType_Popup ), applet( applet )
{
readConfig();
writeConfigEntry( "UpdateFrequency", updateFrequency );
writeConfigEntry( "DisplayStyle", displayStyle );
setFrameStyle( QFrame::PopupPanel | QFrame::Raised );
QGridLayout *grid = new QGridLayout( this, 3, 2, 6, 2, "top layout" );
/* status label */
statusLabel = new QLabel( this, "statuslabel" );
QString text( "Wireless Status:<br>"
"*** Unknown ***<br>"
"Card not inserted ?<br>"
"Or Sharp ROM ?<br>"
"CELL: 00:00:00:00:00:00" );
/* QString text( "Station: Unknown<br>"
"ESSID: Unknown<br>"
"MODE: Unknown<br>"
@@ -225,63 +225,89 @@ void WirelessApplet::checkInterface()
{
#ifdef MDEBUG
qDebug( "WIFIAPPLET: using interface '%s'", (const char*) interface->getName() );
#endif
}
else
{
#ifdef MDEBUG
qDebug( "WIFIAPPLET: D'oh! No Wireless interface present... :(" );
#endif
hide();
}
}
void WirelessApplet::renewDHCP()
{
#ifdef MDEBUG
qDebug( "WIFIAPPLET: Going to request a DHCP configuration renew." );
#endif
QString pidfile;
if ( !interface )
return;
QString ifacename( interface->getName() );
+
+ // At first we are trying dhcpcd
+
pidfile.sprintf( "/var/run/dhcpcd-%s.pid", (const char* ) ifacename );
#ifdef MDEBUG
- qDebug( "WIFIAPPLET: pidfile is '%s'", (const char*) pidfile );
+ qDebug( "WIFIAPPLET: dhcpcd pidfile is '%s'", (const char*) pidfile );
#endif
int pid;
QFile pfile( pidfile );
bool hasFile = pfile.open( IO_ReadOnly );
QTextStream s( &pfile );
if ( hasFile )
+ {
s >> pid;
#ifdef MDEBUG
- qDebug( "WIFIAPPLET: sent -14 to pid %d", pid );
+ qDebug( "WIFIAPPLET: sent SIGALARM to pid %d", pid );
#endif
- kill( pid, -14 );
+ kill( pid, SIGALRM );
+ return;
+ }
+ // No dhcpcd, so we are trying udhcpc
+#ifdef MDEBUG
+ qDebug( "WIFIAPPLET: dhcpcd not available." );
+#endif
+ pidfile.sprintf( "/var/run/udhcpc.%s.pid", (const char*) ifacename );
+#ifdef MDEBUG
+ qDebug( "WIFIAPPLET: udhcpc pidfile is '%s'", (const char*) pidfile );
+#endif
+ QFile pfile2( pidfile );
+ hasFile = pfile2.open( IO_ReadOnly );
+ QTextStream s2( &pfile2 );
+ if ( hasFile )
+ {
+ s2 >> pid;
+#ifdef MDEBUG
+ qDebug( "WIFIAPPLET: sent SIGUSR1 to pid %d", pid );
+#endif
+ kill( pid, SIGUSR1 );
+ return;
+ }
}
void WirelessApplet::updateDHCPConfig( bool ESSID, bool FREQ, bool AP, bool MODE )
{
rocESSID = ESSID;
rocFREQ = FREQ;
rocAP = AP;
rocMODE = MODE;
}
void WirelessApplet::updateDelayChange( int delay )
{
if ( timer )
killTimer( timer );
delay *= 1000;
if ( delay == 0 )
delay = 50;
timer = startTimer( delay );
}
void WirelessApplet::displayStyleChange( int style )
{
visualStyle = style;
repaint();