ui improve
This commit is contained in:
@@ -24,6 +24,7 @@
|
||||
|
||||
static TransferState g_server_state;
|
||||
static std::atomic<int> g_server_client_sock{-1};
|
||||
static std::atomic<int> g_server_listen_sock{-1};
|
||||
static std::atomic<int> g_broadcast_sock{-1};
|
||||
|
||||
bool isServerTransferDone() { return g_server_state.done.load(); }
|
||||
@@ -35,6 +36,8 @@ void cancelServerTransfer() {
|
||||
g_server_state.cancelled.store(true);
|
||||
int sock = g_server_client_sock.load();
|
||||
if (sock >= 0) shutdown(sock, SHUT_RDWR);
|
||||
int lsock = g_server_listen_sock.load();
|
||||
if (lsock >= 0) shutdown(lsock, SHUT_RDWR);
|
||||
int bsock = g_broadcast_sock.load();
|
||||
if (bsock >= 0) shutdown(bsock, SHUT_RDWR);
|
||||
}
|
||||
@@ -173,9 +176,11 @@ static void* accept_and_handle(void* arg) {
|
||||
int server_fd = static_cast<AcceptArgs*>(arg)->server_fd;
|
||||
delete static_cast<AcceptArgs*>(arg);
|
||||
|
||||
g_server_listen_sock.store(server_fd);
|
||||
sockaddr_in client_addr{};
|
||||
socklen_t client_len = sizeof(client_addr);
|
||||
int client_socket = accept(server_fd, (sockaddr*)&client_addr, &client_len);
|
||||
g_server_listen_sock.store(-1);
|
||||
close(server_fd);
|
||||
|
||||
if (client_socket >= 0) {
|
||||
@@ -256,6 +261,9 @@ int startSendingThread() {
|
||||
return 1;
|
||||
}
|
||||
|
||||
int yes = 1;
|
||||
setsockopt(server, SOL_SOCKET, SO_REUSEADDR, &yes, sizeof(yes));
|
||||
|
||||
sockaddr_in addr{};
|
||||
addr.sin_family = AF_INET;
|
||||
addr.sin_addr.s_addr = INADDR_ANY;
|
||||
|
||||
Reference in New Issue
Block a user