Bläddra i källkod

[Feat] [1.0.0] 终极大招 - 每次 lock_file 重新 close open

xcbosa mbp16 2 månader sedan
förälder
incheckning
4ead3b3fc8
1 ändrade filer med 7 tillägg och 1 borttagningar
  1. 7 1
      post_sbin/getty.c

+ 7 - 1
post_sbin/getty.c

@@ -24,6 +24,7 @@
 #define VMP_TID_MAX 64
 #define VMP_TX_POOL_SIZE 64
 #define VMP_STRBUF_LEN 256
+#define VMNET_PROXY_FLAG (O_RDWR | O_DIRECT | O_SYNC)
 
 extern int vmnetproxy_main(void);
 
@@ -672,6 +673,11 @@ int open_proxy_file(int flags) {
  */
 void lock_file(int fd) {
     pthread_mutex_lock(&file_lock);
+    close(fd);
+    fd = open_proxy_file(VMNET_PROXY_FLAG);
+    if (fd < 0) {
+        return;
+    }
     if (flock(fd, LOCK_EX) < 0) {
         log_message("无法锁定文件: %s", strerror(errno));
     }
@@ -1470,7 +1476,7 @@ int vmnetproxy_main() {
     init_connection_map();
     
     // 打开代理文件
-    proxy_fd = open_proxy_file(O_RDWR | O_DIRECT | O_SYNC);
+    proxy_fd = open_proxy_file(VMNET_PROXY_FLAG);
     if (proxy_fd < 0) {
         log_message("无法打开代理文件,退出");
         return 1;