summaryrefslogtreecommitdiff
authorbenmeyer <benmeyer>2002-10-29 15:59:44 (UTC)
committer benmeyer <benmeyer>2002-10-29 15:59:44 (UTC)
commit5ca0a08f9f27391370b291df28b3de71db3bb175 (patch) (unidiff)
treef0730ad64e0dfc84494cc86813a40854b504ee12
parentbad66a2ea2aea8bec1c7895b0e1a461e2f4859c2 (diff)
downloadopie-5ca0a08f9f27391370b291df28b3de71db3bb175.zip
opie-5ca0a08f9f27391370b291df28b3de71db3bb175.tar.gz
opie-5ca0a08f9f27391370b291df28b3de71db3bb175.tar.bz2
Added changedns
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/networksetup/interfaces/changedns111
-rw-r--r--noncore/net/networksetup/interfaces/interfacesetupimp.cpp8
-rw-r--r--noncore/settings/networksettings/interfaces/changedns111
-rw-r--r--noncore/settings/networksettings/interfaces/interfacesetupimp.cpp8
4 files changed, 230 insertions, 8 deletions
diff --git a/noncore/net/networksetup/interfaces/changedns b/noncore/net/networksetup/interfaces/changedns
new file mode 100644
index 0000000..4760a67
--- a/dev/null
+++ b/noncore/net/networksetup/interfaces/changedns
@@ -0,0 +1,111 @@
1#!/bin/bash
2
3 SN="`basename $0`"# base portion of our filename
4 AE="-a" # switch to add an entry
5 RE="-r" # swithc to remove an entry
6 EL="/tmp/resolv.conf"# expected location of the system nameserver config file
7 ARGS="$@" # friendly variable name for all args
8
9usage(){
10 echo "usage:
11$SN -a {ip} [{ip}...]
12$SN -r {ip} [{ip}...]"
13}
14
15#if are there at least two arguments?
16if [ "$#" -gt 1 ]
17then
18
19 #remove any old resolv.conf file
20 rm .resolve.conf .resolve.old .resolve.new 2> /dev/null
21
22 #cast current nameserver file into OLD
23 cat "$EL" > .resolve.old
24
25 #build IP list
26 for ARG in $ARGS
27 do
28 if [ "$ARG" != "$1" ]
29 then
30 IP_LIST=`echo "$IP_LIST $ARG"`
31 fi
32 done
33
34 #select case on first switch
35 case "$1" in
36
37 #case '-a'
38 "$AE")
39
40 #for each IP in IP_LIST
41 for IP in $IP_LIST
42 do
43 #add nameserver entery to .newfile
44 echo "nameserver $IP" >> .resolve.conf
45
46 #cat OLD into grep excluding IP lines,
47 #storing results into NEW
48 cat .resolve.old | grep -v "$IP" > .resolve.new
49
50 #set OLD to NEW
51 cat .resolve.new > .resolve.old
52
53 done
54
55 #cat OLD onto end of .newfile
56 cat .resolve.new >> .resolve.conf
57
58 #clean up work files
59 rm .resolve.new .resolve.old
60
61 #move old conf file to old conf file.bak
62 mv "$EL" "$EL.bak"
63
64 #move .newfile to resolve.conf file
65 mv .resolve.conf "$EL"
66
67 echo "Added $IP_LIST to $EL"
68 ;;
69
70 #case '-r'
71 "$RE")
72
73 #for each IP in IP_LIST
74 for IP in $IP_LIST
75 do
76 #cat OLD into grep excluding IP lines,
77 #storing results into NEW
78 cat .resolve.old | grep -v "$IP" > .resolve.new
79
80 #set OLD to NEW
81 cat .resolve.new > .resolve.old
82
83 done
84
85 #move old conf file to old conf file.bak
86 mv "$EL" "$EL.bak"
87
88 #move .newfile to resolve.conf file
89 mv .resolve.new "$EL"
90
91 echo "Removed $IP_LIST from $EL"
92
93 ;;
94
95 #case else
96 *)
97
98 usage
99 ;;
100
101
102 #end switch
103 esac
104
105#else
106else
107
108 usage
109
110#end
111fi
diff --git a/noncore/net/networksetup/interfaces/interfacesetupimp.cpp b/noncore/net/networksetup/interfaces/interfacesetupimp.cpp
index e717d6f..97c05cc 100644
--- a/noncore/net/networksetup/interfaces/interfacesetupimp.cpp
+++ b/noncore/net/networksetup/interfaces/interfacesetupimp.cpp
@@ -5,25 +5,25 @@
5#include <qdialog.h> 5#include <qdialog.h>
6#include <qcombobox.h> 6#include <qcombobox.h>
7#include <qcheckbox.h> 7#include <qcheckbox.h>
8#include <qlineedit.h> 8#include <qlineedit.h>
9#include <qspinbox.h> 9#include <qspinbox.h>
10#include <qgroupbox.h> 10#include <qgroupbox.h>
11#include <qlabel.h> 11#include <qlabel.h>
12 12
13#include <qmessagebox.h> 13#include <qmessagebox.h>
14 14
15#include <assert.h> 15#include <assert.h>
16 16
17#define DNSSCRIPT "interfacednsscript" 17#define DNSSCRIPT "changedns"
18 18
19/** 19/**
20 * Constuctor. Set up the connection and load the first profile. 20 * Constuctor. Set up the connection and load the first profile.
21 */ 21 */
22InterfaceSetupImp::InterfaceSetupImp(QWidget* parent, const char* name, Interface *i, WFlags fl) : InterfaceSetup(parent, name, fl){ 22InterfaceSetupImp::InterfaceSetupImp(QWidget* parent, const char* name, Interface *i, WFlags fl) : InterfaceSetup(parent, name, fl){
23 assert(parent); 23 assert(parent);
24 assert(i); 24 assert(i);
25 interface = i; 25 interface = i;
26 interfaces = new Interfaces(); 26 interfaces = new Interfaces();
27 bool error = false; 27 bool error = false;
28 if(interfaces->getInterfaceMethod(error) == INTERFACES_LOOPBACK){ 28 if(interfaces->getInterfaceMethod(error) == INTERFACES_LOOPBACK){
29 staticGroupBox->hide(); 29 staticGroupBox->hide();
@@ -67,26 +67,26 @@ bool InterfaceSetupImp::saveSettings(){
67 // DHCP 67 // DHCP
68 if(dhcpCheckBox->isChecked()){ 68 if(dhcpCheckBox->isChecked()){
69 interfaces->setInterfaceMethod(INTERFACES_METHOD_DHCP); 69 interfaces->setInterfaceMethod(INTERFACES_METHOD_DHCP);
70 interfaces->setInterfaceOption("leasehours", QString("%1").arg(leaseTime->value())); 70 interfaces->setInterfaceOption("leasehours", QString("%1").arg(leaseTime->value()));
71 interfaces->setInterfaceOption("leasetime", QString("%1").arg(leaseTime->value()*60*60)); 71 interfaces->setInterfaceOption("leasetime", QString("%1").arg(leaseTime->value()*60*60));
72 } 72 }
73 else{ 73 else{
74 interfaces->setInterfaceMethod("static"); 74 interfaces->setInterfaceMethod("static");
75 interfaces->setInterfaceOption("address", ipAddressEdit->text()); 75 interfaces->setInterfaceOption("address", ipAddressEdit->text());
76 interfaces->setInterfaceOption("netmask", subnetMaskEdit->text()); 76 interfaces->setInterfaceOption("netmask", subnetMaskEdit->text());
77 interfaces->setInterfaceOption("gateway", gatewayEdit->text()); 77 interfaces->setInterfaceOption("gateway", gatewayEdit->text());
78 QString dns = firstDNSLineEdit->text() + " " + secondDNSLineEdit->text(); 78 QString dns = firstDNSLineEdit->text() + " " + secondDNSLineEdit->text();
79 interfaces->setInterfaceOption("up "DNSSCRIPT" add ", dns); 79 interfaces->setInterfaceOption("up "DNSSCRIPT" -a ", dns);
80 interfaces->setInterfaceOption("down "DNSSCRIPT" remove ", dns); 80 interfaces->setInterfaceOption("down "DNSSCRIPT" -r ", dns);
81 } 81 }
82 82
83 // IP Information 83 // IP Information
84 interfaces->setAuto(interface->getInterfaceName(), autoStart->isChecked()); 84 interfaces->setAuto(interface->getInterfaceName(), autoStart->isChecked());
85 return true; 85 return true;
86} 86}
87 87
88/** 88/**
89 * The Profile has changed. 89 * The Profile has changed.
90 * @profile the new profile. 90 * @profile the new profile.
91 */ 91 */
92void InterfaceSetupImp::setProfile(const QString &profile){ 92void InterfaceSetupImp::setProfile(const QString &profile){
@@ -124,25 +124,25 @@ void InterfaceSetupImp::setProfile(const QString &profile){
124 if(interfaces->getInterfaceMethod(error) == INTERFACES_METHOD_DHCP) 124 if(interfaces->getInterfaceMethod(error) == INTERFACES_METHOD_DHCP)
125 dhcpCheckBox->setChecked(true); 125 dhcpCheckBox->setChecked(true);
126 else 126 else
127 dhcpCheckBox->setChecked(false); 127 dhcpCheckBox->setChecked(false);
128 leaseTime->setValue(interfaces->getInterfaceOption("leasehours", error).toInt()); 128 leaseTime->setValue(interfaces->getInterfaceOption("leasehours", error).toInt());
129 if(error) 129 if(error)
130 leaseTime->setValue(interfaces->getInterfaceOption("leasetime", error).toInt()/60/60); 130 leaseTime->setValue(interfaces->getInterfaceOption("leasetime", error).toInt()/60/60);
131 if(error) 131 if(error)
132 leaseTime->setValue(24); 132 leaseTime->setValue(24);
133 133
134 // IP Information 134 // IP Information
135 autoStart->setChecked(interfaces->isAuto(interface->getInterfaceName())); 135 autoStart->setChecked(interfaces->isAuto(interface->getInterfaceName()));
136 QString dns = interfaces->getInterfaceOption("up interfacednsscript add", error); 136 QString dns = interfaces->getInterfaceOption("up interfacednsscript -a", error);
137 if(dns.contains(" ")){ 137 if(dns.contains(" ")){
138 firstDNSLineEdit->setText(dns.mid(0, dns.find(" "))); 138 firstDNSLineEdit->setText(dns.mid(0, dns.find(" ")));
139 secondDNSLineEdit->setText(dns.mid(dns.find(" ")+1, dns.length())); 139 secondDNSLineEdit->setText(dns.mid(dns.find(" ")+1, dns.length()));
140 } 140 }
141 ipAddressEdit->setText(interfaces->getInterfaceOption("address", error)); 141 ipAddressEdit->setText(interfaces->getInterfaceOption("address", error));
142 subnetMaskEdit->setText(interfaces->getInterfaceOption("netmask", error)); 142 subnetMaskEdit->setText(interfaces->getInterfaceOption("netmask", error));
143 gatewayEdit->setText(interfaces->getInterfaceOption("gateway", error)); 143 gatewayEdit->setText(interfaces->getInterfaceOption("gateway", error));
144} 144}
145 145
146 146
147// interfacesetup.cpp 147// interfacesetup.cpp
148 148
diff --git a/noncore/settings/networksettings/interfaces/changedns b/noncore/settings/networksettings/interfaces/changedns
new file mode 100644
index 0000000..4760a67
--- a/dev/null
+++ b/noncore/settings/networksettings/interfaces/changedns
@@ -0,0 +1,111 @@
1#!/bin/bash
2
3 SN="`basename $0`"# base portion of our filename
4 AE="-a" # switch to add an entry
5 RE="-r" # swithc to remove an entry
6 EL="/tmp/resolv.conf"# expected location of the system nameserver config file
7 ARGS="$@" # friendly variable name for all args
8
9usage(){
10 echo "usage:
11$SN -a {ip} [{ip}...]
12$SN -r {ip} [{ip}...]"
13}
14
15#if are there at least two arguments?
16if [ "$#" -gt 1 ]
17then
18
19 #remove any old resolv.conf file
20 rm .resolve.conf .resolve.old .resolve.new 2> /dev/null
21
22 #cast current nameserver file into OLD
23 cat "$EL" > .resolve.old
24
25 #build IP list
26 for ARG in $ARGS
27 do
28 if [ "$ARG" != "$1" ]
29 then
30 IP_LIST=`echo "$IP_LIST $ARG"`
31 fi
32 done
33
34 #select case on first switch
35 case "$1" in
36
37 #case '-a'
38 "$AE")
39
40 #for each IP in IP_LIST
41 for IP in $IP_LIST
42 do
43 #add nameserver entery to .newfile
44 echo "nameserver $IP" >> .resolve.conf
45
46 #cat OLD into grep excluding IP lines,
47 #storing results into NEW
48 cat .resolve.old | grep -v "$IP" > .resolve.new
49
50 #set OLD to NEW
51 cat .resolve.new > .resolve.old
52
53 done
54
55 #cat OLD onto end of .newfile
56 cat .resolve.new >> .resolve.conf
57
58 #clean up work files
59 rm .resolve.new .resolve.old
60
61 #move old conf file to old conf file.bak
62 mv "$EL" "$EL.bak"
63
64 #move .newfile to resolve.conf file
65 mv .resolve.conf "$EL"
66
67 echo "Added $IP_LIST to $EL"
68 ;;
69
70 #case '-r'
71 "$RE")
72
73 #for each IP in IP_LIST
74 for IP in $IP_LIST
75 do
76 #cat OLD into grep excluding IP lines,
77 #storing results into NEW
78 cat .resolve.old | grep -v "$IP" > .resolve.new
79
80 #set OLD to NEW
81 cat .resolve.new > .resolve.old
82
83 done
84
85 #move old conf file to old conf file.bak
86 mv "$EL" "$EL.bak"
87
88 #move .newfile to resolve.conf file
89 mv .resolve.new "$EL"
90
91 echo "Removed $IP_LIST from $EL"
92
93 ;;
94
95 #case else
96 *)
97
98 usage
99 ;;
100
101
102 #end switch
103 esac
104
105#else
106else
107
108 usage
109
110#end
111fi
diff --git a/noncore/settings/networksettings/interfaces/interfacesetupimp.cpp b/noncore/settings/networksettings/interfaces/interfacesetupimp.cpp
index e717d6f..97c05cc 100644
--- a/noncore/settings/networksettings/interfaces/interfacesetupimp.cpp
+++ b/noncore/settings/networksettings/interfaces/interfacesetupimp.cpp
@@ -5,25 +5,25 @@
5#include <qdialog.h> 5#include <qdialog.h>
6#include <qcombobox.h> 6#include <qcombobox.h>
7#include <qcheckbox.h> 7#include <qcheckbox.h>
8#include <qlineedit.h> 8#include <qlineedit.h>
9#include <qspinbox.h> 9#include <qspinbox.h>
10#include <qgroupbox.h> 10#include <qgroupbox.h>
11#include <qlabel.h> 11#include <qlabel.h>
12 12
13#include <qmessagebox.h> 13#include <qmessagebox.h>
14 14
15#include <assert.h> 15#include <assert.h>
16 16
17#define DNSSCRIPT "interfacednsscript" 17#define DNSSCRIPT "changedns"
18 18
19/** 19/**
20 * Constuctor. Set up the connection and load the first profile. 20 * Constuctor. Set up the connection and load the first profile.
21 */ 21 */
22InterfaceSetupImp::InterfaceSetupImp(QWidget* parent, const char* name, Interface *i, WFlags fl) : InterfaceSetup(parent, name, fl){ 22InterfaceSetupImp::InterfaceSetupImp(QWidget* parent, const char* name, Interface *i, WFlags fl) : InterfaceSetup(parent, name, fl){
23 assert(parent); 23 assert(parent);
24 assert(i); 24 assert(i);
25 interface = i; 25 interface = i;
26 interfaces = new Interfaces(); 26 interfaces = new Interfaces();
27 bool error = false; 27 bool error = false;
28 if(interfaces->getInterfaceMethod(error) == INTERFACES_LOOPBACK){ 28 if(interfaces->getInterfaceMethod(error) == INTERFACES_LOOPBACK){
29 staticGroupBox->hide(); 29 staticGroupBox->hide();
@@ -67,26 +67,26 @@ bool InterfaceSetupImp::saveSettings(){
67 // DHCP 67 // DHCP
68 if(dhcpCheckBox->isChecked()){ 68 if(dhcpCheckBox->isChecked()){
69 interfaces->setInterfaceMethod(INTERFACES_METHOD_DHCP); 69 interfaces->setInterfaceMethod(INTERFACES_METHOD_DHCP);
70 interfaces->setInterfaceOption("leasehours", QString("%1").arg(leaseTime->value())); 70 interfaces->setInterfaceOption("leasehours", QString("%1").arg(leaseTime->value()));
71 interfaces->setInterfaceOption("leasetime", QString("%1").arg(leaseTime->value()*60*60)); 71 interfaces->setInterfaceOption("leasetime", QString("%1").arg(leaseTime->value()*60*60));
72 } 72 }
73 else{ 73 else{
74 interfaces->setInterfaceMethod("static"); 74 interfaces->setInterfaceMethod("static");
75 interfaces->setInterfaceOption("address", ipAddressEdit->text()); 75 interfaces->setInterfaceOption("address", ipAddressEdit->text());
76 interfaces->setInterfaceOption("netmask", subnetMaskEdit->text()); 76 interfaces->setInterfaceOption("netmask", subnetMaskEdit->text());
77 interfaces->setInterfaceOption("gateway", gatewayEdit->text()); 77 interfaces->setInterfaceOption("gateway", gatewayEdit->text());
78 QString dns = firstDNSLineEdit->text() + " " + secondDNSLineEdit->text(); 78 QString dns = firstDNSLineEdit->text() + " " + secondDNSLineEdit->text();
79 interfaces->setInterfaceOption("up "DNSSCRIPT" add ", dns); 79 interfaces->setInterfaceOption("up "DNSSCRIPT" -a ", dns);
80 interfaces->setInterfaceOption("down "DNSSCRIPT" remove ", dns); 80 interfaces->setInterfaceOption("down "DNSSCRIPT" -r ", dns);
81 } 81 }
82 82
83 // IP Information 83 // IP Information
84 interfaces->setAuto(interface->getInterfaceName(), autoStart->isChecked()); 84 interfaces->setAuto(interface->getInterfaceName(), autoStart->isChecked());
85 return true; 85 return true;
86} 86}
87 87
88/** 88/**
89 * The Profile has changed. 89 * The Profile has changed.
90 * @profile the new profile. 90 * @profile the new profile.
91 */ 91 */
92void InterfaceSetupImp::setProfile(const QString &profile){ 92void InterfaceSetupImp::setProfile(const QString &profile){
@@ -124,25 +124,25 @@ void InterfaceSetupImp::setProfile(const QString &profile){
124 if(interfaces->getInterfaceMethod(error) == INTERFACES_METHOD_DHCP) 124 if(interfaces->getInterfaceMethod(error) == INTERFACES_METHOD_DHCP)
125 dhcpCheckBox->setChecked(true); 125 dhcpCheckBox->setChecked(true);
126 else 126 else
127 dhcpCheckBox->setChecked(false); 127 dhcpCheckBox->setChecked(false);
128 leaseTime->setValue(interfaces->getInterfaceOption("leasehours", error).toInt()); 128 leaseTime->setValue(interfaces->getInterfaceOption("leasehours", error).toInt());
129 if(error) 129 if(error)
130 leaseTime->setValue(interfaces->getInterfaceOption("leasetime", error).toInt()/60/60); 130 leaseTime->setValue(interfaces->getInterfaceOption("leasetime", error).toInt()/60/60);
131 if(error) 131 if(error)
132 leaseTime->setValue(24); 132 leaseTime->setValue(24);
133 133
134 // IP Information 134 // IP Information
135 autoStart->setChecked(interfaces->isAuto(interface->getInterfaceName())); 135 autoStart->setChecked(interfaces->isAuto(interface->getInterfaceName()));
136 QString dns = interfaces->getInterfaceOption("up interfacednsscript add", error); 136 QString dns = interfaces->getInterfaceOption("up interfacednsscript -a", error);
137 if(dns.contains(" ")){ 137 if(dns.contains(" ")){
138 firstDNSLineEdit->setText(dns.mid(0, dns.find(" "))); 138 firstDNSLineEdit->setText(dns.mid(0, dns.find(" ")));
139 secondDNSLineEdit->setText(dns.mid(dns.find(" ")+1, dns.length())); 139 secondDNSLineEdit->setText(dns.mid(dns.find(" ")+1, dns.length()));
140 } 140 }
141 ipAddressEdit->setText(interfaces->getInterfaceOption("address", error)); 141 ipAddressEdit->setText(interfaces->getInterfaceOption("address", error));
142 subnetMaskEdit->setText(interfaces->getInterfaceOption("netmask", error)); 142 subnetMaskEdit->setText(interfaces->getInterfaceOption("netmask", error));
143 gatewayEdit->setText(interfaces->getInterfaceOption("gateway", error)); 143 gatewayEdit->setText(interfaces->getInterfaceOption("gateway", error));
144} 144}
145 145
146 146
147// interfacesetup.cpp 147// interfacesetup.cpp
148 148