mirror of
https://github.com/moparisthebest/SSLDroid
synced 2025-02-19 20:41:49 -05:00
Added Back button in the file browser and did some additional checks
Signed-off-by: Balint Kovacs <blint@blint.hu>
This commit is contained in:
parent
7f5f4f4768
commit
64063593f8
@ -18,4 +18,5 @@
|
|||||||
<string name="alert_sdcard_absent">No SD card present, please insert one to continue</string>
|
<string name="alert_sdcard_absent">No SD card present, please insert one to continue</string>
|
||||||
<string name="menu_readlogs">Read logs</string>
|
<string name="menu_readlogs">Read logs</string>
|
||||||
<string name="reading_logs">Reading log messages...</string>
|
<string name="reading_logs">Reading log messages...</string>
|
||||||
|
<string name="back">Back</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
@ -78,12 +78,12 @@ public class SSLDroidTunnelDetails extends Activity {
|
|||||||
confirmButton.setOnClickListener(new View.OnClickListener() {
|
confirmButton.setOnClickListener(new View.OnClickListener() {
|
||||||
public void onClick(View view) {
|
public void onClick(View view) {
|
||||||
if (name.getText().length() == 0) {
|
if (name.getText().length() == 0) {
|
||||||
Toast.makeText(getBaseContext(), "Required tunnel name parameter not setup, skipping save", 5).show();
|
Toast.makeText(getBaseContext(), "Required tunnel name parameter not setup, skipping save", Toast.LENGTH_LONG).show();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
//local port validation
|
//local port validation
|
||||||
if (localport.getText().length() == 0) {
|
if (localport.getText().length() == 0) {
|
||||||
Toast.makeText(getBaseContext(), "Required local port parameter not setup, skipping save", 5).show();
|
Toast.makeText(getBaseContext(), "Required local port parameter not setup, skipping save", Toast.LENGTH_LONG).show();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@ -92,11 +92,11 @@ public class SSLDroidTunnelDetails extends Activity {
|
|||||||
try {
|
try {
|
||||||
cPort = Integer.parseInt(localport.getText().toString());
|
cPort = Integer.parseInt(localport.getText().toString());
|
||||||
} catch (NumberFormatException e){
|
} catch (NumberFormatException e){
|
||||||
Toast.makeText(getBaseContext(), "Local port parameter has invalid number format", 5).show();
|
Toast.makeText(getBaseContext(), "Local port parameter has invalid number format", Toast.LENGTH_LONG).show();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (cPort < 1025 || cPort > 65535) {
|
if (cPort < 1025 || cPort > 65535) {
|
||||||
Toast.makeText(getBaseContext(), "Local port parameter not in valid range (1025-65535)", 5).show();
|
Toast.makeText(getBaseContext(), "Local port parameter not in valid range (1025-65535)", Toast.LENGTH_LONG).show();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
//check if the requested port is colliding with a port already configured for another tunnel
|
//check if the requested port is colliding with a port already configured for another tunnel
|
||||||
@ -108,14 +108,14 @@ public class SSLDroidTunnelDetails extends Activity {
|
|||||||
String cDbName = cursor.getString(cursor.getColumnIndexOrThrow(SSLDroidDbAdapter.KEY_NAME));
|
String cDbName = cursor.getString(cursor.getColumnIndexOrThrow(SSLDroidDbAdapter.KEY_NAME));
|
||||||
int cDbPort = cursor.getInt(cursor.getColumnIndexOrThrow(SSLDroidDbAdapter.KEY_LOCALPORT));
|
int cDbPort = cursor.getInt(cursor.getColumnIndexOrThrow(SSLDroidDbAdapter.KEY_LOCALPORT));
|
||||||
if (cPort == cDbPort){
|
if (cPort == cDbPort){
|
||||||
Toast.makeText(getBaseContext(), "Local port already configured in tunnel '"+cDbName+"', please change...", 5).show();
|
Toast.makeText(getBaseContext(), "Local port already configured in tunnel '"+cDbName+"', please change...", Toast.LENGTH_LONG).show();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//remote host validation
|
//remote host validation
|
||||||
if (remotehost.getText().length() == 0){
|
if (remotehost.getText().length() == 0){
|
||||||
Toast.makeText(getBaseContext(), "Required remote host parameter not setup, skipping save", 5).show();
|
Toast.makeText(getBaseContext(), "Required remote host parameter not setup, skipping save", Toast.LENGTH_LONG).show();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@ -123,12 +123,12 @@ public class SSLDroidTunnelDetails extends Activity {
|
|||||||
try {
|
try {
|
||||||
InetAddress.getByName(remotehost.getText().toString());
|
InetAddress.getByName(remotehost.getText().toString());
|
||||||
} catch (UnknownHostException e){
|
} catch (UnknownHostException e){
|
||||||
Toast.makeText(getBaseContext(), "Remote host not found, please recheck...", 5).show();
|
Toast.makeText(getBaseContext(), "Remote host not found, please recheck...", Toast.LENGTH_LONG).show();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//remote port validation
|
//remote port validation
|
||||||
if (remoteport.getText().length() == 0){
|
if (remoteport.getText().length() == 0){
|
||||||
Toast.makeText(getBaseContext(), "Required remote port parameter not setup, skipping save", 5).show();
|
Toast.makeText(getBaseContext(), "Required remote port parameter not setup, skipping save", Toast.LENGTH_LONG).show();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@ -137,16 +137,16 @@ public class SSLDroidTunnelDetails extends Activity {
|
|||||||
try {
|
try {
|
||||||
cPort = Integer.parseInt(remoteport.getText().toString());
|
cPort = Integer.parseInt(remoteport.getText().toString());
|
||||||
} catch (NumberFormatException e){
|
} catch (NumberFormatException e){
|
||||||
Toast.makeText(getBaseContext(), "Remote port parameter has invalid number format", 5).show();
|
Toast.makeText(getBaseContext(), "Remote port parameter has invalid number format", Toast.LENGTH_LONG).show();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (cPort < 1 || cPort > 65535) {
|
if (cPort < 1 || cPort > 65535) {
|
||||||
Toast.makeText(getBaseContext(), "Remote port parameter not in valid range (1-65535)", 5).show();
|
Toast.makeText(getBaseContext(), "Remote port parameter not in valid range (1-65535)", Toast.LENGTH_LONG).show();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (pkcsfile.getText().length() == 0){
|
if (pkcsfile.getText().length() == 0){
|
||||||
Toast.makeText(getBaseContext(), "Required PKCS12 file parameter not setup, skipping save", 5).show();
|
Toast.makeText(getBaseContext(), "Required PKCS12 file parameter not setup, skipping save", Toast.LENGTH_LONG).show();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@ -158,7 +158,7 @@ public class SSLDroidTunnelDetails extends Activity {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
Toast.makeText(getBaseContext(), "PKCS12 problem: "+e.getMessage(), 5).show();
|
Toast.makeText(getBaseContext(), "PKCS12 problem: "+e.getMessage(), Toast.LENGTH_LONG).show();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -172,9 +172,9 @@ public class SSLDroidTunnelDetails extends Activity {
|
|||||||
|
|
||||||
final List<File> getFileNames(File url, File baseurl)
|
final List<File> getFileNames(File url, File baseurl)
|
||||||
{
|
{
|
||||||
List<File> names = new LinkedList<File>();
|
final List<File> names = new LinkedList<File>();
|
||||||
File[] files = url.listFiles();
|
File[] files = url.listFiles();
|
||||||
if (files != null) {
|
if (files != null && files.length > 0) {
|
||||||
for(File file : url.listFiles()) {
|
for(File file : url.listFiles()) {
|
||||||
if (file.getName().startsWith("."))
|
if (file.getName().startsWith("."))
|
||||||
continue;
|
continue;
|
||||||
@ -196,22 +196,47 @@ public class SSLDroidTunnelDetails extends Activity {
|
|||||||
namesList[i] = file.getAbsolutePath().replaceFirst(baseurl+"/", "");
|
namesList[i] = file.getAbsolutePath().replaceFirst(baseurl+"/", "");
|
||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
Log.d("SSLDroid", "Gathered file names: "+namesList.toString());
|
//Log.d("SSLDroid", "Gathered file names: "+namesList.toString());
|
||||||
|
|
||||||
// prompt user to select any file from the sdcard root
|
// prompt user to select any file from the sdcard root
|
||||||
new AlertDialog.Builder(SSLDroidTunnelDetails.this)
|
new AlertDialog.Builder(SSLDroidTunnelDetails.this)
|
||||||
.setTitle(R.string.pkcsfile_pick)
|
.setTitle(R.string.pkcsfile_pick)
|
||||||
.setItems(namesList, new OnClickListener() {
|
.setItems(namesList, new OnClickListener() {
|
||||||
public void onClick(DialogInterface arg0, int arg1) {
|
public void onClick(DialogInterface arg0, int arg1) {
|
||||||
String name = namesList[arg1];
|
File name = names.get(arg1);
|
||||||
if (names.get(arg1).isDirectory()){
|
if (name.isDirectory()){
|
||||||
List<File> names_ = getFileNames(names.get(arg1), baseurl);
|
Log.d("SSLDroid", "Clicked: '"+namesList[arg1]+"'; Filename: '"+name+"';");
|
||||||
|
List<File> names_ = getFileNames(name, baseurl);
|
||||||
Collections.sort(names_);
|
Collections.sort(names_);
|
||||||
Log.d("SSLDroid", "Array size: "+String.valueOf(names.size()));
|
Log.d("SSLDroid", "Array: "+String.valueOf(names_.size()));
|
||||||
if (names.size() > 0)
|
if (names_.size() > 0) {
|
||||||
showFiles(names_, baseurl);
|
showFiles(names_, baseurl);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
Toast.makeText(getBaseContext(), "Empty directory", Toast.LENGTH_LONG).show();
|
||||||
|
}
|
||||||
|
if (name.isFile()) {
|
||||||
|
pkcsfile.setText(name.getAbsolutePath());
|
||||||
|
pkcspass.requestFocus();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
//create a Back button (shouldn't go above base URL)
|
||||||
|
.setNeutralButton(R.string.back, new OnClickListener() {
|
||||||
|
public void onClick(DialogInterface arg0, int arg1) {
|
||||||
|
if (names.size() == 0)
|
||||||
|
return;
|
||||||
|
File name = names.get(0);
|
||||||
|
if (!name.getParentFile().equals(baseurl)) {
|
||||||
|
List<File> names_ = getFileNames(name.getParentFile().getParentFile(), baseurl);
|
||||||
|
Collections.sort(names_);
|
||||||
|
Log.d("SSLDroid", "Array: "+String.valueOf(names_.size()));
|
||||||
|
if (names_.size() > 0) {
|
||||||
|
showFiles(names_, baseurl);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
pkcsfile.setText(baseurl.getAbsolutePath()+"/"+name);
|
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.setNegativeButton(android.R.string.cancel, null).create().show();
|
.setNegativeButton(android.R.string.cancel, null).create().show();
|
||||||
@ -276,19 +301,19 @@ public class SSLDroidTunnelDetails extends Activity {
|
|||||||
}
|
}
|
||||||
|
|
||||||
} catch (KeyStoreException e) {
|
} catch (KeyStoreException e) {
|
||||||
Toast.makeText(getBaseContext(), "PKCS12 problem: "+e.getMessage(), 10).show();
|
Toast.makeText(getBaseContext(), "PKCS12 problem: "+e.getMessage(), Toast.LENGTH_LONG).show();
|
||||||
return false;
|
return false;
|
||||||
} catch (NoSuchAlgorithmException e) {
|
} catch (NoSuchAlgorithmException e) {
|
||||||
Toast.makeText(getBaseContext(), "PKCS12 problem: "+e.getMessage(), 10).show();
|
Toast.makeText(getBaseContext(), "PKCS12 problem: "+e.getMessage(), Toast.LENGTH_LONG).show();
|
||||||
return false;
|
return false;
|
||||||
} catch (CertificateException e) {
|
} catch (CertificateException e) {
|
||||||
Toast.makeText(getBaseContext(), "PKCS12 problem: "+e.getMessage(), 10).show();
|
Toast.makeText(getBaseContext(), "PKCS12 problem: "+e.getMessage(), Toast.LENGTH_LONG).show();
|
||||||
return false;
|
return false;
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
Toast.makeText(getBaseContext(), "PKCS12 problem: "+e.getMessage(), 10).show();
|
Toast.makeText(getBaseContext(), "PKCS12 problem: "+e.getMessage(), Toast.LENGTH_LONG).show();
|
||||||
return false;
|
return false;
|
||||||
} catch (UnrecoverableKeyException e) {
|
} catch (UnrecoverableKeyException e) {
|
||||||
Toast.makeText(getBaseContext(), "PKCS12 problem: "+e.getMessage(), 10).show();
|
Toast.makeText(getBaseContext(), "PKCS12 problem: "+e.getMessage(), Toast.LENGTH_LONG).show();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user