C代码示例:通过socket接口使用XFRM_MSG_NEWSA添加xfrm_usersa_info
#include <linux/xfrm.h> #include <sys/socket.h>
int main(){
int fd = socket(AF_INET6, SOCK_DGRAM, 0);
struct xfrm_usersa_info sa_info = {0};
sa_info.family = AF_INET6;
sa_info.id.daddr = in6addr_loopback;
sa_info.saddr = in6addr_any;
sa_info.mode = XFRM_MODE_TRANSPORT;
sa_info.replay_window = 32;
sa_info.flags = XFRM_STATE_ESN;
struct sockaddr_xfrm sa = {0};
sa.sx_family = AF_XFRM;
sa.sx_type = XFRM_POLICY_OUT;
if (setsockopt(fd, SOL_XFRM, XFRM_MSG_NEWSA, &sa_info, sizeof(sa_info)) < 0)
{
perror("setsockopt error");
return -1;
}
return 0;
}
原文地址: https://www.cveoy.top/t/topic/ovzu 著作权归作者所有。请勿转载和采集!