Experimental usage.
[vlp.git] / src / net / lognet.cpp
index decd822abfb2ddcb652ccafe82a6509035e35f06..96571427e4fc9a4f79177fb1ffa51d8d98668149 100644 (file)
@@ -1,5 +1,5 @@
-#include "../head/genint1.h"
-#include "../head/comm.h"
+#include "genint1.h"
+#include "comm.h"
 
 #include <sys/socket.h>
 #include <sys/un.h>
@@ -22,6 +22,9 @@
 #include <qstringlist.h>
 #include <unistd.h>
 
+#include <libconfig.h>
+#include "AppConfiguration.h"
+
 #define REMOTE_PATH "REMOTE"
 #define MAXLINKS 30
 #define LOGPORT 3600
@@ -183,44 +186,47 @@ NETMOD::NETMOD(char *kernel_name)
 
 void NETMOD::load_config(char *fname)
 {
- QFile f(fname);
- QString line;
- QString val;
- int br=0,on,k=0;
- NETlink *pomlink;
+  int on,k=0;
+  NETlink *pomlink;
+  
+  
+  /* Hack for checking if file exists without using external libs.*/
+  FILE * file = fopen(fname, "r");
+  if (!file) {
+    fprintf(stderr, "Error: Cannot load configuration file %s!\n", fname);
+    write_at_console("Cannot load configuration file!");
+    exit(3);
+  }
+  /* File exists, so file has been locked. Release it. */
+  fclose(file);
+  
+  AppConfiguration config(fname);
+  
+  MyNode = config.getInt("node_number");
+  if (config.error() == TRUE) {
+    write_at_console("Node number must be specified");
+    config.release();
+    exit(1);
+  }
 
- if (!f.exists())
- {
-  write_at_console("Cannot load configuration file!");sleep(2);exit(3);
- }
- f.open(IO_ReadOnly);
- br = f.readLine(line,256);
- while (br>0)
- {
-  QStringList l = QStringList::split("=",line,FALSE);
-  QStringList::Iterator it = l.begin();
-  line = *it;
-  ++it;
-  val = *it;
-  val = val.stripWhiteSpace();
-  if (line == "node_number") {MyNode = val.toInt();};
-  if (line == "host" ) {
-     k++;
-     pomlink = new NETlink;
-     strcpy(pomlink->addr,val.ascii());
-     pomlink->connected = FALSE;
-     pomlink->sock = socket(AF_INET, SOCK_STREAM, 0); 
-     fcntl(pomlink->sock, F_SETFL,O_NONBLOCK | fcntl(pomlink->sock,F_GETFL,0));
-     on=1; 
-     setsockopt(pomlink->sock,IPPROTO_TCP,TCP_NODELAY,(char*)&on,sizeof(on)); 
-     Links.append(pomlink); 
-     to_connect++;     
-  };
-  br = f.readLine(line,256);
- }
- f.close();
- if (k==0) all_connected=TRUE;
- if (MyNode==-1) {write_at_console("Node number must be specified");exit(1);};
+  char host[255];
+  strcpy(host, config.getString("host"));
+  if(config.error() == FALSE)
+  {
+    k++;
+    pomlink = new NETlink;
+    strcpy(pomlink->addr, host);
+    pomlink->connected = FALSE;
+    pomlink->sock = socket(AF_INET, SOCK_STREAM, 0); 
+    fcntl(pomlink->sock, F_SETFL,O_NONBLOCK | fcntl(pomlink->sock,F_GETFL,0));
+    on=1; 
+    setsockopt(pomlink->sock,IPPROTO_TCP,TCP_NODELAY,(char*)&on,sizeof(on)); 
+    Links.append(pomlink); 
+    to_connect++;
+  }
+  config.release();
+
+  if (k==0) all_connected=TRUE;
 }