From dafaf627c2ed4d3fa76e0a9426dde006cd6cf50c Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Tue, 20 Aug 1996 15:58:31 +0000 Subject: - add NMB_REG_REFRESH capability to initiate_netbios_packet(). I think this is why SELF names were getting expired. (This used to be commit 2d0ec53c508aca53a5049c98339a15dff5b8e239) --- source3/namepacket.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'source3/namepacket.c') diff --git a/source3/namepacket.c b/source3/namepacket.c index 02f4958520..075096bc57 100644 --- a/source3/namepacket.c +++ b/source3/namepacket.c @@ -106,6 +106,7 @@ void initiate_netbios_packet(uint16 *id, if (quest_type == NMB_STATUS) { packet_type = "nmb_status"; opcode = 0; } if (quest_type == NMB_QUERY ) { packet_type = "nmb_query"; opcode = 0; } if (quest_type == NMB_REG ) { packet_type = "nmb_reg"; opcode = 5; } + if (quest_type == NMB_REG_REFRESH ) { packet_type = "nmb_reg_refresh"; opcode = 9; } if (quest_type == NMB_REL ) { packet_type = "nmb_rel"; opcode = 6; } DEBUG(4,("initiating netbios packet: %s %s(%x) (bcast=%s) %s\n", @@ -134,14 +135,18 @@ void initiate_netbios_packet(uint16 *id, nmb->header.qdcount = 1; nmb->header.ancount = 0; nmb->header.nscount = 0; - nmb->header.arcount = (quest_type==NMB_REG || quest_type==NMB_REL) ? 1 : 0; + nmb->header.arcount = (quest_type==NMB_REG || + quest_type==NMB_REL || + quest_type==NMB_REG_REFRESH) ? 1 : 0; make_nmb_name(&nmb->question.question_name,name,name_type,scope); nmb->question.question_type = quest_type; nmb->question.question_class = 0x1; - if (quest_type == NMB_REG || quest_type == NMB_REL) + if (quest_type == NMB_REG || + quest_type == NMB_REG_REFRESH || + quest_type == NMB_REL) { nmb->additional = &additional_rec; bzero((char *)nmb->additional,sizeof(*nmb->additional)); @@ -150,7 +155,10 @@ void initiate_netbios_packet(uint16 *id, nmb->additional->rr_type = nmb->question.question_type; nmb->additional->rr_class = nmb->question.question_class; - nmb->additional->ttl = quest_type == NMB_REG ? lp_max_ttl() : 0; + if (quest_type == NMB_REG || quest_type == NMB_REG_REFRESH) + nmb->additional->ttl = lp_max_ttl(); + else + nmb->additional->ttl = 0; nmb->additional->rdlength = 6; nmb->additional->rdata[0] = nb_flags; putip(&nmb->additional->rdata[2],(char *)iface_ip(to_ip)); -- cgit