bji / libs3

Other
154 stars 151 forks source link

Port libs3 to MSVC using C++ VLA shims. I did not port the s3 utility. Remove any use of select(), which isn't fit for purpose in modern code. #100

Open ned14 opened 4 years ago

ned14 commented 4 years ago

Hi, firstly thanks very much for libs3, it avoided using the not great AWS C++ SDK, a real boon.

This PR comes from the port of the cmake hunter edition of your library. It is therefore not usable as-is to you. However, I opened it so you and anyone else who might read this can pick through it for any useful bits, the obvious one being MSVC build compatibility.

I also removed anything using select(), which is unfit for use in modern high fd count programs. I rewrote the functions which need to wait on many fds to signal to use the libcurl API for that. This also let me remove including <winsock2.h> in your primary interface file just to define fdset, as that is a highly polluting header.