#include <grpc/support/port_platform.h>
#include "src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.h"
#include <limits.h>
#include <stdio.h>
#include <stdlib.h>
#include <cstring>
#include <string>
#include "absl/cleanup/cleanup.h"
#include "absl/status/status.h"
#include <grpc/event_engine/event_engine.h>
#include <grpc/support/log.h>
#include "src/core/lib/event_engine/posix_engine/tcp_socket_utils.h"
#include "src/core/lib/event_engine/tcp_socket_utils.h"
#include "src/core/lib/gprpp/crash.h"
#include "src/core/lib/gprpp/status_helper.h"
#include "src/core/lib/iomgr/port.h"
#include "src/core/lib/iomgr/socket_mutator.h"
#define MIN_SAFE_ACCEPT_QUEUE_SIZE …
#ifdef GRPC_POSIX_SOCKET_UTILS_COMMON
#include <errno.h>
#include <ifaddrs.h>
#include <netinet/in.h>
#include <sys/socket.h>
#include <unistd.h>
#include "absl/strings/str_cat.h"
#endif
namespace grpc_event_engine {
namespace experimental {
#ifdef GRPC_POSIX_SOCKET_UTILS_COMMON
namespace {
ResolvedAddress;
ListenerSocket;
#ifdef GRPC_HAVE_IFADDRS
absl::StatusOr<int> GetUnusedPort() { … }
bool SystemHasIfAddrs() { … }
#else
bool SystemHasIfAddrs() { return false; }
#endif
int InitMaxAcceptQueueSize() { … }
int GetMaxAcceptQueueSize() { … }
absl::Status PrepareSocket(const PosixTcpOptions& options,
ListenerSocket& socket) { … }
}
absl::StatusOr<ListenerSocket> CreateAndPrepareListenerSocket(
const PosixTcpOptions& options, const ResolvedAddress& addr) { … }
absl::StatusOr<int> ListenerContainerAddAllLocalAddresses(
ListenerSocketsContainer& listener_sockets, const PosixTcpOptions& options,
int requested_port) { … }
absl::StatusOr<int> ListenerContainerAddWildcardAddresses(
ListenerSocketsContainer& listener_sockets, const PosixTcpOptions& options,
int requested_port) { … }
#else
absl::StatusOr<ListenerSocketsContainer::ListenerSocket>
CreateAndPrepareListenerSocket(const PosixTcpOptions& ,
const grpc_event_engine::experimental::
EventEngine::ResolvedAddress& ) {
grpc_core::Crash(
"CreateAndPrepareListenerSocket is not supported on this platform");
}
absl::StatusOr<int> ListenerContainerAddWildcardAddresses(
ListenerSocketsContainer& ,
const PosixTcpOptions& , int ) {
grpc_core::Crash(
"ListenerContainerAddWildcardAddresses is not supported on this "
"platform");
}
absl::StatusOr<int> ListenerContainerAddAllLocalAddresses(
ListenerSocketsContainer& ,
const PosixTcpOptions& , int ) {
grpc_core::Crash(
"ListenerContainerAddAllLocalAddresses is not supported on this "
"platform");
}
#endif
}
}