summaryrefslogtreecommitdiff
path: root/sys/src/cmd/aquarela/smbbrowse.c
diff options
context:
space:
mode:
authorTaru Karttunen <taruti@taruti.net>2011-03-30 15:46:40 +0300
committerTaru Karttunen <taruti@taruti.net>2011-03-30 15:46:40 +0300
commite5888a1ffdae813d7575f5fb02275c6bb07e5199 (patch)
treed8d51eac403f07814b9e936eed0c9a79195e2450 /sys/src/cmd/aquarela/smbbrowse.c
Import sources from 2011-03-30 iso image
Diffstat (limited to 'sys/src/cmd/aquarela/smbbrowse.c')
-rwxr-xr-xsys/src/cmd/aquarela/smbbrowse.c56
1 files changed, 56 insertions, 0 deletions
diff --git a/sys/src/cmd/aquarela/smbbrowse.c b/sys/src/cmd/aquarela/smbbrowse.c
new file mode 100755
index 000000000..4f4fd0bd9
--- /dev/null
+++ b/sys/src/cmd/aquarela/smbbrowse.c
@@ -0,0 +1,56 @@
+#include "headers.h"
+
+int
+smbmailslotsend(NbDgramSendParameters *p, SmbBuffer *msg, char **errmsgp)
+{
+ ushort setup[3];
+ int rv;
+ SmbTransaction transaction;
+ SmbBuffer *b;
+ SmbHeader h;
+ setup[0] = 1;
+ setup[1] = 0;
+ setup[2] = 0;
+ memset(&transaction, 0, sizeof(transaction));
+ transaction.in.name = smbglobals.mailslotbrowse;
+ transaction.in.scount = 3;
+ transaction.in.setup = setup;
+ transaction.in.tdcount = smbbufferreadspace(msg);
+ transaction.in.data = smbbufferreadpointer(msg);
+ b = smbbuffernew(NbDgramMaxLen);
+ memset(&h, 0, sizeof(h));
+ rv = smbtransactionexecute(&transaction, &h, nil, b, &smbtransactionmethoddgram, p, nil, errmsgp);
+ smbbufferfree(&b);
+ return rv;
+}
+
+int
+smbbrowsesendhostannouncement(char *name, ulong periodms, ulong type, char *comment, char **errmsgp)
+{
+ NbDgramSendParameters p;
+ SmbBuffer *b;
+ int rv;
+// NbName msbrowse;
+
+// msbrowse[0] = 1;
+// msbrowse[1] = 2;
+// memcpy(msbrowse + 2, "__MSBROWSE__", 12);
+// msbrowse[14] = 2;
+// msbrowse[15] = 1;
+// nbnamecpy(p.to, msbrowse);
+ nbmknamefromstringandtype(p.to, smbglobals.primarydomain, 0x1d);
+ p.type = NbDgramDirectUnique;
+ b = smbbuffernew(NbDgramMaxLen);
+ smbbufferputb(b, 1);
+ smbbufferputb(b, 0);
+ smbbufferputl(b, periodms);
+ smbbufferputstrn(b, name, 16, 1);
+ smbbufferputb(b, 4);
+ smbbufferputb(b, 0);
+ smbbufferputl(b, type);
+ smbbufferputl(b, 0xaa55011f);
+ smbbufferputstring(b, nil, 0, comment);
+ rv = smbmailslotsend(&p, b, errmsgp);
+ smbbufferfree(&b);
+ return rv;
+}