/*
- * Copyright 2005-2021 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright 2005-2023 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the Apache License 2.0 (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
#include "internal/e_os.h"
#include "internal/sockets.h"
+#include "internal/bio_addr.h"
/* BEGIN BIO_ADDRINFO/BIO_ADDR stuff. */
# error openssl/bio.h included before bio_local.h
# endif
-/*
- * Undefine AF_UNIX on systems that define it but don't support it.
- */
-# if defined(OPENSSL_SYS_WINDOWS) || defined(OPENSSL_SYS_VMS)
-# undef AF_UNIX
-# endif
-
# ifdef AI_PASSIVE
/*
struct bio_addrinfo_st *bai_next;
};
# endif
-
-union bio_addr_st {
- struct sockaddr sa;
-# ifdef AF_INET6
- struct sockaddr_in6 s_in6;
-# endif
- struct sockaddr_in s_in;
-# ifdef AF_UNIX
- struct sockaddr_un s_un;
-# endif
-};
#endif
/* END BIO_ADDRINFO/BIO_ADDR stuff. */
uint64_t num_read;
uint64_t num_write;
CRYPTO_EX_DATA ex_data;
- CRYPTO_RWLOCK *lock;
};
#ifndef OPENSSL_NO_SOCK
socklen_t BIO_ADDR_sockaddr_size(const BIO_ADDR *ap);
socklen_t BIO_ADDRINFO_sockaddr_size(const BIO_ADDRINFO *bai);
const struct sockaddr *BIO_ADDRINFO_sockaddr(const BIO_ADDRINFO *bai);
+
+# if defined(OPENSSL_SYS_WINDOWS) && defined(WSAID_WSARECVMSG)
+# define BIO_HAVE_WSAMSG
+extern LPFN_WSARECVMSG bio_WSARecvMsg;
+extern LPFN_WSASENDMSG bio_WSASendMsg;
+# endif
#endif
-extern CRYPTO_RWLOCK *bio_type_lock;
+extern CRYPTO_REF_COUNT bio_type_count;
void bio_sock_cleanup_int(void);