smbbrowse.c

来自「这是一个同样来自贝尔实验室的和UNIX有着渊源的操作系统, 其简洁的设计和实现易」· C语言 代码 · 共 57 行

C
57
字号
#include "headers.h"intsmbmailslotsend(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;}intsmbbrowsesendhostannouncement(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;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?