mirror of
http://galexander.org/git/simplesshd.git
synced 2025-03-10 11:36:04 +00:00
first draft of a thread to poll for changes to the dropbear.err file
This commit is contained in:
parent
b44b9295d5
commit
4581a224ac
2
NOTES
2
NOTES
@ -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
|
||||
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 - main screen should show dropbear.err contents
|
||||
XXX - implement start on boot
|
||||
|
@ -22,6 +22,7 @@ public class SimpleSSHD extends Activity
|
||||
private TextView log_view;
|
||||
private Button startstop_view;
|
||||
public static SimpleSSHD curr = null;
|
||||
private UpdaterThread updater = null;
|
||||
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
@ -33,13 +34,15 @@ public class SimpleSSHD extends Activity
|
||||
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
update_startstop();
|
||||
update_log();
|
||||
curr = this;
|
||||
update_startstop();
|
||||
updater = new UpdaterThread();
|
||||
updater.start();
|
||||
}
|
||||
|
||||
public void onPause() {
|
||||
curr = null;
|
||||
updater.interrupt();
|
||||
super.onPause();
|
||||
}
|
||||
|
||||
|
39
src/org/galexander/sshd/UpdaterThread.java
Normal file
39
src/org/galexander/sshd/UpdaterThread.java
Normal file
@ -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…
Reference in New Issue
Block a user