⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 default_store.xs

📁 snmp的源代码,已经在我的ubuntu下编译通过
💻 XS
📖 第 1 页 / 共 2 页
字号:
#include "EXTERN.h"#include "perl.h"#include "XSUB.h"#include <net-snmp/library/default_store.h>static intnot_here(char *s){    croak("%s not implemented on this architecture", s);    return -1;}static doubleconstant_NETSNMP_DS_S(char *name, int len, int arg){    if (12 + 12 >= len ) {	errno = EINVAL;	return 0;    }    switch (name[12 + 12]) {    case '1':	if (strEQ(name + 12, "NMP_VERSION_1")) {	/* NETSNMP_DS_S removed */#ifdef NETSNMP_DS_SNMP_VERSION_1	    return NETSNMP_DS_SNMP_VERSION_1;#else	    goto not_there;#endif	}    case '2':	if (strEQ(name + 12, "NMP_VERSION_2c")) {	/* NETSNMP_DS_S removed */#ifdef NETSNMP_DS_SNMP_VERSION_2c	    return NETSNMP_DS_SNMP_VERSION_2c;#else	    goto not_there;#endif	}    case '3':	if (strEQ(name + 12, "NMP_VERSION_3")) {	/* NETSNMP_DS_S removed */#ifdef NETSNMP_DS_SNMP_VERSION_3	    return NETSNMP_DS_SNMP_VERSION_3;#else	    goto not_there;#endif	}    }    errno = EINVAL;    return 0;not_there:    errno = ENOENT;    return 0;}static doubleconstant_NETSNMP_DS_LIB_N(char *name, int len, int arg){    switch (name[16 + 0]) {    case 'O':	if (strEQ(name + 16, "O_TOKEN_WARNINGS")) {	/* NETSNMP_DS_LIB_N removed */#ifdef NETSNMP_DS_LIB_NO_TOKEN_WARNINGS	    return NETSNMP_DS_LIB_NO_TOKEN_WARNINGS;#else	    goto not_there;#endif	}    case 'U':	if (strEQ(name + 16, "UMERIC_TIMETICKS")) {	/* NETSNMP_DS_LIB_N removed */#ifdef NETSNMP_DS_LIB_NUMERIC_TIMETICKS	    return NETSNMP_DS_LIB_NUMERIC_TIMETICKS;#else	    goto not_there;#endif	}    }    errno = EINVAL;    return 0;not_there:    errno = ENOENT;    return 0;}static doubleconstant_NETSNMP_DS_LIB_O(char *name, int len, int arg){    switch (name[16 + 0]) {    case 'I':	if (strEQ(name + 16, "ID_OUTPUT_FORMAT")) {	/* NETSNMP_DS_LIB_O removed */#ifdef NETSNMP_DS_LIB_OID_OUTPUT_FORMAT	    return NETSNMP_DS_LIB_OID_OUTPUT_FORMAT;#else	    goto not_there;#endif	}    case 'P':	if (strEQ(name + 16, "PTIONALCONFIG")) {	/* NETSNMP_DS_LIB_O removed */#ifdef NETSNMP_DS_LIB_OPTIONALCONFIG	    return NETSNMP_DS_LIB_OPTIONALCONFIG;#else	    goto not_there;#endif	}    }    errno = EINVAL;    return 0;not_there:    errno = ENOENT;    return 0;}static doubleconstant_NETSNMP_DS_LIB_PRINT_N(char *name, int len, int arg){    if (22 + 7 >= len ) {	errno = EINVAL;	return 0;    }    switch (name[22 + 7]) {    case 'E':	if (strEQ(name + 22, "UMERIC_ENUM")) {	/* NETSNMP_DS_LIB_PRINT_N removed */#ifdef NETSNMP_DS_LIB_PRINT_NUMERIC_ENUM	    return NETSNMP_DS_LIB_PRINT_NUMERIC_ENUM;#else	    goto not_there;#endif	}    case 'O':	if (strEQ(name + 22, "UMERIC_OIDS")) {	/* NETSNMP_DS_LIB_PRINT_N removed */#ifdef NETSNMP_DS_LIB_PRINT_NUMERIC_OIDS	    return NETSNMP_DS_LIB_PRINT_NUMERIC_OIDS;#else	    goto not_there;#endif	}    }    errno = EINVAL;    return 0;not_there:    errno = ENOENT;    return 0;}static doubleconstant_NETSNMP_DS_LIB_PRIN(char *name, int len, int arg){    if (19 + 2 >= len ) {	errno = EINVAL;	return 0;    }    switch (name[19 + 2]) {    case 'B':	if (strEQ(name + 19, "T_BARE_VALUE")) {	/* NETSNMP_DS_LIB_PRIN removed */#ifdef NETSNMP_DS_LIB_PRINT_BARE_VALUE	    return NETSNMP_DS_LIB_PRINT_BARE_VALUE;#else	    goto not_there;#endif	}    case 'F':	if (strEQ(name + 19, "T_FULL_OID")) {	/* NETSNMP_DS_LIB_PRIN removed */#ifdef NETSNMP_DS_LIB_PRINT_FULL_OID	    return NETSNMP_DS_LIB_PRINT_FULL_OID;#else	    goto not_there;#endif	}    case 'H':	if (strEQ(name + 19, "T_HEX_TEXT")) {	/* NETSNMP_DS_LIB_PRIN removed */#ifdef NETSNMP_DS_LIB_PRINT_HEX_TEXT	    return NETSNMP_DS_LIB_PRINT_HEX_TEXT;#else	    goto not_there;#endif	}    case 'N':	if (!strnEQ(name + 19,"T_", 2))	    break;	return constant_NETSNMP_DS_LIB_PRINT_N(name, len, arg);    case 'S':	if (strEQ(name + 19, "T_SUFFIX_ONLY")) {	/* NETSNMP_DS_LIB_PRIN removed */#ifdef NETSNMP_DS_LIB_PRINT_SUFFIX_ONLY	    return NETSNMP_DS_LIB_PRINT_SUFFIX_ONLY;#else	    goto not_there;#endif	}    case 'U':	if (strEQ(name + 19, "T_UCD_STYLE_OID")) {	/* NETSNMP_DS_LIB_PRIN removed */#ifdef NETSNMP_DS_LIB_PRINT_UCD_STYLE_OID	    return NETSNMP_DS_LIB_PRINT_UCD_STYLE_OID;#else	    goto not_there;#endif	}    }    errno = EINVAL;    return 0;not_there:    errno = ENOENT;    return 0;}static doubleconstant_NETSNMP_DS_LIB_PR(char *name, int len, int arg){    if (17 + 1 >= len ) {	errno = EINVAL;	return 0;    }    switch (name[17 + 1]) {    case 'N':	if (!strnEQ(name + 17,"I", 1))	    break;	return constant_NETSNMP_DS_LIB_PRIN(name, len, arg);    case 'V':	if (strEQ(name + 17, "IVPASSPHRASE")) {	/* NETSNMP_DS_LIB_PR removed */#ifdef NETSNMP_DS_LIB_PRIVPASSPHRASE	    return NETSNMP_DS_LIB_PRIVPASSPHRASE;#else	    goto not_there;#endif	}    }    errno = EINVAL;    return 0;not_there:    errno = ENOENT;    return 0;}static doubleconstant_NETSNMP_DS_LIB_P(char *name, int len, int arg){    switch (name[16 + 0]) {    case 'A':	if (strEQ(name + 16, "ASSPHRASE")) {	/* NETSNMP_DS_LIB_P removed */#ifdef NETSNMP_DS_LIB_PASSPHRASE	    return NETSNMP_DS_LIB_PASSPHRASE;#else	    goto not_there;#endif	}    case 'E':	if (strEQ(name + 16, "ERSISTENT_DIR")) {	/* NETSNMP_DS_LIB_P removed */#ifdef NETSNMP_DS_LIB_PERSISTENT_DIR	    return NETSNMP_DS_LIB_PERSISTENT_DIR;#else	    goto not_there;#endif	}    case 'R':	return constant_NETSNMP_DS_LIB_PR(name, len, arg);    }    errno = EINVAL;    return 0;not_there:    errno = ENOENT;    return 0;}static doubleconstant_NETSNMP_DS_LIB_Q(char *name, int len, int arg){    if (16 + 4 >= len ) {	errno = EINVAL;	return 0;    }    switch (name[16 + 4]) {    case 'E':	if (strEQ(name + 16, "UICKE_PRINT")) {	/* NETSNMP_DS_LIB_Q removed */#ifdef NETSNMP_DS_LIB_QUICKE_PRINT	    return NETSNMP_DS_LIB_QUICKE_PRINT;#else	    goto not_there;#endif	}    case '_':	if (strEQ(name + 16, "UICK_PRINT")) {	/* NETSNMP_DS_LIB_Q removed */#ifdef NETSNMP_DS_LIB_QUICK_PRINT	    return NETSNMP_DS_LIB_QUICK_PRINT;#else	    goto not_there;#endif	}    }    errno = EINVAL;    return 0;not_there:    errno = ENOENT;    return 0;}static doubleconstant_NETSNMP_DS_LIB_A(char *name, int len, int arg){    switch (name[16 + 0]) {    case 'L':	if (strEQ(name + 16, "LARM_DONT_USE_SIG")) {	/* NETSNMP_DS_LIB_A removed */#ifdef NETSNMP_DS_LIB_ALARM_DONT_USE_SIG	    return NETSNMP_DS_LIB_ALARM_DONT_USE_SIG;#else	    goto not_there;#endif	}    case 'P':	if (strEQ(name + 16, "PPTYPE")) {	/* NETSNMP_DS_LIB_A removed */#ifdef NETSNMP_DS_LIB_APPTYPE	    return NETSNMP_DS_LIB_APPTYPE;#else	    goto not_there;#endif	}    case 'U':	if (strEQ(name + 16, "UTHPASSPHRASE")) {	/* NETSNMP_DS_LIB_A removed */#ifdef NETSNMP_DS_LIB_AUTHPASSPHRASE	    return NETSNMP_DS_LIB_AUTHPASSPHRASE;#else	    goto not_there;#endif	}    }    errno = EINVAL;    return 0;not_there:    errno = ENOENT;    return 0;}static doubleconstant_NETSNMP_DS_LIB_RE(char *name, int len, int arg){    switch (name[17 + 0]) {    case 'A':	if (strEQ(name + 17, "AD_UCD_STYLE_OID")) {	/* NETSNMP_DS_LIB_RE removed */#ifdef NETSNMP_DS_LIB_READ_UCD_STYLE_OID	    return NETSNMP_DS_LIB_READ_UCD_STYLE_OID;#else	    goto not_there;#endif	}    case 'G':	if (strEQ(name + 17, "GEX_ACCESS")) {	/* NETSNMP_DS_LIB_RE removed */#ifdef NETSNMP_DS_LIB_REGEX_ACCESS	    return NETSNMP_DS_LIB_REGEX_ACCESS;#else	    goto not_there;#endif	}    case 'V':	if (strEQ(name + 17, "VERSE_ENCODE")) {	/* NETSNMP_DS_LIB_RE removed */#ifdef NETSNMP_DS_LIB_REVERSE_ENCODE	    return NETSNMP_DS_LIB_REVERSE_ENCODE;#else	    goto not_there;#endif	}    }    errno = EINVAL;    return 0;not_there:    errno = ENOENT;    return 0;}static doubleconstant_NETSNMP_DS_LIB_R(char *name, int len, int arg){    switch (name[16 + 0]) {    case 'A':	if (strEQ(name + 16, "ANDOM_ACCESS")) {	/* NETSNMP_DS_LIB_R removed */#ifdef NETSNMP_DS_LIB_RANDOM_ACCESS	    return NETSNMP_DS_LIB_RANDOM_ACCESS;#else	    goto not_there;#endif	}    case 'E':	return constant_NETSNMP_DS_LIB_RE(name, len, arg);    }    errno = EINVAL;    return 0;not_there:    errno = ENOENT;    return 0;}static doubleconstant_NETSNMP_DS_LIB_SE(char *name, int len, int arg){    if (17 + 1 >= len ) {	errno = EINVAL;	return 0;    }    switch (name[17 + 1]) {    case 'L':	if (strEQ(name + 17, "CLEVEL")) {	/* NETSNMP_DS_LIB_SE removed */#ifdef NETSNMP_DS_LIB_SECLEVEL	    return NETSNMP_DS_LIB_SECLEVEL;#else	    goto not_there;#endif	}    case 'M':	if (strEQ(name + 17, "CMODEL")) {	/* NETSNMP_DS_LIB_SE removed */#ifdef NETSNMP_DS_LIB_SECMODEL	    return NETSNMP_DS_LIB_SECMODEL;#else	    goto not_there;#endif	}    case 'N':	if (strEQ(name + 17, "CNAME")) {	/* NETSNMP_DS_LIB_SE removed */#ifdef NETSNMP_DS_LIB_SECNAME	    return NETSNMP_DS_LIB_SECNAME;#else	    goto not_there;#endif	}    }    errno = EINVAL;    return 0;not_there:    errno = ENOENT;    return 0;}static doubleconstant_NETSNMP_DS_LIB_S(char *name, int len, int arg){    switch (name[16 + 0]) {    case 'A':	if (strEQ(name + 16, "AVE_MIB_DESCRS")) {	/* NETSNMP_DS_LIB_S removed */#ifdef NETSNMP_DS_LIB_SAVE_MIB_DESCRS	    return NETSNMP_DS_LIB_SAVE_MIB_DESCRS;#else	    goto not_there;#endif	}    case 'E':	return constant_NETSNMP_DS_LIB_SE(name, len, arg);    case 'N':	if (strEQ(name + 16, "NMPVERSION")) {	/* NETSNMP_DS_LIB_S removed */#ifdef NETSNMP_DS_LIB_SNMPVERSION	    return NETSNMP_DS_LIB_SNMPVERSION;#else	    goto not_there;#endif	}    }    errno = EINVAL;    return 0;not_there:    errno = ENOENT;    return 0;}static doubleconstant_NETSNMP_DS_LIB_CON(char *name, int len, int arg){    switch (name[18 + 0]) {    case 'F':	if (strEQ(name + 18, "FIGURATION_DIR")) {	/* NETSNMP_DS_LIB_CON removed */#ifdef NETSNMP_DS_LIB_CONFIGURATION_DIR	    return NETSNMP_DS_LIB_CONFIGURATION_DIR;#else	    goto not_there;#endif	}    case 'T':	if (strEQ(name + 18, "TEXT")) {	/* NETSNMP_DS_LIB_CON removed */#ifdef NETSNMP_DS_LIB_CONTEXT	    return NETSNMP_DS_LIB_CONTEXT;#else	    goto not_there;#endif	}    }    errno = EINVAL;

⌨️ 快捷键说明

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