This allows it to set the callers value to -1 when it was moved.
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Volker Lendecke <vl@samba.org>
}
struct smbXcli_transport *smbXcli_transport_bsd(TALLOC_CTX *mem_ctx,
- int fd,
+ int *_fd,
const struct smb_transport *tp)
{
struct smbXcli_transport *xtp = NULL;
+ int fd = *_fd;
int ret;
xtp = talloc_zero(mem_ctx, struct smbXcli_transport);
return NULL;
}
+ *_fd = -1;
talloc_set_destructor(xtp, smbXcli_transport_destructor);
return xtp;
}
struct smb311_capabilities;
struct smbXcli_transport *smbXcli_transport_bsd(TALLOC_CTX *mem_ctx,
- int fd,
+ int *_fd,
const struct smb_transport *tp);
struct smbXcli_conn *smbXcli_conn_create(TALLOC_CTX *mem_ctx,
*/
set_socket_options(s->sockfd, lp_socket_options());
state->transport = smbXcli_transport_bsd(state,
- s->sockfd,
+ &s->sockfd,
&s->transport);
if (tevent_req_nomem(state->transport, req)) {
return;
}
- s->sockfd = -1;
tevent_req_done(req);
return;
}
*/
set_socket_options(s->sockfd, lp_socket_options());
state->transport = smbXcli_transport_bsd(state,
- s->sockfd,
+ &s->sockfd,
&s->transport);
if (tevent_req_nomem(state->transport, req)) {
return;
}
- s->sockfd = -1;
tevent_req_done(req);
return;
}
return false;
}
- xtp = smbXcli_transport_bsd(talloc_tos(), fd, &tp);
+ xtp = smbXcli_transport_bsd(talloc_tos(), &fd, &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, &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, &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, &tp);
torture_assert_goto(tctx, xtp != NULL, ret, done,
"smbXcli_transport_bsd failed");
- sock->fd = -1;
TALLOC_FREE(sock);
conn->smbXcli = smbXcli_conn_create(state->conns,