瀏覽代碼

mi_datagram: don't delete unixsock file in cfg check mode

Daniel-Constantin Mierla 14 年之前
父節點
當前提交
3ad92e15ad
共有 1 個文件被更改,包括 11 次插入6 次删除
  1. 11 6
      modules_k/mi_datagram/mi_datagram.c

+ 11 - 6
modules_k/mi_datagram/mi_datagram.c

@@ -56,6 +56,7 @@
 #include "../../lib/kmi/mi.h"
 #include "../../ip_addr.h"
 #include "../../pt.h"
+#include "../../globals.h"
 #include "../../cfg/cfg_struct.h"
 #include "mi_datagram.h"
 #include "datagram_fnc.h"
@@ -218,9 +219,11 @@ static int mi_mod_init(void)
 	n=stat(mi_socket, &filestat);
 	if( n==0) {
 		LM_INFO("the socket %s already exists, trying to delete it...\n", mi_socket);
-		if (unlink(mi_socket)<0) {
-			LM_ERR("cannot delete old socket: %s\n", strerror(errno));
-			return -1;
+		if(config_check==0) {
+			if (unlink(mi_socket)<0) {
+				LM_ERR("cannot delete old socket: %s\n", strerror(errno));
+				return -1;
+			}
 		}
 	} else if (n<0 && errno!=ENOENT) {
 		LM_ERR("socket stat failed:%s\n", strerror(errno));
@@ -364,10 +367,12 @@ static int mi_destroy(void)
 	if(mi_socket_domain == AF_UNIX) {
 		n=stat(mi_socket, &filestat);
 		if (n==0) {
-			if (unlink(mi_socket)<0){
-				LM_ERR("cannot delete the socket (%s): %s\n", 
+			if(config_check==0) {
+				if (unlink(mi_socket)<0){
+					LM_ERR("cannot delete the socket (%s): %s\n", 
 						mi_socket, strerror(errno));
-				goto error;
+					goto error;
+				}
 			}
 		} else if (n<0 && errno!=ENOENT) {
 			LM_ERR("socket stat failed: %s\n", strerror(errno));