diff options
author | Samba Release Account <samba-bugs@samba.org> | 1996-08-01 17:49:40 +0000 |
---|---|---|
committer | Samba Release Account <samba-bugs@samba.org> | 1996-08-01 17:49:40 +0000 |
commit | 3ffb30e8be5bcddca9d0489e1993085a4995c3af (patch) | |
tree | a36a093e5ede9021bc01ca5d50cae3d82ac3bbea /source3/libsmb | |
parent | 9bf446124b5ad991e071f92eeabcbb838eb9f50b (diff) | |
download | samba-3ffb30e8be5bcddca9d0489e1993085a4995c3af.tar.gz samba-3ffb30e8be5bcddca9d0489e1993085a4995c3af.tar.bz2 samba-3ffb30e8be5bcddca9d0489e1993085a4995c3af.zip |
local_only NetServerEnum syncs can now be issued.
bug spotted in nameservresp.c - arguments to test subnet the response
is received on (same_net()) were the wrong way round (ccm@shentel.net)
samba was adding WORKGROUP(1e) as a unique not a group name: fixed this
bug in reply_name_status() and reply_name_query(): WINS entries weren't
being looked up.
name status reply adds local SELF entries to WINS SELF entries: some
SELF entries are only added locally, while others are only added via
WINS. name status needs to have both, combined.
a sync will only occur when an ANN_LocalMasterAnnouncement is received, NOT
an ANN_HostAnnouncement or an ANN_DomainAnnouncement.
when samba is a member of a workgroup, it looks for (using a wins server)
and announces to its domain master. NAME_QUERY_ANNOUNCE_HOST - yet another
'state' - has been created to do this: do the name query on the wins server
and send the announce host to the answer to this query.
jeremy @ vantive wrote the original code to do this, which used the
name_query() function. i'm trying to avoid name_query: it times out and
generally messes things up, but using queue_netbios_packet() and
queue_netbios_pkt_wins() is... not intuitive?
lkcl with help from jra
(This used to be commit 6e932e4bae8b46e7ff4a55a75484bad78308336a)
Diffstat (limited to 'source3/libsmb')
-rw-r--r-- | source3/libsmb/namequery.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/source3/libsmb/namequery.c b/source3/libsmb/namequery.c index 5480913001..21d3bd1e50 100644 --- a/source3/libsmb/namequery.c +++ b/source3/libsmb/namequery.c @@ -54,7 +54,7 @@ static void _interpret_node_status(char *p, char *master,char *rname) if ((p[0] & 0x60) == 0x00) strcat(flags,"B "); if ((p[0] & 0x60) == 0x20) strcat(flags,"P "); if ((p[0] & 0x60) == 0x40) strcat(flags,"M "); - if ((p[0] & 0x60) == 0x60) strcat(flags,"_ "); + if ((p[0] & 0x60) == 0x60) strcat(flags,"H "); if (p[0] & 0x10) strcat(flags,"<DEREGISTERING> "); if (p[0] & 0x08) strcat(flags,"<CONFLICT> "); if (p[0] & 0x04) strcat(flags,"<ACTIVE> "); @@ -109,8 +109,8 @@ BOOL name_status(int fd,char *name,int name_type,BOOL recurse, nmb->header.opcode = 0; nmb->header.response = False; nmb->header.nm_flags.bcast = False; - nmb->header.nm_flags.recursion_available = 0; - nmb->header.nm_flags.recursion_desired = 1; + nmb->header.nm_flags.recursion_available = False; + nmb->header.nm_flags.recursion_desired = False; nmb->header.nm_flags.trunc = False; nmb->header.nm_flags.authoritative = False; nmb->header.rcode = 0; @@ -152,6 +152,8 @@ BOOL name_status(int fd,char *name,int name_type,BOOL recurse, if ((p2=receive_packet(fd,NMB_PACKET,90))) { struct nmb_packet *nmb2 = &p2->packet.nmb; + debug_nmb_packet(p2); + if (nmb->header.name_trn_id != nmb2->header.name_trn_id || !nmb2->header.response) { /* its not for us - maybe deal with it later */ @@ -173,8 +175,6 @@ BOOL name_status(int fd,char *name,int name_type,BOOL recurse, continue; } - debug_nmb_packet(p2); - _interpret_node_status(&nmb2->answers->rdata[0], master,rname); free_packet(p2); return(True); @@ -257,6 +257,8 @@ BOOL name_query(int fd,char *name,int name_type, if ((p2=receive_packet(fd,NMB_PACKET,90))) { struct nmb_packet *nmb2 = &p2->packet.nmb; + debug_nmb_packet(p2); + if (nmb->header.name_trn_id != nmb2->header.name_trn_id || !nmb2->header.response) { /* its not for us - maybe deal with it later @@ -268,8 +270,6 @@ BOOL name_query(int fd,char *name,int name_type, continue; } - debug_nmb_packet(p2); - if (nmb2->header.opcode != 0 || nmb2->header.nm_flags.bcast || nmb2->header.rcode || |