Enhancements

Fix broken LAN list.
Add support for "no-resolve"/"force-remote-dns" in exporting Clash subscriptions.
Optimize codes.
This commit is contained in:
Tindy X committed 2019-12-01 18:13:16 +08:00
1 parent cd02165a0c
commit d8908f4dce
13 files changed
+108 -81

No files matched your search

+12 -3
View File
@@ -151,8 +151,11 @@ int httpserver_bindsocket(std::string listen_address, int listen_port, int backl
int ret;
SOCKET nfd;
nfd = socket(AF_INET, SOCK_STREAM, 0);
if (nfd < 0)
if (nfd <= 0)
{
closesocket(nfd);
return -1;
}
int one = 1;
ret = setsockopt(nfd, SOL_SOCKET, SO_REUSEADDR, (char *)&one, sizeof(int));
@@ -163,12 +166,18 @@ int httpserver_bindsocket(std::string listen_address, int listen_port, int backl
addr.sin_addr.s_addr = inet_addr(listen_address.data());
addr.sin_port = htons(listen_port);
ret = bind(nfd, (struct sockaddr*)&addr, sizeof(addr));
ret = ::bind(nfd, (struct sockaddr*)&addr, sizeof(addr));
if (ret < 0)
{
closesocket(nfd);
return -1;
}
ret = listen(nfd, backlog);
if (ret < 0)
{
closesocket(nfd);
return -1;
}
unsigned long ul = 1;
ioctlsocket(nfd, FIONBIO, &ul); //set to non-blocking mode
@@ -178,7 +187,7 @@ int httpserver_bindsocket(std::string listen_address, int listen_port, int backl
int start_web_server_multi(void *argv)
{
struct listener_args *args = (listener_args*)argv;
struct listener_args *args = reinterpret_cast<listener_args*>(argv);
std::string listen_address = args->listen_address;
int port = args->port, nthreads = args->max_workers;
int i, ret;