mirror of
https://github.com/samba-team/samba.git
synced 2025-03-12 20:58:37 +03:00
libcli/nbt: add nbt_name_send_raw()
BUG: https://bugzilla.samba.org/show_bug.cgi?id=15620 Signed-off-by: Stefan Metzmacher <metze@samba.org> Reviewed-by: Andrew Bartlett <abartlet@samba.org> (cherry picked from commit cca373b806e01fc57bd5316d3f8a17578b4b6531)
This commit is contained in:
parent
12a6060eed
commit
e2cec0d280
@ -331,6 +331,9 @@ NTSTATUS nbt_set_unexpected_handler(struct nbt_name_socket *nbtsock,
|
||||
void (*handler)(struct nbt_name_socket *, struct nbt_name_packet *,
|
||||
struct socket_address *),
|
||||
void *private_data);
|
||||
NTSTATUS nbt_name_send_raw(struct nbt_name_socket *nbtsock,
|
||||
struct socket_address *dest,
|
||||
const DATA_BLOB pkt_blob);
|
||||
NTSTATUS nbt_name_reply_send(struct nbt_name_socket *nbtsock,
|
||||
struct socket_address *dest,
|
||||
struct nbt_name_packet *request);
|
||||
|
@ -448,6 +448,50 @@ failed:
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/*
|
||||
send off a nbt name packet
|
||||
*/
|
||||
_PUBLIC_ NTSTATUS nbt_name_send_raw(struct nbt_name_socket *nbtsock,
|
||||
struct socket_address *dest,
|
||||
const DATA_BLOB pkt_blob)
|
||||
{
|
||||
struct nbt_name_request *req;
|
||||
|
||||
req = talloc_zero(nbtsock, struct nbt_name_request);
|
||||
NT_STATUS_HAVE_NO_MEMORY(req);
|
||||
|
||||
req->nbtsock = nbtsock;
|
||||
req->dest = socket_address_copy(req, dest);
|
||||
if (req->dest == NULL) {
|
||||
goto failed;
|
||||
}
|
||||
req->state = NBT_REQUEST_SEND;
|
||||
/*
|
||||
* We don't expect a response so
|
||||
* just pretent it is a request,
|
||||
* but we really don't care about the
|
||||
* content.
|
||||
*/
|
||||
req->is_reply = true;
|
||||
|
||||
req->encoded = data_blob_dup_talloc(req, pkt_blob);
|
||||
if (req->encoded.length != pkt_blob.length) {
|
||||
goto failed;
|
||||
}
|
||||
|
||||
talloc_set_destructor(req, nbt_name_request_destructor);
|
||||
|
||||
DLIST_ADD_END(nbtsock->send_queue, req);
|
||||
|
||||
TEVENT_FD_WRITEABLE(nbtsock->fde);
|
||||
|
||||
return NT_STATUS_OK;
|
||||
|
||||
failed:
|
||||
talloc_free(req);
|
||||
return NT_STATUS_NO_MEMORY;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
send off a nbt name reply
|
||||
|
Loading…
x
Reference in New Issue
Block a user