diff --git a/ChangeLog b/ChangeLog index a040cbd0ec95af8610ca58d23772a28b3d213421..c6778a5612fea301759f1349500442cdea441814 100755 --- a/ChangeLog +++ b/ChangeLog @@ -1 +1 @@ -2023-03-27 ahttp 集成asynframe-sdk_v1.4.5-20230327 https://github.com/netsecsp/asynframe +2023-03-31 ahttp 集成asynframe-sdk_v1.4.6-20230331 https://github.com/netsecsp/asynframe diff --git a/README.md b/README.md index faa95bddadf2c4a86308636c64bc998f947ab48a..6755ac98c8fb52e48c72eca796fdff8d98bfdbc7 100755 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -> asynframe-sdk_v1.4.5-20230327.zip is from https://github.com/netsecsp/asynframe +> asynframe-sdk_v1.4.6-20230331.zip is from https://github.com/netsecsp/asynframe # ahttp.exe > supports IPv4/IPv6 http/https client program under windows diff --git a/client/3rd/bin/asyncore.dll b/client/3rd/bin/asyncore.dll index e407c1fae782c230509eb3061e3ddb482fae513e..757601bf017799147c8f68a43128cc6455cbd6a7 100755 Binary files a/client/3rd/bin/asyncore.dll and b/client/3rd/bin/asyncore.dll differ diff --git a/client/3rd/bin/asynfile.dll b/client/3rd/bin/asynfile.dll index 383360a4f3718334e7e1c93eb67275135bc45b43..0dd02817c83ad16edf747926fd0bde6a06525178 100755 Binary files a/client/3rd/bin/asynfile.dll and b/client/3rd/bin/asynfile.dll differ diff --git a/client/3rd/bin/asynipcs.dll b/client/3rd/bin/asynipcs.dll index 7b0a6961f15e1f15634c877ce402ef84c8fb01c9..0088267f98bddf25926d6c77eb7fea6ee6a24c5d 100755 Binary files a/client/3rd/bin/asynipcs.dll and b/client/3rd/bin/asynipcs.dll differ diff --git a/client/3rd/bin/asynneta.dll b/client/3rd/bin/asynneta.dll index 2daa602c4266e96dcdc8d9d53b2dca966a8e6ea1..e516be6b5c63f8ab67991c59ab3171e90bccca15 100755 Binary files a/client/3rd/bin/asynneta.dll and b/client/3rd/bin/asynneta.dll differ diff --git a/client/3rd/bin/asynsock.dll b/client/3rd/bin/asynsock.dll index efbae57968fb227eed274260ebb887e367c14ef0..e0d1b1b5f5bb39e0119fc3e19c9718069061474b 100755 Binary files a/client/3rd/bin/asynsock.dll and b/client/3rd/bin/asynsock.dll differ diff --git a/client/3rd/bin/console.dll b/client/3rd/bin/console.dll index be7febd9f44395cdeb0cdad6f693bda8af9a5fbd..7db0dd8b9f1ce85907f4eaa4dde9045bdbb88a74 100755 Binary files a/client/3rd/bin/console.dll and b/client/3rd/bin/console.dll differ diff --git a/client/3rd/bin/crashexplorer.dll b/client/3rd/bin/crashexplorer.dll index e7b7e7788d83c506b30f2a6c0bb39b4f5aa4ab81..d735c23298dfbc4f46f7264a3ad95c442fe12fd9 100755 Binary files a/client/3rd/bin/crashexplorer.dll and b/client/3rd/bin/crashexplorer.dll differ diff --git a/client/3rd/bin/dns.dll b/client/3rd/bin/dns.dll index 14d5740a7dc1ab7f3458a58078d884a8968b6570..cd72c1531ca267e85f3d5dc2c7309fb14271a0c0 100755 Binary files a/client/3rd/bin/dns.dll and b/client/3rd/bin/dns.dll differ diff --git a/client/3rd/bin/dtp.dll b/client/3rd/bin/dtp.dll index 550839e3bb3f454e12c8f4bd1e25aec1ccd11283..4cf8e254d3a16056cee8f2eb01d3b4bef9c0e246 100755 Binary files a/client/3rd/bin/dtp.dll and b/client/3rd/bin/dtp.dll differ diff --git a/client/3rd/bin/ftp.dll b/client/3rd/bin/ftp.dll index 6a6d07a4f7bba6699a5f7a813413abea3820f3ee..3c937d0b2814354b66693149e7b05850b0190afa 100755 Binary files a/client/3rd/bin/ftp.dll and b/client/3rd/bin/ftp.dll differ diff --git a/client/3rd/bin/http.dll b/client/3rd/bin/http.dll index afffb8b4497f639a0cc05627ea27282db343495b..cb74653dc2a79e34cac6a807d1ca898fd6d584ed 100755 Binary files a/client/3rd/bin/http.dll and b/client/3rd/bin/http.dll differ diff --git a/client/3rd/bin/lua.dll b/client/3rd/bin/lua.dll index 13bdcca5807ddc526ab78454783e3a37861eeb32..c5fe41e82f1ca637628e4643337ee6f65d18c03c 100755 Binary files a/client/3rd/bin/lua.dll and b/client/3rd/bin/lua.dll differ diff --git a/client/3rd/bin/proxy.dll b/client/3rd/bin/proxy.dll index e2e75ddfbabb7d547ef94a2ae9331a575364d89d..07c2d57420d4534aad106735158b5dc2aa6e0f13 100755 Binary files a/client/3rd/bin/proxy.dll and b/client/3rd/bin/proxy.dll differ diff --git a/client/3rd/bin/ras.dll b/client/3rd/bin/ras.dll index 35750ae7b49a8ce1967566ba9a949b4778c440ff..32bc166e36ede2ecb874416a829831b7c0dbb089 100755 Binary files a/client/3rd/bin/ras.dll and b/client/3rd/bin/ras.dll differ diff --git a/client/3rd/bin/rtsp.dll b/client/3rd/bin/rtsp.dll index 631950d11adc1c994f62bf5c3d0b1d4989716baa..2303ac7e275e623524ed2933d5f1c4c72384751d 100755 Binary files a/client/3rd/bin/rtsp.dll and b/client/3rd/bin/rtsp.dll differ diff --git a/client/3rd/bin/sqlite.dll b/client/3rd/bin/sqlite.dll index aa8da1fb65642d5ef08525346bffd7d7bebe80ac..a6fbfe8475482f22bdb4a6cd9448f30a12291d8e 100755 Binary files a/client/3rd/bin/sqlite.dll and b/client/3rd/bin/sqlite.dll differ diff --git a/client/3rd/bin/ssl.dll b/client/3rd/bin/ssl.dll index 187596997e4f0f438b5208285d583c3c2de55f1b..6af725df0bda83e93c18fdb5de704b9ccad78bb5 100755 Binary files a/client/3rd/bin/ssl.dll and b/client/3rd/bin/ssl.dll differ diff --git a/client/3rd/bin/websocket.dll b/client/3rd/bin/websocket.dll index c94343931d123de18500c155f9774406acd619d2..c62fd5bee6652248725ad94d5afd196ffdc903e6 100755 Binary files a/client/3rd/bin/websocket.dll and b/client/3rd/bin/websocket.dll differ diff --git a/client/3rd/bin/x64/asyncore.dll b/client/3rd/bin/x64/asyncore.dll index daea2ec11b92c37ceb3540ba9c628d1b9318bc76..3e000aed3e6987349d84ab5edf6703c71591e5c3 100755 Binary files a/client/3rd/bin/x64/asyncore.dll and b/client/3rd/bin/x64/asyncore.dll differ diff --git a/client/3rd/bin/x64/asynfile.dll b/client/3rd/bin/x64/asynfile.dll index bdea71ab53e19e1dc69e52e42a17a5424e9ecc71..fd4e73bc1fa74bc85649a73656f0a44cd516493c 100755 Binary files a/client/3rd/bin/x64/asynfile.dll and b/client/3rd/bin/x64/asynfile.dll differ diff --git a/client/3rd/bin/x64/asynipcs.dll b/client/3rd/bin/x64/asynipcs.dll index e3ebb4cdb9d56425dc30c8427a99e5f27a323cdb..30ffef8323c7ddf8460e856c5a4f8609da9d368f 100755 Binary files a/client/3rd/bin/x64/asynipcs.dll and b/client/3rd/bin/x64/asynipcs.dll differ diff --git a/client/3rd/bin/x64/asynneta.dll b/client/3rd/bin/x64/asynneta.dll index 36d236bd1e9d79c04cbdf0d013fe36def6fe9e42..854330eb9494a12033dafba10f67db44273da529 100755 Binary files a/client/3rd/bin/x64/asynneta.dll and b/client/3rd/bin/x64/asynneta.dll differ diff --git a/client/3rd/bin/x64/asynsock.dll b/client/3rd/bin/x64/asynsock.dll index 2c08bf4fc7ff5dfa401969379e2906ed5b1484d5..1d5b84cbf30fdb5130cbc8d0d73c284356c22849 100755 Binary files a/client/3rd/bin/x64/asynsock.dll and b/client/3rd/bin/x64/asynsock.dll differ diff --git a/client/3rd/bin/x64/console.dll b/client/3rd/bin/x64/console.dll index baef284e365b17854db20b16b39f0ddf4bf954d6..65868738ccc2e1945d53ceb17bf53ac118bc7922 100755 Binary files a/client/3rd/bin/x64/console.dll and b/client/3rd/bin/x64/console.dll differ diff --git a/client/3rd/bin/x64/crashexplorer.dll b/client/3rd/bin/x64/crashexplorer.dll index 706ef00d61b34f9d732e4c1a19c36ac7d9941c47..c38e75b2427f128865dd413c3a0eb63cf15e28e6 100755 Binary files a/client/3rd/bin/x64/crashexplorer.dll and b/client/3rd/bin/x64/crashexplorer.dll differ diff --git a/client/3rd/bin/x64/dns.dll b/client/3rd/bin/x64/dns.dll index db0e1de40fcf50e7b99b0635b3c68407b196d95e..53dde5872edf3a0ecaaf37da39f94445aee6c7f3 100755 Binary files a/client/3rd/bin/x64/dns.dll and b/client/3rd/bin/x64/dns.dll differ diff --git a/client/3rd/bin/x64/dtp.dll b/client/3rd/bin/x64/dtp.dll index 87003ab56c049edba199a2e82c072edd0b6b1698..b675416d14bd6bf91dcf02a3af8ede501c70a1f9 100755 Binary files a/client/3rd/bin/x64/dtp.dll and b/client/3rd/bin/x64/dtp.dll differ diff --git a/client/3rd/bin/x64/ftp.dll b/client/3rd/bin/x64/ftp.dll index 9693d0d77012000703a9af157d29f16a92ea34c5..4ae64b68ec3958c5fc4a14b64546533dfd680f5c 100755 Binary files a/client/3rd/bin/x64/ftp.dll and b/client/3rd/bin/x64/ftp.dll differ diff --git a/client/3rd/bin/x64/http.dll b/client/3rd/bin/x64/http.dll index 5665cf8f17cfacc4eceb42d689e2691f743952be..73534d188fdc37e3bf78ceb9437419c9ae952ff9 100755 Binary files a/client/3rd/bin/x64/http.dll and b/client/3rd/bin/x64/http.dll differ diff --git a/client/3rd/bin/x64/lua.dll b/client/3rd/bin/x64/lua.dll index ca30949307ddf0b85bb28a15ae61b9a7b61cb4c7..3f0d28bb6dbcfd2fe8b476570df9c73ccc7c31a6 100755 Binary files a/client/3rd/bin/x64/lua.dll and b/client/3rd/bin/x64/lua.dll differ diff --git a/client/3rd/bin/x64/proxy.dll b/client/3rd/bin/x64/proxy.dll index 3dffbc23980fc873d1b4a2ad15bfab919911a6f7..63cbe11322c0b313804a8c14e7adc376a884425a 100755 Binary files a/client/3rd/bin/x64/proxy.dll and b/client/3rd/bin/x64/proxy.dll differ diff --git a/client/3rd/bin/x64/ras.dll b/client/3rd/bin/x64/ras.dll index 6026ba1e38e1bd88fe660619358ab8c112cca42d..2447b269c532cbb0cf6ff2c8401c2cb8bbeb90fb 100755 Binary files a/client/3rd/bin/x64/ras.dll and b/client/3rd/bin/x64/ras.dll differ diff --git a/client/3rd/bin/x64/rtsp.dll b/client/3rd/bin/x64/rtsp.dll index e0afcef02f951763e2b3f10f770bb7fe4244979e..1ac34cfb06aea6a0875df4b872712926bc15c265 100755 Binary files a/client/3rd/bin/x64/rtsp.dll and b/client/3rd/bin/x64/rtsp.dll differ diff --git a/client/3rd/bin/x64/sqlite.dll b/client/3rd/bin/x64/sqlite.dll index 93689bdae56d0242ed40e530f0e613e8ceb8effa..a2f7e8b1cc91342309da091ba3736553cb4e3022 100755 Binary files a/client/3rd/bin/x64/sqlite.dll and b/client/3rd/bin/x64/sqlite.dll differ diff --git a/client/3rd/bin/x64/ssl.dll b/client/3rd/bin/x64/ssl.dll index b90fa0e39d756911ca399de57d3cec94b35b0b47..d2a5733c21ce50309450b76f6540827e1ae1e08e 100755 Binary files a/client/3rd/bin/x64/ssl.dll and b/client/3rd/bin/x64/ssl.dll differ diff --git a/client/3rd/bin/x64/websocket.dll b/client/3rd/bin/x64/websocket.dll index afbdcc0cb02f866a37518414c5f5af3dbcb718d8..e2af30a90cac5c2ad65dc00aab954bede0cd1921 100755 Binary files a/client/3rd/bin/x64/websocket.dll and b/client/3rd/bin/x64/websocket.dll differ diff --git a/client/3rd/bin/x64/zip.dll b/client/3rd/bin/x64/zip.dll index dec7687d569366b5a082bc5cf559f809ed71ff65..3dd09b9a1a89fabd928f59961032dfc8634fdefe 100755 Binary files a/client/3rd/bin/x64/zip.dll and b/client/3rd/bin/x64/zip.dll differ diff --git a/client/3rd/bin/zip.dll b/client/3rd/bin/zip.dll index 838d9bf49416f1c74e63929f96b0771d571eb255..8823d0fab103056405a717c8ca3e5b2438379cfd 100755 Binary files a/client/3rd/bin/zip.dll and b/client/3rd/bin/zip.dll differ diff --git a/client/3rd/lib/asynsdk_mini-MD.lib b/client/3rd/lib/asynsdk_mini-MD.lib index 751d8956c487353dc4dbd5e9a348d5113f606965..38a1d5706c4dbacec191e192a4751b61e9ab2df1 100755 Binary files a/client/3rd/lib/asynsdk_mini-MD.lib and b/client/3rd/lib/asynsdk_mini-MD.lib differ diff --git a/client/3rd/lib/asynsdk_mini-MDd.lib b/client/3rd/lib/asynsdk_mini-MDd.lib index 401371cc0a5d7574a3cb9d89314eccabfb0f4590..f5a8d24febaeba652707c9e7b45978939cddf479 100755 Binary files a/client/3rd/lib/asynsdk_mini-MDd.lib and b/client/3rd/lib/asynsdk_mini-MDd.lib differ diff --git a/client/3rd/lib/asynsdk_mini-MT.lib b/client/3rd/lib/asynsdk_mini-MT.lib index a9520ab9fc4848bfffd63d93ccb10192c81eccc9..72042d59e2b4e9d924732c08adfc5861e0aac0e8 100755 Binary files a/client/3rd/lib/asynsdk_mini-MT.lib and b/client/3rd/lib/asynsdk_mini-MT.lib differ diff --git a/client/3rd/lib/asynsdk_mini-MTd.lib b/client/3rd/lib/asynsdk_mini-MTd.lib index 715c47644f2027ce708ad8047de53e56206adc66..bea53958feb111df2eb8666199e4807a1eea986e 100755 Binary files a/client/3rd/lib/asynsdk_mini-MTd.lib and b/client/3rd/lib/asynsdk_mini-MTd.lib differ diff --git a/client/3rd/lib/x64/asynsdk_mini-MD.lib b/client/3rd/lib/x64/asynsdk_mini-MD.lib index 991a1c835100a6e6252798a367838486acce4fb0..aa4d4725a1ad3e9bfa4fbd043760b42a4b46262a 100755 Binary files a/client/3rd/lib/x64/asynsdk_mini-MD.lib and b/client/3rd/lib/x64/asynsdk_mini-MD.lib differ diff --git a/client/3rd/lib/x64/asynsdk_mini-MDd.lib b/client/3rd/lib/x64/asynsdk_mini-MDd.lib index 0236c3f2ea31a83bd0772ff3c815d038feaeae24..ddfc9a721b5dfb7178d8c160938c121874c7ab11 100755 Binary files a/client/3rd/lib/x64/asynsdk_mini-MDd.lib and b/client/3rd/lib/x64/asynsdk_mini-MDd.lib differ diff --git a/client/3rd/lib/x64/asynsdk_mini-MT.lib b/client/3rd/lib/x64/asynsdk_mini-MT.lib index 6eafb078e8974e0d80a6e52250528b163b324409..ca78afc995d72be57f3825b68998615099b63ca7 100755 Binary files a/client/3rd/lib/x64/asynsdk_mini-MT.lib and b/client/3rd/lib/x64/asynsdk_mini-MT.lib differ diff --git a/client/3rd/lib/x64/asynsdk_mini-MTd.lib b/client/3rd/lib/x64/asynsdk_mini-MTd.lib index f4b5e37be86134a66b919079908222e349befaf1..016fb17edb4ebe9a836f5a2efee5ba252a506cb9 100755 Binary files a/client/3rd/lib/x64/asynsdk_mini-MTd.lib and b/client/3rd/lib/x64/asynsdk_mini-MTd.lib differ diff --git a/client/bin/ahttp-x64.exe b/client/bin/ahttp-x64.exe index 015f0cd559d1a5a34a7fb256427230178c7a4deb..fae8c7cb147879b8cb41e6d9b1ebf7719f8404cc 100755 Binary files a/client/bin/ahttp-x64.exe and b/client/bin/ahttp-x64.exe differ diff --git a/client/bin/ahttp.exe b/client/bin/ahttp.exe index e540caee5799888896b5cc729806443c1bef471f..384b776d062bf7b220cf637b303bf9f16dedfb23 100755 Binary files a/client/bin/ahttp.exe and b/client/bin/ahttp.exe differ diff --git a/client/src/Main.cpp b/client/src/Main.cpp index c0e2614a42b39ec1dac47cf1bc38097e30ad912b..97d0cd9902b23ba04e9bf702fa58be66c90fffb8 100755 --- a/client/src/Main.cpp +++ b/client/src/Main.cpp @@ -73,7 +73,7 @@ static void ShowUsage(std::string name) printf(" -s use TLS or SSL\n"); printf(" -check-certificate\n"); printf(" -u use proxy url, protocol://[user:password@]host[:port]/ver?params\n"); - printf(" -c continue-at OFFSET Resumed transfer OFFSET\n"); + printf(" -c continue-at OFFSET Resumed transfer OFFSET\n"); printf(" -o save FILE\n"); printf("example: %s -4 \"http://localhost/test.exe\"\n", name.c_str()); } diff --git a/client/src/http_Downloader.cpp b/client/src/http_Downloader.cpp index f3ef5ba2e7654769ba1a8e0fb1895a776ce8a11c..65f21897c50ea1eed5e49fde47c10386b51745f6 100755 --- a/client/src/http_Downloader.cpp +++ b/client/src/http_Downloader.cpp @@ -95,11 +95,11 @@ HRESULT CHttpDownloader::OnIomsgNotify( uint64_t lParam1, uint64_t lAction, IAsy CComPtr spAsynIoOperation; lpAsynIoOperation->QueryInterface(IID_IAsynNetIoOperation, (void **)&spAsynIoOperation); spAsynIoOperation->GetPeerAddress(&host, 0, &port, &m_af); - printf("connected %s:%d[%s]\n", host.m_val.c_str(), port, m_af == AF_INET ? "ipv4" : "ipv6"); + printf("connected %s:%d[%s]\n", host.m_val.c_str(), port, m_af == AF_INET? "ipv4" : "ipv6"); } asynsdk::CKeyvalSetter params(1); - params.Set(STRING_from_string("User-Agent"), 1, STRING_from_string("Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)")); + params.Set(STRING_from_string("User-Agent"), 1, STRING_from_string("curl/7.84.0")); params.Set(STRING_from_string("Accept" ), 1, STRING_from_string("*/*")); if( m_referurl ) params.Set(STRING_from_string("Referer"), 1, STRING_from_string(m_referurl)); diff --git a/client/src/http_Downloader.h b/client/src/http_Downloader.h index 3d42a33302a80725c48942e1d01a46173aa6b418..aa8912090eb43dc17776f61c3489de5e62f80312 100755 --- a/client/src/http_Downloader.h +++ b/client/src/http_Downloader.h @@ -148,7 +148,7 @@ public: hostport = tmpurl.substr(pos1); } else - {// ver?params + {// ver?method=v&ssl=v hostport = tmpurl.substr(pos1, pos2 - pos1); pos2 += 1; @@ -170,20 +170,27 @@ public: m_setsfile.set_string("proxy", "version", tmpurl.substr(pos2, post - pos2)); } - std::string::size_type poss = params.find("method="); - if( poss != std::string::npos ) - { - poss += 7; - std::string::size_type pose = params.find('&'); - if( pose == std::string::npos ) - { - m_setsfile.set_string("proxy", "method", params.substr(poss)); - } - else - { - m_setsfile.set_string("proxy", "method", params.substr(poss, pose - poss)); - } - } + std::map t; + const char *s = params.c_str(), *e = s + params.size(), *i; + do{ + i = strchr(s, '='); + if(!i ) break; + + std::string key(s, i - s); + + s = i + 1; //skip '=' + + i = strchr(s, '&'); + + t[key] = std::string(s, i? (i - s) : (e - s)); + + if(!i ) break; + + s = i + 1; //skip '&' + }while(1); + + m_setsfile.set_string("proxy", "method", t["method"]); + m_setsfile.set_string("proxy", "ssl", t["ssl"]); } } @@ -228,16 +235,6 @@ public: { continue; } - - std::string schema = tmpurl.substr(0, pos1); - _strlwr_s((char*)schema.c_str(), schema.size() + 1); - if( schema != "http" && - schema != "https" && - schema != "ftp" && - schema != "ftps" ) - { - continue; - } else { httpurl = argv[i]; @@ -259,17 +256,9 @@ public: } std::string schema = url.substr(0, pos1); - _strlwr_s((char*)schema.c_str(), schema.size() + 1); - if( schema != "http" && - schema != "https" && - schema != "ftp" && - schema != "ftps" ) - { - printf("fail to parse %s\n", url.c_str()); - return false; - } - else - { + _strlwr_s((char*)schema.c_str(), schema.size()+1); + + {// skip :// pos1 += 3; } @@ -333,7 +322,14 @@ public: CComPtr spAsynPtlSocket; if( proxyname == "none" ) {// 没有配置代理的情况: none - m_spAsynNetwork->CreateAsynPtlSocket( STRING_from_string("http"), (IUnknown **)&spAsynInnSocket.p, STRING_from_string(schema == "http" || schema == "ftp"? "tcp" : m_setsfile.get_string("ssl", "algo", "tls/1.0")), &spAsynPtlSocket); + if( schema != "http" && + schema != "https" ) + { + printf("fail to parse %s\n", url.c_str()); + return false; + } + + m_spAsynNetwork->CreateAsynPtlSocket( STRING_from_string("http"), (IUnknown **)&spAsynInnSocket.p, STRING_from_string(schema == "http"? "tcp" : m_setsfile.get_string("ssl", "algo", "tls/1.0")), &spAsynPtlSocket); if( spAsynPtlSocket == NULL ) { printf("can't load plugin: http\n"); @@ -344,53 +340,93 @@ public: {// 已经配置代理的情况: http/socks proxy if( proxyname == "http" ) {// http.proxy - std::string version = m_setsfile.get_string("proxy", "version"); - if(!version.empty()) - version.insert(0, "/"); - - m_spAsynNetwork->CreateAsynPtlSocket( STRING_from_string("proxy"), (IUnknown **)&spAsynInnSocket.p, STRING_from_string(proxyname + version), &spAsynPtlSocket ); - if( spAsynPtlSocket == NULL ) { - printf("can't load plugin: proxy.%s\n", proxyname.c_str()); - return false; - } + std::string ver = m_setsfile.get_string("proxy", "version"); + if(!ver.empty()) + ver.insert(0, "/"); + + std::string ssl = m_setsfile.get_string("proxy", "ssl"); + if(!ssl.empty()) + ssl.insert(0, ":"); + + CComPtr spAsynTmpSocket; + m_spAsynNetwork->CreateAsynPtlSocket( STRING_from_string("proxy"), (IUnknown **)&spAsynInnSocket.p, STRING_from_string(proxyname + ver + ssl), &spAsynTmpSocket ); + if( spAsynTmpSocket == NULL ) + { + printf("can't load plugin: proxy.%s\n", proxyname.c_str()); + return false; + } + else + { + spAsynInnSocket = spAsynTmpSocket; + } + + CComPtr spProxy; + spAsynInnSocket->QueryInterface(IID_IAsynProxySocket, (void **)&spProxy); - m_filepath = url; + asynsdk::CKeyvalSetter params(1); + params.Set(STRING_from_string(";account"), 1, STRING_from_string(m_setsfile.get_string("proxy", "user") + ":" + m_setsfile.get_string("proxy", "password"))); + HRESULT hr = spProxy->SetProxyContext(STRING_from_string(m_setsfile.get_string("proxy", "host", "127.0.0.1")), (PORT)m_setsfile.get_long("proxy", "port", ssl.empty()? 8080 : 8443), STRING_from_string(m_setsfile.get_string("proxy", "method", "")), ¶ms); + } - CComPtr spProxy; - spAsynPtlSocket->QueryInterface(IID_IAsynProxySocket, (void **)&spProxy); + if( schema != "http" && + schema != "https" ) + { + m_filepath = url; //use url + } - asynsdk::CKeyvalSetter params(1); - params.Set(STRING_from_string(";account"), 1, STRING_from_string(m_setsfile.get_string("proxy", "user") + ":" + m_setsfile.get_string("proxy", "password"))); - HRESULT hr = spProxy->SetProxyContext(STRING_from_string(m_setsfile.get_string("proxy", "host", "127.0.0.1")), schema!="https"? (PORT)m_setsfile.get_long("proxy", "port", 8080) : (PORT)m_setsfile.get_long("proxy", "port", 8443), STRING_from_string(m_setsfile.get_string("proxy", "method", "")), ¶ms); + if( schema == "https" ) + { + CComPtr spDataTxTunnel; spAsynInnSocket->QueryInterface(IID_IHttpTxTunnel, (void **)&spDataTxTunnel); + spDataTxTunnel->SetEnabled(1); //强制直接代理 + + m_spAsynNetwork->CreateAsynPtlSocket(STRING_from_string("http"), (IUnknown **)&spAsynInnSocket.p, STRING_from_string(m_setsfile.get_string("ssl", "algo", "tls/1.0")), &spAsynPtlSocket ); + if( spAsynPtlSocket == NULL ) + { + printf("can't load plugin: http\n"); + return false; + } + } + else + { + spAsynPtlSocket = spAsynInnSocket; + } } else {// socks.proxy - if( memcmp(schema.c_str(), "http", 4) != 0 ) + if( schema != "http" && + schema != "https" ) { - printf("invalid schema: %s\n", url.c_str()); + printf("fail to parse %s\n", url.c_str()); return false; } - std::string version = m_setsfile.get_string("proxy", "version"); - if(!version.empty()) - version.insert(0, "/"); - CComPtr spAsynTmpSocket; - m_spAsynNetwork->CreateAsynPtlSocket( STRING_from_string("proxy"), (IUnknown **)&spAsynInnSocket.p, STRING_from_string(proxyname + version), &spAsynTmpSocket ); - if( spAsynTmpSocket == NULL ) { - printf("can't load plugin: proxy.%s\n", proxyname.c_str()); - return false; - } + std::string ver = m_setsfile.get_string("proxy", "version"); + if(!ver.empty()) + ver.insert(0, "/"); + + CComPtr spAsynTmpSocket; + m_spAsynNetwork->CreateAsynPtlSocket( STRING_from_string("proxy"), (IUnknown **)&spAsynInnSocket.p, STRING_from_string(proxyname + ver), &spAsynTmpSocket ); + if( spAsynTmpSocket == NULL ) + { + printf("can't load plugin: proxy.%s\n", proxyname.c_str()); + return false; + } + else + { + spAsynInnSocket = spAsynTmpSocket; + } - CComPtr spProxy; - spAsynTmpSocket->QueryInterface(IID_IAsynProxySocket, (void **)&spProxy); + CComPtr spProxy; + spAsynTmpSocket->QueryInterface(IID_IAsynProxySocket, (void **)&spProxy); - asynsdk::CKeyvalSetter params(1); - params.Set(STRING_from_string(";account"), 1, STRING_from_string(m_setsfile.get_string("proxy", "user") + ":" + m_setsfile.get_string("proxy", "password"))); - HRESULT hr = spProxy->SetProxyContext(STRING_from_string(m_setsfile.get_string("proxy", "host", "127.0.0.1")), (PORT)m_setsfile.get_long("proxy", "port", 1080), STRING_from_string(m_setsfile.get_string("proxy", "method", "")), ¶ms); + asynsdk::CKeyvalSetter params(1); + params.Set(STRING_from_string(";account"), 1, STRING_from_string(m_setsfile.get_string("proxy", "user") + ":" + m_setsfile.get_string("proxy", "password"))); + HRESULT hr = spProxy->SetProxyContext(STRING_from_string(m_setsfile.get_string("proxy", "host", "127.0.0.1")), (PORT)m_setsfile.get_long("proxy", "port", 1080), STRING_from_string(m_setsfile.get_string("proxy", "method", "")), ¶ms); + } - m_spAsynNetwork->CreateAsynPtlSocket(STRING_from_string("http"), (IUnknown **)&spAsynTmpSocket.p, STRING_from_string(schema=="http"? "tcp" : m_setsfile.get_string("ssl", "algo", "tls/1.0")), &spAsynPtlSocket ); + m_spAsynNetwork->CreateAsynPtlSocket(STRING_from_string("http"), (IUnknown **)&spAsynInnSocket.p, STRING_from_string(schema=="http"? "tcp" : m_setsfile.get_string("ssl", "algo", "tls/1.0")), &spAsynPtlSocket ); if( spAsynPtlSocket == NULL ) { printf("can't load plugin: http\n"); @@ -419,8 +455,7 @@ public: printf("start to connect %s:%d via %s-proxyserver[%s]\n", m_host.c_str(), m_port, proxyname.c_str(), m_setsfile.get_string("proxy", "host", "127.0.0.1").c_str()); } - CComPtr spAsynIoOperation; - m_spAsynNetwork->CreateAsynIoOperation(m_spAsynFrame, 0, 0, IID_IAsynNetIoOperation, (void **)&spAsynIoOperation); + CComPtr spAsynIoOperation; m_spAsynNetwork->CreateAsynIoOperation(m_spAsynFrame, 0, 0, IID_IAsynNetIoOperation, (void **)&spAsynIoOperation); m_spAsynTcpSocket->Connect(STRING_from_string(m_host), m_port, 0, spAsynIoOperation, m_setsfile.get_long("session", "connect_timeout", 2000/*2sec*/)); return true; } diff --git a/client/src/setting.cpp b/client/src/setting.cpp index 1868abfde72e6d90c022757ec5d65eaf23dce02c..493fb224d4ab8d47729ce813a3dd4e1a37152ec1 100755 --- a/client/src/setting.cpp +++ b/client/src/setting.cpp @@ -67,7 +67,10 @@ std::string setting::get_string(const std::string §ion, const std::string &e void setting::set_string(const std::string §ion, const std::string &entry, const std::string &value) { - m_key2vals[section + entry] = value; + if(!value.empty()) + { + m_key2vals[section + entry] = value; + } } long setting::get_long(const std::string §ion, const std::string &entry, long default_int ) diff --git a/client/src/setting.h b/client/src/setting.h index b26bf339d05d8b4a6733417a25c8807073f79e0a..4d11900815ec31dc0e311cff26968efabb6d6a2d 100755 --- a/client/src/setting.h +++ b/client/src/setting.h @@ -5,7 +5,7 @@ Copyright (c) netsecsp 2012-2032, All rights reserved. Author: Shengqian Yang, netsecsp@hotmail.com, China, last updated 05/01/2022 -http://aftpx.sf.net +http://ahttp.sf.net Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are diff --git a/client/src/stdafx.h b/client/src/stdafx.h index 8941f8e87d1745fe87b41d97e93672067f5bab3d..d6823b3a3b579d6433b46077fa6bb57b0f331037 100755 --- a/client/src/stdafx.h +++ b/client/src/stdafx.h @@ -10,7 +10,7 @@ #endif #endif -#define STRING_UPDATETIME "03/27/2023" +#define STRING_UPDATETIME "03/31/2023" #include #include diff --git a/server/3rd/bin/asyncore.dll b/server/3rd/bin/asyncore.dll index e407c1fae782c230509eb3061e3ddb482fae513e..757601bf017799147c8f68a43128cc6455cbd6a7 100755 Binary files a/server/3rd/bin/asyncore.dll and b/server/3rd/bin/asyncore.dll differ diff --git a/server/3rd/bin/asynfile.dll b/server/3rd/bin/asynfile.dll index 383360a4f3718334e7e1c93eb67275135bc45b43..0dd02817c83ad16edf747926fd0bde6a06525178 100755 Binary files a/server/3rd/bin/asynfile.dll and b/server/3rd/bin/asynfile.dll differ diff --git a/server/3rd/bin/asynipcs.dll b/server/3rd/bin/asynipcs.dll index 7b0a6961f15e1f15634c877ce402ef84c8fb01c9..0088267f98bddf25926d6c77eb7fea6ee6a24c5d 100755 Binary files a/server/3rd/bin/asynipcs.dll and b/server/3rd/bin/asynipcs.dll differ diff --git a/server/3rd/bin/asynneta.dll b/server/3rd/bin/asynneta.dll index 2daa602c4266e96dcdc8d9d53b2dca966a8e6ea1..e516be6b5c63f8ab67991c59ab3171e90bccca15 100755 Binary files a/server/3rd/bin/asynneta.dll and b/server/3rd/bin/asynneta.dll differ diff --git a/server/3rd/bin/asynsock.dll b/server/3rd/bin/asynsock.dll index efbae57968fb227eed274260ebb887e367c14ef0..e0d1b1b5f5bb39e0119fc3e19c9718069061474b 100755 Binary files a/server/3rd/bin/asynsock.dll and b/server/3rd/bin/asynsock.dll differ diff --git a/server/3rd/bin/console.dll b/server/3rd/bin/console.dll index be7febd9f44395cdeb0cdad6f693bda8af9a5fbd..7db0dd8b9f1ce85907f4eaa4dde9045bdbb88a74 100755 Binary files a/server/3rd/bin/console.dll and b/server/3rd/bin/console.dll differ diff --git a/server/3rd/bin/crashexplorer.dll b/server/3rd/bin/crashexplorer.dll index e7b7e7788d83c506b30f2a6c0bb39b4f5aa4ab81..d735c23298dfbc4f46f7264a3ad95c442fe12fd9 100755 Binary files a/server/3rd/bin/crashexplorer.dll and b/server/3rd/bin/crashexplorer.dll differ diff --git a/server/3rd/bin/dns.dll b/server/3rd/bin/dns.dll index 14d5740a7dc1ab7f3458a58078d884a8968b6570..cd72c1531ca267e85f3d5dc2c7309fb14271a0c0 100755 Binary files a/server/3rd/bin/dns.dll and b/server/3rd/bin/dns.dll differ diff --git a/server/3rd/bin/dtp.dll b/server/3rd/bin/dtp.dll index 550839e3bb3f454e12c8f4bd1e25aec1ccd11283..4cf8e254d3a16056cee8f2eb01d3b4bef9c0e246 100755 Binary files a/server/3rd/bin/dtp.dll and b/server/3rd/bin/dtp.dll differ diff --git a/server/3rd/bin/ftp.dll b/server/3rd/bin/ftp.dll index 6a6d07a4f7bba6699a5f7a813413abea3820f3ee..3c937d0b2814354b66693149e7b05850b0190afa 100755 Binary files a/server/3rd/bin/ftp.dll and b/server/3rd/bin/ftp.dll differ diff --git a/server/3rd/bin/http.dll b/server/3rd/bin/http.dll index afffb8b4497f639a0cc05627ea27282db343495b..cb74653dc2a79e34cac6a807d1ca898fd6d584ed 100755 Binary files a/server/3rd/bin/http.dll and b/server/3rd/bin/http.dll differ diff --git a/server/3rd/bin/lua.dll b/server/3rd/bin/lua.dll index 13bdcca5807ddc526ab78454783e3a37861eeb32..c5fe41e82f1ca637628e4643337ee6f65d18c03c 100755 Binary files a/server/3rd/bin/lua.dll and b/server/3rd/bin/lua.dll differ diff --git a/server/3rd/bin/proxy.dll b/server/3rd/bin/proxy.dll index e2e75ddfbabb7d547ef94a2ae9331a575364d89d..07c2d57420d4534aad106735158b5dc2aa6e0f13 100755 Binary files a/server/3rd/bin/proxy.dll and b/server/3rd/bin/proxy.dll differ diff --git a/server/3rd/bin/ras.dll b/server/3rd/bin/ras.dll index 35750ae7b49a8ce1967566ba9a949b4778c440ff..32bc166e36ede2ecb874416a829831b7c0dbb089 100755 Binary files a/server/3rd/bin/ras.dll and b/server/3rd/bin/ras.dll differ diff --git a/server/3rd/bin/rtsp.dll b/server/3rd/bin/rtsp.dll index 631950d11adc1c994f62bf5c3d0b1d4989716baa..2303ac7e275e623524ed2933d5f1c4c72384751d 100755 Binary files a/server/3rd/bin/rtsp.dll and b/server/3rd/bin/rtsp.dll differ diff --git a/server/3rd/bin/sqlite.dll b/server/3rd/bin/sqlite.dll index aa8da1fb65642d5ef08525346bffd7d7bebe80ac..a6fbfe8475482f22bdb4a6cd9448f30a12291d8e 100755 Binary files a/server/3rd/bin/sqlite.dll and b/server/3rd/bin/sqlite.dll differ diff --git a/server/3rd/bin/ssl.dll b/server/3rd/bin/ssl.dll index 187596997e4f0f438b5208285d583c3c2de55f1b..6af725df0bda83e93c18fdb5de704b9ccad78bb5 100755 Binary files a/server/3rd/bin/ssl.dll and b/server/3rd/bin/ssl.dll differ diff --git a/server/3rd/bin/websocket.dll b/server/3rd/bin/websocket.dll index c94343931d123de18500c155f9774406acd619d2..c62fd5bee6652248725ad94d5afd196ffdc903e6 100755 Binary files a/server/3rd/bin/websocket.dll and b/server/3rd/bin/websocket.dll differ diff --git a/server/3rd/bin/x64/asyncore.dll b/server/3rd/bin/x64/asyncore.dll index daea2ec11b92c37ceb3540ba9c628d1b9318bc76..3e000aed3e6987349d84ab5edf6703c71591e5c3 100755 Binary files a/server/3rd/bin/x64/asyncore.dll and b/server/3rd/bin/x64/asyncore.dll differ diff --git a/server/3rd/bin/x64/asynfile.dll b/server/3rd/bin/x64/asynfile.dll index bdea71ab53e19e1dc69e52e42a17a5424e9ecc71..fd4e73bc1fa74bc85649a73656f0a44cd516493c 100755 Binary files a/server/3rd/bin/x64/asynfile.dll and b/server/3rd/bin/x64/asynfile.dll differ diff --git a/server/3rd/bin/x64/asynipcs.dll b/server/3rd/bin/x64/asynipcs.dll index e3ebb4cdb9d56425dc30c8427a99e5f27a323cdb..30ffef8323c7ddf8460e856c5a4f8609da9d368f 100755 Binary files a/server/3rd/bin/x64/asynipcs.dll and b/server/3rd/bin/x64/asynipcs.dll differ diff --git a/server/3rd/bin/x64/asynneta.dll b/server/3rd/bin/x64/asynneta.dll index 36d236bd1e9d79c04cbdf0d013fe36def6fe9e42..854330eb9494a12033dafba10f67db44273da529 100755 Binary files a/server/3rd/bin/x64/asynneta.dll and b/server/3rd/bin/x64/asynneta.dll differ diff --git a/server/3rd/bin/x64/asynsock.dll b/server/3rd/bin/x64/asynsock.dll index 2c08bf4fc7ff5dfa401969379e2906ed5b1484d5..1d5b84cbf30fdb5130cbc8d0d73c284356c22849 100755 Binary files a/server/3rd/bin/x64/asynsock.dll and b/server/3rd/bin/x64/asynsock.dll differ diff --git a/server/3rd/bin/x64/console.dll b/server/3rd/bin/x64/console.dll index baef284e365b17854db20b16b39f0ddf4bf954d6..65868738ccc2e1945d53ceb17bf53ac118bc7922 100755 Binary files a/server/3rd/bin/x64/console.dll and b/server/3rd/bin/x64/console.dll differ diff --git a/server/3rd/bin/x64/crashexplorer.dll b/server/3rd/bin/x64/crashexplorer.dll index 706ef00d61b34f9d732e4c1a19c36ac7d9941c47..c38e75b2427f128865dd413c3a0eb63cf15e28e6 100755 Binary files a/server/3rd/bin/x64/crashexplorer.dll and b/server/3rd/bin/x64/crashexplorer.dll differ diff --git a/server/3rd/bin/x64/dns.dll b/server/3rd/bin/x64/dns.dll index db0e1de40fcf50e7b99b0635b3c68407b196d95e..53dde5872edf3a0ecaaf37da39f94445aee6c7f3 100755 Binary files a/server/3rd/bin/x64/dns.dll and b/server/3rd/bin/x64/dns.dll differ diff --git a/server/3rd/bin/x64/dtp.dll b/server/3rd/bin/x64/dtp.dll index 87003ab56c049edba199a2e82c072edd0b6b1698..b675416d14bd6bf91dcf02a3af8ede501c70a1f9 100755 Binary files a/server/3rd/bin/x64/dtp.dll and b/server/3rd/bin/x64/dtp.dll differ diff --git a/server/3rd/bin/x64/ftp.dll b/server/3rd/bin/x64/ftp.dll index 9693d0d77012000703a9af157d29f16a92ea34c5..4ae64b68ec3958c5fc4a14b64546533dfd680f5c 100755 Binary files a/server/3rd/bin/x64/ftp.dll and b/server/3rd/bin/x64/ftp.dll differ diff --git a/server/3rd/bin/x64/http.dll b/server/3rd/bin/x64/http.dll index 5665cf8f17cfacc4eceb42d689e2691f743952be..73534d188fdc37e3bf78ceb9437419c9ae952ff9 100755 Binary files a/server/3rd/bin/x64/http.dll and b/server/3rd/bin/x64/http.dll differ diff --git a/server/3rd/bin/x64/lua.dll b/server/3rd/bin/x64/lua.dll index ca30949307ddf0b85bb28a15ae61b9a7b61cb4c7..3f0d28bb6dbcfd2fe8b476570df9c73ccc7c31a6 100755 Binary files a/server/3rd/bin/x64/lua.dll and b/server/3rd/bin/x64/lua.dll differ diff --git a/server/3rd/bin/x64/proxy.dll b/server/3rd/bin/x64/proxy.dll index 3dffbc23980fc873d1b4a2ad15bfab919911a6f7..63cbe11322c0b313804a8c14e7adc376a884425a 100755 Binary files a/server/3rd/bin/x64/proxy.dll and b/server/3rd/bin/x64/proxy.dll differ diff --git a/server/3rd/bin/x64/ras.dll b/server/3rd/bin/x64/ras.dll index 6026ba1e38e1bd88fe660619358ab8c112cca42d..2447b269c532cbb0cf6ff2c8401c2cb8bbeb90fb 100755 Binary files a/server/3rd/bin/x64/ras.dll and b/server/3rd/bin/x64/ras.dll differ diff --git a/server/3rd/bin/x64/rtsp.dll b/server/3rd/bin/x64/rtsp.dll index e0afcef02f951763e2b3f10f770bb7fe4244979e..1ac34cfb06aea6a0875df4b872712926bc15c265 100755 Binary files a/server/3rd/bin/x64/rtsp.dll and b/server/3rd/bin/x64/rtsp.dll differ diff --git a/server/3rd/bin/x64/sqlite.dll b/server/3rd/bin/x64/sqlite.dll index 93689bdae56d0242ed40e530f0e613e8ceb8effa..a2f7e8b1cc91342309da091ba3736553cb4e3022 100755 Binary files a/server/3rd/bin/x64/sqlite.dll and b/server/3rd/bin/x64/sqlite.dll differ diff --git a/server/3rd/bin/x64/ssl.dll b/server/3rd/bin/x64/ssl.dll index b90fa0e39d756911ca399de57d3cec94b35b0b47..d2a5733c21ce50309450b76f6540827e1ae1e08e 100755 Binary files a/server/3rd/bin/x64/ssl.dll and b/server/3rd/bin/x64/ssl.dll differ diff --git a/server/3rd/bin/x64/websocket.dll b/server/3rd/bin/x64/websocket.dll index afbdcc0cb02f866a37518414c5f5af3dbcb718d8..e2af30a90cac5c2ad65dc00aab954bede0cd1921 100755 Binary files a/server/3rd/bin/x64/websocket.dll and b/server/3rd/bin/x64/websocket.dll differ diff --git a/server/3rd/bin/x64/zip.dll b/server/3rd/bin/x64/zip.dll index dec7687d569366b5a082bc5cf559f809ed71ff65..3dd09b9a1a89fabd928f59961032dfc8634fdefe 100755 Binary files a/server/3rd/bin/x64/zip.dll and b/server/3rd/bin/x64/zip.dll differ diff --git a/server/3rd/bin/zip.dll b/server/3rd/bin/zip.dll index 838d9bf49416f1c74e63929f96b0771d571eb255..8823d0fab103056405a717c8ca3e5b2438379cfd 100755 Binary files a/server/3rd/bin/zip.dll and b/server/3rd/bin/zip.dll differ diff --git a/server/3rd/lib/asynsdk_mini-MD.lib b/server/3rd/lib/asynsdk_mini-MD.lib index 751d8956c487353dc4dbd5e9a348d5113f606965..38a1d5706c4dbacec191e192a4751b61e9ab2df1 100755 Binary files a/server/3rd/lib/asynsdk_mini-MD.lib and b/server/3rd/lib/asynsdk_mini-MD.lib differ diff --git a/server/3rd/lib/asynsdk_mini-MDd.lib b/server/3rd/lib/asynsdk_mini-MDd.lib index 401371cc0a5d7574a3cb9d89314eccabfb0f4590..f5a8d24febaeba652707c9e7b45978939cddf479 100755 Binary files a/server/3rd/lib/asynsdk_mini-MDd.lib and b/server/3rd/lib/asynsdk_mini-MDd.lib differ diff --git a/server/3rd/lib/asynsdk_mini-MT.lib b/server/3rd/lib/asynsdk_mini-MT.lib index a9520ab9fc4848bfffd63d93ccb10192c81eccc9..72042d59e2b4e9d924732c08adfc5861e0aac0e8 100755 Binary files a/server/3rd/lib/asynsdk_mini-MT.lib and b/server/3rd/lib/asynsdk_mini-MT.lib differ diff --git a/server/3rd/lib/asynsdk_mini-MTd.lib b/server/3rd/lib/asynsdk_mini-MTd.lib index 715c47644f2027ce708ad8047de53e56206adc66..bea53958feb111df2eb8666199e4807a1eea986e 100755 Binary files a/server/3rd/lib/asynsdk_mini-MTd.lib and b/server/3rd/lib/asynsdk_mini-MTd.lib differ diff --git a/server/3rd/lib/x64/asynsdk_mini-MD.lib b/server/3rd/lib/x64/asynsdk_mini-MD.lib index 991a1c835100a6e6252798a367838486acce4fb0..aa4d4725a1ad3e9bfa4fbd043760b42a4b46262a 100755 Binary files a/server/3rd/lib/x64/asynsdk_mini-MD.lib and b/server/3rd/lib/x64/asynsdk_mini-MD.lib differ diff --git a/server/3rd/lib/x64/asynsdk_mini-MDd.lib b/server/3rd/lib/x64/asynsdk_mini-MDd.lib index 0236c3f2ea31a83bd0772ff3c815d038feaeae24..ddfc9a721b5dfb7178d8c160938c121874c7ab11 100755 Binary files a/server/3rd/lib/x64/asynsdk_mini-MDd.lib and b/server/3rd/lib/x64/asynsdk_mini-MDd.lib differ diff --git a/server/3rd/lib/x64/asynsdk_mini-MT.lib b/server/3rd/lib/x64/asynsdk_mini-MT.lib index 6eafb078e8974e0d80a6e52250528b163b324409..ca78afc995d72be57f3825b68998615099b63ca7 100755 Binary files a/server/3rd/lib/x64/asynsdk_mini-MT.lib and b/server/3rd/lib/x64/asynsdk_mini-MT.lib differ diff --git a/server/3rd/lib/x64/asynsdk_mini-MTd.lib b/server/3rd/lib/x64/asynsdk_mini-MTd.lib index f4b5e37be86134a66b919079908222e349befaf1..016fb17edb4ebe9a836f5a2efee5ba252a506cb9 100755 Binary files a/server/3rd/lib/x64/asynsdk_mini-MTd.lib and b/server/3rd/lib/x64/asynsdk_mini-MTd.lib differ diff --git a/server/bin/ahttpserver-x64.exe b/server/bin/ahttpserver-x64.exe index c54e41eb33cd767ff7f04e6ba889ea37d323bee6..5547b34468201931433b2f00bce7b24457524484 100755 Binary files a/server/bin/ahttpserver-x64.exe and b/server/bin/ahttpserver-x64.exe differ diff --git a/server/bin/ahttpserver.exe b/server/bin/ahttpserver.exe index ef86ea8819bf0f7df66abbc46dae14acb1cd3a8e..1b6cacd2468c7c97ebca3cae0b9ea4053afa6698 100755 Binary files a/server/bin/ahttpserver.exe and b/server/bin/ahttpserver.exe differ diff --git a/server/src/setting.cpp b/server/src/setting.cpp index 1868abfde72e6d90c022757ec5d65eaf23dce02c..493fb224d4ab8d47729ce813a3dd4e1a37152ec1 100755 --- a/server/src/setting.cpp +++ b/server/src/setting.cpp @@ -67,7 +67,10 @@ std::string setting::get_string(const std::string §ion, const std::string &e void setting::set_string(const std::string §ion, const std::string &entry, const std::string &value) { - m_key2vals[section + entry] = value; + if(!value.empty()) + { + m_key2vals[section + entry] = value; + } } long setting::get_long(const std::string §ion, const std::string &entry, long default_int ) diff --git a/server/src/stdafx.h b/server/src/stdafx.h index 8941f8e87d1745fe87b41d97e93672067f5bab3d..d6823b3a3b579d6433b46077fa6bb57b0f331037 100755 --- a/server/src/stdafx.h +++ b/server/src/stdafx.h @@ -10,7 +10,7 @@ #endif #endif -#define STRING_UPDATETIME "03/27/2023" +#define STRING_UPDATETIME "03/31/2023" #include #include