first draft of a thread to poll for changes to the dropbear.err file

sigsegv_dump
Greg Alexander 10 years ago
parent b44b9295d5
commit 4581a224ac

@ -72,6 +72,8 @@ it uses select(), I'm not sure how I would honor Thread.interrupt() or
whatever. It's not guaranteed to interrupt select(), and I'm not keen on whatever. It's not guaranteed to interrupt select(), and I'm not keen on
adding an arbitrary timeout/polling feature to it. adding an arbitrary timeout/polling feature to it.
XXX - add locking on access to SimpleSSHD.curr
XXX - test scrolling the log
XXX - implement extra commandline for dropbear XXX - implement extra commandline for dropbear
XXX - main screen should show dropbear.err contents XXX - main screen should show dropbear.err contents
XXX - implement start on boot XXX - implement start on boot

@ -22,6 +22,7 @@ public class SimpleSSHD extends Activity
private TextView log_view; private TextView log_view;
private Button startstop_view; private Button startstop_view;
public static SimpleSSHD curr = null; public static SimpleSSHD curr = null;
private UpdaterThread updater = null;
public void onCreate(Bundle savedInstanceState) { public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
@ -33,13 +34,15 @@ public class SimpleSSHD extends Activity
public void onResume() { public void onResume() {
super.onResume(); super.onResume();
update_startstop();
update_log();
curr = this; curr = this;
update_startstop();
updater = new UpdaterThread();
updater.start();
} }
public void onPause() { public void onPause() {
curr = null; curr = null;
updater.interrupt();
super.onPause(); super.onPause();
} }

@ -0,0 +1,39 @@
package org.galexander.sshd;
import java.io.File;
public class UpdaterThread extends Thread {
/* poll for changes to the dropbear.err file */
public void run() {
File f = new File(Prefs.get_path(), "dropbear.err");
long lastmod = 0;
System.out.println("sshd: updater start");
while (true) {
if (isInterrupted()) {
System.out.println("sshd: updater interrupted");
break;
}
if (SimpleSSHD.curr == null) {
System.out.println("sshd: activity stopped");
break;
}
long l = f.lastModified();
if (l != lastmod) {
System.out.println("sshd: updating");
SimpleSSHD.curr.runOnUiThread(new Thread() {
public void run() {
SimpleSSHD.curr.update_log();
}
});
lastmod = l;
}
try {
sleep(1000);
} catch (InterruptedException e) {
System.out.println("sshd: sleep interrupted");
break;
}
}
System.out.println("sshd: done");
}
}
Loading…
Cancel
Save