xti_setopt.c
来自「Unix网络编程 基于Socket的网络编程」· 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 + -
显示快捷键?