summaryrefslogtreecommitdiff
path: root/source4/nbt_server/wins/winswack.c
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2005-10-14 12:22:15 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 13:39:52 -0500
commitfccbbf354634b31c9c3cb2bca15843f13e3b77f9 (patch)
tree6678adb19a88171fce5569d2183e212d08753aba /source4/nbt_server/wins/winswack.c
parent0b0c38d899db75e6954af2618e7f063dbfc09fd6 (diff)
downloadsamba-fccbbf354634b31c9c3cb2bca15843f13e3b77f9.tar.gz
samba-fccbbf354634b31c9c3cb2bca15843f13e3b77f9.tar.bz2
samba-fccbbf354634b31c9c3cb2bca15843f13e3b77f9.zip
r10997: r11980@SERNOX (orig r10037): metze | 2005-09-05 14:21:40 +0200
add struct nbt_peer_socket and use it instead of passing const char *addr, uint16 port everyhwere (tridge: can you review this please, (make test works) metze (This used to be commit a599d7a4ae881c94be2c2d908a398838549942bb)
Diffstat (limited to 'source4/nbt_server/wins/winswack.c')
-rw-r--r--source4/nbt_server/wins/winswack.c25
1 files changed, 12 insertions, 13 deletions
diff --git a/source4/nbt_server/wins/winswack.c b/source4/nbt_server/wins/winswack.c
index 8c7841d095..c9f102fdc8 100644
--- a/source4/nbt_server/wins/winswack.c
+++ b/source4/nbt_server/wins/winswack.c
@@ -30,8 +30,7 @@ struct wack_state {
struct nbt_name_socket *nbtsock;
struct nbt_name_packet *request_packet;
struct winsdb_record *rec;
- const char *src_address;
- int src_port;
+ struct nbt_peer_socket src;
const char **owner_addresses;
const char *reg_address;
struct nbt_name_query query;
@@ -44,9 +43,9 @@ struct wack_state {
static void wins_wack_deny(struct wack_state *state)
{
nbtd_name_registration_reply(state->nbtsock, state->request_packet,
- state->src_address, state->src_port, NBT_RCODE_ACT);
- DEBUG(4,("WINS: denied name registration request for %s from %s\n",
- nbt_name_string(state, state->rec->name), state->src_address));
+ &state->src, NBT_RCODE_ACT);
+ DEBUG(4,("WINS: denied name registration request for %s from %s:%d\n",
+ nbt_name_string(state, state->rec->name), state->src.addr, state->src.port));
talloc_free(state);
}
@@ -68,7 +67,7 @@ static void wins_wack_allow(struct wack_state *state)
}
nbtd_name_registration_reply(state->nbtsock, state->request_packet,
- state->src_address, state->src_port, NBT_RCODE_OK);
+ &state->src, NBT_RCODE_OK);
rec->addresses = str_list_add(rec->addresses, state->reg_address);
if (rec->addresses == NULL) goto failed;
@@ -77,7 +76,7 @@ static void wins_wack_allow(struct wack_state *state)
if (now + ttl > rec->expire_time) {
rec->expire_time = now + ttl;
}
- rec->registered_by = state->src_address;
+ rec->registered_by = state->src.addr;
winsdb_modify(state->winssrv, rec);
@@ -158,7 +157,7 @@ failed:
void wins_register_wack(struct nbt_name_socket *nbtsock,
struct nbt_name_packet *packet,
struct winsdb_record *rec,
- const char *src_address, int src_port)
+ const struct nbt_peer_socket *src)
{
struct nbtd_interface *iface = talloc_get_type(nbtsock->incoming.private,
struct nbtd_interface);
@@ -175,11 +174,11 @@ void wins_register_wack(struct nbt_name_socket *nbtsock,
state->nbtsock = nbtsock;
state->request_packet = talloc_steal(state, packet);
state->rec = talloc_steal(state, rec);
- state->src_port = src_port;
state->owner_addresses = rec->addresses;
state->reg_address = packet->additional[0].rdata.netbios.addresses[0].ipaddr;
- state->src_address = talloc_strdup(state, src_address);
- if (state->src_address == NULL) goto failed;
+ state->src.port = src->port;
+ state->src.addr = talloc_strdup(state, src->addr);
+ if (state->src.addr == NULL) goto failed;
/* setup a name query to the first address */
state->query.in.name = *rec->name;
@@ -198,7 +197,7 @@ void wins_register_wack(struct nbt_name_socket *nbtsock,
/* send a WACK to the client, specifying the maximum time it could
take to check with the owner, plus some slack */
ttl = 5 + 4 * str_list_length(rec->addresses);
- nbtd_wack_reply(nbtsock, packet, src_address, src_port, ttl);
+ nbtd_wack_reply(nbtsock, packet, src, ttl);
req = nbt_name_query_send(nbtsock, &state->query);
if (req == NULL) goto failed;
@@ -209,5 +208,5 @@ void wins_register_wack(struct nbt_name_socket *nbtsock,
failed:
talloc_free(state);
- nbtd_name_registration_reply(nbtsock, packet, src_address, src_port, NBT_RCODE_SVR);
+ nbtd_name_registration_reply(nbtsock, packet, src, NBT_RCODE_SVR);
}