name.c

来自「unix网络编程卷1:套接口API的全书源码」· C语言 代码 · 共 60 行

C
60
字号
#include "unp.h"#include <net/pfkeyv2.h>struct idlist {	int val;	const char *name;};static struct idlist satype[] = {	{ SADB_SATYPE_UNSPEC,	"unspec" },	{ SADB_SATYPE_AH,		"ah" },	{ SADB_SATYPE_ESP,		"esp" },	{ SADB_SATYPE_RSVP,		"rsvp" },	{ SADB_SATYPE_OSPFV2,	"ospfv2" },	{ SADB_SATYPE_RIPV2,	"ripv2" },	{ SADB_SATYPE_MIP,		"mip" },	{ 0,					NULL } };static struct idlist ahalg[] = {	{ SADB_AALG_NONE,		"none" },	{ SADB_AALG_MD5HMAC,	"HMAC-MD5-96" },	{ SADB_AALG_SHA1HMAC,	"HMAC-SHA-1-96" },	{ 0,					NULL } };static struct idlist espalg[] = {	{ SADB_EALG_NONE,		"none" },	{ SADB_EALG_DESCBC,		"DES-CBC" },	{ SADB_EALG_3DESCBC,	"3DES-CBC" },	{ SADB_EALG_NULL,		"NULL" },	{ 0,					NULL } };intidlistlookup(char *name, struct idlist *il){	for (; il->name != NULL; il++) {		if (strcmp(name, il->name) == 0)			return il->val;	}	return -1;}intgetsatypebyname(char *name){	return idlistlookup(name, satype);}intgetsaalgbyname(int type, char *name){	switch (type) {	case SADB_SATYPE_AH:		return idlistlookup(name, ahalg);	case SADB_SATYPE_ESP:		return idlistlookup(name, espalg);	default:		return -1;	}}

⌨️ 快捷键说明

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