|
@@ -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;
|