summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source4/libcli/nbt/libnbt.h1
-rw-r--r--source4/libcli/nbt/nameregister.c5
-rw-r--r--source4/nbt_server/register.c1
-rw-r--r--source4/torture/nbt/register.c1
-rw-r--r--source4/torture/nbt/winsbench.c1
-rw-r--r--source4/torture/nbt/winsreplication.c2
6 files changed, 10 insertions, 1 deletions
diff --git a/source4/libcli/nbt/libnbt.h b/source4/libcli/nbt/libnbt.h
index 88ca0e204b..524391917d 100644
--- a/source4/libcli/nbt/libnbt.h
+++ b/source4/libcli/nbt/libnbt.h
@@ -163,6 +163,7 @@ struct nbt_name_register {
struct {
struct nbt_name name;
const char *dest_addr;
+ uint16_t dest_port;
const char *address;
uint16_t nb_flags;
bool register_demand;
diff --git a/source4/libcli/nbt/nameregister.c b/source4/libcli/nbt/nameregister.c
index fd4a94dd44..9389981647 100644
--- a/source4/libcli/nbt/nameregister.c
+++ b/source4/libcli/nbt/nameregister.c
@@ -77,7 +77,7 @@ struct nbt_name_request *nbt_name_register_send(struct nbt_name_socket *nbtsock,
if (packet->additional[0].rdata.netbios.addresses[0].ipaddr == NULL) goto failed;
dest = socket_address_from_strings(packet, nbtsock->sock->backend_name,
- io->in.dest_addr, lp_nbt_port(global_loadparm));
+ io->in.dest_addr, io->in.dest_port);
if (dest == NULL) goto failed;
req = nbt_name_request_send(nbtsock, dest, packet,
io->in.timeout, io->in.retries, false);
@@ -224,6 +224,7 @@ struct composite_context *nbt_name_register_bcast_send(struct nbt_name_socket *n
state->io->in.name = io->in.name;
state->io->in.dest_addr = io->in.dest_addr;
+ state->io->in.dest_port = lp_nbt_port(global_loadparm);
state->io->in.address = io->in.address;
state->io->in.nb_flags = io->in.nb_flags;
state->io->in.register_demand = false;
@@ -311,6 +312,7 @@ static void name_register_wins_handler(struct nbt_name_request *req)
goto done;
}
state->io->in.dest_addr = state->wins_servers[0];
+ state->io->in.dest_port = lp_nbt_port(global_loadparm);
state->io->in.address = state->addresses[0];
state->req = nbt_name_register_send(state->nbtsock, state->io);
if (state->req == NULL) {
@@ -377,6 +379,7 @@ struct composite_context *nbt_name_register_wins_send(struct nbt_name_socket *nb
state->io->in.name = io->in.name;
state->io->in.dest_addr = state->wins_servers[0];
+ state->io->in.dest_port = lp_nbt_port(global_loadparm);
state->io->in.address = io->in.addresses[0];
state->io->in.nb_flags = io->in.nb_flags;
state->io->in.broadcast = false;
diff --git a/source4/nbt_server/register.c b/source4/nbt_server/register.c
index c185001e23..bde9b1e2db 100644
--- a/source4/nbt_server/register.c
+++ b/source4/nbt_server/register.c
@@ -93,6 +93,7 @@ static void name_refresh_handler(struct event_context *ev, struct timed_event *t
registration packets */
io.in.name = iname->name;
io.in.dest_addr = iface->bcast_address;
+ io.in.dest_port = lp_nbt_port(iface->nbtsrv->task->lp_ctx);
io.in.address = iface->ip_address;
io.in.nb_flags = iname->nb_flags;
io.in.ttl = iname->ttl;
diff --git a/source4/torture/nbt/register.c b/source4/torture/nbt/register.c
index c7f992cbd6..2c37d9de50 100644
--- a/source4/torture/nbt/register.c
+++ b/source4/torture/nbt/register.c
@@ -67,6 +67,7 @@ static bool nbt_register_own(struct torture_context *tctx)
io.in.name = name;
io.in.dest_addr = address;
+ io.in.dest_port = lp_nbt_port(tctx->lp_ctx);
io.in.address = myaddress;
io.in.nb_flags = NBT_NODE_B | NBT_NM_ACTIVE;
io.in.register_demand = false;
diff --git a/source4/torture/nbt/winsbench.c b/source4/torture/nbt/winsbench.c
index 82223d9dd7..d49b50b9d3 100644
--- a/source4/torture/nbt/winsbench.c
+++ b/source4/torture/nbt/winsbench.c
@@ -87,6 +87,7 @@ static void generate_register(struct nbt_name_socket *nbtsock, struct wins_state
io.in.name = generate_name(tmp_ctx, idx);
io.in.dest_addr = state->wins_server;
+ io.in.dest_port = lp_nbt_port(global_loadparm);
io.in.address = state->my_ip;
io.in.nb_flags = NBT_NODE_H;
io.in.register_demand = false;
diff --git a/source4/torture/nbt/winsreplication.c b/source4/torture/nbt/winsreplication.c
index b427843b80..f67b6050f2 100644
--- a/source4/torture/nbt/winsreplication.c
+++ b/source4/torture/nbt/winsreplication.c
@@ -6530,6 +6530,7 @@ static bool test_conflict_owned_released_vs_replica(struct torture_context *tctx
*/
name_register->in.name = records[i].name;
name_register->in.dest_addr = ctx->address;
+ name_register->in.dest_port = lp_nbt_port(tctx->lp_ctx);
name_register->in.address = records[i].wins.ips[0].ip;
name_register->in.nb_flags = records[i].wins.nb_flags;
name_register->in.register_demand= false;
@@ -9218,6 +9219,7 @@ static bool test_conflict_owned_active_vs_replica(struct torture_context *tctx,
name_register->in.name = records[i].name;
name_register->in.dest_addr = ctx->address;
+ name_register->in.dest_port = lp_nbt_port(tctx->lp_ctx);
name_register->in.address = records[i].wins.ips[j].ip;
name_register->in.nb_flags = records[i].wins.nb_flags;
name_register->in.register_demand= false;