]> git.ipfire.org Git - thirdparty/squid.git/commit
Enhance and use POSIX socket compatibility layer (#2046)
authorFrancesco Chemolli <5175948+kinkie@users.noreply.github.com>
Thu, 31 Jul 2025 18:01:47 +0000 (18:01 +0000)
committerSquid Anubis <squid-anubis@squid-cache.org>
Thu, 31 Jul 2025 22:09:30 +0000 (22:09 +0000)
commit5be401dca3e17af97534795551b9ba7c95db05c5
tree25649e1f2bf285ef6fa0d9ca70a546f48c1953c2
parentcbd649b6f00bbc6f218da4a18cd108fea3c9172f
Enhance and use POSIX socket compatibility layer (#2046)

Implement portable wrappers around most socket-related functions, named
x[function], and use them in all callsites.

winsock's socket-related functions are very similar but not
identical to the POSIX standard. Make the mswindows
compatibility layer available to MinGW, and modernize it.

Error highlighting the issue:
```
TcpAcceptor.cc: In member function
  'bool Comm::TcpAcceptor::acceptInto(Comm::ConnectionPointer&)':
TcpAcceptor.cc:352:17: error:
  comparison of unsigned expression in '< 0'
  is always false [-Werror=type-limits]
  352 |     if (rawSock < 0) {
```
65 files changed:
compat/Makefile.am
compat/mswindows.cc
compat/netdb.cc [new file with mode: 0644]
compat/netdb.h [new file with mode: 0644]
compat/os/mswindows.h
compat/select.cc [new file with mode: 0644]
compat/select.h [new file with mode: 0644]
compat/socket.cc [new file with mode: 0644]
compat/socket.h [new file with mode: 0644]
compat/unistd.cc [new file with mode: 0644]
compat/unistd.h [new file with mode: 0644]
compat/wserrno.cc [new file with mode: 0644]
compat/wserrno.h [new file with mode: 0644]
src/DiskIO/DiskDaemon/DiskdIOStrategy.cc
src/DiskIO/DiskDaemon/diskd.cc
src/DiskIO/DiskThreads/CommIO.cc
src/DiskIO/DiskThreads/aiops.cc
src/DiskIO/DiskThreads/aiops_win32.cc
src/adaptation/icap/ServiceRep.cc
src/auth/basic/RADIUS/basic_radius_auth.cc
src/auth/basic/RADIUS/radius-util.cc
src/auth/negotiate/kerberos/negotiate_kerberos_auth.cc
src/auth/negotiate/wrapper/negotiate_wrapper.cc
src/base/File.cc
src/cache_cf.cc
src/client_side.cc
src/clients/FtpGateway.cc
src/comm.cc
src/comm/ConnOpener.cc
src/comm/ModDevPoll.cc
src/comm/ModSelect.cc
src/comm/Tcp.cc
src/comm/TcpAcceptor.cc
src/eui/Eui48.cc
src/fd.cc
src/fs/rock/RockRebuild.cc
src/fs/rock/RockSwapDir.cc
src/fs_io.cc
src/icmp/Icmp.cc
src/icmp/Icmp4.cc
src/icmp/Icmp6.cc
src/icmp/IcmpPinger.cc
src/icmp/IcmpSquid.cc
src/icmp/pinger.cc
src/ip/Intercept.cc
src/ip/QosConfig.cc
src/ip/tools.cc
src/ipc.cc
src/ipc/Coordinator.cc
src/ipc/UdsOp.cc
src/ipc/mem/Segment.cc
src/ipc_win32.cc
src/log/ModUdp.cc
src/log/file/log_file_daemon.cc
src/main.cc
src/mgr/Action.cc
src/multicast.cc
src/neighbors.cc
src/security/cert_generators/file/certificate_db.cc
src/tests/testIpAddress.cc
src/tools.cc
src/unlinkd.cc
src/unlinkd_daemon.cc
src/wccp.cc
src/wccp2.cc