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
|
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();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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