xti_setopt.c

来自「关于linux 网络编程的一些代码 关于linux 网络编程的一些代码」· C语言 代码 · 共 39 行

C
39
字号
#include	"unpxti.h"intxti_setopt(int fd, int level, int name, void *optval, socklen_t optlen){	int					rc;	struct t_optmgmt	*req, *ret;	struct t_opthdr		*topt;	req = T_alloc(fd, T_OPTMGMT, T_ALL);	ret = T_alloc(fd, T_OPTMGMT, T_ALL);	if (req->opt.maxlen == 0)		err_quit("xti_setopt: req.opt.maxlen == 0");	topt = (struct t_opthdr *) req->opt.buf;	topt->level = level;	topt->name = name;	topt->len = sizeof(struct t_opthdr) + optlen;	if (topt->len > req->opt.maxlen)		err_quit("optlen too big");	req->opt.len = topt->len;	memcpy(topt+1, optval, optlen);	/* copy option value */	req->flags = T_NEGOTIATE;	if (t_optmgmt(fd, req, ret) < 0) {		T_free(req, T_OPTMGMT);		T_free(ret, T_OPTMGMT);		return(-1);	}	rc = ret->flags;	T_free(req, T_OPTMGMT);	T_free(ret, T_OPTMGMT);	if (rc == T_SUCCESS || rc == T_PARTSUCCESS)		return(0);	return(-1);		/* T_FAILURE, T_NOTSUPPORT, T_READONLY */}

⌨️ 快捷键说明

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