mirror of
https://gitee.com/acl-dev/acl.git
synced 2024-11-29 18:37:41 +08:00
整理工程,优化代码
This commit is contained in:
parent
cf2528eb7c
commit
d8fd96aee8
@ -5,7 +5,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "socket_stream", "lib_acl_cp
|
||||
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B} = {B40213C2-507C-4C7F-A6E1-B850C9BDC27B}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mime", "lib_acl_cpp\samples\mime\mime.vcproj", "{52AA7352-CE48-4F60-B92D-1EB16A79FE54}"
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mime", "lib_acl_cpp\samples\mime\mime\mime.vcproj", "{52AA7352-CE48-4F60-B92D-1EB16A79FE54}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC} = {6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}
|
||||
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B} = {B40213C2-507C-4C7F-A6E1-B850C9BDC27B}
|
||||
@ -22,12 +22,12 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "fstream", "lib_acl_cpp\samp
|
||||
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B} = {B40213C2-507C-4C7F-A6E1-B850C9BDC27B}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mime_base64", "lib_acl_cpp\samples\mime_base64\mime_base64.vcproj", "{19CB30E5-2672-4A8B-96FB-9C42970CCF69}"
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mime_base64", "lib_acl_cpp\samples\mime\mime_base64\mime_base64.vcproj", "{19CB30E5-2672-4A8B-96FB-9C42970CCF69}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC} = {6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mime_qp", "lib_acl_cpp\samples\mime_qp\mime_qp.vcproj", "{5DC79C83-9DE8-46B3-A172-8A4E3371878B}"
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mime_qp", "lib_acl_cpp\samples\mime\mime_qp\mime_qp.vcproj", "{5DC79C83-9DE8-46B3-A172-8A4E3371878B}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC} = {6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}
|
||||
EndProjectSection
|
||||
@ -94,14 +94,14 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "HttpClient", "lib_acl_cpp\s
|
||||
{FE724EF7-3763-4E78-BDF5-BCBC075719FD} = {FE724EF7-3763-4E78-BDF5-BCBC075719FD}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ssl_client", "lib_acl_cpp\samples\ssl_client\ssl_client.vcproj", "{B14C93A6-DABE-48F9-A78C-C94049B69984}"
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ssl_client", "lib_acl_cpp\samples\ssl\ssl_client\ssl_client.vcproj", "{B14C93A6-DABE-48F9-A78C-C94049B69984}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC} = {6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}
|
||||
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B} = {B40213C2-507C-4C7F-A6E1-B850C9BDC27B}
|
||||
{FE724EF7-3763-4E78-BDF5-BCBC075719FD} = {FE724EF7-3763-4E78-BDF5-BCBC075719FD}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ssl_aio_client", "lib_acl_cpp\samples\ssl_aio_client\ssl_aio_client.vcproj", "{8CF882F1-3D3C-4233-BCA6-7F90E49B80BE}"
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ssl_aio_client", "lib_acl_cpp\samples\aio\ssl_aio_client\ssl_aio_client.vcproj", "{8CF882F1-3D3C-4233-BCA6-7F90E49B80BE}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC} = {6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}
|
||||
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B} = {B40213C2-507C-4C7F-A6E1-B850C9BDC27B}
|
||||
@ -139,24 +139,24 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mysql", "lib_acl_cpp\sample
|
||||
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B} = {B40213C2-507C-4C7F-A6E1-B850C9BDC27B}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "master_threads", "lib_acl_cpp\samples\master_threads\master_threads.vcproj", "{FA0EEABF-CC21-4A99-89AA-D0379175E55A}"
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "master_threads", "lib_acl_cpp\samples\master\master_threads\master_threads.vcproj", "{FA0EEABF-CC21-4A99-89AA-D0379175E55A}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC} = {6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}
|
||||
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B} = {B40213C2-507C-4C7F-A6E1-B850C9BDC27B}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "master_aio", "lib_acl_cpp\samples\master_aio\master_aio.vcproj", "{4B7C83E5-C34F-4C42-9A37-E5F33FBA2EA3}"
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "master_aio", "lib_acl_cpp\samples\master\master_aio\master_aio.vcproj", "{4B7C83E5-C34F-4C42-9A37-E5F33FBA2EA3}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC} = {6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}
|
||||
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B} = {B40213C2-507C-4C7F-A6E1-B850C9BDC27B}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "master_trigger", "lib_acl_cpp\samples\master_trigger\master_trigger.vcproj", "{80F0213B-A053-4420-BAF9-4657AD8473DA}"
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "master_trigger", "lib_acl_cpp\samples\master\master_trigger\master_trigger.vcproj", "{80F0213B-A053-4420-BAF9-4657AD8473DA}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC} = {6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "master_proc", "lib_acl_cpp\samples\master_proc\master_proc.vcproj", "{B7EE43F4-7541-48A7-A066-DA60A55E67ED}"
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "master_proc", "lib_acl_cpp\samples\master\master_proc\master_proc.vcproj", "{B7EE43F4-7541-48A7-A066-DA60A55E67ED}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC} = {6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}
|
||||
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B} = {B40213C2-507C-4C7F-A6E1-B850C9BDC27B}
|
||||
@ -276,7 +276,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "memcache_pool", "lib_acl_cp
|
||||
{FE724EF7-3763-4E78-BDF5-BCBC075719FD} = {FE724EF7-3763-4E78-BDF5-BCBC075719FD}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "master_udp", "lib_acl_cpp\samples\master_udp\master_udp.vcproj", "{58FE3581-C997-4BD5-9AC6-AEEB54A43D2C}"
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "master_udp", "lib_acl_cpp\samples\master\master_udp\master_udp.vcproj", "{58FE3581-C997-4BD5-9AC6-AEEB54A43D2C}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC} = {6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}
|
||||
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B} = {B40213C2-507C-4C7F-A6E1-B850C9BDC27B}
|
||||
|
@ -165,7 +165,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "HttpClient", "lib_acl_cpp\s
|
||||
{FE724EF7-3763-4E78-BDF5-BCBC075719FD} = {FE724EF7-3763-4E78-BDF5-BCBC075719FD}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "master_aio", "lib_acl_cpp\samples\master_aio\master_aio_vc2008.vcproj", "{4B7C83E5-C34F-4C42-9A37-E5F33FBA2EA3}"
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "master_aio", "lib_acl_cpp\samples\master\master_aio\master_aio_vc2008.vcproj", "{4B7C83E5-C34F-4C42-9A37-E5F33FBA2EA3}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{64BF4D83-53BB-4045-8522-9FF9F73B14D4} = {64BF4D83-53BB-4045-8522-9FF9F73B14D4}
|
||||
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B} = {B40213C2-507C-4C7F-A6E1-B850C9BDC27B}
|
||||
@ -179,35 +179,35 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "master_aio_proxy", "lib_acl
|
||||
{FE724EF7-3763-4E78-BDF5-BCBC075719FD} = {FE724EF7-3763-4E78-BDF5-BCBC075719FD}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "master_proc", "lib_acl_cpp\samples\master_proc\master_proc_vc2008.vcproj", "{B7EE43F4-7541-48A7-A066-DA60A55E67ED}"
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "master_proc", "lib_acl_cpp\samples\master\master_proc\master_proc_vc2008.vcproj", "{B7EE43F4-7541-48A7-A066-DA60A55E67ED}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{64BF4D83-53BB-4045-8522-9FF9F73B14D4} = {64BF4D83-53BB-4045-8522-9FF9F73B14D4}
|
||||
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B} = {B40213C2-507C-4C7F-A6E1-B850C9BDC27B}
|
||||
{FE724EF7-3763-4E78-BDF5-BCBC075719FD} = {FE724EF7-3763-4E78-BDF5-BCBC075719FD}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "master_threads", "lib_acl_cpp\samples\master_threads\master_threads_vc2008.vcproj", "{FA0EEABF-CC21-4A99-89AA-D0379175E55A}"
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "master_threads", "lib_acl_cpp\samples\master\master_threads\master_threads_vc2008.vcproj", "{FA0EEABF-CC21-4A99-89AA-D0379175E55A}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{64BF4D83-53BB-4045-8522-9FF9F73B14D4} = {64BF4D83-53BB-4045-8522-9FF9F73B14D4}
|
||||
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B} = {B40213C2-507C-4C7F-A6E1-B850C9BDC27B}
|
||||
{FE724EF7-3763-4E78-BDF5-BCBC075719FD} = {FE724EF7-3763-4E78-BDF5-BCBC075719FD}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "master_trigger", "lib_acl_cpp\samples\master_trigger\master_trigger_vc2008.vcproj", "{80F0213B-A053-4420-BAF9-4657AD8473DA}"
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "master_trigger", "lib_acl_cpp\samples\master\master_trigger\master_trigger_vc2008.vcproj", "{80F0213B-A053-4420-BAF9-4657AD8473DA}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{64BF4D83-53BB-4045-8522-9FF9F73B14D4} = {64BF4D83-53BB-4045-8522-9FF9F73B14D4}
|
||||
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B} = {B40213C2-507C-4C7F-A6E1-B850C9BDC27B}
|
||||
{FE724EF7-3763-4E78-BDF5-BCBC075719FD} = {FE724EF7-3763-4E78-BDF5-BCBC075719FD}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "master_udp", "lib_acl_cpp\samples\master_udp\master_udp_vc2008.vcproj", "{1DD31312-7815-49A6-AD50-82205FA8C4A5}"
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "master_udp", "lib_acl_cpp\samples\master\master_udp\master_udp_vc2008.vcproj", "{1DD31312-7815-49A6-AD50-82205FA8C4A5}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{64BF4D83-53BB-4045-8522-9FF9F73B14D4} = {64BF4D83-53BB-4045-8522-9FF9F73B14D4}
|
||||
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B} = {B40213C2-507C-4C7F-A6E1-B850C9BDC27B}
|
||||
{FE724EF7-3763-4E78-BDF5-BCBC075719FD} = {FE724EF7-3763-4E78-BDF5-BCBC075719FD}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "master_udp_threads", "lib_acl_cpp\samples\master_udp_threads\master_udp_threads_vc2008.vcproj", "{FCF1825E-6A9C-4621-832C-D7FC6810707D}"
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "master_udp_threads", "lib_acl_cpp\samples\master\master_udp_threads\master_udp_threads_vc2008.vcproj", "{FCF1825E-6A9C-4621-832C-D7FC6810707D}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{64BF4D83-53BB-4045-8522-9FF9F73B14D4} = {64BF4D83-53BB-4045-8522-9FF9F73B14D4}
|
||||
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B} = {B40213C2-507C-4C7F-A6E1-B850C9BDC27B}
|
||||
@ -228,21 +228,21 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "memcache_pool", "lib_acl_cp
|
||||
{FE724EF7-3763-4E78-BDF5-BCBC075719FD} = {FE724EF7-3763-4E78-BDF5-BCBC075719FD}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mime", "lib_acl_cpp\samples\mime\mime_vc2008.vcproj", "{52AA7352-CE48-4F60-B92D-1EB16A79FE54}"
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mime", "lib_acl_cpp\samples\mime\mime\mime_vc2008.vcproj", "{52AA7352-CE48-4F60-B92D-1EB16A79FE54}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{64BF4D83-53BB-4045-8522-9FF9F73B14D4} = {64BF4D83-53BB-4045-8522-9FF9F73B14D4}
|
||||
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B} = {B40213C2-507C-4C7F-A6E1-B850C9BDC27B}
|
||||
{FE724EF7-3763-4E78-BDF5-BCBC075719FD} = {FE724EF7-3763-4E78-BDF5-BCBC075719FD}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mime_base64", "lib_acl_cpp\samples\mime_base64\mime_base64_vc2008.vcproj", "{19CB30E5-2672-4A8B-96FB-9C42970CCF69}"
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mime_base64", "lib_acl_cpp\samples\mime\mime_base64\mime_base64_vc2008.vcproj", "{19CB30E5-2672-4A8B-96FB-9C42970CCF69}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{64BF4D83-53BB-4045-8522-9FF9F73B14D4} = {64BF4D83-53BB-4045-8522-9FF9F73B14D4}
|
||||
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B} = {B40213C2-507C-4C7F-A6E1-B850C9BDC27B}
|
||||
{FE724EF7-3763-4E78-BDF5-BCBC075719FD} = {FE724EF7-3763-4E78-BDF5-BCBC075719FD}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mime_qp", "lib_acl_cpp\samples\mime_qp\mime_qp_vc2008.vcproj", "{5DC79C83-9DE8-46B3-A172-8A4E3371878B}"
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mime_qp", "lib_acl_cpp\samples\mime\mime_qp\mime_qp_vc2008.vcproj", "{5DC79C83-9DE8-46B3-A172-8A4E3371878B}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{64BF4D83-53BB-4045-8522-9FF9F73B14D4} = {64BF4D83-53BB-4045-8522-9FF9F73B14D4}
|
||||
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B} = {B40213C2-507C-4C7F-A6E1-B850C9BDC27B}
|
||||
@ -312,14 +312,14 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sqlite", "lib_acl_cpp\sampl
|
||||
{FE724EF7-3763-4E78-BDF5-BCBC075719FD} = {FE724EF7-3763-4E78-BDF5-BCBC075719FD}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ssl_aio_client", "lib_acl_cpp\samples\ssl_aio_client\ssl_aio_client_vc2008.vcproj", "{8CF882F1-3D3C-4233-BCA6-7F90E49B80BE}"
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ssl_aio_client", "lib_acl_cpp\samples\aio\ssl_aio_client\ssl_aio_client_vc2008.vcproj", "{8CF882F1-3D3C-4233-BCA6-7F90E49B80BE}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{64BF4D83-53BB-4045-8522-9FF9F73B14D4} = {64BF4D83-53BB-4045-8522-9FF9F73B14D4}
|
||||
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B} = {B40213C2-507C-4C7F-A6E1-B850C9BDC27B}
|
||||
{FE724EF7-3763-4E78-BDF5-BCBC075719FD} = {FE724EF7-3763-4E78-BDF5-BCBC075719FD}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ssl_client", "lib_acl_cpp\samples\ssl_client\ssl_client_vc2008.vcproj", "{B14C93A6-DABE-48F9-A78C-C94049B69984}"
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ssl_client", "lib_acl_cpp\samples\ssl\ssl_client\ssl_client_vc2008.vcproj", "{B14C93A6-DABE-48F9-A78C-C94049B69984}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{64BF4D83-53BB-4045-8522-9FF9F73B14D4} = {64BF4D83-53BB-4045-8522-9FF9F73B14D4}
|
||||
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B} = {B40213C2-507C-4C7F-A6E1-B850C9BDC27B}
|
||||
@ -437,6 +437,10 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "blank_line", "lib_acl_cpp\s
|
||||
{FE724EF7-3763-4E78-BDF5-BCBC075719FD} = {FE724EF7-3763-4E78-BDF5-BCBC075719FD}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ssl", "ssl", "{9C63E67F-F150-4B95-B578-12E6BD066191}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ssl_server", "lib_acl_cpp\samples\ssl\ssl_server\ssl_server_vc2008.vcproj", "{FEBEA70A-A560-4B26-8101-71190CCE2DB2}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Win32 = Debug|Win32
|
||||
@ -939,6 +943,14 @@ Global
|
||||
{7EC4EF89-6523-44A8-9DCE-672FEAE82A7C}.Release|Win32.Build.0 = Release|Win32
|
||||
{7EC4EF89-6523-44A8-9DCE-672FEAE82A7C}.Releasedll|Win32.ActiveCfg = Releasedll|Win32
|
||||
{7EC4EF89-6523-44A8-9DCE-672FEAE82A7C}.Releasedll|Win32.Build.0 = Releasedll|Win32
|
||||
{FEBEA70A-A560-4B26-8101-71190CCE2DB2}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{FEBEA70A-A560-4B26-8101-71190CCE2DB2}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{FEBEA70A-A560-4B26-8101-71190CCE2DB2}.DebugDll|Win32.ActiveCfg = DebugDll|Win32
|
||||
{FEBEA70A-A560-4B26-8101-71190CCE2DB2}.DebugDll|Win32.Build.0 = DebugDll|Win32
|
||||
{FEBEA70A-A560-4B26-8101-71190CCE2DB2}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{FEBEA70A-A560-4B26-8101-71190CCE2DB2}.Release|Win32.Build.0 = Release|Win32
|
||||
{FEBEA70A-A560-4B26-8101-71190CCE2DB2}.Releasedll|Win32.ActiveCfg = ReleaseDll|Win32
|
||||
{FEBEA70A-A560-4B26-8101-71190CCE2DB2}.Releasedll|Win32.Build.0 = ReleaseDll|Win32
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
@ -966,6 +978,7 @@ Global
|
||||
{F6292B2C-2C57-40E1-805F-86D9FB1C3251} = {4FE55739-6D3E-4FA7-BC10-05AB84E3D721}
|
||||
{F7B28783-B507-42D8-BB2B-4B61E2B49FB7} = {4FE55739-6D3E-4FA7-BC10-05AB84E3D721}
|
||||
{E6FFFC99-AF28-4DD2-ACCF-7003498DF653} = {4FE55739-6D3E-4FA7-BC10-05AB84E3D721}
|
||||
{9C63E67F-F150-4B95-B578-12E6BD066191} = {4FE55739-6D3E-4FA7-BC10-05AB84E3D721}
|
||||
{9A04F86E-D4CB-45ED-9BB6-9939B9400B6F} = {B8331BFA-4F66-41B8-9A0F-8B7617DC07B8}
|
||||
{BE2DF8B2-2DCD-4F32-99B9-0B0CA24BFAD9} = {B8331BFA-4F66-41B8-9A0F-8B7617DC07B8}
|
||||
{956FA905-A77F-41FE-A4BE-C3BD3B5B3E83} = {B8331BFA-4F66-41B8-9A0F-8B7617DC07B8}
|
||||
@ -1004,12 +1017,13 @@ Global
|
||||
{7680672C-4C9B-4BE8-8BAE-BB23B951AAA0} = {462CDA64-00AD-4468-B0CD-A24D8897BE04}
|
||||
{7DA0AC89-62E4-4D02-9BC5-C32E6846E168} = {462CDA64-00AD-4468-B0CD-A24D8897BE04}
|
||||
{41FA5224-3315-4CDA-9C44-19085049F179} = {462CDA64-00AD-4468-B0CD-A24D8897BE04}
|
||||
{B14C93A6-DABE-48F9-A78C-C94049B69984} = {462CDA64-00AD-4468-B0CD-A24D8897BE04}
|
||||
{5BE9D250-12FD-48D2-B918-035E079E5BD0} = {F3E793C9-05F6-46CC-AFC1-6A3590AC2B4F}
|
||||
{6319215C-021F-4439-A085-D1F35BF6E85A} = {F3E793C9-05F6-46CC-AFC1-6A3590AC2B4F}
|
||||
{C94BEF01-706C-49A7-9FF1-9D87FA5BB8E7} = {E6FFFC99-AF28-4DD2-ACCF-7003498DF653}
|
||||
{3538D216-868E-4F9A-BC88-57A1A8F757F9} = {E6FFFC99-AF28-4DD2-ACCF-7003498DF653}
|
||||
{3FC3D573-2A24-42F6-927F-5E4631CF48C8} = {E6FFFC99-AF28-4DD2-ACCF-7003498DF653}
|
||||
{7EC4EF89-6523-44A8-9DCE-672FEAE82A7C} = {E6FFFC99-AF28-4DD2-ACCF-7003498DF653}
|
||||
{B14C93A6-DABE-48F9-A78C-C94049B69984} = {9C63E67F-F150-4B95-B578-12E6BD066191}
|
||||
{FEBEA70A-A560-4B26-8101-71190CCE2DB2} = {9C63E67F-F150-4B95-B578-12E6BD066191}
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
|
@ -7,7 +7,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "socket_stream", "lib_acl_cp
|
||||
{FE724EF7-3763-4E78-BDF5-BCBC075719FD} = {FE724EF7-3763-4E78-BDF5-BCBC075719FD}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mime", "lib_acl_cpp\samples\mime\mime.vcxproj", "{52AA7352-CE48-4F60-B92D-1EB16A79FE54}"
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mime", "lib_acl_cpp\samples\mime\mime\mime.vcxproj", "{52AA7352-CE48-4F60-B92D-1EB16A79FE54}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC} = {6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}
|
||||
EndProjectSection
|
||||
@ -26,14 +26,14 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "fstream", "lib_acl_cpp\samp
|
||||
{FE724EF7-3763-4E78-BDF5-BCBC075719FD} = {FE724EF7-3763-4E78-BDF5-BCBC075719FD}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mime_base64", "lib_acl_cpp\samples\mime_base64\mime_base64.vcxproj", "{19CB30E5-2672-4A8B-96FB-9C42970CCF69}"
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mime_base64", "lib_acl_cpp\samples\mime\mime_base64\mime_base64.vcxproj", "{19CB30E5-2672-4A8B-96FB-9C42970CCF69}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC} = {6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}
|
||||
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B} = {B40213C2-507C-4C7F-A6E1-B850C9BDC27B}
|
||||
{FE724EF7-3763-4E78-BDF5-BCBC075719FD} = {FE724EF7-3763-4E78-BDF5-BCBC075719FD}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mime_qp", "lib_acl_cpp\samples\mime_qp\mime_qp.vcxproj", "{5DC79C83-9DE8-46B3-A172-8A4E3371878B}"
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mime_qp", "lib_acl_cpp\samples\mime\mime_qp\mime_qp.vcxproj", "{5DC79C83-9DE8-46B3-A172-8A4E3371878B}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC} = {6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}
|
||||
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B} = {B40213C2-507C-4C7F-A6E1-B850C9BDC27B}
|
||||
|
@ -65,20 +65,20 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "md5", "lib_acl_cpp\samples\
|
||||
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B} = {B40213C2-507C-4C7F-A6E1-B850C9BDC27B}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mime", "lib_acl_cpp\samples\mime\mime_vc2012.vcxproj", "{52AA7352-CE48-4F60-B92D-1EB16A79FE54}"
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mime", "lib_acl_cpp\samples\mime\mime\mime_vc2012.vcxproj", "{52AA7352-CE48-4F60-B92D-1EB16A79FE54}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC} = {6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}
|
||||
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B} = {B40213C2-507C-4C7F-A6E1-B850C9BDC27B}
|
||||
{FE724EF7-3763-4E78-BDF5-BCBC075719FD} = {FE724EF7-3763-4E78-BDF5-BCBC075719FD}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mime_base64", "lib_acl_cpp\samples\mime_base64\mime_base64_vc2012.vcxproj", "{19CB30E5-2672-4A8B-96FB-9C42970CCF69}"
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mime_base64", "lib_acl_cpp\samples\mime\mime_base64\mime_base64_vc2012.vcxproj", "{19CB30E5-2672-4A8B-96FB-9C42970CCF69}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC} = {6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}
|
||||
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B} = {B40213C2-507C-4C7F-A6E1-B850C9BDC27B}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mime_qp", "lib_acl_cpp\samples\mime_qp\mime_qp_vc2012.vcxproj", "{5DC79C83-9DE8-46B3-A172-8A4E3371878B}"
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mime_qp", "lib_acl_cpp\samples\mime\mime_qp\mime_qp_vc2012.vcxproj", "{5DC79C83-9DE8-46B3-A172-8A4E3371878B}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rfc2047", "lib_acl_cpp\samples\rfc2047\rfc2047_vc2012.vcxproj", "{503AFD46-DF2F-4D2B-8584-60AD2007D2BE}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
@ -126,7 +126,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "memcache_pool", "lib_acl_cp
|
||||
{FE724EF7-3763-4E78-BDF5-BCBC075719FD} = {FE724EF7-3763-4E78-BDF5-BCBC075719FD}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "master_udp", "lib_acl_cpp\samples\master_udp\master_udp_vc2012.vcxproj", "{DE0F9993-7821-4659-B1C2-3A24DE292E87}"
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "master_udp", "lib_acl_cpp\samples\master\master_udp\master_udp_vc2012.vcxproj", "{DE0F9993-7821-4659-B1C2-3A24DE292E87}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC} = {6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}
|
||||
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B} = {B40213C2-507C-4C7F-A6E1-B850C9BDC27B}
|
||||
@ -163,14 +163,14 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "http_request_manager", "lib
|
||||
{FE724EF7-3763-4E78-BDF5-BCBC075719FD} = {FE724EF7-3763-4E78-BDF5-BCBC075719FD}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "master_aio", "lib_acl_cpp\samples\master_aio\master_aio_vc2012.vcxproj", "{946DAF94-90C7-44F9-B24B-6B8F105A84EF}"
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "master_aio", "lib_acl_cpp\samples\master\master_aio\master_aio_vc2012.vcxproj", "{946DAF94-90C7-44F9-B24B-6B8F105A84EF}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC} = {6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}
|
||||
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B} = {B40213C2-507C-4C7F-A6E1-B850C9BDC27B}
|
||||
{FE724EF7-3763-4E78-BDF5-BCBC075719FD} = {FE724EF7-3763-4E78-BDF5-BCBC075719FD}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "samples", "samples", "{324E7B70-E11C-4A39-A11F-4BB2A8E70064}"
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "samples_acl_cpp", "samples_acl_cpp", "{324E7B70-E11C-4A39-A11F-4BB2A8E70064}"
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "aio", "aio", "{02535D96-1693-4AA3-B650-B22DC776FDC2}"
|
||||
EndProject
|
||||
@ -187,6 +187,11 @@ EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "connect_manager", "lib_acl_cpp\samples\connect_manager\connect_manager_vc2012.vcxproj", "{A76344E8-D8EF-4E0D-9A01-73DB25B5B76E}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dircopy", "lib_acl_cpp\samples\dircopy\dircopy_vc2012.vcxproj", "{98BB9F33-AFC3-4943-8855-4D253B87F8F1}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC} = {6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}
|
||||
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B} = {B40213C2-507C-4C7F-A6E1-B850C9BDC27B}
|
||||
{FE724EF7-3763-4E78-BDF5-BCBC075719FD} = {FE724EF7-3763-4E78-BDF5-BCBC075719FD}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "scan_dir", "lib_acl_cpp\samples\scan_dir\scan_dir_vc2012.vcxproj", "{8A5563B4-C546-46D0-9C64-D051CA29F164}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
@ -219,14 +224,14 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cgi_upload", "lib_acl_cpp\s
|
||||
{FE724EF7-3763-4E78-BDF5-BCBC075719FD} = {FE724EF7-3763-4E78-BDF5-BCBC075719FD}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ssl_client", "lib_acl_cpp\samples\ssl_client\ssl_client_vc2012.vcxproj", "{B14C93A6-DABE-48F9-A78C-C94049B69984}"
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ssl_client", "lib_acl_cpp\samples\ssl\ssl_client\ssl_client_vc2012.vcxproj", "{B14C93A6-DABE-48F9-A78C-C94049B69984}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC} = {6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}
|
||||
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B} = {B40213C2-507C-4C7F-A6E1-B850C9BDC27B}
|
||||
{FE724EF7-3763-4E78-BDF5-BCBC075719FD} = {FE724EF7-3763-4E78-BDF5-BCBC075719FD}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ssl_server", "lib_acl_cpp\samples\ssl_server\ssl_server_vc2012.vcxproj", "{B8ADBED2-0FFC-49F7-A8AE-A42CE262166D}"
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ssl_server", "lib_acl_cpp\samples\ssl\ssl_server\ssl_server_vc2012.vcxproj", "{B8ADBED2-0FFC-49F7-A8AE-A42CE262166D}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC} = {6EC1F44E-6A6A-48E9-B699-D7E89B63C8DC}
|
||||
{B40213C2-507C-4C7F-A6E1-B850C9BDC27B} = {B40213C2-507C-4C7F-A6E1-B850C9BDC27B}
|
||||
@ -251,6 +256,14 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "blank_line", "lib_acl_cpp\s
|
||||
{FE724EF7-3763-4E78-BDF5-BCBC075719FD} = {FE724EF7-3763-4E78-BDF5-BCBC075719FD}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ssl", "ssl", "{3A25DC67-2832-4912-8FD5-66E499E38F11}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zdb", "lib_acl\samples\zdb\zdb_vc2012.vcxproj", "{640ABB35-FBD3-4D34-A382-9ED8CF3FCE34}"
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "samples_acl", "samples_acl", "{267F658E-44AF-4080-8577-EFCE99A5E030}"
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "samples_protocol", "samples_protocol", "{7C54A0C9-3817-4BBC-BF52-4FA941FD3C69}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Win32 = Debug|Win32
|
||||
@ -925,6 +938,21 @@ Global
|
||||
{DEDE0B8A-35C5-4674-A10A-BF6544F6A885}.Template|Win32.ActiveCfg = DebugDll|Win32
|
||||
{DEDE0B8A-35C5-4674-A10A-BF6544F6A885}.Template|Win32.Build.0 = DebugDll|Win32
|
||||
{DEDE0B8A-35C5-4674-A10A-BF6544F6A885}.Template|x64.ActiveCfg = DebugDll|Win32
|
||||
{640ABB35-FBD3-4D34-A382-9ED8CF3FCE34}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{640ABB35-FBD3-4D34-A382-9ED8CF3FCE34}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{640ABB35-FBD3-4D34-A382-9ED8CF3FCE34}.Debug|x64.ActiveCfg = Debug|Win32
|
||||
{640ABB35-FBD3-4D34-A382-9ED8CF3FCE34}.DebugDll|Win32.ActiveCfg = DebugDll|Win32
|
||||
{640ABB35-FBD3-4D34-A382-9ED8CF3FCE34}.DebugDll|Win32.Build.0 = DebugDll|Win32
|
||||
{640ABB35-FBD3-4D34-A382-9ED8CF3FCE34}.DebugDll|x64.ActiveCfg = DebugDll|Win32
|
||||
{640ABB35-FBD3-4D34-A382-9ED8CF3FCE34}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{640ABB35-FBD3-4D34-A382-9ED8CF3FCE34}.Release|Win32.Build.0 = Release|Win32
|
||||
{640ABB35-FBD3-4D34-A382-9ED8CF3FCE34}.Release|x64.ActiveCfg = Release|Win32
|
||||
{640ABB35-FBD3-4D34-A382-9ED8CF3FCE34}.Releasedll|Win32.ActiveCfg = ReleaseDll|Win32
|
||||
{640ABB35-FBD3-4D34-A382-9ED8CF3FCE34}.Releasedll|Win32.Build.0 = ReleaseDll|Win32
|
||||
{640ABB35-FBD3-4D34-A382-9ED8CF3FCE34}.Releasedll|x64.ActiveCfg = ReleaseDll|Win32
|
||||
{640ABB35-FBD3-4D34-A382-9ED8CF3FCE34}.Template|Win32.ActiveCfg = DebugDll|Win32
|
||||
{640ABB35-FBD3-4D34-A382-9ED8CF3FCE34}.Template|Win32.Build.0 = DebugDll|Win32
|
||||
{640ABB35-FBD3-4D34-A382-9ED8CF3FCE34}.Template|x64.ActiveCfg = DebugDll|Win32
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
@ -946,6 +974,7 @@ Global
|
||||
{A76344E8-D8EF-4E0D-9A01-73DB25B5B76E} = {324E7B70-E11C-4A39-A11F-4BB2A8E70064}
|
||||
{2AAD256A-E891-4CFA-BA5F-70DDA2CC63AE} = {324E7B70-E11C-4A39-A11F-4BB2A8E70064}
|
||||
{06493E1B-DA69-4471-AF4C-6890A6D0F6EE} = {324E7B70-E11C-4A39-A11F-4BB2A8E70064}
|
||||
{3A25DC67-2832-4912-8FD5-66E499E38F11} = {324E7B70-E11C-4A39-A11F-4BB2A8E70064}
|
||||
{FB676B5A-D82C-45CB-9E1F-F3793419DDA9} = {324E7B70-E11C-4A39-A11F-4BB2A8E70064}
|
||||
{956FA905-A77F-41FE-A4BE-C3BD3B5B3E83} = {02535D96-1693-4AA3-B650-B22DC776FDC2}
|
||||
{225D0BFA-64D7-4F8F-951E-36A494CF6178} = {02535D96-1693-4AA3-B650-B22DC776FDC2}
|
||||
@ -954,8 +983,6 @@ Global
|
||||
{BE2DF8B2-2DCD-4F32-99B9-0B0CA24BFAD9} = {02535D96-1693-4AA3-B650-B22DC776FDC2}
|
||||
{41FA5224-3315-4CDA-9C44-19085049F179} = {716AA69D-C8D2-4274-8207-A384FC20EAF0}
|
||||
{7680672C-4C9B-4BE8-8BAE-BB23B951AAA0} = {716AA69D-C8D2-4274-8207-A384FC20EAF0}
|
||||
{B14C93A6-DABE-48F9-A78C-C94049B69984} = {716AA69D-C8D2-4274-8207-A384FC20EAF0}
|
||||
{B8ADBED2-0FFC-49F7-A8AE-A42CE262166D} = {716AA69D-C8D2-4274-8207-A384FC20EAF0}
|
||||
{C0A7DB86-EF13-4A3E-9F34-8950521C9675} = {F1ABE59F-D95A-4CD5-92A2-6A1622E63BAB}
|
||||
{58FE3581-C997-4BD5-9AC6-AEEB54A43D2C} = {F1ABE59F-D95A-4CD5-92A2-6A1622E63BAB}
|
||||
{312366B1-8882-4491-94F6-E105A19C63EF} = {F1ABE59F-D95A-4CD5-92A2-6A1622E63BAB}
|
||||
@ -977,7 +1004,10 @@ Global
|
||||
{D7CCE1AD-6E3E-49C0-BED7-4AEBB79AC9DE} = {06493E1B-DA69-4471-AF4C-6890A6D0F6EE}
|
||||
{0FD53805-522C-4A04-938A-F05C1553828B} = {06493E1B-DA69-4471-AF4C-6890A6D0F6EE}
|
||||
{DEDE0B8A-35C5-4674-A10A-BF6544F6A885} = {06493E1B-DA69-4471-AF4C-6890A6D0F6EE}
|
||||
{B8ADBED2-0FFC-49F7-A8AE-A42CE262166D} = {3A25DC67-2832-4912-8FD5-66E499E38F11}
|
||||
{B14C93A6-DABE-48F9-A78C-C94049B69984} = {3A25DC67-2832-4912-8FD5-66E499E38F11}
|
||||
{D1F030D1-36F7-4440-9801-42E31E767A52} = {FB676B5A-D82C-45CB-9E1F-F3793419DDA9}
|
||||
{2495A6D4-777F-48BF-99C0-702E4A11FD23} = {FB676B5A-D82C-45CB-9E1F-F3793419DDA9}
|
||||
{640ABB35-FBD3-4D34-A382-9ED8CF3FCE34} = {267F658E-44AF-4080-8577-EFCE99A5E030}
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
|
@ -1,5 +1,8 @@
|
||||
修改历史列表:
|
||||
------------------------------------------------------------------------
|
||||
77) 2014.12.1
|
||||
77.1) 整理工程,将例子按功能进行分类
|
||||
|
||||
76) 2014.11.30
|
||||
76.1) 将 samples 目录下的示例分别移动至 lib_acl 及 lib_protocol 目录下
|
||||
|
||||
|
@ -1,6 +1,25 @@
|
||||
修改历史列表:
|
||||
|
||||
------------------------------------------------------------------------
|
||||
473) 2014.12.6
|
||||
473.1) feature: acl_msg.c 中的 acl_msg_error/warn/fatal/panic 支持记录函数调用堆栈
|
||||
|
||||
472) 2014.12.5
|
||||
472.1) feature: acl_vstream.c 中循环写函数(loop_writen)支持超时写功能,即当设置了
|
||||
写超时后,会检查每次写后的数据长度是否小于要求的写长度,如果小于则进入写超时等待;同时该循环
|
||||
写函数支持以 64KB 为单位写数据
|
||||
472.2) feature: acl_threads_server.c 完善了连接使用数自动退出机制
|
||||
472.3) feature: acl_threads_server.c 当采用 TCP 连接分发方式时,增加了汇报给分发器
|
||||
的信息字段,以便于分发器根据这些字段决定分发的策略
|
||||
|
||||
471) 2014.12.4
|
||||
471.1) performance: acl_vstream.c 优化了读 (__sys_read) 的性能
|
||||
471.2) bugfix: acl_vstream.c 在写时有可能会造成死循环
|
||||
|
||||
470) 2014.12.2
|
||||
470.1) bugfix: acl_vstream.c 中函数 __sys_read 的标志位 sys_read_ready 置 0
|
||||
应该在 read_fn/fread_fn 函数返回后
|
||||
|
||||
469) 2014.11.30
|
||||
469.1) bugfix: acl_aio_read.c 中的 reactor IO 方式的函数 acl_aio_enable_read
|
||||
内部在某种情况下有可能不会触发读回调过程
|
||||
|
@ -53,7 +53,7 @@ ACL_API void acl_doze(unsigned delay);
|
||||
/**
|
||||
* 某个描述符是否可读
|
||||
* @param fd {ACL_SOCKET} 描述符
|
||||
* @return {int} 0: 不可读; != 0: 可读
|
||||
* @return {int} 0: 不可读; -1: 出错, 1:可读
|
||||
*/
|
||||
ACL_API int acl_readable(ACL_SOCKET fd);
|
||||
|
||||
|
@ -9,13 +9,12 @@ extern "C" {
|
||||
* 将当前函数的堆栈输出至指定文件中
|
||||
* @param filepath {const char*} 目标文件名
|
||||
*/
|
||||
void acl_dump_strace(const char *filepath);
|
||||
#define acl_dump_trace acl_dump_strace
|
||||
void acl_trace_save(const char *filepath);
|
||||
|
||||
/**
|
||||
* 将当前函数的堆栈输出至日志中
|
||||
*/
|
||||
void acl_log_strace(void);
|
||||
void acl_trace_info(void);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
@ -191,6 +191,13 @@ ACL_API int acl_pthread_pool_add_dispatch(void *dispatch_arg,
|
||||
ACL_API int acl_pthread_pool_dispatch(void *dispatch_arg,
|
||||
void (*run_fn)(void *), void *run_arg);
|
||||
|
||||
/**
|
||||
* 获得当前线程池的最大线程数限制
|
||||
* @param thr_pool {acl_pthread_pool_t*} 线程池对象,不能为空
|
||||
* @return {int} 最大线程数限制值
|
||||
*/
|
||||
ACL_API int acl_pthread_pool_limit(acl_pthread_pool_t *thr_pool);
|
||||
|
||||
/**
|
||||
* 获得当前线程池中的线程数
|
||||
* @param thr_pool {acl_pthread_pool_t*} 线程池对象,不能为空
|
||||
|
192
lib_acl/samples/zdb/zdb_vc2012.vcxproj
Normal file
192
lib_acl/samples/zdb/zdb_vc2012.vcxproj
Normal file
@ -0,0 +1,192 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="DebugDll|Win32">
|
||||
<Configuration>DebugDll</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="ReleaseDll|Win32">
|
||||
<Configuration>ReleaseDll</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|Win32">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectGuid>{640ABB35-FBD3-4D34-A382-9ED8CF3FCE34}</ProjectGuid>
|
||||
<Keyword>Win32Proj</Keyword>
|
||||
<ProjectName>zdb</ProjectName>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDll|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugDll|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
<PlatformToolset>v110</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
<PlatformToolset>v110</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDll|Win32'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='DebugDll|Win32'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup>
|
||||
<_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
|
||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Debug\</OutDir>
|
||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Debug\</IntDir>
|
||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
|
||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Release\</OutDir>
|
||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Release\</IntDir>
|
||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
|
||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='DebugDll|Win32'">$(Configuration)\</OutDir>
|
||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='DebugDll|Win32'">$(Configuration)\</IntDir>
|
||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='DebugDll|Win32'">true</LinkIncremental>
|
||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='ReleaseDll|Win32'">$(Configuration)\</OutDir>
|
||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='ReleaseDll|Win32'">$(Configuration)\</IntDir>
|
||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='ReleaseDll|Win32'">false</LinkIncremental>
|
||||
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='DebugDll|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='DebugDll|Win32'" />
|
||||
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='DebugDll|Win32'" />
|
||||
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
|
||||
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
|
||||
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='ReleaseDll|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='ReleaseDll|Win32'" />
|
||||
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='ReleaseDll|Win32'" />
|
||||
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
|
||||
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<ClCompile>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<AdditionalIncludeDirectories>..\..\..\lib_acl\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS</PreprocessorDefinitions>
|
||||
<MinimalRebuild>true</MinimalRebuild>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
<PrecompiledHeader>
|
||||
</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<OutputFile>$(OutDir)zdb.exe</OutputFile>
|
||||
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<ProgramDatabaseFile>$(OutDir)zdb.pdb</ProgramDatabaseFile>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<ClCompile>
|
||||
<AdditionalIncludeDirectories>..\..\..\lib_acl\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
<PrecompiledHeader>
|
||||
</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>ws2_32.lib;wsock32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<OutputFile>$(OutDir)zdb.exe</OutputFile>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='DebugDll|Win32'">
|
||||
<ClCompile>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<AdditionalIncludeDirectories>..\..\..\lib_acl\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;ACL_DLL;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<MinimalRebuild>true</MinimalRebuild>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||
<PrecompiledHeader>
|
||||
</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<OutputFile>$(OutDir)zdb.exe</OutputFile>
|
||||
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<ProgramDatabaseFile>$(OutDir)zdb.pdb</ProgramDatabaseFile>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDll|Win32'">
|
||||
<ClCompile>
|
||||
<AdditionalIncludeDirectories>..\..\..\lib_acl\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;ACL_DLL;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||
<PrecompiledHeader>
|
||||
</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>ws2_32.lib;wsock32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<OutputFile>$(OutDir)zdb.exe</OutputFile>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\..\..\lib_acl\lib_acl_vc2012.vcxproj">
|
||||
<Project>{b40213c2-507c-4c7f-a6e1-b850c9bdc27b}</Project>
|
||||
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="md5.h" />
|
||||
<ClInclude Include="zdb_test.h" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="main.c" />
|
||||
<ClCompile Include="md5.c" />
|
||||
<ClCompile Include="zdb_test.c" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
</Project>
|
@ -310,6 +310,7 @@ static void server_exit(void)
|
||||
if (__server_onexit)
|
||||
__server_onexit(__service_ctx);
|
||||
|
||||
acl_msg_info("---- SERVER EXIT NOW ----");
|
||||
exit(0);
|
||||
}
|
||||
|
||||
@ -344,13 +345,13 @@ static void server_exiting(int type acl_unused, ACL_EVENT *event, void *ctx)
|
||||
acl_msg_info("%s: master disconnect -- exiting, "
|
||||
"clinet: %d, threads: %d", myname, n, nthreads);
|
||||
server_exit();
|
||||
} else if (acl_var_threads_quick_abort) {
|
||||
} else if (__aborting && acl_var_threads_quick_abort) {
|
||||
acl_msg_info("%s: master disconnect -- quick exiting, "
|
||||
"client: %d, threads: %d", myname, n, nthreads);
|
||||
server_exit();
|
||||
} else {
|
||||
acl_msg_info("%s: master disconnect -- waiting exiting, "
|
||||
"client: %d, threads: %d", myname, n, nthreads);
|
||||
acl_msg_info("%s: waiting exiting, client: %d, threads: %d",
|
||||
myname, n, nthreads);
|
||||
acl_event_request_timer(event, server_exiting, ctx, 1000000, 0);
|
||||
}
|
||||
}
|
||||
@ -389,23 +390,21 @@ static void server_abort(int event_type acl_unused, ACL_EVENT *event,
|
||||
server_exiting(event_type, event, ctx);
|
||||
}
|
||||
|
||||
static void server_use_timer(int type acl_unused,
|
||||
ACL_EVENT *event, void *ctx)
|
||||
static void server_use_timer(int type, ACL_EVENT *event, void *ctx)
|
||||
{
|
||||
int n;
|
||||
const char *myname = "server_use_timer";
|
||||
|
||||
n = get_client_count();
|
||||
if (acl_var_threads_use_limit <= 0)
|
||||
acl_msg_fatal("%s: invalid acl_var_threads_use_limit: %d",
|
||||
myname, acl_var_threads_use_limit);
|
||||
|
||||
if (n > 0 || __use_count < acl_var_threads_use_limit) {
|
||||
if (__use_count >= acl_var_threads_use_limit) {
|
||||
acl_msg_info("%s: use limit reached(%d, %d) -- exiting",
|
||||
myname, __use_count, acl_var_threads_use_limit);
|
||||
server_exiting(type, event, ctx);
|
||||
} else
|
||||
acl_event_request_timer(event, server_use_timer, ctx,
|
||||
(acl_int64) __use_limit_delay * 1000000, 0);
|
||||
return;
|
||||
}
|
||||
|
||||
if (acl_msg_verbose)
|
||||
acl_msg_info("use limit -- exiting");
|
||||
|
||||
server_exit();
|
||||
}
|
||||
|
||||
typedef struct {
|
||||
@ -839,7 +838,6 @@ static ACL_VSTREAM *__dispatch_conn = NULL;
|
||||
static int dispatch_report(void)
|
||||
{
|
||||
const char *myname = "dispatch_report";
|
||||
int n;
|
||||
char buf[256];
|
||||
|
||||
if (__dispatch_conn == NULL) {
|
||||
@ -848,10 +846,14 @@ static int dispatch_report(void)
|
||||
return -1;
|
||||
}
|
||||
|
||||
n = get_client_count();
|
||||
snprintf(buf, sizeof(buf), "count=%d&used=%d&pid=%u&type=%s\r\n",
|
||||
n, __use_count, (unsigned) getpid(),
|
||||
acl_var_threads_dispatch_type);
|
||||
snprintf(buf, sizeof(buf), "count=%d&used=%d&pid=%u&type=%s"
|
||||
"&max_threads=%d&curr_threads=%d&busy_threads=%d&qlen=%d\r\n",
|
||||
get_client_count(), __use_count, (unsigned) getpid(),
|
||||
acl_var_threads_dispatch_type,
|
||||
acl_pthread_pool_limit(__threads),
|
||||
acl_pthread_pool_size(__threads),
|
||||
acl_pthread_pool_busy(__threads),
|
||||
acl_pthread_pool_qlen(__threads));
|
||||
|
||||
if (acl_vstream_writen(__dispatch_conn, buf, strlen(buf))
|
||||
== ACL_VSTREAM_EOF)
|
||||
|
@ -88,6 +88,7 @@ void acl_msg_open2(ACL_VSTREAM *fp, const char *info_pre)
|
||||
} else {
|
||||
acl_log_fp_set(fp, info_pre);
|
||||
}
|
||||
|
||||
__log_open_flag = 1;
|
||||
}
|
||||
|
||||
@ -185,6 +186,7 @@ void acl_msg_info2(const char *fmt, va_list ap)
|
||||
printf("\r\n");
|
||||
}
|
||||
}
|
||||
|
||||
void acl_msg_warn(const char *fmt,...)
|
||||
{
|
||||
va_list ap;
|
||||
@ -211,7 +213,9 @@ void acl_msg_warn(const char *fmt,...)
|
||||
}
|
||||
|
||||
va_end (ap);
|
||||
acl_trace_info();
|
||||
}
|
||||
|
||||
void acl_msg_warn2(const char *fmt, va_list ap)
|
||||
{
|
||||
if (__pre_write_fn)
|
||||
@ -231,7 +235,10 @@ void acl_msg_warn2(const char *fmt, va_list ap)
|
||||
vprintf(fmt, ap);
|
||||
printf("\r\n");
|
||||
}
|
||||
|
||||
acl_trace_info();
|
||||
}
|
||||
|
||||
void acl_msg_error(const char *fmt,...)
|
||||
{
|
||||
va_list ap;
|
||||
@ -257,7 +264,9 @@ void acl_msg_error(const char *fmt,...)
|
||||
}
|
||||
|
||||
va_end (ap);
|
||||
acl_trace_info();
|
||||
}
|
||||
|
||||
void acl_msg_error2(const char *fmt, va_list ap)
|
||||
{
|
||||
if (__pre_write_fn)
|
||||
@ -277,7 +286,10 @@ void acl_msg_error2(const char *fmt, va_list ap)
|
||||
vprintf(fmt, ap);
|
||||
printf("\r\n");
|
||||
}
|
||||
|
||||
acl_trace_info();
|
||||
}
|
||||
|
||||
void acl_msg_fatal(const char *fmt,...)
|
||||
{
|
||||
va_list ap;
|
||||
@ -304,7 +316,7 @@ void acl_msg_fatal(const char *fmt,...)
|
||||
}
|
||||
|
||||
va_end (ap);
|
||||
acl_log_strace();
|
||||
acl_trace_info();
|
||||
acl_close_log();
|
||||
acl_assert(0);
|
||||
}
|
||||
@ -328,7 +340,8 @@ void acl_msg_fatal2(const char *fmt, va_list ap)
|
||||
vprintf(fmt, ap);
|
||||
printf("\r\n");
|
||||
}
|
||||
acl_log_strace();
|
||||
|
||||
acl_trace_info();
|
||||
acl_close_log();
|
||||
acl_assert(0);
|
||||
}
|
||||
@ -356,7 +369,7 @@ void acl_msg_fatal_status(int status, const char *fmt,...)
|
||||
}
|
||||
|
||||
va_end (ap);
|
||||
acl_log_strace();
|
||||
acl_trace_info();
|
||||
acl_close_log();
|
||||
acl_assert(0);
|
||||
}
|
||||
@ -379,7 +392,7 @@ void acl_msg_fatal_status2(int status, const char *fmt, va_list ap)
|
||||
printf("\r\n");
|
||||
}
|
||||
|
||||
acl_log_strace();
|
||||
acl_trace_info();
|
||||
acl_close_log();
|
||||
acl_assert(0);
|
||||
}
|
||||
@ -409,8 +422,7 @@ void acl_msg_panic(const char *fmt,...)
|
||||
}
|
||||
|
||||
va_end (ap);
|
||||
|
||||
acl_log_strace();
|
||||
acl_trace_info();
|
||||
acl_close_log();
|
||||
acl_assert(0);
|
||||
}
|
||||
@ -435,7 +447,7 @@ void acl_msg_panic2(const char *fmt, va_list ap)
|
||||
printf("\r\n");
|
||||
}
|
||||
|
||||
acl_log_strace();
|
||||
acl_trace_info();
|
||||
acl_close_log();
|
||||
acl_assert(0);
|
||||
}
|
||||
@ -534,14 +546,15 @@ const char *acl_last_serror(void)
|
||||
|
||||
int acl_last_error(void)
|
||||
{
|
||||
#ifdef WIN32
|
||||
int error;
|
||||
|
||||
#ifdef WIN32
|
||||
error = WSAGetLastError();
|
||||
WSASetLastError(error);
|
||||
#endif
|
||||
error = errno;
|
||||
return error;
|
||||
#else
|
||||
return errno;
|
||||
#endif
|
||||
}
|
||||
|
||||
void acl_set_error(int errnum)
|
||||
|
@ -52,7 +52,7 @@ static unsigned char __vstream_stdin_buf[ACL_VSTREAM_BUFSIZE];
|
||||
static unsigned char __vstream_stdout_buf[ACL_VSTREAM_BUFSIZE];
|
||||
static unsigned char __vstream_stderr_buf[ACL_VSTREAM_BUFSIZE];
|
||||
|
||||
static int __sys_getc(ACL_VSTREAM *fp);
|
||||
static int read_char(ACL_VSTREAM *fp);
|
||||
|
||||
ACL_VSTREAM acl_vstream_fstd[] = {
|
||||
{
|
||||
@ -93,7 +93,7 @@ ACL_VSTREAM acl_vstream_fstd[] = {
|
||||
NULL, /* path */
|
||||
NULL, /* context */
|
||||
NULL, /* close_handle_lnk */
|
||||
__sys_getc, /* sys_getc */
|
||||
read_char, /* sys_getc */
|
||||
acl_socket_read, /* read_fn */
|
||||
NULL, /* write_fn */
|
||||
NULL, /* writev_fn */
|
||||
@ -150,7 +150,7 @@ ACL_VSTREAM acl_vstream_fstd[] = {
|
||||
NULL, /* path */
|
||||
NULL, /* context */
|
||||
NULL, /* close_handle_lnk */
|
||||
__sys_getc, /* sys_getc */
|
||||
read_char, /* sys_getc */
|
||||
NULL, /* read_fn */
|
||||
acl_socket_write, /* write_fn */
|
||||
acl_socket_writev, /* writev_fn */
|
||||
@ -206,7 +206,7 @@ ACL_VSTREAM acl_vstream_fstd[] = {
|
||||
NULL, /* path */
|
||||
NULL, /* context */
|
||||
NULL, /* close_handle_lnk */
|
||||
__sys_getc, /* sys_getc */
|
||||
read_char, /* sys_getc */
|
||||
NULL, /* read_fn */
|
||||
acl_socket_write, /* write_fn */
|
||||
acl_socket_writev, /* writev_fn */
|
||||
@ -250,9 +250,10 @@ void acl_vstream_init()
|
||||
#endif
|
||||
}
|
||||
|
||||
static int __sys_read(ACL_VSTREAM *in, void *buf, size_t size)
|
||||
static int sys_read(ACL_VSTREAM *in, void *buf, size_t size)
|
||||
{
|
||||
int read_cnt;
|
||||
const char *myname = "sys_read";
|
||||
int read_cnt, nagain = 0;
|
||||
|
||||
if (in->type == ACL_VSTREAM_TYPE_FILE) {
|
||||
if (ACL_VSTREAM_FILE(in) == ACL_FILE_INVALID) {
|
||||
@ -273,19 +274,24 @@ AGAIN:
|
||||
/* 清除系统错误号 */
|
||||
acl_set_error(0);
|
||||
|
||||
/* Çå³ý¿É¶Á±ê־λ */
|
||||
in->sys_read_ready = 0;
|
||||
|
||||
if (in->type == ACL_VSTREAM_TYPE_FILE) {
|
||||
read_cnt = in->fread_fn(ACL_VSTREAM_FILE(in), buf, size,
|
||||
in->rw_timeout, in, in->context);
|
||||
in->sys_read_ready ? 0 : in->rw_timeout,
|
||||
in, in->context);
|
||||
if (in->read_cnt > 0)
|
||||
in->sys_offset += in->read_cnt;
|
||||
} else {
|
||||
/* 如果由事件引擎设置了套接字有数据可读,则将超时时间设 0,
|
||||
* 这样可以减少一次对读超时的调用
|
||||
*/
|
||||
read_cnt = in->read_fn(ACL_VSTREAM_SOCK(in), buf, size,
|
||||
in->rw_timeout, in, in->context);
|
||||
in->sys_read_ready ? 0 : in->rw_timeout,
|
||||
in, in->context);
|
||||
}
|
||||
|
||||
/* 清除可读标志位 */
|
||||
in->sys_read_ready = 0;
|
||||
|
||||
if (read_cnt > 0) {
|
||||
in->read_ptr = in->read_buf;
|
||||
in->flag &= ~ACL_VSTREAM_FLAG_BAD;
|
||||
@ -305,12 +311,24 @@ AGAIN:
|
||||
|
||||
in->errnum = acl_last_error();
|
||||
|
||||
if (in->errnum == ACL_EINTR)
|
||||
goto AGAIN;
|
||||
else if (in->errnum == ACL_ETIMEDOUT) {
|
||||
if (in->errnum == ACL_EINTR) {
|
||||
if (nagain++ < 5)
|
||||
goto AGAIN;
|
||||
|
||||
acl_msg_error("%s(%d), %s: nagain: %d too much, fd: %d",
|
||||
__FILE__, __LINE__, myname, nagain,
|
||||
in->type == ACL_VSTREAM_TYPE_FILE ?
|
||||
(int) ACL_VSTREAM_FILE(in) : ACL_VSTREAM_SOCK(in));
|
||||
} else if (in->errnum == ACL_ETIMEDOUT) {
|
||||
in->flag |= ACL_VSTREAM_FLAG_TIMEOUT;
|
||||
SAFE_COPY(in->errbuf, "read timeout");
|
||||
} else if (in->errnum != ACL_EWOULDBLOCK && in->errnum != ACL_EAGAIN) {
|
||||
}
|
||||
#if ACL_EWOULDBLOCK == ACL_EAGAIN
|
||||
else if (in->errnum != ACL_EWOULDBLOCK)
|
||||
#else
|
||||
else if (in->errnum != ACL_EWOULDBLOCK && in->errnum != ACL_EAGAIN)
|
||||
#endif
|
||||
{
|
||||
in->flag |= ACL_VSTREAM_FLAG_ERR;
|
||||
acl_strerror(in->errnum, in->errbuf, sizeof(in->errbuf));
|
||||
}
|
||||
@ -318,9 +336,9 @@ AGAIN:
|
||||
return -1;
|
||||
}
|
||||
|
||||
static int __vstream_read(ACL_VSTREAM *fp)
|
||||
static int read_once(ACL_VSTREAM *fp)
|
||||
{
|
||||
fp->read_cnt = __sys_read(fp, fp->read_buf, (size_t) fp->read_buf_len);
|
||||
fp->read_cnt = sys_read(fp, fp->read_buf, (size_t) fp->read_buf_len);
|
||||
|
||||
if (fp->read_cnt < 0) {
|
||||
fp->read_cnt = 0;
|
||||
@ -329,9 +347,9 @@ static int __vstream_read(ACL_VSTREAM *fp)
|
||||
return fp->read_cnt;
|
||||
}
|
||||
|
||||
static int __sys_getc(ACL_VSTREAM *fp)
|
||||
static int read_char(ACL_VSTREAM *fp)
|
||||
{
|
||||
fp->read_cnt = __vstream_read(fp);
|
||||
fp->read_cnt = read_once(fp);
|
||||
if (fp->read_cnt <= 0)
|
||||
return ACL_VSTREAM_EOF;
|
||||
else
|
||||
@ -342,7 +360,7 @@ int acl_vstream_getc(ACL_VSTREAM *fp)
|
||||
{
|
||||
if (fp == NULL)
|
||||
return ACL_VSTREAM_EOF;
|
||||
if (fp->read_cnt <= 0 && __vstream_read(fp) <= 0)
|
||||
if (fp->read_cnt <= 0 && read_once(fp) <= 0)
|
||||
return ACL_VSTREAM_EOF;
|
||||
|
||||
fp->read_cnt--;
|
||||
@ -412,7 +430,7 @@ int acl_vstream_nonb_readn(ACL_VSTREAM *fp, char *buf, int size)
|
||||
fp->rw_timeout = 0;
|
||||
fp->errnum = 0;
|
||||
|
||||
read_cnt = __vstream_read(fp);
|
||||
read_cnt = read_once(fp);
|
||||
|
||||
fp->rw_timeout = rw_timeout;
|
||||
|
||||
@ -710,22 +728,22 @@ int acl_vstream_gets(ACL_VSTREAM *fp, void *vptr, size_t maxlen)
|
||||
int acl_vstream_readtags(ACL_VSTREAM *fp, void *vptr, size_t maxlen,
|
||||
const char *tag, size_t taglen)
|
||||
{
|
||||
int n, ch, flag_match = 0;
|
||||
int n, ch, matched = 0;
|
||||
unsigned char *ptr;
|
||||
const unsigned char *ptr_haystack;
|
||||
const unsigned char *ptr_needle, *ptr_needle_end;
|
||||
const unsigned char *haystack;
|
||||
const unsigned char *needle, *needle_end;
|
||||
|
||||
if (fp == NULL || vptr == NULL || maxlen <= 0
|
||||
|| tag == NULL || taglen <= 0)
|
||||
return ACL_VSTREAM_EOF;
|
||||
|
||||
ptr_needle_end = (const unsigned char *) tag;
|
||||
needle_end = (const unsigned char *) tag;
|
||||
|
||||
while(1) {
|
||||
taglen--;
|
||||
if (taglen == 0)
|
||||
break;
|
||||
ptr_needle_end++;
|
||||
needle_end++;
|
||||
}
|
||||
ptr = (unsigned char *) vptr;
|
||||
|
||||
@ -748,29 +766,29 @@ int acl_vstream_readtags(ACL_VSTREAM *fp, void *vptr, size_t maxlen,
|
||||
}
|
||||
|
||||
*ptr = ch;
|
||||
if (ch == *ptr_needle_end) {
|
||||
ptr_haystack = ptr - 1;
|
||||
ptr_needle = ptr_needle_end - 1;
|
||||
flag_match = 0;
|
||||
if (ch == *needle_end) {
|
||||
haystack = ptr - 1;
|
||||
needle = needle_end - 1;
|
||||
matched = 0;
|
||||
while(1) {
|
||||
/* 已经成功比较完毕(匹配) */
|
||||
if (ptr_needle < (const unsigned char *) tag) {
|
||||
flag_match = 1;
|
||||
if (needle < (const unsigned char *) tag) {
|
||||
matched = 1;
|
||||
break;
|
||||
}
|
||||
|
||||
/* 原字符串用完而匹配串还没有比较完(不匹配) */
|
||||
if (ptr_haystack < (unsigned char *) vptr)
|
||||
if (haystack < (unsigned char *) vptr)
|
||||
break;
|
||||
/* 不相等(不匹配) */
|
||||
if (*ptr_haystack != *ptr_needle)
|
||||
if (*haystack != *needle)
|
||||
break;
|
||||
ptr_haystack--;
|
||||
ptr_needle--;
|
||||
haystack--;
|
||||
needle--;
|
||||
}
|
||||
}
|
||||
ptr++;
|
||||
if (flag_match) {
|
||||
if (matched) {
|
||||
fp->flag |= ACL_VSTREAM_FLAG_TAGYES;
|
||||
fp->flag &= ~ACL_VSTREAM_FLAG_TAGNO;
|
||||
break;
|
||||
@ -855,7 +873,7 @@ int acl_vstream_readn(ACL_VSTREAM *fp, void *buf, size_t size)
|
||||
|
||||
if (size_saved < (size_t) fp->read_buf_len / 4) {
|
||||
while (size > 0) {
|
||||
if (__vstream_read(fp) <= 0)
|
||||
if (read_once(fp) <= 0)
|
||||
return ACL_VSTREAM_EOF;
|
||||
n = acl_vstream_bfcp_some(fp, ptr, size);
|
||||
ptr += n;
|
||||
@ -863,7 +881,7 @@ int acl_vstream_readn(ACL_VSTREAM *fp, void *buf, size_t size)
|
||||
}
|
||||
} else {
|
||||
while (size > 0) {
|
||||
n = __sys_read(fp, ptr, size);
|
||||
n = sys_read(fp, ptr, size);
|
||||
if (n <= 0)
|
||||
return ACL_VSTREAM_EOF;
|
||||
size -= n;
|
||||
@ -892,7 +910,7 @@ int acl_vstream_read(ACL_VSTREAM *fp, void *buf, size_t size)
|
||||
|
||||
/* fp->read_cnt == 0 */
|
||||
else {
|
||||
int read_cnt = __sys_read(fp, buf, size);
|
||||
int read_cnt = sys_read(fp, buf, size);
|
||||
return read_cnt <= 0 ? ACL_VSTREAM_EOF : read_cnt;
|
||||
}
|
||||
}
|
||||
@ -969,7 +987,7 @@ int acl_vstream_gets_peek(ACL_VSTREAM *fp, ACL_VSTRING *buf, int *ready)
|
||||
*/
|
||||
|
||||
if (fp->sys_read_ready) {
|
||||
if (__vstream_read(fp) <= 0) {
|
||||
if (read_once(fp) <= 0) {
|
||||
n = LEN(buf) - n;
|
||||
return n > 0 ? n : ACL_VSTREAM_EOF;
|
||||
}
|
||||
@ -1036,7 +1054,7 @@ int acl_vstream_gets_nonl_peek(ACL_VSTREAM *fp, ACL_VSTRING *buf, int *ready)
|
||||
*/
|
||||
|
||||
if (fp->sys_read_ready) {
|
||||
if (__vstream_read(fp) <= 0) {
|
||||
if (read_once(fp) <= 0) {
|
||||
n = LEN(buf) - n;
|
||||
|
||||
return n > 0 ? n : ACL_VSTREAM_EOF;
|
||||
@ -1100,7 +1118,7 @@ int acl_vstream_readn_peek(ACL_VSTREAM *fp, ACL_VSTRING *buf,
|
||||
*/
|
||||
|
||||
if (fp->sys_read_ready) {
|
||||
if (__vstream_read(fp) <= 0) {
|
||||
if (read_once(fp) <= 0) {
|
||||
int n = cnt_saved - cnt;
|
||||
return n > 0 ? n : ACL_VSTREAM_EOF;
|
||||
}
|
||||
@ -1148,7 +1166,7 @@ int acl_vstream_read_peek(ACL_VSTREAM *fp, ACL_VSTRING *buf)
|
||||
*/
|
||||
|
||||
if (fp->sys_read_ready) {
|
||||
if (__vstream_read(fp) <= 0) {
|
||||
if (read_once(fp) <= 0) {
|
||||
n = LEN(buf) - n;
|
||||
return n > 0 ? n : ACL_VSTREAM_EOF;
|
||||
}
|
||||
@ -1174,7 +1192,7 @@ int acl_vstream_can_read(ACL_VSTREAM *fp)
|
||||
else if (fp->sys_read_ready == 0)
|
||||
return 0;
|
||||
else if ((fp->flag & ACL_VSTREAM_FLAG_PREREAD) != 0) {
|
||||
if (__vstream_read(fp) <= 0)
|
||||
if (read_once(fp) <= 0)
|
||||
return ACL_VSTREAM_EOF;
|
||||
else
|
||||
return 1;
|
||||
@ -1183,9 +1201,9 @@ int acl_vstream_can_read(ACL_VSTREAM *fp)
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int __vstream_write(ACL_VSTREAM *fp, const void *vptr, int dlen)
|
||||
static int write_once(ACL_VSTREAM *fp, const void *vptr, int dlen)
|
||||
{
|
||||
const char *myname = "__vstream_write";
|
||||
const char *myname = "write_once";
|
||||
int n, neintr = 0;
|
||||
|
||||
if (fp == NULL || vptr == NULL || dlen <= 0) {
|
||||
@ -1219,6 +1237,9 @@ static int __vstream_write(ACL_VSTREAM *fp, const void *vptr, int dlen)
|
||||
|
||||
TAG_AGAIN:
|
||||
|
||||
/* 清除系统错误号 */
|
||||
acl_set_error(0);
|
||||
|
||||
if (fp->type == ACL_VSTREAM_TYPE_FILE) {
|
||||
if ((fp->oflags & O_APPEND)) {
|
||||
#ifdef WIN32
|
||||
@ -1264,7 +1285,7 @@ TAG_AGAIN:
|
||||
fp->rw_timeout, fp, fp->context);
|
||||
}
|
||||
|
||||
if (n >= 0) {
|
||||
if (n > 0) {
|
||||
fp->total_write_cnt += n;
|
||||
return n;
|
||||
}
|
||||
@ -1295,9 +1316,9 @@ TAG_AGAIN:
|
||||
return ACL_VSTREAM_EOF;
|
||||
}
|
||||
|
||||
static int __vstream_writev(ACL_VSTREAM *fp, const struct iovec *vec, int count)
|
||||
static int writev_once(ACL_VSTREAM *fp, const struct iovec *vec, int count)
|
||||
{
|
||||
const char *myname = "__vstream_writev";
|
||||
const char *myname = "writev_once";
|
||||
int n, neintr = 0;
|
||||
|
||||
if (fp == NULL || vec == NULL || count <= 0) {
|
||||
@ -1382,7 +1403,7 @@ TAG_AGAIN:
|
||||
fp->rw_timeout, fp, fp->context);
|
||||
}
|
||||
|
||||
if (n >= 0) {
|
||||
if (n > 0) {
|
||||
fp->total_write_cnt += n;
|
||||
return n;
|
||||
}
|
||||
@ -1396,7 +1417,11 @@ TAG_AGAIN:
|
||||
goto TAG_AGAIN;
|
||||
}
|
||||
|
||||
#if ACL_EAGAIN == ACL_EWOULDBLOCK
|
||||
if (fp->errnum == ACL_EAGAIN)
|
||||
#else
|
||||
if (fp->errnum == ACL_EAGAIN || fp->errnum == ACL_EWOULDBLOCK)
|
||||
#endif
|
||||
acl_set_error(ACL_EAGAIN);
|
||||
else
|
||||
fp->flag |= ACL_VSTREAM_FLAG_ERR;
|
||||
@ -1410,7 +1435,7 @@ int acl_vstream_write(ACL_VSTREAM *fp, const void *vptr, int dlen)
|
||||
if (acl_vstream_fflush(fp) == ACL_VSTREAM_EOF)
|
||||
return ACL_VSTREAM_EOF;
|
||||
}
|
||||
return __vstream_write(fp, vptr, dlen);
|
||||
return write_once(fp, vptr, dlen);
|
||||
}
|
||||
|
||||
int acl_vstream_writev(ACL_VSTREAM *fp, const struct iovec *vec, int count)
|
||||
@ -1419,7 +1444,7 @@ int acl_vstream_writev(ACL_VSTREAM *fp, const struct iovec *vec, int count)
|
||||
if (acl_vstream_fflush(fp) == ACL_VSTREAM_EOF)
|
||||
return ACL_VSTREAM_EOF;
|
||||
}
|
||||
return __vstream_writev(fp, vec, count);
|
||||
return writev_once(fp, vec, count);
|
||||
}
|
||||
|
||||
int acl_vstream_writevn(ACL_VSTREAM *fp, const struct iovec *vec, int count)
|
||||
@ -1445,7 +1470,7 @@ int acl_vstream_writevn(ACL_VSTREAM *fp, const struct iovec *vec, int count)
|
||||
dlen = 0;
|
||||
|
||||
while (1) {
|
||||
n = __vstream_writev(fp, vect, count);
|
||||
n = writev_once(fp, vect, count);
|
||||
if (n == ACL_VSTREAM_EOF) {
|
||||
acl_myfree(vect);
|
||||
return ACL_VSTREAM_EOF;
|
||||
@ -1588,25 +1613,42 @@ int acl_vstream_puts(const char *s)
|
||||
return acl_vstream_fputs(s, ACL_VSTREAM_OUT);
|
||||
}
|
||||
|
||||
static int __loop_writen(ACL_VSTREAM *fp, const void *vptr, size_t dlen)
|
||||
static int loop_writen(ACL_VSTREAM *fp, const void *vptr, size_t size)
|
||||
{
|
||||
const unsigned char *ptr;
|
||||
int n;
|
||||
const char *myname = "loop_writen";
|
||||
const unsigned char *ptr = (const unsigned char *) vptr;
|
||||
int once_dlen = 64 * 1024 * 1024; /* xxx: 以 64KB 为单位写 */
|
||||
int nleft = (int) size, n, len;
|
||||
time_t begin, end;
|
||||
ACL_SOCKET fd = ACL_VSTREAM_SOCK(fp);
|
||||
|
||||
ptr = (const unsigned char *) vptr;
|
||||
while (dlen > 0) {
|
||||
n = __vstream_write(fp, ptr, dlen);
|
||||
if (n <= 0) {
|
||||
if (acl_last_error() == ACL_EINTR
|
||||
|| acl_last_error() == ACL_EAGAIN)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
while (nleft > 0) {
|
||||
len = nleft > once_dlen ? once_dlen : nleft;
|
||||
n = write_once(fp, ptr, len);
|
||||
if (n < 0)
|
||||
return ACL_VSTREAM_EOF;
|
||||
}
|
||||
|
||||
dlen -= n;
|
||||
nleft -= n;
|
||||
ptr += n;
|
||||
|
||||
if (n == len || fp->writev_fn == NULL || fp->rw_timeout <= 0)
|
||||
continue;
|
||||
|
||||
/* 对于套接口写操作,如果一次性写没有写完,可能是系统写缓冲区满,
|
||||
* 需要检测超时写
|
||||
*/
|
||||
begin = time(NULL);
|
||||
|
||||
if (acl_write_wait(fd, fp->rw_timeout) == 0)
|
||||
continue;
|
||||
|
||||
end = time(NULL);
|
||||
acl_msg_error("%s(%d), %s: acl_write_wait error,"
|
||||
"size: %d, nleft: %d, peer: %s, fd: %d,"
|
||||
" timeout: %d, cost: %ld", __FILE__, __LINE__,
|
||||
myname, (int) size, nleft, ACL_VSTREAM_PEER(fp), fd,
|
||||
fp->rw_timeout, end - begin);
|
||||
return ACL_VSTREAM_EOF;
|
||||
}
|
||||
|
||||
return ptr - (const unsigned char *) vptr;
|
||||
@ -1621,7 +1663,7 @@ int acl_vstream_writen(ACL_VSTREAM *fp, const void *vptr, size_t dlen)
|
||||
if (acl_vstream_fflush(fp) == ACL_VSTREAM_EOF)
|
||||
return ACL_VSTREAM_EOF;
|
||||
}
|
||||
return __loop_writen(fp, vptr, dlen);
|
||||
return loop_writen(fp, vptr, dlen);
|
||||
}
|
||||
|
||||
int acl_vstream_buffed_writen(ACL_VSTREAM *fp, const void *vptr, size_t dlen)
|
||||
@ -1637,7 +1679,7 @@ int acl_vstream_buffed_writen(ACL_VSTREAM *fp, const void *vptr, size_t dlen)
|
||||
if (dlen >= (size_t) fp->wbuf_size) {
|
||||
if (acl_vstream_fflush(fp) == ACL_VSTREAM_EOF)
|
||||
return ACL_VSTREAM_EOF;
|
||||
else if (__loop_writen(fp, vptr, dlen) == ACL_VSTREAM_EOF)
|
||||
else if (loop_writen(fp, vptr, dlen) == ACL_VSTREAM_EOF)
|
||||
return ACL_VSTREAM_EOF;
|
||||
else
|
||||
return dlen;
|
||||
@ -1804,36 +1846,22 @@ void acl_vstream_buffed_space(ACL_VSTREAM *fp)
|
||||
int acl_vstream_fflush(ACL_VSTREAM *fp)
|
||||
{
|
||||
const char *myname = "acl_vstream_fflush";
|
||||
unsigned char *ptr;
|
||||
int n;
|
||||
|
||||
if (fp == NULL) {
|
||||
acl_msg_error("%s(%d): fp null", myname, __LINE__);
|
||||
return ACL_VSTREAM_EOF;
|
||||
} else if (fp->wbuf == NULL || fp->wbuf_dlen == 0)
|
||||
} else if (fp->wbuf == NULL || fp->wbuf_dlen <= 0)
|
||||
return 0;
|
||||
|
||||
ptr = fp->wbuf;
|
||||
while (fp->wbuf_dlen > 0) {
|
||||
n = __vstream_write(fp, ptr, (int) fp->wbuf_dlen);
|
||||
if (n <= 0) {
|
||||
if (acl_last_error() == ACL_EINTR
|
||||
|| acl_last_error() == ACL_EAGAIN)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
return ACL_VSTREAM_EOF;
|
||||
}
|
||||
|
||||
n = loop_writen(fp, fp->wbuf, fp->wbuf_dlen);
|
||||
if (n > 0) {
|
||||
fp->wbuf_dlen -= n;
|
||||
ptr += n;
|
||||
if (fp->wbuf_dlen < 0)
|
||||
acl_msg_fatal("%s(%d): wbuf_dlen(%d) < 0",
|
||||
myname, __LINE__, fp->wbuf_dlen);
|
||||
}
|
||||
|
||||
if (fp->wbuf_dlen < 0)
|
||||
acl_msg_fatal("%s(%d): wbuf_dlen(%d) < 0",
|
||||
myname, __LINE__, (int) fp->wbuf_dlen);
|
||||
|
||||
return ptr - fp->wbuf;
|
||||
return n;
|
||||
}
|
||||
|
||||
int acl_vstream_peekfd(ACL_VSTREAM *fp)
|
||||
@ -1935,7 +1963,7 @@ ACL_VSTREAM *acl_vstream_fdopen(ACL_SOCKET fd, unsigned int oflags,
|
||||
if (rw_timeo > 0)
|
||||
fp->rw_timeout = rw_timeo;
|
||||
|
||||
fp->sys_getc = __sys_getc;
|
||||
fp->sys_getc = read_char;
|
||||
if (fdtype == ACL_VSTREAM_TYPE_FILE) {
|
||||
fp->fread_fn = acl_file_read;
|
||||
fp->fwrite_fn = acl_file_write;
|
||||
|
@ -22,114 +22,107 @@
|
||||
#include "stdlib/acl_iostuff.h"
|
||||
#include "../../init/init.h"
|
||||
|
||||
static int select_read_wait(ACL_SOCKET fd, int timeout)
|
||||
{
|
||||
fd_set read_fds;
|
||||
fd_set except_fds;
|
||||
struct timeval tv;
|
||||
struct timeval *tp;
|
||||
#ifdef WIN32
|
||||
int errnum;
|
||||
#endif
|
||||
|
||||
#ifdef ACL_UNIX
|
||||
/*
|
||||
* Sanity checks.
|
||||
*/
|
||||
if (FD_SETSIZE <= (unsigned) fd)
|
||||
acl_msg_panic("descriptor %d does not fit FD_SETSIZE %d",
|
||||
fd, FD_SETSIZE);
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Guard the write() with select() so we do not depend on alarm() and on
|
||||
* signal() handlers. Restart the select when interrupted by some signal.
|
||||
* Some select() implementations may reduce the time to wait when
|
||||
* interrupted, which is exactly what we want.
|
||||
*/
|
||||
FD_ZERO(&read_fds);
|
||||
FD_SET(fd, &read_fds);
|
||||
FD_ZERO(&except_fds);
|
||||
FD_SET(fd, &except_fds);
|
||||
if (timeout >= 0) {
|
||||
tv.tv_usec = 0;
|
||||
tv.tv_sec = timeout;
|
||||
tp = &tv;
|
||||
} else {
|
||||
tp = 0;
|
||||
}
|
||||
|
||||
for (;;) {
|
||||
switch (select(fd + 1, (fd_set *) &read_fds, (fd_set *) 0, &except_fds, tp)) {
|
||||
case -1:
|
||||
#ifdef WIN32
|
||||
errnum = WSAGetLastError();
|
||||
if (errnum != WSAEINPROGRESS && errnum != WSAEWOULDBLOCK) {
|
||||
acl_msg_error("select error");
|
||||
return (-1);
|
||||
}
|
||||
#else
|
||||
if (acl_last_error() != ACL_EINTR) {
|
||||
char tbuf[256];
|
||||
acl_msg_error("%s(%d): select error(%s)",
|
||||
__FILE__, __LINE__,
|
||||
acl_last_strerror(tbuf, sizeof(tbuf)));
|
||||
return (-1);
|
||||
}
|
||||
#endif
|
||||
continue;
|
||||
case 0:
|
||||
acl_set_error(ACL_ETIMEDOUT);
|
||||
return (-1);
|
||||
default:
|
||||
return (0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef ACL_UNIX
|
||||
|
||||
#include <stdio.h>
|
||||
static int poll_read_wait(ACL_SOCKET fd, int timeout)
|
||||
int acl_read_wait(ACL_SOCKET fd, int timeout)
|
||||
{
|
||||
const char *myname = "poll_read_wait";
|
||||
const char *myname = "acl_read_wait";
|
||||
struct pollfd fds;
|
||||
int delay = timeout * 1000;
|
||||
|
||||
fds.events = POLLIN | POLLHUP | POLLERR;
|
||||
fds.fd = fd;
|
||||
|
||||
acl_set_error(0);
|
||||
|
||||
for (;;) {
|
||||
switch (poll(&fds, 1, delay)) {
|
||||
case -1:
|
||||
if (acl_last_error() != ACL_EINTR) {
|
||||
char tbuf[256];
|
||||
acl_msg_error("%s: poll error(%s)", myname,
|
||||
acl_last_strerror(tbuf, sizeof(tbuf)));
|
||||
return (-1);
|
||||
}
|
||||
continue;
|
||||
if (acl_last_error() == ACL_EINTR)
|
||||
continue;
|
||||
|
||||
acl_msg_error("%s(%d), %s: poll error(%s), fd: %d",
|
||||
__FILE__, __LINE__, myname,
|
||||
acl_last_serror(), (int) fd);
|
||||
return -1;
|
||||
case 0:
|
||||
acl_set_error(ACL_ETIMEDOUT);
|
||||
return (-1);
|
||||
return -1;
|
||||
default:
|
||||
if ((fds.revents & (POLLHUP | POLLERR))
|
||||
|| !(fds.revents & POLLIN))
|
||||
{
|
||||
return (-1);
|
||||
}
|
||||
return (0);
|
||||
if (fds.revents & (POLLHUP | POLLERR))
|
||||
return -1;
|
||||
else if ((fds.revents & POLLIN))
|
||||
return 0;
|
||||
else
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
#else
|
||||
|
||||
int acl_read_wait(ACL_SOCKET fd, int timeout)
|
||||
{
|
||||
#ifdef ACL_UNIX
|
||||
if (__acl_var_use_poll)
|
||||
return (poll_read_wait(fd, timeout));
|
||||
#endif
|
||||
const char *myname = "acl_read_wait";
|
||||
fd_set rfds, xfds;
|
||||
struct timeval tv;
|
||||
struct timeval *tp;
|
||||
int errnum;
|
||||
|
||||
return (select_read_wait(fd, timeout));
|
||||
/*
|
||||
* Sanity checks.
|
||||
*/
|
||||
if (FD_SETSIZE <= (unsigned) fd)
|
||||
acl_msg_fatal("%s(%d), %s: descriptor %d does not fit "
|
||||
"FD_SETSIZE %d", __FILE__, __LINE__, myname,
|
||||
(int) fd, FD_SETSIZE);
|
||||
|
||||
/*
|
||||
* Guard the write() with select() so we do not depend on alarm()
|
||||
* and on signal() handlers. Restart the select when interrupted
|
||||
* by some signal. Some select() implementations may reduce the
|
||||
* time to wait when interrupted, which is exactly what we want.
|
||||
*/
|
||||
FD_ZERO(&rfds);
|
||||
FD_SET(fd, &rfds);
|
||||
FD_ZERO(&xfds);
|
||||
FD_SET(fd, &xfds);
|
||||
|
||||
if (timeout >= 0) {
|
||||
tv.tv_usec = 0;
|
||||
tv.tv_sec = timeout;
|
||||
tp = &tv;
|
||||
} else
|
||||
tp = 0;
|
||||
|
||||
acl_set_error(0);
|
||||
|
||||
for (;;) {
|
||||
switch (select(fd + 1, &rfds, (fd_set *) 0, &xfds, tp)) {
|
||||
case -1:
|
||||
errnum = acl_last_error();
|
||||
#ifdef WIN32
|
||||
if (errnum == WSAEINPROGRESS
|
||||
|| errnum == WSAEWOULDBLOCK
|
||||
|| errnum == ACL_EINTR)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
#else
|
||||
if (errnum == ACL_EINTR)
|
||||
continue;
|
||||
#endif
|
||||
acl_msg_error("%s(%d), %s: select error(%s), fd: %d",
|
||||
__FILE__, __LINE__, myname,
|
||||
acl_last_serror(), (int) fd);
|
||||
return -1;
|
||||
case 0:
|
||||
acl_set_error(ACL_ETIMEDOUT);
|
||||
return -1;
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
|
@ -14,6 +14,7 @@
|
||||
|
||||
#ifdef ACL_UNIX
|
||||
# include <sys/time.h>
|
||||
# include <poll.h>
|
||||
#endif
|
||||
#include <string.h>
|
||||
|
||||
@ -28,45 +29,99 @@
|
||||
|
||||
/* acl_readable - see if file descriptor is readable */
|
||||
|
||||
#ifdef ACL_UNIX
|
||||
|
||||
int acl_readable(ACL_SOCKET fd)
|
||||
{
|
||||
const char *myname = "poll_read_wait";
|
||||
struct pollfd fds;
|
||||
int delay = 0;
|
||||
|
||||
fds.events = POLLIN | POLLHUP | POLLERR;
|
||||
fds.fd = fd;
|
||||
|
||||
acl_set_error(0);
|
||||
|
||||
for (;;) {
|
||||
switch (poll(&fds, 1, delay)) {
|
||||
case -1:
|
||||
if (acl_last_error() == ACL_EINTR)
|
||||
continue;
|
||||
|
||||
acl_msg_error("%s(%d), %s: poll error(%s), fd: %d",
|
||||
__FILE__, __LINE__, myname,
|
||||
acl_last_serror(), (int) fd);
|
||||
return -1;
|
||||
case 0:
|
||||
return 0;
|
||||
default:
|
||||
if (fds.revents & (POLLHUP | POLLERR))
|
||||
return -1;
|
||||
else if ((fds.revents & POLLIN))
|
||||
return 1;
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
int acl_readable(ACL_SOCKET fd)
|
||||
{
|
||||
const char *myname = "acl_readable";
|
||||
struct timeval tv;
|
||||
fd_set read_fds;
|
||||
fd_set except_fds;
|
||||
fd_set rfds, xfds;
|
||||
int errnum;
|
||||
|
||||
/*
|
||||
* Sanity checks.
|
||||
*/
|
||||
if ((unsigned) fd >= FD_SETSIZE)
|
||||
acl_msg_fatal("fd %d does not fit in FD_SETSIZE", fd);
|
||||
acl_msg_fatal("%s(%d), %s: fd %d does not fit in "
|
||||
"FD_SETSIZE: %d", __FILE__, __LINE__, myname,
|
||||
(int) fd, FD_SETSIZE);
|
||||
|
||||
/*
|
||||
* Initialize.
|
||||
*/
|
||||
FD_ZERO(&read_fds);
|
||||
FD_SET(fd, &read_fds);
|
||||
FD_ZERO(&except_fds);
|
||||
FD_SET(fd, &except_fds);
|
||||
FD_ZERO(&rfds);
|
||||
FD_SET(fd, &rfds);
|
||||
FD_ZERO(&xfds);
|
||||
FD_SET(fd, &xfds);
|
||||
tv.tv_sec = 0;
|
||||
tv.tv_usec = 0;
|
||||
|
||||
acl_set_error(0);
|
||||
|
||||
/*
|
||||
* Loop until we have an authoritative answer.
|
||||
*/
|
||||
for (;;) {
|
||||
switch (select(fd + 1, &read_fds,
|
||||
(fd_set *) 0, &except_fds, &tv)) {
|
||||
switch (select(fd + 1, &rfds, (fd_set *) 0, &xfds, &tv)) {
|
||||
case -1:
|
||||
if (acl_last_error() != ACL_EINTR) {
|
||||
char tbuf[256];
|
||||
acl_msg_fatal("select: %s", acl_last_strerror(tbuf, sizeof(tbuf)));
|
||||
errnum = acl_last_error();
|
||||
#ifdef WIN32
|
||||
if (errnum == WSAEINPROGRESS
|
||||
|| errnum == WSAEWOULDBLOCK
|
||||
|| errnum == ACL_EINTR)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
continue;
|
||||
default:
|
||||
return (FD_ISSET(fd, &read_fds));
|
||||
#else
|
||||
if (errnum == ACL_EINTR)
|
||||
continue;
|
||||
#endif
|
||||
acl_msg_error("%s(%d), %s: select error(%s), fd: %d",
|
||||
__FILE__, __LINE__, myname,
|
||||
acl_last_serror(), (int) fd);
|
||||
return -1;
|
||||
case 0:
|
||||
return (0);
|
||||
return 0;
|
||||
default:
|
||||
return FD_ISSET(fd, &rfds);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
|
@ -26,25 +26,23 @@
|
||||
/* acl_timed_read - read with deadline */
|
||||
|
||||
int acl_timed_read(ACL_SOCKET fd, void *buf, unsigned len,
|
||||
int timeout, void *unused_context acl_unused)
|
||||
int timeout, void *context acl_unused)
|
||||
{
|
||||
int ret;
|
||||
|
||||
/*
|
||||
* Wait for a limited amount of time for something to happen. If nothing
|
||||
* happens, report an ETIMEDOUT error.
|
||||
* Wait for a limited amount of time for something to happen.
|
||||
* If nothing happens, report an ETIMEDOUT error.
|
||||
*
|
||||
* XXX Solaris 8 read() fails with EAGAIN after read-select() returns
|
||||
* success.
|
||||
* XXX Solaris 8 read() fails with EAGAIN after read-select()
|
||||
* returns success.
|
||||
*/
|
||||
for (;;) {
|
||||
if (timeout > 0 &&
|
||||
acl_read_wait(fd, timeout) < 0)
|
||||
{
|
||||
if (timeout > 0 && acl_read_wait(fd, timeout) < 0)
|
||||
return -1;
|
||||
}
|
||||
ret = acl_socket_read(fd, buf, len, 0, NULL, NULL);
|
||||
if (ret < 0 && timeout > 0 && acl_last_error() == ACL_EAGAIN) {
|
||||
if (ret < 0 && timeout > 0 && acl_last_error() == ACL_EAGAIN)
|
||||
{
|
||||
acl_msg_warn("read() returns EAGAIN on"
|
||||
" a readable file descriptor!");
|
||||
acl_msg_warn("pausing to avoid going into"
|
||||
|
@ -26,28 +26,29 @@
|
||||
/* acl_timed_write - write with deadline */
|
||||
|
||||
int acl_timed_write(ACL_SOCKET fd, void *buf, unsigned len,
|
||||
int timeout, void *unused_context acl_unused)
|
||||
int timeout, void *context acl_unused)
|
||||
{
|
||||
int ret;
|
||||
|
||||
/*
|
||||
* Wait for a limited amount of time for something to happen. If nothing
|
||||
* happens, report an ETIMEDOUT error.
|
||||
* Wait for a limited amount of time for something to happen.
|
||||
* If nothing happens, report an ETIMEDOUT error.
|
||||
*
|
||||
* XXX Solaris 8 read() fails with EAGAIN after read-select() returns
|
||||
* success. The code below exists just in case their write implementation
|
||||
* is equally broken.
|
||||
* XXX Solaris 8 read() fails with EAGAIN after read-select()
|
||||
* returns success. The code below exists just in case their
|
||||
* write implementation is equally broken.
|
||||
*
|
||||
* This condition may also be found on systems where select() returns
|
||||
* success on pipes with less than PIPE_BUF bytes of space, and with
|
||||
* badly designed software where multiple writers are fighting for access
|
||||
* to the same resource.
|
||||
* This condition may also be found on systems where select()
|
||||
* returns success on pipes with less than PIPE_BUF bytes of
|
||||
* space, and with badly designed software where multiple writers
|
||||
* are fighting for access to the same resource.
|
||||
*/
|
||||
for (;;) {
|
||||
if (timeout > 0 && acl_write_wait(fd, timeout) < 0)
|
||||
return -1;
|
||||
ret = acl_socket_write(fd, buf, len, 0, NULL, NULL);
|
||||
if (ret < 0 && timeout > 0 && acl_last_error() == ACL_EAGAIN) {
|
||||
if (ret < 0 && timeout > 0 && acl_last_error() == ACL_EAGAIN)
|
||||
{
|
||||
acl_msg_warn("write() returns EAGAIN on"
|
||||
" a writable file descriptor!");
|
||||
acl_msg_warn("pausing to avoid going into"
|
||||
|
@ -23,117 +23,113 @@
|
||||
#include "stdlib/acl_iostuff.h"
|
||||
#include "../../init/init.h"
|
||||
|
||||
static int select_write_wait(ACL_SOCKET fd, int timeout)
|
||||
{
|
||||
const char *myname = "select_write_wait";
|
||||
fd_set write_fds;
|
||||
fd_set except_fds;
|
||||
struct timeval tv;
|
||||
struct timeval *tp;
|
||||
char buf[256];
|
||||
#ifdef WIN32
|
||||
int errnum;
|
||||
#endif
|
||||
|
||||
#ifdef ACL_UNIX
|
||||
/*
|
||||
* Sanity checks.
|
||||
*/
|
||||
if (FD_SETSIZE <= (unsigned) fd)
|
||||
acl_msg_panic("%s, %s(%d): descriptor %d does not fit FD_SETSIZE %d",
|
||||
myname, __FILE__, __LINE__, fd, FD_SETSIZE);
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Guard the write() with select() so we do not depend on alarm() and on
|
||||
* signal() handlers. Restart the select when interrupted by some signal.
|
||||
* Some select() implementations may reduce the time to wait when
|
||||
* interrupted, which is exactly what we want.
|
||||
*/
|
||||
FD_ZERO(&write_fds);
|
||||
FD_SET(fd, &write_fds);
|
||||
FD_ZERO(&except_fds);
|
||||
FD_SET(fd, &except_fds);
|
||||
if (timeout >= 0) {
|
||||
tv.tv_usec = 0;
|
||||
tv.tv_sec = timeout;
|
||||
tp = &tv;
|
||||
} else {
|
||||
tp = 0;
|
||||
}
|
||||
|
||||
for (;;) {
|
||||
switch (select(fd + 1, (fd_set *) 0, &write_fds, &except_fds, tp)) {
|
||||
case -1:
|
||||
#ifdef WIN32
|
||||
errnum = WSAGetLastError();
|
||||
if (errnum != WSAEINPROGRESS && errnum != WSAEWOULDBLOCK) {
|
||||
acl_msg_error("%s, %s(%d): select error(%s), fd(%d)",
|
||||
myname, __FILE__, __LINE__,
|
||||
acl_last_strerror(buf, sizeof(buf)), fd);
|
||||
return (-1);
|
||||
}
|
||||
#else
|
||||
if (acl_last_error() != ACL_EINTR) {
|
||||
acl_msg_error("%s, %s(%d): select error(%s), fd(%d)",
|
||||
myname, __FILE__, __LINE__,
|
||||
acl_last_strerror(buf, sizeof(buf)), fd);
|
||||
return (-1);
|
||||
}
|
||||
#endif
|
||||
continue;
|
||||
case 0:
|
||||
acl_set_error(ACL_ETIMEDOUT);
|
||||
return (-1);
|
||||
default:
|
||||
return (0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef ACL_UNIX
|
||||
|
||||
#include <stdio.h>
|
||||
static int poll_write_wait(ACL_SOCKET fd, int timeout)
|
||||
int acl_write_wait(ACL_SOCKET fd, int timeout)
|
||||
{
|
||||
const char *myname = "poll_write_wait";
|
||||
const char *myname = "acl_write_wait";
|
||||
struct pollfd fds;
|
||||
int delay = timeout * 1000;
|
||||
|
||||
fds.events = POLLOUT | POLLHUP | POLLERR;
|
||||
fds.fd = fd;
|
||||
|
||||
acl_set_error(0);
|
||||
|
||||
for (;;) {
|
||||
switch (poll(&fds, 1, delay)) {
|
||||
case -1:
|
||||
if (acl_last_error() != ACL_EINTR) {
|
||||
char tbuf[256];
|
||||
acl_msg_error("%s: poll error(%s)", myname,
|
||||
acl_last_strerror(tbuf, sizeof(tbuf)));
|
||||
return (-1);
|
||||
}
|
||||
continue;
|
||||
if (acl_last_error() == ACL_EINTR)
|
||||
continue;
|
||||
acl_msg_error("%s(%d), %s: poll error(%s), fd: %d",
|
||||
__FILE__, __LINE__, myname,
|
||||
acl_last_serror(), (int) fd);
|
||||
return -1;
|
||||
case 0:
|
||||
acl_set_error(ACL_ETIMEDOUT);
|
||||
return (-1);
|
||||
return -1;
|
||||
default:
|
||||
if ((fds.revents & (POLLHUP | POLLERR))
|
||||
|| !(fds.revents & POLLOUT))
|
||||
{
|
||||
return (-1);
|
||||
if ((fds.revents & (POLLHUP | POLLERR))) {
|
||||
acl_msg_error("%s(%d), %s: fd: %d,"
|
||||
"POLLHUP: %s, POLLERR: %s",
|
||||
__FILE__, __LINE__, myname, fd,
|
||||
fds.revents & POLLHUP ? "yes" : "no",
|
||||
fds.revents & POLLERR ? "yes" : "no");
|
||||
return -1;
|
||||
}
|
||||
return (0);
|
||||
if (fds.revents & POLLOUT)
|
||||
return 0;
|
||||
acl_msg_error("%s(%d), %s: unknown error, fd: %d",
|
||||
__FILE__, __LINE__, myname, fd);
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
#else
|
||||
|
||||
int acl_write_wait(ACL_SOCKET fd, int timeout)
|
||||
{
|
||||
#ifdef ACL_UNIX
|
||||
if (__acl_var_use_poll)
|
||||
return (poll_write_wait(fd, timeout));
|
||||
#endif
|
||||
const char *myname = "acl_write_wait";
|
||||
fd_set wfds, xfds;
|
||||
struct timeval tv;
|
||||
struct timeval *tp;
|
||||
int errnum;
|
||||
|
||||
return (select_write_wait(fd, timeout));
|
||||
/*
|
||||
* Sanity checks.
|
||||
*/
|
||||
if (FD_SETSIZE <= (unsigned) fd)
|
||||
acl_msg_fatal("%s, %s(%d): descriptor %d does not fit "
|
||||
"FD_SETSIZE %d", myname, __FILE__, __LINE__,
|
||||
(int) fd, FD_SETSIZE);
|
||||
|
||||
/*
|
||||
* Guard the write() with select() so we do not depend on alarm()
|
||||
* and on signal() handlers. Restart the select when interrupted
|
||||
* by some signal. Some select() implementations may reduce the time
|
||||
* to wait when interrupted, which is exactly what we want.
|
||||
*/
|
||||
FD_ZERO(&wfds);
|
||||
FD_SET(fd, &wfds);
|
||||
FD_ZERO(&xfds);
|
||||
FD_SET(fd, &xfds);
|
||||
|
||||
if (timeout >= 0) {
|
||||
tv.tv_usec = 0;
|
||||
tv.tv_sec = timeout;
|
||||
tp = &tv;
|
||||
} else
|
||||
tp = 0;
|
||||
|
||||
acl_set_error(0);
|
||||
|
||||
for (;;) {
|
||||
switch (select(fd + 1, (fd_set *) 0, &wfds, &xfds, tp)) {
|
||||
case -1:
|
||||
errnum = acl_last_error();
|
||||
#ifdef WIN32
|
||||
if (errnum == WSAEINPROGRESS
|
||||
|| errnum == WSAEWOULDBLOCK
|
||||
|| errnum == ACL_EINTR)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
#else
|
||||
if (errnum == ACL_EINTR)
|
||||
continue;
|
||||
#endif
|
||||
acl_msg_error("%s, %s(%d): select error(%s), fd(%d)",
|
||||
myname, __FILE__, __LINE__,
|
||||
acl_last_serror(), (int) fd);
|
||||
return -1;
|
||||
case 0:
|
||||
acl_set_error(ACL_ETIMEDOUT);
|
||||
return -1;
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
|
@ -19,7 +19,6 @@
|
||||
|
||||
#include "stdlib/acl_msg.h"
|
||||
#include "stdlib/acl_malloc.h"
|
||||
#include "stdlib/unix/acl_trace.h"
|
||||
|
||||
#endif
|
||||
|
||||
@ -174,21 +173,18 @@ void *acl_default_malloc(const char *filename, int line, size_t len)
|
||||
acl_msg_fatal("%s(%d): new_len(%d) <= 0",
|
||||
myname, __LINE__, (int) new_len);
|
||||
else if (new_len >= __malloc_limit) {
|
||||
acl_log_strace();
|
||||
acl_msg_warn("%s(%d): new_len(%d) too large",
|
||||
myname, __LINE__, (int) new_len);
|
||||
}
|
||||
|
||||
#ifdef _USE_GLIB
|
||||
if ((real_ptr = (MBLOCK *) g_malloc(new_len)) == 0) {
|
||||
acl_log_strace();
|
||||
acl_msg_error("%s(%d)->%s: new_len: %d, g_malloc error(%s)",
|
||||
pname, line, myname, (int) new_len, strerror(errno));
|
||||
return 0;
|
||||
}
|
||||
#else
|
||||
if ((real_ptr = (MBLOCK *) malloc(new_len)) == 0) {
|
||||
acl_log_strace();
|
||||
acl_msg_error("%s(%d)->%s: malloc: insufficient memory: %s, "
|
||||
"new_len: %d", pname, line, myname,
|
||||
strerror(errno), (int) new_len);
|
||||
@ -245,7 +241,6 @@ void *acl_default_realloc(const char *filename, int line,
|
||||
acl_msg_fatal("%s(%d): new_len(%d) <= 0",
|
||||
myname, __LINE__, (int) new_len);
|
||||
else if (new_len >= __malloc_limit) {
|
||||
acl_log_strace();
|
||||
acl_msg_warn("%s(%d): new_len(%d) too large",
|
||||
myname, __LINE__, (int) new_len);
|
||||
}
|
||||
@ -283,7 +278,6 @@ void acl_default_free(const char *filename, int line, void *ptr)
|
||||
pname = __FILENAME_UNKNOWN;
|
||||
|
||||
if (ptr == NULL) {
|
||||
acl_log_strace();
|
||||
acl_msg_error("%s(%d)->%s: ptr null", pname, line, myname);
|
||||
return;
|
||||
}
|
||||
|
@ -12,9 +12,9 @@
|
||||
#include <sys/stat.h>
|
||||
#include <fcntl.h>
|
||||
|
||||
void acl_dump_trace(const char *filepath)
|
||||
void acl_trace_save(const char *filepath)
|
||||
{
|
||||
const char *myname = "acl_dump_trace";
|
||||
const char *myname = "acl_trace_save";
|
||||
int fd;
|
||||
void *buffer[1000];
|
||||
size_t n;
|
||||
@ -34,7 +34,7 @@ void acl_dump_trace(const char *filepath)
|
||||
close(fd);
|
||||
}
|
||||
|
||||
void acl_log_strace(void)
|
||||
void acl_trace_info(void)
|
||||
{
|
||||
void *buffer[1000];
|
||||
size_t n, i;
|
||||
@ -50,11 +50,11 @@ void acl_log_strace(void)
|
||||
|
||||
#else
|
||||
|
||||
void acl_dump_trace(const char *filepath acl_unused)
|
||||
void acl_trace_save(const char *filepath acl_unused)
|
||||
{
|
||||
}
|
||||
|
||||
void acl_log_strace(void)
|
||||
void acl_trace_info(void)
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -1474,6 +1474,11 @@ int acl_pthread_pool_dispatch(void *dispatch_arg,
|
||||
return 0;
|
||||
}
|
||||
|
||||
int acl_pthread_pool_limit(acl_pthread_pool_t *thr_pool)
|
||||
{
|
||||
return thr_pool->parallelism;
|
||||
}
|
||||
|
||||
int acl_pthread_pool_size(acl_pthread_pool_t *thr_pool)
|
||||
{
|
||||
const char *myname = "acl_pthread_pool_size";
|
||||
|
@ -1,6 +1,14 @@
|
||||
修改历史列表:
|
||||
|
||||
------------------------------------------------------------------------
|
||||
266) 2014.12.2
|
||||
266.1) bugfix: polarssl_io 类在非阻塞模式下有可能会阻塞在 IO 上
|
||||
|
||||
265) 2014.12.1
|
||||
265.1) bugfix: istream 类中的 xxx_peek 函数在读出错时没有判断 errno 为 ACL_EWOULDBLOCK
|
||||
的情况,在非阻塞方式下,当读返回 -1 且 errno 为 ACL_EWOULDBLOCK 时并不表示读出错
|
||||
265.2) feature: polarssl_io 类完善了非阻塞 IO 过程
|
||||
|
||||
264) 2014.11.29
|
||||
264.1) feature: stream_setup 类现在可以支持 aio_stream 非阻塞流了
|
||||
264.2) feature: polarssl_io 类增加了支持非阻塞 IO 的方法
|
||||
|
@ -7,13 +7,12 @@ struct ACL_VSTREAM;
|
||||
|
||||
namespace acl {
|
||||
|
||||
class stream;
|
||||
class polarssl_conf;
|
||||
|
||||
/**
|
||||
* stream 流对象底层 IO 处理过程的处理类,该类对象中的读写的过程将会替代
|
||||
* stream 流对象中 默认的底层 IO 过程;该类对象必须是动态创建的(即为堆对象),
|
||||
* stream 流对象通过调用本类对象的 destroy() 方法释放本类对象
|
||||
* stream/aio_stream 流对象底层 IO 处理过程的处理类,该类对象中的读写的过程将会替代
|
||||
* stream/aio_stream 流对象中 默认的底层 IO 过程;该类对象必须是动态创建的(即为堆对象),
|
||||
* stream/aio_stream 流对象通过调用本类对象的 destroy() 方法释放本类对象
|
||||
*/
|
||||
class ACL_CPP_API polarssl_io : public stream_hook
|
||||
{
|
||||
@ -51,6 +50,23 @@ public:
|
||||
return handshake_ok_;
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置套接字为阻塞模式/非阻塞模式
|
||||
* @param yes {bool} 当为 false 时则设为阻塞模式,否则设为非阻塞模式
|
||||
* @return {polarssl_io&}
|
||||
*/
|
||||
polarssl_io& set_non_blocking(bool yes);
|
||||
|
||||
/**
|
||||
* 判断当前设置的 SSL IO 是否阻塞模式还是非阻塞模式
|
||||
* @return {bool} 返回 true 则表示为非阻塞模式,否则为阻塞模式
|
||||
*/
|
||||
bool is_non_blocking(void) const
|
||||
{
|
||||
return non_block_;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 检查对方证书是否有效(一般不必调用此函数)
|
||||
* @return {bool}
|
||||
|
@ -5,9 +5,6 @@ all:
|
||||
@(cd json; make)
|
||||
@(cd mime; make)
|
||||
@(cd socket_stream; make)
|
||||
@(cd mime_base64; make)
|
||||
@(cd mime_xxcode; make)
|
||||
@(cd mime_qp; make)
|
||||
@(cd charset; make)
|
||||
@(cd rfc2047; make)
|
||||
@(cd rfc822; make)
|
||||
@ -31,15 +28,7 @@ all:
|
||||
@(cd md5; make)
|
||||
@(cd http_server; make)
|
||||
@(cd beanstalk; make)
|
||||
@(cd master_http_rpc; make)
|
||||
@(cd master_http_aio; make)
|
||||
@(cd master_http_threads; make)
|
||||
@(cd master_trigger; make)
|
||||
@(cd master_aio; make)
|
||||
@(cd master_proc; make)
|
||||
@(cd master_threads; make)
|
||||
@(cd master_udp; make)
|
||||
@(cd master_udp_threads; make)
|
||||
@(cd master; make)
|
||||
@(cd master_aio_proxy; make)
|
||||
@(cd benchmark; make)
|
||||
@(cd fs_benchmark; make)
|
||||
@ -62,9 +51,6 @@ clean:
|
||||
@(cd json; make clean)
|
||||
@(cd mime; make clean)
|
||||
@(cd socket_stream; make clean)
|
||||
@(cd mime_base64; make clean)
|
||||
@(cd mime_xxcode; make clean)
|
||||
@(cd mime_qp; make clean)
|
||||
@(cd charset; make clean)
|
||||
@(cd rfc2047; make clean)
|
||||
@(cd rfc822; make clean)
|
||||
@ -88,21 +74,13 @@ clean:
|
||||
@(cd md5; make clean)
|
||||
@(cd http_server; make clean)
|
||||
@(cd beanstalk; make clean)
|
||||
@(cd master_http_rpc; make clean)
|
||||
@(cd master_http_aio; make clean)
|
||||
@(cd master_http_threads; make clean)
|
||||
@(cd master_trigger; make clean)
|
||||
@(cd master_aio; make clean)
|
||||
@(cd master_proc; make clean)
|
||||
@(cd master_threads; make clean)
|
||||
@(cd master; make clean)
|
||||
@(cd master_aio_proxy; make clean)
|
||||
@(cd benchmark; make clean)
|
||||
@(cd fs_benchmark; make clean)
|
||||
@(cd http_request_pool; make clean)
|
||||
@(cd memcache_pool; make clean)
|
||||
@(cd udp_client;make clean)
|
||||
@(cd master_udp; make clean)
|
||||
@(cd master_udp_threads; make clean)
|
||||
@(cd thread; make clean)
|
||||
@(cd thread_pool; make clean)
|
||||
@(cd thread_client; make clean)
|
||||
|
@ -72,13 +72,19 @@ endif
|
||||
###########################################################
|
||||
|
||||
BASE_PATH =
|
||||
|
||||
ifneq ($(base_path),)
|
||||
BASE_PATH = $(base_path)
|
||||
else
|
||||
BASE_PATH = ../..
|
||||
endif
|
||||
|
||||
UTIL_PATH =
|
||||
ifneq ($(util_path),)
|
||||
UTIL_PATH = $(util_path)
|
||||
else
|
||||
UTIL_PATH = ..
|
||||
endif
|
||||
|
||||
CFLAGS += -I. -I$(BASE_PATH)/include -I$(BASE_PATH)/../lib_acl/include -I$(BASE_PATH)/../lib_protocol/include
|
||||
EXTLIBS =
|
||||
LDFLAGS = -L$(BASE_PATH)/lib -l_acl_cpp -L$(BASE_PATH)/../lib_protocol/lib -l_protocol -L$(BASE_PATH)/../lib_acl/lib -l_acl \
|
||||
@ -90,12 +96,14 @@ LINK = $(CC) $(OBJ) $(LDFLAGS)
|
||||
OBJ_PATH = .
|
||||
|
||||
#Project's objs
|
||||
#UTIL = $(wildcard $(UTIL_PATH)/*.cpp)
|
||||
SRC = $(wildcard *.cpp) $(UTIL)
|
||||
#SRC = $(wildcard *.cpp)
|
||||
OBJ = $(patsubst %.cpp, $(OBJ_PATH)/%.o, $(notdir $(SRC)))
|
||||
|
||||
$(OBJ_PATH)/%.o: %.cpp
|
||||
$(COMPILE) $< -o $@
|
||||
$(OBJ_PATH)/%.o: ../%.cpp
|
||||
$(OBJ_PATH)/%.o: $(UTIL_PATH)/%.cpp
|
||||
$(COMPILE) $< -o $@
|
||||
|
||||
.PHONY = all clean
|
||||
|
@ -25,7 +25,7 @@ public:
|
||||
timer_reader(int delay)
|
||||
{
|
||||
delay_ = delay;
|
||||
std::cout << "timer_reader init, delay: " << delay << std::endl;
|
||||
printf("timer_reader init, delay: %d\r\n", delay);
|
||||
}
|
||||
|
||||
~timer_reader()
|
||||
@ -35,15 +35,14 @@ public:
|
||||
// aio_timer_reader 的子类必须重载 destroy 方法
|
||||
void destroy()
|
||||
{
|
||||
std::cout << "timer_reader delete, delay: " << delay_ << std::endl;
|
||||
printf("timer_reader delete, delay: %d\r\n", delay_);
|
||||
delete this;
|
||||
}
|
||||
|
||||
// 重载基类回调方法
|
||||
virtual void timer_callback(unsigned int id)
|
||||
{
|
||||
std::cout << "timer_reader(" << id
|
||||
<< "): timer_callback, delay: " << delay_ << std::endl;
|
||||
printf("timer_reader(%d): delay: %d\r\n", id, delay_);
|
||||
|
||||
// 调用基类的处理过程
|
||||
aio_timer_reader::timer_callback(id);
|
||||
@ -62,7 +61,7 @@ public:
|
||||
timer_writer(int delay)
|
||||
{
|
||||
delay_ = delay;
|
||||
std::cout << "timer_writer init, delay: " << delay << std::endl;
|
||||
printf("timer_writer init, delay: %d\r\n", delay);
|
||||
}
|
||||
|
||||
~timer_writer()
|
||||
@ -72,15 +71,15 @@ public:
|
||||
// aio_timer_reader 的子类必须重载 destroy 方法
|
||||
void destroy()
|
||||
{
|
||||
std::cout << "timer_writer delete, delay: " << delay_ << std::endl;
|
||||
printf("timer_writer delete, delay: %d\r\n", delay_);
|
||||
delete this;
|
||||
}
|
||||
|
||||
// 重载基类回调方法
|
||||
virtual void timer_callback(unsigned int id)
|
||||
{
|
||||
std::cout << "timer_writer(" << id << "): timer_callback, delay: "
|
||||
<< delay_ << std::endl;
|
||||
printf("timer_writer(%d): timer_callback, delay: %d\r\n",
|
||||
id, delay_);
|
||||
|
||||
// 调用基类的处理过程
|
||||
aio_timer_writer::timer_callback(id);
|
||||
@ -104,7 +103,7 @@ public:
|
||||
|
||||
~io_callback()
|
||||
{
|
||||
std::cout << "delete io_callback now ..." << std::endl;
|
||||
printf("delete io_callback now ...\r\n");
|
||||
}
|
||||
|
||||
/**
|
||||
@ -128,14 +127,10 @@ public:
|
||||
// 尝试进行 SSL 握手
|
||||
if (hook->handshake() == false)
|
||||
{
|
||||
std::cout << "ssl handshake failed" << std::endl;
|
||||
printf("ssl handshake failed\r\n");
|
||||
return false;
|
||||
}
|
||||
|
||||
std::cout << ">>>handshake: "
|
||||
<< (hook->handshake_ok() ? "ok": "wait")
|
||||
<< "<<<" << std::endl;
|
||||
|
||||
// 如果 SSL 握手已经成功,则开始按行读数据
|
||||
if (hook->handshake_ok())
|
||||
{
|
||||
@ -161,9 +156,9 @@ public:
|
||||
bool read_callback(char* data, int len)
|
||||
{
|
||||
i_++;
|
||||
if (i_ < 10)
|
||||
std::cout << ">>gets(i:" << i_ << "): "
|
||||
<< data << std::endl;
|
||||
//if (i_ < 10)
|
||||
// std::cout << ">>gets(i:" << i_ << "): "
|
||||
// << data << std::endl;
|
||||
|
||||
// 如果远程客户端希望退出,则关闭之
|
||||
if (strncasecmp(data, "quit", 4) == 0)
|
||||
|
4
lib_acl_cpp/samples/aio/ssl_aio_client/Makefile
Normal file
4
lib_acl_cpp/samples/aio/ssl_aio_client/Makefile
Normal file
@ -0,0 +1,4 @@
|
||||
base_path = ../../..
|
||||
include ../../Makefile.in
|
||||
PROG = ssl_aio_client
|
||||
EXTLIBS += -lpolarssl
|
@ -19,7 +19,7 @@
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="..\..\include;..\..\..\lib_acl\include"
|
||||
AdditionalIncludeDirectories="..\..\..\include;..\..\..\..\lib_acl\include"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;VC2003"
|
||||
MinimalRebuild="TRUE"
|
||||
BasicRuntimeChecks="3"
|
||||
@ -35,7 +35,7 @@
|
||||
AdditionalDependencies="polarssl.lib"
|
||||
OutputFile="$(OutDir)/ssl_aio_client.exe"
|
||||
LinkIncremental="2"
|
||||
AdditionalLibraryDirectories="..\..\..\lib\win32;..\..\..\dist\lib\win32"
|
||||
AdditionalLibraryDirectories="..\..\..\..\lib\win32;..\..\..\..\dist\lib\win32"
|
||||
IgnoreDefaultLibraryNames="libc"
|
||||
GenerateDebugInformation="TRUE"
|
||||
ProgramDatabaseFile="$(OutDir)/ssl_aio_client.pdb"
|
||||
@ -70,7 +70,7 @@
|
||||
CharacterSet="2">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories="..\..\include;..\..\..\lib_acl\include"
|
||||
AdditionalIncludeDirectories="..\..\..\include;..\..\..\..\lib_acl\include"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;VC2003"
|
||||
RuntimeLibrary="0"
|
||||
UsePrecompiledHeader="0"
|
||||
@ -84,7 +84,7 @@
|
||||
AdditionalDependencies="polarssl.lib"
|
||||
OutputFile="$(OutDir)/ssl_aio_client.exe"
|
||||
LinkIncremental="1"
|
||||
AdditionalLibraryDirectories="..\..\..\lib\win32;..\..\..\dist\lib\win32"
|
||||
AdditionalLibraryDirectories="..\..\..\..\lib\win32;..\..\..\..\dist\lib\win32"
|
||||
IgnoreDefaultLibraryNames="libc"
|
||||
GenerateDebugInformation="TRUE"
|
||||
SubSystem="1"
|
||||
@ -121,7 +121,7 @@
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="..\..\include;..\..\..\lib_acl\include"
|
||||
AdditionalIncludeDirectories="..\..\..\include;..\..\..\..\lib_acl\include"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;VC2003;ACL_DLL;ACL_CPP_DLL"
|
||||
MinimalRebuild="TRUE"
|
||||
BasicRuntimeChecks="3"
|
||||
@ -136,7 +136,7 @@
|
||||
Name="VCLinkerTool"
|
||||
OutputFile="$(OutDir)/ssl_aio_client.exe"
|
||||
LinkIncremental="2"
|
||||
AdditionalLibraryDirectories="..\..\..\lib\win32"
|
||||
AdditionalLibraryDirectories="..\..\..\..\lib\win32"
|
||||
IgnoreDefaultLibraryNames="libcmt"
|
||||
GenerateDebugInformation="TRUE"
|
||||
ProgramDatabaseFile="$(OutDir)/ssl_aio_client.pdb"
|
||||
@ -171,7 +171,7 @@
|
||||
CharacterSet="2">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories="..\..\include;..\..\..\lib_acl\include"
|
||||
AdditionalIncludeDirectories="..\..\..\include;..\..\..\..\lib_acl\include"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;VC2003;ACL_DLL;ACL_CPP_DLL"
|
||||
RuntimeLibrary="2"
|
||||
UsePrecompiledHeader="0"
|
||||
@ -184,7 +184,7 @@
|
||||
Name="VCLinkerTool"
|
||||
OutputFile="$(OutDir)/ssl_aio_client.exe"
|
||||
LinkIncremental="1"
|
||||
AdditionalLibraryDirectories="..\..\..\lib\win32"
|
||||
AdditionalLibraryDirectories="..\..\..\..\lib\win32"
|
||||
GenerateDebugInformation="TRUE"
|
||||
SubSystem="1"
|
||||
OptimizeReferences="2"
|
@ -41,7 +41,7 @@
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="..\..\include;..\..\..\lib_acl\include"
|
||||
AdditionalIncludeDirectories="..\..\..\include;..\..\..\..\lib_acl\include"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS"
|
||||
MinimalRebuild="true"
|
||||
BasicRuntimeChecks="3"
|
||||
@ -65,7 +65,7 @@
|
||||
AdditionalDependencies="polarssl.lib"
|
||||
OutputFile="$(OutDir)/ssl_aio_client.exe"
|
||||
LinkIncremental="2"
|
||||
AdditionalLibraryDirectories="..\..\..\lib\win32;..\..\..\dist\lib\win32"
|
||||
AdditionalLibraryDirectories="..\..\..\..\lib\win32;..\..\..\..\dist\lib\win32"
|
||||
IgnoreDefaultLibraryNames="libc"
|
||||
GenerateDebugInformation="true"
|
||||
ProgramDatabaseFile="$(OutDir)/ssl_aio_client.pdb"
|
||||
@ -121,7 +121,7 @@
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories="..\..\include;..\..\..\lib_acl\include"
|
||||
AdditionalIncludeDirectories="..\..\..\include;..\..\..\..\lib_acl\include"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS"
|
||||
RuntimeLibrary="0"
|
||||
UsePrecompiledHeader="0"
|
||||
@ -143,7 +143,7 @@
|
||||
AdditionalDependencies="polarssl.lib"
|
||||
OutputFile="$(OutDir)/ssl_aio_client.exe"
|
||||
LinkIncremental="1"
|
||||
AdditionalLibraryDirectories="..\..\..\lib\win32;..\..\..\dist\lib\win32"
|
||||
AdditionalLibraryDirectories="..\..\..\..\lib\win32;..\..\..\..\dist\lib\win32"
|
||||
IgnoreDefaultLibraryNames="libc"
|
||||
GenerateDebugInformation="true"
|
||||
SubSystem="1"
|
||||
@ -201,7 +201,7 @@
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="..\..\include;..\..\..\lib_acl\include"
|
||||
AdditionalIncludeDirectories="..\..\..\include;..\..\..\..\lib_acl\include"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;ACL_DLL;ACL_CPP_DLL"
|
||||
MinimalRebuild="true"
|
||||
BasicRuntimeChecks="3"
|
||||
@ -224,7 +224,7 @@
|
||||
Name="VCLinkerTool"
|
||||
OutputFile="$(OutDir)/ssl_aio_client.exe"
|
||||
LinkIncremental="2"
|
||||
AdditionalLibraryDirectories="..\..\..\lib\win32"
|
||||
AdditionalLibraryDirectories="..\..\..\..\lib\win32"
|
||||
IgnoreDefaultLibraryNames="libcmt"
|
||||
GenerateDebugInformation="true"
|
||||
ProgramDatabaseFile="$(OutDir)/ssl_aio_client.pdb"
|
||||
@ -280,7 +280,7 @@
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories="..\..\include;..\..\..\lib_acl\include"
|
||||
AdditionalIncludeDirectories="..\..\..\include;..\..\..\..\lib_acl\include"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;ACL_DLL;ACL_CPP_DLL"
|
||||
RuntimeLibrary="2"
|
||||
UsePrecompiledHeader="0"
|
||||
@ -301,7 +301,7 @@
|
||||
Name="VCLinkerTool"
|
||||
OutputFile="$(OutDir)/ssl_aio_client.exe"
|
||||
LinkIncremental="1"
|
||||
AdditionalLibraryDirectories="..\..\..\lib\win32"
|
||||
AdditionalLibraryDirectories="..\..\..\..\lib\win32"
|
||||
GenerateDebugInformation="true"
|
||||
SubSystem="1"
|
||||
OptimizeReferences="2"
|
8
lib_acl_cpp/samples/charset/stdafx.cpp
Normal file
8
lib_acl_cpp/samples/charset/stdafx.cpp
Normal file
@ -0,0 +1,8 @@
|
||||
// stdafx.cpp : 只包括标准包含文件的源文件
|
||||
// xml.pch 将成为预编译头
|
||||
// stdafx.obj 将包含预编译类型信息
|
||||
|
||||
#include "stdafx.h"
|
||||
|
||||
// TODO: 在 STDAFX.H 中
|
||||
//引用任何所需的附加头文件,而不是在此文件中引用
|
12
lib_acl_cpp/samples/charset/stdafx.h
Normal file
12
lib_acl_cpp/samples/charset/stdafx.h
Normal file
@ -0,0 +1,12 @@
|
||||
// stdafx.h : 标准系统包含文件的包含文件,
|
||||
// 或是常用但不常更改的项目特定的包含文件
|
||||
//
|
||||
|
||||
#pragma once
|
||||
|
||||
//
|
||||
//#include <iostream>
|
||||
//#include <tchar.h>
|
||||
|
||||
// TODO: 在此处引用程序要求的附加头文件
|
||||
#include "acl_cpp/lib_acl.hpp"
|
@ -60,6 +60,9 @@ static bool copy_file(acl::ifstream& in, const acl::string& to_path,
|
||||
return false;
|
||||
}
|
||||
|
||||
logger("copying from file: %s, to file: %s", in.file_path(),
|
||||
to_filepath.c_str());
|
||||
|
||||
char buf[4096];
|
||||
int ret;
|
||||
acl_int64 nread = 0;
|
||||
@ -192,9 +195,10 @@ static bool cmp_copy(acl::scan_dir& scan, const char* name,
|
||||
if (memcmp(from_buf, to_buf, to_len) != 0)
|
||||
{
|
||||
to_fp.close();
|
||||
printf("string not equal\r\n");
|
||||
logger("string not equal, from: %s, to: %s",
|
||||
from_fp.file_path(), to_filepath.c_str());
|
||||
return copy_file(from_fp, to_pathbuf,
|
||||
from_filepath, ncopied);
|
||||
to_filepath, ncopied);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,2 +1,3 @@
|
||||
util_path = ..
|
||||
include ../Makefile.in
|
||||
PROG = fstream
|
||||
|
8
lib_acl_cpp/samples/fstream/stdafx.cpp
Normal file
8
lib_acl_cpp/samples/fstream/stdafx.cpp
Normal file
@ -0,0 +1,8 @@
|
||||
// stdafx.cpp : 只包括标准包含文件的源文件
|
||||
// xml.pch 将成为预编译头
|
||||
// stdafx.obj 将包含预编译类型信息
|
||||
|
||||
#include "stdafx.h"
|
||||
|
||||
// TODO: 在 STDAFX.H 中
|
||||
//引用任何所需的附加头文件,而不是在此文件中引用
|
12
lib_acl_cpp/samples/fstream/stdafx.h
Normal file
12
lib_acl_cpp/samples/fstream/stdafx.h
Normal file
@ -0,0 +1,12 @@
|
||||
// stdafx.h : 标准系统包含文件的包含文件,
|
||||
// 或是常用但不常更改的项目特定的包含文件
|
||||
//
|
||||
|
||||
#pragma once
|
||||
|
||||
//
|
||||
//#include <iostream>
|
||||
//#include <tchar.h>
|
||||
|
||||
// TODO: 在此处引用程序要求的附加头文件
|
||||
#include "acl_cpp/lib_acl.hpp"
|
@ -1,5 +0,0 @@
|
||||
UTIL = $(wildcard ../*.cpp)
|
||||
PROG = https_client
|
||||
include ../Makefile.in
|
||||
CFLAGS += -I../
|
||||
EXTLIBS += -lpolarssl -lz
|
@ -1,3 +0,0 @@
|
||||
include ../Makefile.in
|
||||
PROG = https_server
|
||||
EXTLIBS += -lpolarssl -lz
|
25
lib_acl_cpp/samples/master/Makefile
Normal file
25
lib_acl_cpp/samples/master/Makefile
Normal file
@ -0,0 +1,25 @@
|
||||
.PHONY = all clean
|
||||
|
||||
all:
|
||||
@(cd master_http_aio; make)
|
||||
@(cd master_http_threads; make)
|
||||
@(cd master_proc; make)
|
||||
@(cd master_trigger; make)
|
||||
@(cd master_udp_threads; make)
|
||||
@(cd master_aio; make)
|
||||
@(cd master_http_rpc; make)
|
||||
@(cd master_http_threads2; make)
|
||||
@(cd master_threads; make)
|
||||
@(cd master_udp; make)
|
||||
|
||||
clean:
|
||||
@(cd master_http_aio; make clean)
|
||||
@(cd master_http_threads; make clean)
|
||||
@(cd master_proc; make clean)
|
||||
@(cd master_trigger; make clean)
|
||||
@(cd master_udp_threads; make clean)
|
||||
@(cd master_aio; make clean)
|
||||
@(cd master_http_rpc; make clean)
|
||||
@(cd master_http_threads2; make clean)
|
||||
@(cd master_threads; make clean)
|
||||
@(cd master_udp; make clean)
|
3
lib_acl_cpp/samples/master/master_aio/Makefile
Normal file
3
lib_acl_cpp/samples/master/master_aio/Makefile
Normal file
@ -0,0 +1,3 @@
|
||||
base_path = ../../..
|
||||
include ../../Makefile.in
|
||||
PROG = master_aio
|
@ -19,7 +19,7 @@
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="..\..\include;..\..\..\lib_acl\include"
|
||||
AdditionalIncludeDirectories="..\..\..\include;..\..\..\..\lib_acl\include"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;VC2003"
|
||||
MinimalRebuild="TRUE"
|
||||
BasicRuntimeChecks="3"
|
||||
@ -35,7 +35,7 @@
|
||||
AdditionalDependencies="lib_acl_vc2003d.lib"
|
||||
OutputFile="$(OutDir)/master_aio.exe"
|
||||
LinkIncremental="2"
|
||||
AdditionalLibraryDirectories="..\..\lib;..\..\..\dist\lib\win32"
|
||||
AdditionalLibraryDirectories="..\..\..\lib;..\..\..\..\dist\lib\win32"
|
||||
GenerateDebugInformation="TRUE"
|
||||
ProgramDatabaseFile="$(OutDir)/master_aio.pdb"
|
||||
SubSystem="1"
|
||||
@ -69,7 +69,7 @@
|
||||
CharacterSet="2">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories="..\..\include;..\..\..\lib_acl\include"
|
||||
AdditionalIncludeDirectories="..\..\..\include;..\..\..\..\lib_acl\include"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;VC2003"
|
||||
RuntimeLibrary="0"
|
||||
UsePrecompiledHeader="3"
|
||||
@ -83,7 +83,7 @@
|
||||
AdditionalDependencies="lib_acl_vc2003.lib"
|
||||
OutputFile="$(OutDir)/master_aio.exe"
|
||||
LinkIncremental="1"
|
||||
AdditionalLibraryDirectories="..\..\lib;..\..\..\dist\lib\win32"
|
||||
AdditionalLibraryDirectories="..\..\..\lib;..\..\..\..\dist\lib\win32"
|
||||
GenerateDebugInformation="TRUE"
|
||||
SubSystem="1"
|
||||
OptimizeReferences="2"
|
||||
@ -119,7 +119,7 @@
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="..\..\include;..\..\..\lib_acl\include"
|
||||
AdditionalIncludeDirectories="..\..\..\include;..\..\..\..\lib_acl\include"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;VC2003;ACL_CPP_DLL;ACL_DLL"
|
||||
MinimalRebuild="TRUE"
|
||||
BasicRuntimeChecks="3"
|
||||
@ -134,7 +134,7 @@
|
||||
Name="VCLinkerTool"
|
||||
OutputFile="$(OutDir)/master_aio.exe"
|
||||
LinkIncremental="2"
|
||||
AdditionalLibraryDirectories="..\..\lib"
|
||||
AdditionalLibraryDirectories="..\..\..\lib"
|
||||
GenerateDebugInformation="TRUE"
|
||||
ProgramDatabaseFile="$(OutDir)/master_aio.pdb"
|
||||
SubSystem="1"
|
||||
@ -168,7 +168,7 @@
|
||||
CharacterSet="2">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories="..\..\include;..\..\..\lib_acl\include"
|
||||
AdditionalIncludeDirectories="..\..\..\include;..\..\..\..\lib_acl\include"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;VC2003;ACL_CPP_DLL;ACL_DLL"
|
||||
RuntimeLibrary="2"
|
||||
UsePrecompiledHeader="3"
|
||||
@ -181,7 +181,7 @@
|
||||
Name="VCLinkerTool"
|
||||
OutputFile="$(OutDir)/master_aio.exe"
|
||||
LinkIncremental="1"
|
||||
AdditionalLibraryDirectories="..\..\lib"
|
||||
AdditionalLibraryDirectories="..\..\..\lib"
|
||||
GenerateDebugInformation="TRUE"
|
||||
SubSystem="1"
|
||||
OptimizeReferences="2"
|
@ -41,7 +41,7 @@
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="..\..\include;..\..\..\lib_acl\include"
|
||||
AdditionalIncludeDirectories="..\..\..\include;..\..\..\..\lib_acl\include"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
|
||||
MinimalRebuild="true"
|
||||
BasicRuntimeChecks="3"
|
||||
@ -64,7 +64,7 @@
|
||||
Name="VCLinkerTool"
|
||||
OutputFile="$(OutDir)/master_aio.exe"
|
||||
LinkIncremental="2"
|
||||
AdditionalLibraryDirectories="..\..\lib;..\..\..\dist\lib\win32"
|
||||
AdditionalLibraryDirectories="..\..\..\lib;..\..\..\..\dist\lib\win32"
|
||||
GenerateDebugInformation="true"
|
||||
ProgramDatabaseFile="$(OutDir)/master_aio.pdb"
|
||||
SubSystem="1"
|
||||
@ -119,7 +119,7 @@
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories="..\..\include;..\..\..\lib_acl\include"
|
||||
AdditionalIncludeDirectories="..\..\..\include;..\..\..\..\lib_acl\include"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
|
||||
RuntimeLibrary="0"
|
||||
UsePrecompiledHeader="2"
|
||||
@ -140,7 +140,7 @@
|
||||
Name="VCLinkerTool"
|
||||
OutputFile="$(OutDir)/master_aio.exe"
|
||||
LinkIncremental="1"
|
||||
AdditionalLibraryDirectories="..\..\lib;..\..\..\dist\lib\win32"
|
||||
AdditionalLibraryDirectories="..\..\..\lib;..\..\..\..\dist\lib\win32"
|
||||
GenerateDebugInformation="true"
|
||||
SubSystem="1"
|
||||
OptimizeReferences="2"
|
||||
@ -197,7 +197,7 @@
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="..\..\include;..\..\..\lib_acl\include"
|
||||
AdditionalIncludeDirectories="..\..\..\include;..\..\..\..\lib_acl\include"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;VC2003;ACL_CPP_DLL;ACL_DLL"
|
||||
MinimalRebuild="true"
|
||||
BasicRuntimeChecks="3"
|
||||
@ -220,7 +220,7 @@
|
||||
Name="VCLinkerTool"
|
||||
OutputFile="$(OutDir)/master_aio.exe"
|
||||
LinkIncremental="2"
|
||||
AdditionalLibraryDirectories="..\..\lib"
|
||||
AdditionalLibraryDirectories="..\..\..\lib"
|
||||
GenerateDebugInformation="true"
|
||||
ProgramDatabaseFile="$(OutDir)/master_aio.pdb"
|
||||
SubSystem="1"
|
||||
@ -275,7 +275,7 @@
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories="..\..\include;..\..\..\lib_acl\include"
|
||||
AdditionalIncludeDirectories="..\..\..\include;..\..\..\..\lib_acl\include"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;VC2003;ACL_CPP_DLL;ACL_DLL"
|
||||
RuntimeLibrary="2"
|
||||
UsePrecompiledHeader="2"
|
||||
@ -296,7 +296,7 @@
|
||||
Name="VCLinkerTool"
|
||||
OutputFile="$(OutDir)/master_aio.exe"
|
||||
LinkIncremental="1"
|
||||
AdditionalLibraryDirectories="..\..\lib"
|
||||
AdditionalLibraryDirectories="..\..\..\lib"
|
||||
GenerateDebugInformation="true"
|
||||
SubSystem="1"
|
||||
OptimizeReferences="2"
|
@ -90,7 +90,7 @@
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<ClCompile>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<AdditionalIncludeDirectories>..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>..\..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<MinimalRebuild>true</MinimalRebuild>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
@ -102,7 +102,7 @@
|
||||
<Link>
|
||||
<AdditionalDependencies>lib_acl_vc2012d.lib;lib_acl_cpp_vc2012d.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<OutputFile>$(OutDir)master_aio.exe</OutputFile>
|
||||
<AdditionalLibraryDirectories>..\..\..\lib\win32;..\..\..\dist\lib\win32;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalLibraryDirectories>..\..\..\..\lib\win32;..\..\..\..\dist\lib\win32;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<ProgramDatabaseFile>$(OutDir)master_aio.pdb</ProgramDatabaseFile>
|
||||
<SubSystem>Console</SubSystem>
|
||||
@ -111,7 +111,7 @@
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<ClCompile>
|
||||
<AdditionalIncludeDirectories>..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>..\..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
@ -121,7 +121,7 @@
|
||||
<Link>
|
||||
<AdditionalDependencies>lib_acl_vc2012.lib;lib_acl_cpp_vc2012.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<OutputFile>$(OutDir)master_aio.exe</OutputFile>
|
||||
<AdditionalLibraryDirectories>..\..\lib;..\..\..\dist\lib\win32;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalLibraryDirectories>..\..\..\lib;..\..\..\..\dist\lib\win32;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
@ -132,7 +132,7 @@
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='DebugDll|Win32'">
|
||||
<ClCompile>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<AdditionalIncludeDirectories>..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>..\..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;ACL_CPP_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<MinimalRebuild>true</MinimalRebuild>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
@ -143,7 +143,7 @@
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<OutputFile>$(OutDir)master_aio.exe</OutputFile>
|
||||
<AdditionalLibraryDirectories>..\..\lib;..\..\..\dist\lib\win32;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalLibraryDirectories>..\..\..\lib;..\..\..\..\dist\lib\win32;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<ProgramDatabaseFile>$(OutDir)master_aio.pdb</ProgramDatabaseFile>
|
||||
<SubSystem>Console</SubSystem>
|
||||
@ -157,7 +157,7 @@
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDll|Win32'">
|
||||
<ClCompile>
|
||||
<AdditionalIncludeDirectories>..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>..\..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;ACL_CPP_DLL;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
@ -166,7 +166,7 @@
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<OutputFile>$(OutDir)master_aio.exe</OutputFile>
|
||||
<AdditionalLibraryDirectories>..\..\lib;..\..\..\dist\lib\win32;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalLibraryDirectories>..\..\..\lib;..\..\..\..\dist\lib\win32;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
@ -197,4 +197,4 @@
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
</Project>
|
||||
</Project>
|
4
lib_acl_cpp/samples/master/master_http_aio/Makefile
Normal file
4
lib_acl_cpp/samples/master/master_http_aio/Makefile
Normal file
@ -0,0 +1,4 @@
|
||||
base_path = ../../..
|
||||
include ../../Makefile.in
|
||||
EXTLIBS = -lz
|
||||
PROG = master_http_aio
|
@ -1,4 +1,5 @@
|
||||
include ../Makefile.in
|
||||
base_path = ../../..
|
||||
include ../../Makefile.in
|
||||
#EXTLIBS = -lz -liconv
|
||||
#Path for SunOS
|
||||
ifeq ($(findstring SunOS, $(UNIXNAME)), SunOS)
|
@ -1,4 +1,5 @@
|
||||
include ../Makefile.in
|
||||
base_path = ../../..
|
||||
include ../../Makefile.in
|
||||
#EXTLIBS = -lz -liconv
|
||||
#Path for SunOS
|
||||
ifeq ($(findstring SunOS, $(UNIXNAME)), SunOS)
|
@ -1,4 +1,5 @@
|
||||
include ../Makefile.in
|
||||
base_path = ../../..
|
||||
include ../../Makefile.in
|
||||
#EXTLIBS = -lz -liconv
|
||||
#Path for SunOS
|
||||
ifeq ($(findstring SunOS, $(UNIXNAME)), SunOS)
|
3
lib_acl_cpp/samples/master/master_proc/Makefile
Normal file
3
lib_acl_cpp/samples/master/master_proc/Makefile
Normal file
@ -0,0 +1,3 @@
|
||||
base_path = ../../..
|
||||
include ../../Makefile.in
|
||||
PROG = master_proc
|
@ -19,7 +19,7 @@
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="..\..\include;..\..\..\lib_acl\include"
|
||||
AdditionalIncludeDirectories="..\..\..\include;..\..\..\..\lib_acl\include"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;VC2003"
|
||||
MinimalRebuild="TRUE"
|
||||
BasicRuntimeChecks="3"
|
||||
@ -35,7 +35,7 @@
|
||||
AdditionalDependencies="lib_acl_vc2003d.lib"
|
||||
OutputFile="$(OutDir)/master_proc.exe"
|
||||
LinkIncremental="2"
|
||||
AdditionalLibraryDirectories="..\..\lib;..\..\..\dist\lib\win32"
|
||||
AdditionalLibraryDirectories="..\..\..\lib;..\..\..\..\dist\lib\win32"
|
||||
GenerateDebugInformation="TRUE"
|
||||
ProgramDatabaseFile="$(OutDir)/master_proc.pdb"
|
||||
SubSystem="1"
|
||||
@ -69,7 +69,7 @@
|
||||
CharacterSet="2">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories="..\..\include;..\..\..\lib_acl\include"
|
||||
AdditionalIncludeDirectories="..\..\..\include;..\..\..\..\lib_acl\include"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;VC2003"
|
||||
RuntimeLibrary="0"
|
||||
UsePrecompiledHeader="3"
|
||||
@ -83,7 +83,7 @@
|
||||
AdditionalDependencies="lib_acl_vc2003.lib"
|
||||
OutputFile="$(OutDir)/master_proc.exe"
|
||||
LinkIncremental="1"
|
||||
AdditionalLibraryDirectories="..\..\lib;..\..\..\dist\lib\win32"
|
||||
AdditionalLibraryDirectories="..\..\..\lib;..\..\..\..\dist\lib\win32"
|
||||
GenerateDebugInformation="TRUE"
|
||||
SubSystem="1"
|
||||
OptimizeReferences="2"
|
||||
@ -119,7 +119,7 @@
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="..\..\include;..\..\..\lib_acl\include"
|
||||
AdditionalIncludeDirectories="..\..\..\include;..\..\..\..\lib_acl\include"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;VC2003;ACL_CPP_DLL;ACL_DLL"
|
||||
MinimalRebuild="TRUE"
|
||||
BasicRuntimeChecks="3"
|
||||
@ -134,7 +134,7 @@
|
||||
Name="VCLinkerTool"
|
||||
OutputFile="$(OutDir)/master_proc.exe"
|
||||
LinkIncremental="2"
|
||||
AdditionalLibraryDirectories="..\..\lib"
|
||||
AdditionalLibraryDirectories="..\..\..\lib"
|
||||
GenerateDebugInformation="TRUE"
|
||||
ProgramDatabaseFile="$(OutDir)/master_proc.pdb"
|
||||
SubSystem="1"
|
||||
@ -168,7 +168,7 @@
|
||||
CharacterSet="2">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories="..\..\include;..\..\..\lib_acl\include"
|
||||
AdditionalIncludeDirectories="..\..\..\include;..\..\..\..\lib_acl\include"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;VC2003;ACL_CPP_DLL;ACL_DLL"
|
||||
RuntimeLibrary="2"
|
||||
UsePrecompiledHeader="3"
|
||||
@ -181,7 +181,7 @@
|
||||
Name="VCLinkerTool"
|
||||
OutputFile="$(OutDir)/master_proc.exe"
|
||||
LinkIncremental="1"
|
||||
AdditionalLibraryDirectories="..\..\lib"
|
||||
AdditionalLibraryDirectories="..\..\..\lib"
|
||||
GenerateDebugInformation="TRUE"
|
||||
SubSystem="1"
|
||||
OptimizeReferences="2"
|
@ -41,7 +41,7 @@
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="..\..\include;..\..\..\lib_acl\include"
|
||||
AdditionalIncludeDirectories="..\..\..\include;..\..\..\..\lib_acl\include"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
|
||||
MinimalRebuild="true"
|
||||
BasicRuntimeChecks="3"
|
||||
@ -64,7 +64,7 @@
|
||||
Name="VCLinkerTool"
|
||||
OutputFile="$(OutDir)/master_proc.exe"
|
||||
LinkIncremental="2"
|
||||
AdditionalLibraryDirectories="..\..\lib;..\..\..\dist\lib\win32"
|
||||
AdditionalLibraryDirectories="..\..\..\lib;..\..\..\..\dist\lib\win32"
|
||||
GenerateDebugInformation="true"
|
||||
ProgramDatabaseFile="$(OutDir)/master_proc.pdb"
|
||||
SubSystem="1"
|
||||
@ -119,7 +119,7 @@
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories="..\..\include;..\..\..\lib_acl\include"
|
||||
AdditionalIncludeDirectories="..\..\..\include;..\..\..\..\lib_acl\include"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
|
||||
RuntimeLibrary="0"
|
||||
UsePrecompiledHeader="2"
|
||||
@ -140,7 +140,7 @@
|
||||
Name="VCLinkerTool"
|
||||
OutputFile="$(OutDir)/master_proc.exe"
|
||||
LinkIncremental="1"
|
||||
AdditionalLibraryDirectories="..\..\lib;..\..\..\dist\lib\win32"
|
||||
AdditionalLibraryDirectories="..\..\..\lib;..\..\..\..\dist\lib\win32"
|
||||
GenerateDebugInformation="true"
|
||||
SubSystem="1"
|
||||
OptimizeReferences="2"
|
||||
@ -197,7 +197,7 @@
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="..\..\include;..\..\..\lib_acl\include"
|
||||
AdditionalIncludeDirectories="..\..\..\include;..\..\..\..\lib_acl\include"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;VC2003;ACL_CPP_DLL;ACL_DLL"
|
||||
MinimalRebuild="true"
|
||||
BasicRuntimeChecks="3"
|
||||
@ -220,7 +220,7 @@
|
||||
Name="VCLinkerTool"
|
||||
OutputFile="$(OutDir)/master_proc.exe"
|
||||
LinkIncremental="2"
|
||||
AdditionalLibraryDirectories="..\..\lib"
|
||||
AdditionalLibraryDirectories="..\..\..\lib"
|
||||
GenerateDebugInformation="true"
|
||||
ProgramDatabaseFile="$(OutDir)/master_proc.pdb"
|
||||
SubSystem="1"
|
||||
@ -275,7 +275,7 @@
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories="..\..\include;..\..\..\lib_acl\include"
|
||||
AdditionalIncludeDirectories="..\..\..\include;..\..\..\..\lib_acl\include"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;VC2003;ACL_CPP_DLL;ACL_DLL"
|
||||
RuntimeLibrary="2"
|
||||
UsePrecompiledHeader="2"
|
||||
@ -296,7 +296,7 @@
|
||||
Name="VCLinkerTool"
|
||||
OutputFile="$(OutDir)/master_proc.exe"
|
||||
LinkIncremental="1"
|
||||
AdditionalLibraryDirectories="..\..\lib"
|
||||
AdditionalLibraryDirectories="..\..\..\lib"
|
||||
GenerateDebugInformation="true"
|
||||
SubSystem="1"
|
||||
OptimizeReferences="2"
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user