mirror of
https://github.com/samba-team/samba.git
synced 2025-03-27 22:50:26 +03:00
tsocket: let tstream_inet_tcp_connect_recv() optionally return the used local address
tstream_inet_tcp_connect_send() usually only gets no local port number and it may use the wildcard address '0.0.0.0' or '::'. tstream_inet_tcp_connect_recv() provides the used local address and port which are used on the wire. metze
This commit is contained in:
parent
d2c653629c
commit
79c6572256
@ -724,23 +724,28 @@ struct tevent_req *tstream_inet_tcp_connect_send(TALLOC_CTX *mem_ctx,
|
||||
*
|
||||
* @param[in] mem_ctx The talloc memory context to use.
|
||||
*
|
||||
* @param[in] stream A tstream_context pointer to setup the tcp communication
|
||||
* @param[out] stream A tstream_context pointer to setup the tcp communication
|
||||
* on. This function will allocate the memory.
|
||||
*
|
||||
* @param[out] local The real 'inet' tsocket_address of the local endpoint.
|
||||
* This parameter is optional and can be NULL.
|
||||
*
|
||||
* @return 0 on success, -1 on error with perrno set.
|
||||
*/
|
||||
int tstream_inet_tcp_connect_recv(struct tevent_req *req,
|
||||
int *perrno,
|
||||
TALLOC_CTX *mem_ctx,
|
||||
struct tstream_context **stream);
|
||||
struct tstream_context **stream,
|
||||
struct tsocket_address **local)
|
||||
#else
|
||||
int _tstream_inet_tcp_connect_recv(struct tevent_req *req,
|
||||
int *perrno,
|
||||
TALLOC_CTX *mem_ctx,
|
||||
struct tstream_context **stream,
|
||||
struct tsocket_address **local,
|
||||
const char *location);
|
||||
#define tstream_inet_tcp_connect_recv(req, perrno, mem_ctx, stream) \
|
||||
_tstream_inet_tcp_connect_recv(req, perrno, mem_ctx, stream, \
|
||||
#define tstream_inet_tcp_connect_recv(req, perrno, mem_ctx, stream, local) \
|
||||
_tstream_inet_tcp_connect_recv(req, perrno, mem_ctx, stream, local, \
|
||||
__location__)
|
||||
#endif
|
||||
|
||||
|
@ -2302,10 +2302,11 @@ int _tstream_inet_tcp_connect_recv(struct tevent_req *req,
|
||||
int *perrno,
|
||||
TALLOC_CTX *mem_ctx,
|
||||
struct tstream_context **stream,
|
||||
struct tsocket_address **local,
|
||||
const char *location)
|
||||
{
|
||||
return tstream_bsd_connect_recv(req, perrno,
|
||||
mem_ctx, stream, NULL,
|
||||
mem_ctx, stream, local,
|
||||
location);
|
||||
}
|
||||
|
||||
|
@ -248,7 +248,7 @@ static void wrepl_connect_done(struct tevent_req *subreq)
|
||||
int sys_errno;
|
||||
|
||||
ret = tstream_inet_tcp_connect_recv(subreq, &sys_errno,
|
||||
state, &state->stream);
|
||||
state, &state->stream, NULL);
|
||||
if (ret != 0) {
|
||||
NTSTATUS status = map_nt_error_from_unix(sys_errno);
|
||||
tevent_req_nterror(req, status);
|
||||
|
Loading…
x
Reference in New Issue
Block a user