struct smb_transport transport;
int sock_fd;
struct tstream_context *tstream;
+ enum tls_verify_peer_state verify_peer;
struct samba_sockaddr laddr;
struct samba_sockaddr raddr;
return sys_errno;
}
-struct smbXcli_transport *smbXcli_transport_tstream(TALLOC_CTX *mem_ctx,
- struct tstream_context **pstream,
- const struct samba_sockaddr *laddr,
- const struct samba_sockaddr *raddr,
- const struct smb_transport *tp)
+struct smbXcli_transport *smbXcli_transport_tstream(
+ TALLOC_CTX *mem_ctx,
+ struct tstream_context **pstream,
+ enum tls_verify_peer_state verify_peer,
+ const struct samba_sockaddr *laddr,
+ const struct samba_sockaddr *raddr,
+ const struct smb_transport *tp)
{
struct smbXcli_transport *xtp = NULL;
xtp->transport = *tp;
xtp->sock_fd = -1;
+ xtp->verify_peer = verify_peer;
xtp->laddr = *laddr;
xtp->raddr = *raddr;
return wait_for_error_recv(req);
}
-struct smbXcli_transport *smbXcli_transport_bsd(TALLOC_CTX *mem_ctx,
- int *_fd,
- const struct smb_transport *tp)
+struct smbXcli_transport *smbXcli_transport_bsd(
+ TALLOC_CTX *mem_ctx,
+ int *_fd,
+ enum tls_verify_peer_state verify_peer,
+ const struct smb_transport *tp)
{
struct smbXcli_transport *xtp = NULL;
int fd = *_fd;
xtp->transport = *tp;
xtp->sock_fd = fd;
+ xtp->verify_peer = verify_peer;
xtp->laddr.sa_socklen = sizeof(xtp->laddr.u);
ret = getsockname(fd, &xtp->laddr.u.sa, &xtp->laddr.sa_socklen);
}
struct smbXcli_transport *smbXcli_transport_bsd_tstream(
- TALLOC_CTX *mem_ctx,
- int *fd,
- const struct smb_transport *tp)
+ TALLOC_CTX *mem_ctx,
+ int *fd,
+ enum tls_verify_peer_state verify_peer,
+ const struct smb_transport *tp)
{
struct samba_sockaddr laddr = {
.sa_socklen = sizeof(struct sockaddr_storage),
*fd = -1;
tstream_bsd_optimize_readv(tstream, true);
- xtp = smbXcli_transport_tstream(mem_ctx, &tstream, &laddr, &raddr, tp);
+ xtp = smbXcli_transport_tstream(
+ mem_ctx, &tstream, verify_peer, &laddr, &raddr, tp);
TALLOC_FREE(tstream);
return xtp;
}
#include "libcli/util/ntstatus.h"
#include "lib/util/time.h"
#include "lib/util/data_blob.h"
+#include "source4/lib/tls/tls.h"
struct smbXcli_transport;
struct smbXcli_conn;
struct samba_sockaddr;
struct tstream_context;
-struct smbXcli_transport *smbXcli_transport_tstream(TALLOC_CTX *mem_ctx,
- struct tstream_context **pstream,
- const struct samba_sockaddr *laddr,
- const struct samba_sockaddr *raddr,
- const struct smb_transport *tp);
+struct smbXcli_transport *smbXcli_transport_tstream(
+ TALLOC_CTX *mem_ctx,
+ struct tstream_context **pstream,
+ enum tls_verify_peer_state verify_peer,
+ const struct samba_sockaddr *laddr,
+ const struct samba_sockaddr *raddr,
+ const struct smb_transport *tp);
-struct smbXcli_transport *smbXcli_transport_bsd(TALLOC_CTX *mem_ctx,
- int *_fd,
- const struct smb_transport *tp);
+struct smbXcli_transport *smbXcli_transport_bsd(
+ TALLOC_CTX *mem_ctx,
+ int *_fd,
+ enum tls_verify_peer_state verify_peer,
+ const struct smb_transport *tp);
struct smbXcli_transport *smbXcli_transport_bsd_tstream(
- TALLOC_CTX *mem_ctx,
- int *fd,
- const struct smb_transport *tp);
+ TALLOC_CTX *mem_ctx,
+ int *fd,
+ enum tls_verify_peer_state verify_peer,
+ const struct smb_transport *tp);
struct smbXcli_conn *smbXcli_conn_create(TALLOC_CTX *mem_ctx,
struct smbXcli_transport **ptransport,
struct smbsock_connect_substate substates[SMB_TRANSPORTS_MAX_TRANSPORTS];
struct smbXcli_transport *transport;
struct smbXcli_transport *(*create_bsd_transport)(
- TALLOC_CTX *mem_ctx,
- int *fd,
- const struct smb_transport *tp);
+ TALLOC_CTX *mem_ctx,
+ int *fd,
+ enum tls_verify_peer_state verify_peer,
+ const struct smb_transport *tp);
};
static void smbsock_connect_cleanup(struct tevent_req *req,
* will free all other subreqs
*/
set_socket_options(s->sockfd, lp_socket_options());
- state->transport = state->create_bsd_transport(state,
- &s->sockfd,
- &s->transport);
+ state->transport = state->create_bsd_transport(
+ state,
+ &s->sockfd,
+ TLS_VERIFY_PEER_NO_CHECK,
+ &s->transport);
if (tevent_req_nomem(state->transport, req)) {
return;
}
* will free all other subreqs
*/
set_socket_options(s->sockfd, lp_socket_options());
- state->transport = state->create_bsd_transport(state,
- &s->sockfd,
- &s->transport);
+ state->transport = state->create_bsd_transport(
+ state,
+ &s->sockfd,
+ TLS_VERIFY_PEER_NO_CHECK,
+ &s->transport);
if (tevent_req_nomem(state->transport, req)) {
return;
}
* smbsock_connect_cleanup()
* will free all other subreqs
*/
- state->transport = state->create_bsd_transport(state,
- &s->sockfd,
- &s->transport);
+ state->transport = state->create_bsd_transport(
+ state,
+ &s->sockfd,
+ tstream_tls_params_verify_peer(state->quic_tlsp),
+ &s->transport);
if (tevent_req_nomem(state->transport, req)) {
return;
}
* smbsock_connect_cleanup()
* will free all other subreqs
*/
- state->transport = smbXcli_transport_tstream(state,
- &tstream,
- &s->laddr,
- &s->raddr,
- &s->transport);
+ state->transport = smbXcli_transport_tstream(
+ state,
+ &tstream,
+ tstream_tls_params_verify_peer(state->quic_tlsp),
+ &s->laddr,
+ &s->raddr,
+ &s->transport);
if (tevent_req_nomem(state->transport, req)) {
return;
}
return false;
}
- xtp = smbXcli_transport_bsd(talloc_tos(), &fd, &tp);
+ xtp = smbXcli_transport_bsd(talloc_tos(),
+ &fd,
+ TLS_VERIFY_PEER_NO_CHECK,
+ &tp);
if (xtp == NULL) {
d_fprintf(stderr, "smbXcli_transport_bsd failed\n");
return false;
return false;
}
- xtp = smbXcli_transport_bsd(talloc_tos(), &fd, &tp);
+ xtp = smbXcli_transport_bsd(talloc_tos(),
+ &fd,
+ TLS_VERIFY_PEER_NO_CHECK,
+ &tp);
if (xtp == NULL) {
d_fprintf(stderr, "smbXcli_transport_bsd failed\n");
return false;
return false;
}
- xtp = smbXcli_transport_bsd(talloc_tos(), &fd, &tp);
+ xtp = smbXcli_transport_bsd(talloc_tos(),
+ &fd,
+ TLS_VERIFY_PEER_NO_CHECK,
+ &tp);
if (xtp == NULL) {
d_fprintf(stderr, "smbXcli_transport_bsd failed\n");
return false;
torture_assert_ntstatus_ok_goto(tctx, status, ret, done,
"socket_connect_multi failed");
- xtp = smbXcli_transport_bsd(state->conns, &sock->fd, &tp);
+ xtp = smbXcli_transport_bsd(state->conns,
+ &sock->fd,
+ TLS_VERIFY_PEER_NO_CHECK,
+ &tp);
torture_assert_goto(tctx, xtp != NULL, ret, done,
"smbXcli_transport_bsd failed");
TALLOC_FREE(sock);