Author: metze
Date: 2006-01-14 10:11:04 +0000 (Sat, 14 Jan 2006)
New Revision: 12934

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=12934

Log:
do somemore debugging of the received browse packets,
(so I may learn about the protocol, while watching the debug output)

metze
Modified:
   branches/SAMBA_4_0/source/nbt_server/dgram/browse.c


Changeset:
Modified: branches/SAMBA_4_0/source/nbt_server/dgram/browse.c
===================================================================
--- branches/SAMBA_4_0/source/nbt_server/dgram/browse.c 2006-01-14 10:06:18 UTC 
(rev 12933)
+++ branches/SAMBA_4_0/source/nbt_server/dgram/browse.c 2006-01-14 10:11:04 UTC 
(rev 12934)
@@ -24,6 +24,26 @@
 #include "nbt_server/nbt_server.h"
 #include "lib/socket/socket.h"
 
+static const char *nbt_browse_opcode_string(enum nbt_browse_opcode r)
+{
+       const char *val = NULL;
+
+       switch (r) {
+               case HostAnnouncement: val = "HostAnnouncement"; break;
+               case AnnouncementRequest: val = "AnnouncementRequest"; break;
+               case Election: val = "Election"; break;
+               case GetBackupListReq: val = "GetBackupListReq"; break;
+               case GetBackupListResp: val = "GetBackupListResp"; break;
+               case BecomeBackup: val = "BecomeBackup"; break;
+               case DomainAnnouncement: val = "DomainAnnouncement"; break;
+               case MasterAnnouncement: val = "MasterAnnouncement"; break;
+               case ResetBrowserState: val = "ResetBrowserState"; break;
+               case LocalMasterAnnouncement: val = "LocalMasterAnnouncement"; 
break;
+       }
+
+       return val;
+}
+
 /*
   handle incoming browse mailslot requests
 */
@@ -31,6 +51,30 @@
                                  struct nbt_dgram_packet *packet, 
                                  struct socket_address *src)
 {
-       DEBUG(2,("Browse request on '%s' from %s:%d\n", 
-                 dgmslot->mailslot_name, src->addr, src->port));
+       struct nbt_browse_packet *browse = talloc(dgmslot, struct 
nbt_browse_packet);
+       struct nbt_name *name = &packet->data.msg.dest_name;
+       NTSTATUS status;
+
+       if (browse == NULL) goto failed;
+
+       status = dgram_mailslot_browse_parse(dgmslot, browse, packet, browse);
+       if (!NT_STATUS_IS_OK(status)) goto failed;
+
+       DEBUG(2,("Browse %s (Op %d) on '%s' '%s' from %s:%d\n", 
+               nbt_browse_opcode_string(browse->opcode), browse->opcode,
+               nbt_name_string(browse, name), dgmslot->mailslot_name,
+               src->addr, src->port));
+
+       if (DEBUGLEVEL >= 10) {
+               NDR_PRINT_DEBUG(nbt_browse_packet, browse);
+       }
+
+       talloc_free(browse);
+       return;
+
+failed:
+       DEBUG(2,("nbtd browse handler failed from %s:%d - %s\n",
+                src->addr, src->port, nt_errstr(status)));
+       talloc_free(browse);
+
 }

Reply via email to