diff options
author | Taru Karttunen <taruti@taruti.net> | 2011-03-30 15:46:40 +0300 |
---|---|---|
committer | Taru Karttunen <taruti@taruti.net> | 2011-03-30 15:46:40 +0300 |
commit | e5888a1ffdae813d7575f5fb02275c6bb07e5199 (patch) | |
tree | d8d51eac403f07814b9e936eed0c9a79195e2450 /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-x | sys/src/cmd/aquarela/smbbrowse.c | 56 |
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; +} |