Skip to content

Commit 42052f1

Browse files
committed
System Touch
1 parent d368942 commit 42052f1

4 files changed

Lines changed: 380 additions & 459 deletions

File tree

source/communicator/Communicator.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -123,9 +123,11 @@ private void handle(final Socket client)
123123
session.out = out;
124124
resolveGeo(session);
125125

126-
writeLine(out, "╔══════════════════════════════════╗");
127-
writeLine(out, "║ NWE Communicator — port " + PORT + " ║");
128-
writeLine(out, "╚══════════════════════════════════╝");
126+
writeLine(out, "╔══════════════════════════════════════════════════════╗");
127+
writeLine(out, "║ NWE port " + PORT + " — Communicator ║");
128+
writeLine(out, "║ Persistent chat | direct msg | broadcast ║");
129+
writeLine(out, "║ Scheduled delivery | 1-hour session limit ║");
130+
writeLine(out, "╚══════════════════════════════════════════════════════╝");
129131
writeLine(out, "identify <nationalId> to begin | Session limit: 1 hour");
130132
writeLine(out, "Geo: " + session.geoCity + ", " + session.geoCountry + " TZ: " + session.timezone);
131133

source/loader/ModuleLoaderDaemon.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,7 @@ private void handle(final Socket CLIENT)
110110
BufferedReader in = new BufferedReader(new InputStreamReader(CLIENT.getInputStream()));
111111
BufferedWriter out = new BufferedWriter(new OutputStreamWriter(CLIENT.getOutputStream()))
112112
) {
113+
writeLine(out, "[ NWE port " + PORT + " — Module Loader Daemon | push, pull, list, remove, and replicate installed modules ]");
113114
writeLine(out, "ModuleLoaderDaemon v1.0 — MEARVK NWE");
114115
writeLine(out, "Identify: identify <nationalId> Token: token <port-registry-token>");
115116

source/server/nitro/NitroWebExpress.java

Lines changed: 28 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,7 @@ public void run()
164164
while (!Thread.currentThread().isInterrupted())
165165
{
166166
Socket client = serverSocket.accept();
167+
client.setSoTimeout(20 * 60 * 1000); // 20-minute session limit
167168
Thread responder = new Thread(() -> respond(client));
168169
responder.setDaemon(true);
169170
responder.start();
@@ -183,11 +184,12 @@ private void respond(final Socket CLIENT)
183184
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(CLIENT.getOutputStream(), java.nio.charset.StandardCharsets.UTF_8));
184185
BufferedReader reader = new BufferedReader(new java.io.InputStreamReader(CLIENT.getInputStream(), java.nio.charset.StandardCharsets.UTF_8));
185186

187+
writer.write("[ NWE port " + STATUS_PORT + " — Connection Status & Server Health Report | 20-minute session ]\n");
186188
writer.write(languages.LanguagePack.t(remoteIp, "label.lang_menu") + "\n");
187189
writer.write(languages.LanguagePack.t(remoteIp, "label.lang_prompt") + "\n");
188190
writer.flush();
189191

190-
CLIENT.setSoTimeout(4000); // short timeout for lang selection
192+
CLIENT.setSoTimeout(20 * 60 * 1000); // 20-minute language selection window
191193
try
192194
{
193195
String line = reader.readLine();
@@ -219,6 +221,26 @@ private void respond(final Socket CLIENT)
219221
db.N21Store.storeGeo(remoteIp, geoParts.length > 0 ? geoParts[0] : "", geoParts.length > 1 ? geoParts[1] : "");
220222
db.N21Store.storeStatusSnapshot(count, uptimeSecs, totalMB, usedMB);
221223

224+
// ── Geo list for all live connections ─────────────────────
225+
StringBuilder geoList = new StringBuilder();
226+
for (connections.Connection c : WATCHED.CURRENT_CONNECTION)
227+
{
228+
if (c.internet_address != null)
229+
{
230+
String ip = c.internet_address.getHostAddress();
231+
geoList.append(" ").append(ip)
232+
.append(" ").append(fetchGeo(ip)).append("\n");
233+
}
234+
}
235+
236+
// ── Running JVM threads (server executables) ──────────────
237+
StringBuilder threads = new StringBuilder();
238+
Thread.getAllStackTraces().keySet().stream()
239+
.filter(t -> t.getState() == Thread.State.RUNNABLE || t.getState() == Thread.State.TIMED_WAITING)
240+
.sorted(java.util.Comparator.comparing(Thread::getName))
241+
.forEach(t -> threads.append(" [").append(t.getState()).append("] ")
242+
.append(t.getName()).append("\n"));
243+
222244
java.util.function.Function<String,String> L = k -> languages.LanguagePack.t(remoteIp, k);
223245

224246
String report =
@@ -230,7 +252,9 @@ private void respond(final Socket CLIENT)
230252
L.apply("label.time") + " " + localTime + "\n" +
231253
L.apply("label.uptime") + " " + uptime + "\n" +
232254
L.apply("label.memory") + " " + totalMB + "MB (used: " + usedMB + "MB)\n" +
233-
L.apply("label.connections") + " " + count + "\n" +
255+
L.apply("label.connections") + " " + count + " current\n" +
256+
"\nConnected IPs & Geo:\n" + (geoList.length() > 0 ? geoList : " (none)\n") +
257+
"\nRunning Server Threads:\n" + (threads.length() > 0 ? threads : " (none)\n") +
234258
"\n" + L.apply("label.lang_revert") + "\n";
235259

236260
CommonRails.printSystemComponent(this, this.hashCode(),
@@ -405,6 +429,7 @@ private void handle(final Socket CLIENT)
405429
BufferedReader in = new BufferedReader(new InputStreamReader(CLIENT.getInputStream()));
406430
BufferedWriter out = new BufferedWriter(new OutputStreamWriter(CLIENT.getOutputStream()))
407431
) {
432+
writeLine(out, "[ NWE port " + PORT + " — Module Installation Service | install, unload, and manage NWE modules ]");
408433
writeLine(out, "ModuleInstallationService v2.0");
409434
writeLine(out, "Type 'identify <nationalId>' first, then 'help' for commands.");
410435

@@ -802,6 +827,7 @@ private void handle(final Socket CLIENT)
802827
BufferedReader in = new BufferedReader(new InputStreamReader(CLIENT.getInputStream()));
803828
BufferedWriter out = new BufferedWriter(new OutputStreamWriter(CLIENT.getOutputStream()))
804829
) {
830+
writeLine(out, "[ NWE port " + PORT + " — ASCII Signature Service | issues unique binary ASCII signatures per National ID ]");
805831
writeLine(out, "ASCIICreatorServer — Binary ASCII Signature Service");
806832
writeLine(out, "Commands: request <nationalId> | view <nationalId> | quit");
807833

0 commit comments

Comments
 (0)