diff --git a/qtfs/config/rexec/whitelist b/qtfs/config/rexec/whitelist index b7f34b553f680335d5f2a268f457237e0419c70f..6a959d659bb10a04aed55d7c1cec8d1023ed88a1 100644 --- a/qtfs/config/rexec/whitelist +++ b/qtfs/config/rexec/whitelist @@ -1 +1 @@ -/usr/bin/qemu-kvm +/usr/bin/qemu-kvm diff --git a/qtfs/ipc/uds_main.c b/qtfs/ipc/uds_main.c index 65468b8dbdf2a8cde11558ebee4a3195e0c674f4..4bc01a9cfbb6057a7ca9168e2b6de3d51f3eb904 100644 --- a/qtfs/ipc/uds_main.c +++ b/qtfs/ipc/uds_main.c @@ -255,6 +255,8 @@ int uds_set_nonblock(int fd) int uds_build_tcp_connection(struct uds_conn_arg *arg) { int family = AF_VSOCK; + int retry = 3; + int ret = 0; if (arg->cs > UDS_SOCKET_SERVER) { uds_err("cs type %d is error.", arg->cs); return -1; @@ -305,7 +307,10 @@ int uds_build_tcp_connection(struct uds_conn_arg *arg) sock_addr.svm_port = p_uds_var->vsock.peerport; sock_addr.svm_cid = p_uds_var->vsock.peercid; #endif - if (connect(arg->sockfd, (struct sockaddr *)&sock_addr, sizeof(sock_addr)) < 0) { + do { + ret = connect(arg->sockfd, (struct sockaddr *)&sock_addr, sizeof(sock_addr)); + } while ((ret != 0) && (retry--)); + if (ret < 0) { goto close_and_return; } arg->connfd = sock_fd; diff --git a/qtfs/rexec/rexec_sock.c b/qtfs/rexec/rexec_sock.c index e8750c51eb0d102d5913305bfe6b3459abb84b8a..f7495e50e34fdd0ba75326467e37e73d5d46c5a3 100644 --- a/qtfs/rexec/rexec_sock.c +++ b/qtfs/rexec/rexec_sock.c @@ -37,7 +37,7 @@ int rexec_build_unix_connection(struct rexec_conn_arg *arg) { - const int sock_max_conn = 5; + const int sock_max_conn = 32; if (arg->cs > REXEC_SOCK_SERVER) { rexec_err("cs type %d is error.", arg->cs); return -1;