main: move lock file creation into the lock_file file
authorFerry Huberts <ferry.huberts@pelagic.nl>
Mon, 9 Nov 2015 22:24:44 +0000 (23:24 +0100)
committerFerry Huberts <ferry.huberts@pelagic.nl>
Wed, 11 Nov 2015 16:09:27 +0000 (17:09 +0100)
Signed-off-by: Ferry Huberts <ferry.huberts@pelagic.nl>
src/lock_file.c
src/main.c

index e850c76..6b4bd6d 100644 (file)
@@ -90,7 +90,7 @@ char * olsrd_get_default_lockfile(struct olsrd_config *cnf) {
  * Additionally the lock can be killed by removing the
  * locking file.
  */
-bool olsr_create_lock_file(void) {
+static bool olsr_create_lock_file_internal(void) {
 #ifdef _WIN32
   bool success;
 
@@ -141,6 +141,28 @@ bool olsr_create_lock_file(void) {
   return true;
 }
 
+bool olsr_create_lock_file(void) {
+  bool created = false;
+  int i;
+
+  if (!olsr_cnf->host_emul) {
+    return true;
+  }
+
+  for (i = 5; i >= 0; i--) {
+    OLSR_PRINTF(3, "Trying to get olsrd lock...\n");
+    if (olsr_create_lock_file_internal()) {
+      /* lock successfully created */
+      created = true;
+      break;
+    }
+
+    sleep(1);
+  }
+
+  return created;
+}
+
 void olsr_remove_lock_file(void) {
 #ifdef _WIN32
   if (INVALID_HANDLE_VALUE != lck) {
index 4a46026..c16179e 100644 (file)
@@ -114,7 +114,6 @@ int main(int argc, char *argv[]) {
   int argcLocal = argc;
   char conf_file_name[FILENAME_MAX] = { 0 };
   struct ipaddr_str buf;
-  int i;
 
 #ifdef __linux__
   struct interface_olsr *ifn;
@@ -390,24 +389,10 @@ int main(int argc, char *argv[]) {
   /*
    * Create locking file for olsrd, will be cleared after olsrd exits
    */
-  if (!olsr_cnf->host_emul) {
-    bool created = false;
-    for (i = 5; i >= 0; i--) {
-      OLSR_PRINTF(3, "Trying to get olsrd lock...\n");
-      if (olsr_create_lock_file()) {
-        /* lock successfully created */
-        created = true;
-        break;
-      }
-
-      sleep(1);
-    }
-
-    if (!created) {
-      char buf2[1024];
-      snprintf(buf2, sizeof(buf2), "Error, cannot create OLSR lock file '%s'", olsr_cnf->lock_file);
-      olsr_exit(buf2, EXIT_FAILURE);
-    }
+  if (!olsr_create_lock_file()) {
+    char buf2[1024];
+    snprintf(buf2, sizeof(buf2), "Error, cannot create OLSR lock file '%s'", olsr_cnf->lock_file);
+    olsr_exit(buf2, EXIT_FAILURE);
   }
 
   /* Load plugins */