1*8ccd4a63SDavid du Colombier #include "headers.h"
2*8ccd4a63SDavid du Colombier
3*8ccd4a63SDavid du Colombier int
smbmailslotsend(NbDgramSendParameters * p,SmbBuffer * msg,char ** errmsgp)4*8ccd4a63SDavid du Colombier smbmailslotsend(NbDgramSendParameters *p, SmbBuffer *msg, char **errmsgp)
5*8ccd4a63SDavid du Colombier {
6*8ccd4a63SDavid du Colombier ushort setup[3];
7*8ccd4a63SDavid du Colombier int rv;
8*8ccd4a63SDavid du Colombier SmbTransaction transaction;
9*8ccd4a63SDavid du Colombier SmbBuffer *b;
10*8ccd4a63SDavid du Colombier SmbHeader h;
11*8ccd4a63SDavid du Colombier setup[0] = 1;
12*8ccd4a63SDavid du Colombier setup[1] = 0;
13*8ccd4a63SDavid du Colombier setup[2] = 0;
14*8ccd4a63SDavid du Colombier memset(&transaction, 0, sizeof(transaction));
15*8ccd4a63SDavid du Colombier transaction.in.name = smbglobals.mailslotbrowse;
16*8ccd4a63SDavid du Colombier transaction.in.scount = 3;
17*8ccd4a63SDavid du Colombier transaction.in.setup = setup;
18*8ccd4a63SDavid du Colombier transaction.in.tdcount = smbbufferreadspace(msg);
19*8ccd4a63SDavid du Colombier transaction.in.data = smbbufferreadpointer(msg);
20*8ccd4a63SDavid du Colombier b = smbbuffernew(NbDgramMaxLen);
21*8ccd4a63SDavid du Colombier memset(&h, 0, sizeof(h));
22*8ccd4a63SDavid du Colombier rv = smbtransactionexecute(&transaction, &h, nil, b, &smbtransactionmethoddgram, p, nil, errmsgp);
23*8ccd4a63SDavid du Colombier smbbufferfree(&b);
24*8ccd4a63SDavid du Colombier return rv;
25*8ccd4a63SDavid du Colombier }
26*8ccd4a63SDavid du Colombier
27*8ccd4a63SDavid du Colombier int
smbbrowsesendhostannouncement(char * name,ulong periodms,ulong type,char * comment,char ** errmsgp)28*8ccd4a63SDavid du Colombier smbbrowsesendhostannouncement(char *name, ulong periodms, ulong type, char *comment, char **errmsgp)
29*8ccd4a63SDavid du Colombier {
30*8ccd4a63SDavid du Colombier NbDgramSendParameters p;
31*8ccd4a63SDavid du Colombier SmbBuffer *b;
32*8ccd4a63SDavid du Colombier int rv;
33*8ccd4a63SDavid du Colombier // NbName msbrowse;
34*8ccd4a63SDavid du Colombier
35*8ccd4a63SDavid du Colombier // msbrowse[0] = 1;
36*8ccd4a63SDavid du Colombier // msbrowse[1] = 2;
37*8ccd4a63SDavid du Colombier // memcpy(msbrowse + 2, "__MSBROWSE__", 12);
38*8ccd4a63SDavid du Colombier // msbrowse[14] = 2;
39*8ccd4a63SDavid du Colombier // msbrowse[15] = 1;
40*8ccd4a63SDavid du Colombier // nbnamecpy(p.to, msbrowse);
41*8ccd4a63SDavid du Colombier nbmknamefromstringandtype(p.to, smbglobals.primarydomain, 0x1d);
42*8ccd4a63SDavid du Colombier p.type = NbDgramDirectUnique;
43*8ccd4a63SDavid du Colombier b = smbbuffernew(NbDgramMaxLen);
44*8ccd4a63SDavid du Colombier smbbufferputb(b, 1);
45*8ccd4a63SDavid du Colombier smbbufferputb(b, 0);
46*8ccd4a63SDavid du Colombier smbbufferputl(b, periodms);
47*8ccd4a63SDavid du Colombier smbbufferputstrn(b, name, 16, 1);
48*8ccd4a63SDavid du Colombier smbbufferputb(b, 4);
49*8ccd4a63SDavid du Colombier smbbufferputb(b, 0);
50*8ccd4a63SDavid du Colombier smbbufferputl(b, type);
51*8ccd4a63SDavid du Colombier smbbufferputl(b, 0xaa55011f);
52*8ccd4a63SDavid du Colombier smbbufferputstring(b, nil, 0, comment);
53*8ccd4a63SDavid du Colombier rv = smbmailslotsend(&p, b, errmsgp);
54*8ccd4a63SDavid du Colombier smbbufferfree(&b);
55*8ccd4a63SDavid du Colombier return rv;
56*8ccd4a63SDavid du Colombier }
57