message.c

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

C
56
字号
#include <u.h>#include <libc.h>#include <ip.h>#include <thread.h>#include "netbios.h"NbnsMessage *nbnsmessagenamequeryrequestnew(ushort id, int broadcast, NbName name){	NbnsMessage *s;	NbnsMessageQuestion *q;	s = nbnsmessagenew();	if (s == nil)		return nil;	s->id = id;	s->opcode = NbnsOpQuery;	s->broadcast = broadcast;	s->recursiondesired = 1;	q =  nbnsmessagequestionnew(name, NbnsQuestionTypeNb, NbnsQuestionClassIn);	if (q == nil) {		nbnsmessagefree(&s);		return nil;	}	nbnsmessageaddquestion(s, q);	return s;}NbnsMessage *nbnsmessagenameregistrationrequestnew(ushort id, int broadcast, NbName name, ulong ttl, uchar *ipaddr){	NbnsMessage *s;	NbnsMessageQuestion *q;	uchar rdata[6];	NbnsMessageResource *r;	s = nbnsmessagenew();	if (s == nil)		return nil;	s->id = id;	s->opcode = NbnsOpRegistration;	s->broadcast = broadcast;	s->recursiondesired = 1;	q =  nbnsmessagequestionnew(name, NbnsQuestionTypeNb, NbnsQuestionClassIn);	if (q == nil) {		nbnsmessagefree(&s);		return nil;	}	nbnsmessageaddquestion(s, q);	rdata[0] = 0;	rdata[1] = 0;	v6tov4(rdata + 2, ipaddr);	r = nbnsmessageresourcenew(name, NbnsResourceTypeNb, NbnsResourceClassIn, ttl, 6, rdata);	nbnsmessageaddresource(&s->ar, r);	return s;}

⌨️ 快捷键说明

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