Server Daemon is getting somewhere

This commit is contained in:
2025-03-11 23:48:31 -05:00
parent 1247caff35
commit dfea28ad3a
2 changed files with 89 additions and 1 deletions

View File

@@ -22,7 +22,9 @@ public class ClientConnect extends JFrame{
goButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent actionEvent) {
logger.info("Triggered a Connection request."
logger.info("Triggered a Connection request.");
}
});
}
}

View File

@@ -0,0 +1,86 @@
package net.ayyalasomayajula.net.server;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.nio.file.Path;
import java.util.Random;
import java.util.Scanner;
public class ServerDaemon implements Runnable{
private static final Logger logger = LoggerFactory.getLogger(ServerDaemon.class);
@Override
public void run() {
System.out.println("Welcome to the Server Daemon.");
System.out.println("What is the root path for all your data?");
System.out.println("prepare for the codebase to throw a RuntimeException if incorrectly formatted or error inducing data is submitted. This is a security feature.");
Scanner sc = new Scanner(System.in);
Path path = new File(sc.nextLine().trim()).toPath();
logger.debug("Path received: {}", path.toString());
if(!isRootPathInited(path)){
boolean success = initRootPath(path);
if(!success) throw new RuntimeException("Your Path is dysfunctional");
}
try {
ServerSocket serverSocket = new ServerSocket(8475);
logger.info("Server to handle connections has been made at: {} on 0.0.0.0", serverSocket.getLocalPort());
} catch (IOException e) {
throw new RuntimeException(e);
}
}
private boolean initRootPath(Path path){
// create the lock file
String lockFile = "lock.lock"; // Set your desired file name
// Combine the base path and file name
Path fullPath = path.resolve(lockFile);
// Create the file
File file = fullPath.toFile();
try {
// Create the parent directories if they don't exist
file.getParentFile().mkdirs();
// Create the file
if (file.createNewFile()) {
System.out.println("File created: " + file.getName());
// Write a random byte to the file
try (FileOutputStream fos = new FileOutputStream(file)) {
Random random = new Random();
byte randomByte = (byte) random.nextInt(256); // Generate random byte
fos.write(randomByte);
logger.info("Random byte written to file.");
}
} else {
System.out.println("File already exists.");
}
} catch (IOException e) {
System.err.println("An error occurred: " + e.getMessage());
}
// create patient dir
String patientEhrs = "patients/";
Path patientPath = path.resolve(patientEhrs);
File dir = patientPath.toFile();
dir.mkdir();
return true;
}
private boolean isRootPathInited(Path path) {
// Create a File object from the given path and append "lock.lock"
File lockFile = path.resolve("lock.lock").toFile();
// Check if the file exists and is a file (not a directory)
return lockFile.exists() && lockFile.isFile();
}
}