From bbee3979d0f3be3642d7f985e589cad178146929 Mon Sep 17 00:00:00 2001 From: Mars Ultor Date: Wed, 12 Mar 2025 00:41:52 -0500 Subject: [PATCH] server finally works. only thing left is to write queries from the client --- .../net/client/ClientConnect.java | 20 ++++++ .../net/server/ServerDaemon.java | 60 +++++++++++------- .../net/ClientServerSelect$1.class | Bin 1150 -> 1150 bytes .../net/ClientServerSelect$2.class | Bin 1209 -> 1209 bytes .../net/ClientServerSelect.class | Bin 2163 -> 2163 bytes .../net/client/ClientConnect$1.class | Bin 991 -> 991 bytes .../net/client/ClientConnect.class | Bin 2782 -> 3298 bytes .../net/server/ServerDaemon$1.class | Bin 0 -> 1089 bytes .../net/server/ServerDaemon.class | Bin 0 -> 5815 bytes 9 files changed, 56 insertions(+), 24 deletions(-) create mode 100644 target/classes/net/ayyalasomayajula/net/server/ServerDaemon$1.class create mode 100644 target/classes/net/ayyalasomayajula/net/server/ServerDaemon.class diff --git a/src/main/java/net/ayyalasomayajula/net/client/ClientConnect.java b/src/main/java/net/ayyalasomayajula/net/client/ClientConnect.java index 804d52c..b4f9aec 100644 --- a/src/main/java/net/ayyalasomayajula/net/client/ClientConnect.java +++ b/src/main/java/net/ayyalasomayajula/net/client/ClientConnect.java @@ -6,6 +6,7 @@ import org.slf4j.LoggerFactory; import javax.swing.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; +import java.net.Socket; /** * The ClientConnect class represents a graphical user interface (GUI) frame for capturing @@ -41,7 +42,26 @@ public class ClientConnect extends JFrame { public void actionPerformed(ActionEvent actionEvent) { logger.info("Triggered a Connection request."); // Connection logic would go here (e.g., retrieve values and initiate connection) + } }); } + private String getSanitizedText(JTextField textField) { + // Get the text from the JTextField and trim leading/trailing whitespace + String sanitizedText = textField.getText().trim(); + + // Remove unwanted characters (single quotes, double quotes, non-alphanumeric characters) + sanitizedText = sanitizedText.replaceAll("[^a-zA-Z0-9]", ""); // Remove all non-alphanumeric characters + + // Optionally, remove single quotes and double quotes + sanitizedText = sanitizedText.replaceAll("[\'\"]", ""); + + // If the text is empty after sanitization, set a default value + if (sanitizedText.isEmpty()) { + sanitizedText = "default"; // or you can return an empty string, or throw an exception, depending on the case + } + + return sanitizedText; + } + } diff --git a/src/main/java/net/ayyalasomayajula/net/server/ServerDaemon.java b/src/main/java/net/ayyalasomayajula/net/server/ServerDaemon.java index f691a2c..18a1120 100644 --- a/src/main/java/net/ayyalasomayajula/net/server/ServerDaemon.java +++ b/src/main/java/net/ayyalasomayajula/net/server/ServerDaemon.java @@ -73,47 +73,59 @@ public class ServerDaemon implements Runnable { * @param path The root path to initialize. * @return True if initialization is successful, false otherwise. */ + private boolean initRootPath(Path path) { // Create the lock file String lockFile = "lock.lock"; // Set your desired file name + Path fullPath = path.resolve(lockFile); // Combine the base path and 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(); + if (!file.getParentFile().exists() && !file.getParentFile().mkdirs()) { + logger.error("Failed to create directories for lock file."); + return false; + } - // Create the file - if (file.createNewFile()) { - logger.info("File created: " + file.getName()); + // Create the lock file if it doesn't already exist + if (!file.exists()) { + if (file.createNewFile()) { + logger.info("Lock 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."); + // 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 lock file."); + } + } else { + logger.error("Failed to create lock file."); + return false; } } else { - System.out.println("File already exists."); + logger.info("Lock file already exists."); } + + // Create the patient directory + String patientEhrs = "patients/"; + Path patientPath = path.resolve(patientEhrs); + File dir = patientPath.toFile(); + + if (!dir.exists() && !dir.mkdirs()) { + logger.error("Failed to create patient directory."); + return false; + } + + return true; } catch (IOException e) { - System.err.println("An error occurred: " + e.getMessage()); + logger.error("An error occurred during lock file creation: {}", e.getMessage()); + return false; } - - // Create patient directory - String patientEhrs = "patients/"; - Path patientPath = path.resolve(patientEhrs); - File dir = patientPath.toFile(); - dir.mkdir(); - - return true; } + /** * Checks whether the root path has already been initialized by checking if the lock file exists. * diff --git a/target/classes/net/ayyalasomayajula/net/ClientServerSelect$1.class b/target/classes/net/ayyalasomayajula/net/ClientServerSelect$1.class index 2c8c4e40d3c07ad21eca34eb8129160ff670b5a0..2213331334709326a4eddd48c8e735ac1fbfa203 100644 GIT binary patch delta 31 ncmeyz@sDG}4rWHx$vc_Tcr_Tf7_=FL7<3pU8FVM>umk}Bmu&}D delta 31 ncmeyz@sDG}4rWG)$vc_Tc%>P*7~~j)7~~lw85Ab#umk}Blm-VC diff --git a/target/classes/net/ayyalasomayajula/net/ClientServerSelect$2.class b/target/classes/net/ayyalasomayajula/net/ClientServerSelect$2.class index 5e9e48dd2d26d339960511ea43fd262994f57b58..6ec6494f205df73c3b900535efc9dc8871caa37b 100644 GIT binary patch delta 35 rcmdnVxs!9l6J|!k$xoRJ1x*;Z7|amgFS--BLi1aYC%q7a;jra4kLqw2FR{@RLej@s3KTg#KGXi$iNb< zt`rM0+=Yk1mBEdXfjzU>HMgLol97Q~Lo3JtZ|Qu{5WIi@}S*o1MXjhryS@ zkC8zgoX2^T{iL+RvN7IDV%$x~T$ zvso%8eZQj<$E^YdI%OA<44ia8i+CqH13W2~S2pQW3-k)er;p@E^9 zkwI*-0*4qgJ45T_b*%cz?F=1U3~daZ=uY-YOaeK%n~R}m5}UF_A0q>MF(h&EFic?J z<6`Jxn8?VW1NKP-n;_%l$yscEY*V=yrZ7yKypPR7#tF^7v`E(0?c zgFXW@4?{3R2qyy;b7Rn#h?iaS7!HoMGl6|lkc$0vu)*K*v2q% zG9!n#M=(PO0|NsSNFSIEgYp#_lo%Koq(BLVfq{XQfsuigfsKKYA)JAMp`3w*fsuiM z!BlHI1EZD@yViDw%*j(Y^y?!S7#QRj*cliY6d70;loYFA7#MgU+8Lr4qQRENFvLQQZew6(U}j)oP}APVptp^|#8*eiQpkE6gRQTQkRz0_ zjlp>)1DlY$ug(Sr1_ow^L>(fE}O!u>|S>1_m{TIED}gMg|TBIfi(K1O_Gs4u&MSe-**bWnkbG;@ZLB zxtYO#BLf2iBiJHPkT5Wa3otRHGqBY|Ji(a8AjrVMz`z)_n;|=LJ423-miAT#e(l{1 zd668fyBP{1nVFfHw=)zoF@dPEZ45Qqj6!wH%#4gX7+SV5bnRy7iQLZ6>#HNwzl~v% zw$5&bDUr;~EUW??%pgUK+Zm>BW0<|0VQ%DhhIxM4x*&NL7Iv0;W>yvfHbzFc0{zJC z4D+p6v?N)!GAxv25n8m3VX3wx3s^lf3yS~;ivSxl<8FrKk%A1+c92eXW)>D^7B*(M=Ri@wAi&75gJCBm)ENXBOc=ot#j3T1fghAK dK#3!b0aP|KGAJ`ZKr%SNr7)y2Fo09BG61WcUTgpW delta 1097 zcmaDPc~6w<)W2Q(7#J9A7-nze3SpX@&K$sI%EMsBU_N;-^RdZntWg?n3~XEsTnz4v z3_@9nWr-E~#pRiK>H1y)iFv6x>5hH!=`Mg~FW{Jgx>Gn7vD;xOSTXQ%)< zqH=N@hXz|U7efsL^W+#NNl|u&IxdEK24)@x3kFM01}=t14hDJGH@_3Fh=cW@QU1C&*1H&rM;DbUwb!$ zZzKonZU+BIW@cvQ?F>OoOdu+B8$+}X}(s1UOg(*q9l2Gjv1>GE8II&d`Ob)rwV1l65OX zk0h&5A6O?VNGBUHI@z=&*|suFkYp38p9I#*2GYukU#n*1c81AT>{^oSTN&gf*@dQV zW0;{W$qv%V&dkEX%)-VD_Z=t-7z7v@W-`ozCICSOMsPf_YHeZQ-@pI@%nYs!@(c`I X42%rQAU*>FgA+JGIWxFG6Ob|hgRt7P diff --git a/target/classes/net/ayyalasomayajula/net/server/ServerDaemon$1.class b/target/classes/net/ayyalasomayajula/net/server/ServerDaemon$1.class new file mode 100644 index 0000000000000000000000000000000000000000..e5546d62f0d63074f123716ef0556e592abdac69 GIT binary patch literal 1089 zcmX^0Z`VEs1_m1jBTfb;24;2!79Ivx1~x_py}Z;C{lv=3#GJ(9{M^LK#H`YsM17E8 zacWUnYLR|0m~u%>&CSnKF=S+5E6K<#Rxw~?(DMPQB37$4$X*T}22KVpMh1bh#2l64 z{N(J^l92p>#NuK`20@>!#4?D*!C(n%E(RV3UUmjP9tM5}0Y(M^uzXHpUb?=2QdVkm z2_plWO=ezZi5(*Yvxa6E7lROkFgt??4}&O!7$buYDUM@g5X?x-OUX%f&dnD-6jf$}dk$%1N~bnJ&-BAcSH_9!QFj!AXO(;Kt%~Mg|t={FGEi z27aH+yi~u^+@#c^5QynQKKaRsIbn%KnIJw?kOdUej0^@OS*&7c&B!3&n_7~QpAwK* zl$e`Zl3G;E$iNw#nVy$eQd*SC$iQ4wn#ah%n99f?3UMZCNLn*8@CKJ8CTII57C@cC z6`WsMl$`38nUl)MAc&kK^+18e$iVNKmzCs82A|!7?>Fp85kIx zLHPwFqNTl+fl*6mD+9aMb_VW^V1-Hy3=C`xj0_A6rVPpq3=CpW%_%!zI#{y+10%?l42)oViWr!|nkBWiFfeLuVPN0JAh?`?*Jn3_WTf_X z2I>79!S--7@G*!pFf)K`7Gq##U|_Ih;AXI4;A602;AgOAkYKQdyM&*ClR=X~3#?C) z0pccY1_lOp1|~mt260XX76u)#OLQ6Z7#J8>7=#$~84SQ8LJWos3=CWhj9@o0FfafB Dehve? literal 0 HcmV?d00001 diff --git a/target/classes/net/ayyalasomayajula/net/server/ServerDaemon.class b/target/classes/net/ayyalasomayajula/net/server/ServerDaemon.class new file mode 100644 index 0000000000000000000000000000000000000000..cb3931a06880d1aafdcc782f05f53daa048104f0 GIT binary patch literal 5815 zcmX^0Z`VEs1_m2OBQ6Fe24;2!79Ivx1~x_pfvm)`ME#t^ymWp4q^#8B5=I6#o6Nk- z5<5l)W)00SP6iGJPId+^9tLg(9u(!lmBl5gxr_|V`K2X{45B_@gEI5=1Bx>9N`gy@ zQWJBnIT-jD8Dzs#bCUCOQx!_`6-qKv6@pWX%2JCIToO}r^Yiq$7z7vu*%^d*7=#%_ z7#W1I7{kcGUH~#QCy$XqR0CoW*u}vmMVWc&)|z1)3}TE78sQmx%vlwYKf znU_+UoSBynwhH8$;?kttOpqEqg^-NQVvtaxLUC$xX;EfLr9xV2Vo7OHsvbLo6eEKm z*z=_&nK}Bw$%%P+sYRgRm*HWMWsqZJV9EsfAL9MYe0|Tnf>KyGb1_IVD1c&Ak&!_H z8bWAFG{e{#lo=U#z*c1D>$_#aTQrxr0X2>Ij}rRx{xq?u&t`+&u)IT)-M83aL=C={h8r)HL= zrdTOd*K#x1Fxav)*zqvfgM1?d4iywPF*0zJNKg&{*#k<0DV4=( zrFqGqRGpZ^#o)`J$IcMU$RG+f1QgVeFb>X7&Q2}iVhCag1;uI@BLj3Ff!Oc zlz{SeMq*w{PO3t3eqLTG*vw*ujKpGvq}0?rh1|rHRE5M6P_QfH=P4NIfg#AqC?1Ar zh8RW$p7hibpZw&+oPhkI5^%ZW$;A-I5YNt#z{8NpkOa#aV840hm861Wo4qVCr!>_+ z4V0=pky9*Gg*7PNQg|3rL6OFinU|K&&H#!dun)nREIB_fxwNP#HLpZJB%>%bF(n{B zKgYEqHMz7TzlfCq4Al8K8L}C2*cozp81fkM85v};>(9(h4b96eVPs(S@DB|NW@M0u zL_CH?P=(g)426sg8dweU$;``6O>xS}PtMNFOLs{vEKTKNC}3dbVn|~s0YyV8BZH@g zr>7SIE3iw$%nd9}ElmX{#vq1r9)=2rN=62@#AHxW$H*WI�*-`jA9m&B0L3$RHX7 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 literal 0 HcmV?d00001