Skip to content

Commit 50cc5ca

Browse files
author
chris
committed
o Add an option to set the key type.
1 parent e0da775 commit 50cc5ca

File tree

3 files changed

+69
-14
lines changed

3 files changed

+69
-14
lines changed

lispmonApptuntap/res/layout/updateconf.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@
7171
</TableLayout>
7272

7373
<LinearLayout android:layout_width="match_parent" android:id="@+id/updateConfLinearLayout4" android:orientation="vertical" android:layout_height="wrap_content" >
74-
<TextView android:id="@+id/updateConfTitleTV4" android:text="" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_gravity="top" android:gravity="center_vertical|center_horizontal" android:textSize="25px"></TextView>
74+
<Spinner android:layout_height="wrap_content" android:layout_width="match_parent" android:id="@+id/keyTypeSpinner"></Spinner>
7575
</LinearLayout>
7676
<TableLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/updateConftableDNSCheckLayout">
7777
<TableRow android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/updateConftableDNSCheckRow">

lispmonApptuntap/res/values/strings.xml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,5 +24,8 @@
2424
<string name="updateConfMRString">Map-Resolver:</string>
2525
<string name="updateConfMSString">Map-Server:</string>
2626
<string name="updateConfMSKeyString">Map-Server Key:</string>
27-
27+
<string-array name="keytypearray">
28+
<item>Cleartext</item>
29+
<item>SHA1</item>
30+
</string-array>
2831
</resources>

lispmonApptuntap/src/com/le/lispmontun/updateConfActivity.java

Lines changed: 64 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import java.io.FileWriter;
1010
import java.io.IOException;
1111
import java.nio.channels.FileChannel;
12+
import java.util.Scanner;
1213
import java.util.regex.Matcher;
1314
import java.util.regex.Pattern;
1415

@@ -20,6 +21,8 @@
2021
import android.content.DialogInterface;
2122
import android.widget.CheckBox;
2223
import android.widget.EditText;
24+
import android.widget.Spinner;
25+
import android.widget.ArrayAdapter;
2326

2427

2528
public class updateConfActivity extends Activity {
@@ -37,6 +40,7 @@ public class updateConfActivity extends Activity {
3740
public String InstanceID = "";
3841
public boolean overrideDNS = false;
3942
public boolean useInstanceID = false;
43+
public String keyType = "";
4044

4145
@Override
4246
public void onCreate(Bundle savedInstanceState) {
@@ -51,6 +55,15 @@ public void onCreate(Bundle savedInstanceState) {
5155
createDefaultConfFile();
5256
}
5357

58+
Spinner spinner = (Spinner) findViewById(R.id.keyTypeSpinner);
59+
// Create an ArrayAdapter using the string array and a default spinner layout
60+
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
61+
R.array.keytypearray, android.R.layout.simple_spinner_item);
62+
// Specify the layout to use when the list of choices appears
63+
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
64+
// Apply the adapter to the spinner
65+
spinner.setAdapter(adapter);
66+
5467
readConfFileAndFillParameters();
5568

5669
}
@@ -70,25 +83,25 @@ public void readConfFileAndFillParameters()
7083
while ( line != null ) {
7184
text.append(line);
7285
text.append("\n");
73-
if (line.contains("eid-address-ipv4") && !line.contains("#")) {
86+
if (line.contains("eid-address-ipv4") && !line.startsWith("#")) {
7487
String[] tmp = line.split("=");
7588
String[] tmp_1 = tmp[1].split(" ");
7689
eidIPv4 = tmp_1[1];
7790
EditText e = (EditText) findViewById(R.id.updateConfeid4Text);
7891
e.setText(eidIPv4);
79-
} else if (line.contains("eid-address-ipv6") && !line.contains("#")) {
92+
} else if (line.contains("eid-address-ipv6") && !line.startsWith("#")) {
8093
String[] tmp = line.split("=");
8194
String[] tmp_1 = tmp[1].split(" ");
8295
eidIPv6 = tmp_1[1];
8396
EditText e = (EditText) findViewById(R.id.updateConfeid6Text);
8497
e.setText(eidIPv6);
85-
} else if (line.contains("map-resolver") && !line.contains("#")) {
98+
} else if (line.contains("map-resolver") && !line.startsWith("#")) {
8699
String[] tmp = line.split("=");
87100
String[] tmp_1 = tmp[1].split(" ");
88101
MR = tmp_1[1];
89102
EditText e = (EditText) findViewById(R.id.updateConfMRText);
90103
e.setText(MR);
91-
} else if (line.contains("override-dns-primary") && !line.contains("#")) {
104+
} else if (line.contains("override-dns-primary") && !line.startsWith("#")) {
92105
String[] tmp = line.split("=");
93106
String[] tmp2 = tmp[1].split(" ");
94107
DNS1 = tmp2[1];
@@ -98,7 +111,7 @@ public void readConfFileAndFillParameters()
98111
overrideDNS = true;
99112
CheckBox c = (CheckBox)findViewById(R.id.updateConfDNSCheck);
100113
c.setChecked(true);
101-
} else if (line.contains("override-dns-secondary") && !line.contains("#")) {
114+
} else if (line.contains("override-dns-secondary") && !line.startsWith("#")) {
102115
String[] tmp = line.split("=");
103116
String[] tmp2 = tmp[1].split(" ");
104117
DNS2 = tmp2[1];
@@ -108,7 +121,7 @@ public void readConfFileAndFillParameters()
108121
overrideDNS = true;
109122
CheckBox c = (CheckBox)findViewById(R.id.updateConfDNSCheck);
110123
c.setChecked(true);
111-
} else if (line.contains("instance-id") && !line.contains("#")) {
124+
} else if (line.contains("instance-id") && !line.startsWith("#")) {
112125
String[] tmp = line.split("=");
113126
String[] tmp2 = tmp[1].split(" ");
114127
InstanceID = tmp2[1];
@@ -118,23 +131,39 @@ public void readConfFileAndFillParameters()
118131
useInstanceID = true;
119132
CheckBox c = (CheckBox)findViewById(R.id.updateConfUseInstance);
120133
c.setChecked(true);
121-
} else if (line.contains("map-server") && !line.contains("#")) {
134+
} else if (line.contains("map-server") && !line.startsWith("#")) {
122135
boolean flg1=false, flg2=false;
123136
do {
124137
String line_1 = br.readLine();
125138
text.append(line_1);
126139
text.append("\n");
127-
if (line_1.contains("address") && !line_1.contains("#")) {
140+
if (line_1.contains("address") && !line_1.startsWith("#")) {
128141
String[] tmp = line_1.split("=");
129142
String[] tmp_1 = tmp[1].split(" ");
130143
MS = tmp_1[1];
131144
flg1 = true;
132-
} else if (line_1.contains("key") && !line_1.contains("#")) {
145+
} else if (line_1.contains("key-type") && !line_1.startsWith("#")) {
146+
Scanner scanner = new Scanner(line_1);
147+
scanner.useDelimiter("=");
148+
Spinner spinner = (Spinner) findViewById(R.id.keyTypeSpinner);
149+
if ( scanner.hasNext() ){
150+
String name = scanner.next();
151+
String value = scanner.next();
152+
153+
if (value.contains("0")) {
154+
spinner.setSelection(0);
155+
keyType = "0";
156+
} else if (value.contains("1")) {
157+
spinner.setSelection(1);
158+
keyType = "1";
159+
}
160+
}
161+
} else if (line_1.contains("key") && !line_1.startsWith("#")) {
133162
String[] tmp = line_1.split("=");
134163
String[] tmp_1 = tmp[1].split(" ");
135164
MSKey = tmp_1[1];
136165
flg2 = true;
137-
}
166+
}
138167
} while (flg1 == false || flg2 == false);
139168

140169
EditText e = (EditText) findViewById(R.id.updateConfMSText);
@@ -183,7 +212,7 @@ public void createDefaultConfFile()
183212
.append("#\n")
184213
.append("map-server {\n")
185214
.append(" address = 198.6.255.40\n")
186-
.append(" key-type = 0 # cleartext\n")
215+
.append(" key-type = 1 # SHA1\n")
187216
.append(" key = chris-mn\n")
188217
.append(" verify = off # on --> lig(self)\n")
189218
.append(" proxy-reply = on # ask ms to proxy reply\n")
@@ -448,7 +477,7 @@ public String replace_if_required_mr(String str)
448477

449478
public String replace_if_required_ms(String str)
450479
{
451-
Pattern msPtrn = Pattern.compile("^(\\s*)(\\S*)(\\s*)address(\\s*)=(\\s*)(\\d{1,3}).(\\d{1,3}).(\\d{1,3}).(\\d{1,3})(\\s*)");
480+
Pattern msPtrn = Pattern.compile("^(\\s*)(\\S*)(\\s*)address(\\s*)=(\\d{1,3}).(\\d{1,3}).(\\d{1,3}).(\\d{1,3})(\\s*)");
452481
Matcher msMtchr = msPtrn.matcher(str);
453482
if (msMtchr.matches()) {
454483
String[] tmp_1 = str.split("=");
@@ -482,6 +511,28 @@ public String replace_ms_key(String str)
482511
return out;
483512
}
484513

514+
public String replace_if_required_ms_keytype(String str)
515+
{
516+
517+
String out = str;
518+
519+
if (str.contains("key-type")) {
520+
Spinner spinner = (Spinner)findViewById(R.id.keyTypeSpinner);
521+
String value = spinner.getSelectedItem().toString();
522+
String replacer = "";
523+
if (value.contains("Cleartext")) {
524+
replacer = "key-type = 0";
525+
keyType = "0";
526+
} else if (value.contains("SHA1")) {
527+
replacer = "key-type = 1";
528+
keyType = "1";
529+
}
530+
out = replacer;
531+
keyType = replacer;
532+
}
533+
return out;
534+
}
535+
485536
public String replace_parameters(String str)
486537
{
487538
StringBuilder out = new StringBuilder();
@@ -499,6 +550,7 @@ public String replace_parameters(String str)
499550
tmp[i] = replace_if_required_primary_dns(tmp[i]);
500551
tmp[i] = replace_if_required_secondary_dns(tmp[i]);
501552
tmp[i] = replace_if_required_instance_id(tmp[i]);
553+
tmp[i] = replace_if_required_ms_keytype(tmp[i]);
502554

503555
if (tmp[i].contains("override-dns-primary")) {
504556
DNSWasfound = true;

0 commit comments

Comments
 (0)