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

📄 syslog.xs

📁 Altera recommends the following system configuration: * Pentium II 400 with 512-MB system memory (fa
💻 XS
字号:
#include "EXTERN.h"#include "perl.h"#include "XSUB.h"#ifdef I_SYSLOG#include <syslog.h>#endifstatic doubleconstant_LOG_NO(char *name, int len){    switch (name[6 + 0]) {    case 'T':	if (strEQ(name + 6, "TICE")) {	/* LOG_NO removed */#ifdef LOG_NOTICE	    return LOG_NOTICE;#else	    goto not_there;#endif	}    case 'W':	if (strEQ(name + 6, "WAIT")) {	/* LOG_NO removed */#ifdef LOG_NOWAIT	    return LOG_NOWAIT;#else	    goto not_there;#endif	}    }    errno = EINVAL;    return 0;not_there:    errno = ENOENT;    return 0;}static doubleconstant_LOG_N(char *name, int len){    switch (name[5 + 0]) {    case 'D':	if (strEQ(name + 5, "DELAY")) {	/* LOG_N removed */#ifdef LOG_NDELAY	    return LOG_NDELAY;#else	    goto not_there;#endif	}    case 'E':	if (strEQ(name + 5, "EWS")) {	/* LOG_N removed */#ifdef LOG_NEWS	    return LOG_NEWS;#else	    goto not_there;#endif	}    case 'F':	if (strEQ(name + 5, "FACILITIES")) {	/* LOG_N removed */#ifdef LOG_NFACILITIES	    return LOG_NFACILITIES;#else	    goto not_there;#endif	}    case 'O':	return constant_LOG_NO(name, len);    }    errno = EINVAL;    return 0;not_there:    errno = ENOENT;    return 0;}static doubleconstant_LOG_P(char *name, int len){    switch (name[5 + 0]) {    case 'I':	if (strEQ(name + 5, "ID")) {	/* LOG_P removed */#ifdef LOG_PID	    return LOG_PID;#else	    goto not_there;#endif	}    case 'R':	if (strEQ(name + 5, "RIMASK")) {	/* LOG_P removed */#ifdef LOG_PRIMASK	    return LOG_PRIMASK;#else	    goto not_there;#endif	}    }    errno = EINVAL;    return 0;not_there:    errno = ENOENT;    return 0;}static doubleconstant_LOG_AU(char *name, int len){    if (6 + 2 >= len ) {	errno = EINVAL;	return 0;    }    switch (name[6 + 2]) {    case '\0':	if (strEQ(name + 6, "TH")) {	/* LOG_AU removed */#ifdef LOG_AUTH	    return LOG_AUTH;#else	    goto not_there;#endif	}    case 'P':	if (strEQ(name + 6, "THPRIV")) {	/* LOG_AU removed */#ifdef LOG_AUTHPRIV	    return LOG_AUTHPRIV;#else	    goto not_there;#endif	}    }    errno = EINVAL;    return 0;not_there:    errno = ENOENT;    return 0;}static doubleconstant_LOG_A(char *name, int len){    switch (name[5 + 0]) {    case 'L':	if (strEQ(name + 5, "LERT")) {	/* LOG_A removed */#ifdef LOG_ALERT	    return LOG_ALERT;#else	    goto not_there;#endif	}    case 'U':	return constant_LOG_AU(name, len);    }    errno = EINVAL;    return 0;not_there:    errno = ENOENT;    return 0;}static doubleconstant_LOG_CR(char *name, int len){    switch (name[6 + 0]) {    case 'I':	if (strEQ(name + 6, "IT")) {	/* LOG_CR removed */#ifdef LOG_CRIT	    return LOG_CRIT;#else	    goto not_there;#endif	}    case 'O':	if (strEQ(name + 6, "ON")) {	/* LOG_CR removed */#ifdef LOG_CRON	    return LOG_CRON;#else	    goto not_there;#endif	}    }    errno = EINVAL;    return 0;not_there:    errno = ENOENT;    return 0;}static doubleconstant_LOG_C(char *name, int len){    switch (name[5 + 0]) {    case 'O':	if (strEQ(name + 5, "ONS")) {	/* LOG_C removed */#ifdef LOG_CONS	    return LOG_CONS;#else	    goto not_there;#endif	}    case 'R':	return constant_LOG_CR(name, len);    }    errno = EINVAL;    return 0;not_there:    errno = ENOENT;    return 0;}static doubleconstant_LOG_D(char *name, int len){    switch (name[5 + 0]) {    case 'A':	if (strEQ(name + 5, "AEMON")) {	/* LOG_D removed */#ifdef LOG_DAEMON	    return LOG_DAEMON;#else	    goto not_there;#endif	}    case 'E':	if (strEQ(name + 5, "EBUG")) {	/* LOG_D removed */#ifdef LOG_DEBUG	    return LOG_DEBUG;#else	    goto not_there;#endif	}    }    errno = EINVAL;    return 0;not_there:    errno = ENOENT;    return 0;}static doubleconstant_LOG_U(char *name, int len){    switch (name[5 + 0]) {    case 'S':	if (strEQ(name + 5, "SER")) {	/* LOG_U removed */#ifdef LOG_USER	    return LOG_USER;#else	    goto not_there;#endif	}    case 'U':	if (strEQ(name + 5, "UCP")) {	/* LOG_U removed */#ifdef LOG_UUCP	    return LOG_UUCP;#else	    goto not_there;#endif	}    }    errno = EINVAL;    return 0;not_there:    errno = ENOENT;    return 0;}static doubleconstant_LOG_E(char *name, int len){    switch (name[5 + 0]) {    case 'M':	if (strEQ(name + 5, "MERG")) {	/* LOG_E removed */#ifdef LOG_EMERG	    return LOG_EMERG;#else	    goto not_there;#endif	}    case 'R':	if (strEQ(name + 5, "RR")) {	/* LOG_E removed */#ifdef LOG_ERR	    return LOG_ERR;#else	    goto not_there;#endif	}    }    errno = EINVAL;    return 0;not_there:    errno = ENOENT;    return 0;}static doubleconstant_LOG_F(char *name, int len){    switch (name[5 + 0]) {    case 'A':	if (strEQ(name + 5, "ACMASK")) {	/* LOG_F removed */#ifdef LOG_FACMASK	    return LOG_FACMASK;#else	    goto not_there;#endif	}    case 'T':	if (strEQ(name + 5, "TP")) {	/* LOG_F removed */#ifdef LOG_FTP	    return LOG_FTP;#else	    goto not_there;#endif	}    }    errno = EINVAL;    return 0;not_there:    errno = ENOENT;    return 0;}static doubleconstant_LOG_LO(char *name, int len){    if (6 + 3 >= len ) {	errno = EINVAL;	return 0;    }    switch (name[6 + 3]) {    case '0':	if (strEQ(name + 6, "CAL0")) {	/* LOG_LO removed */#ifdef LOG_LOCAL0	    return LOG_LOCAL0;#else	    goto not_there;#endif	}    case '1':	if (strEQ(name + 6, "CAL1")) {	/* LOG_LO removed */#ifdef LOG_LOCAL1	    return LOG_LOCAL1;#else	    goto not_there;#endif	}    case '2':	if (strEQ(name + 6, "CAL2")) {	/* LOG_LO removed */#ifdef LOG_LOCAL2	    return LOG_LOCAL2;#else	    goto not_there;#endif	}    case '3':	if (strEQ(name + 6, "CAL3")) {	/* LOG_LO removed */#ifdef LOG_LOCAL3	    return LOG_LOCAL3;#else	    goto not_there;#endif	}    case '4':	if (strEQ(name + 6, "CAL4")) {	/* LOG_LO removed */#ifdef LOG_LOCAL4	    return LOG_LOCAL4;#else	    goto not_there;#endif	}    case '5':	if (strEQ(name + 6, "CAL5")) {	/* LOG_LO removed */#ifdef LOG_LOCAL5	    return LOG_LOCAL5;#else	    goto not_there;#endif	}    case '6':	if (strEQ(name + 6, "CAL6")) {	/* LOG_LO removed */#ifdef LOG_LOCAL6	    return LOG_LOCAL6;#else	    goto not_there;#endif	}    case '7':	if (strEQ(name + 6, "CAL7")) {	/* LOG_LO removed */#ifdef LOG_LOCAL7	    return LOG_LOCAL7;#else	    goto not_there;#endif	}    }    errno = EINVAL;    return 0;not_there:    errno = ENOENT;    return 0;}static doubleconstant_LOG_L(char *name, int len){    switch (name[5 + 0]) {    case 'F':	if (strEQ(name + 5, "FMT")) {	/* LOG_L removed */#ifdef LOG_LFMT	    return LOG_LFMT;#else	    goto not_there;#endif	}    case 'O':	return constant_LOG_LO(name, len);    case 'P':	if (strEQ(name + 5, "PR")) {	/* LOG_L removed */#ifdef LOG_LPR	    return LOG_LPR;#else	    goto not_there;#endif	}    }    errno = EINVAL;    return 0;not_there:    errno = ENOENT;    return 0;}static doubleconstant(char *name, int len){    errno = 0;    if (0 + 4 >= len ) {	errno = EINVAL;	return 0;    }    switch (name[0 + 4]) {    case 'A':	if (!strnEQ(name + 0,"LOG_", 4))	    break;	return constant_LOG_A(name, len);    case 'C':	if (!strnEQ(name + 0,"LOG_", 4))	    break;	return constant_LOG_C(name, len);    case 'D':	if (!strnEQ(name + 0,"LOG_", 4))	    break;	return constant_LOG_D(name, len);    case 'E':	if (!strnEQ(name + 0,"LOG_", 4))	    break;	return constant_LOG_E(name, len);    case 'F':	if (!strnEQ(name + 0,"LOG_", 4))	    break;	return constant_LOG_F(name, len);    case 'I':	if (strEQ(name + 0, "LOG_INFO")) {	/*  removed */#ifdef LOG_INFO	    return LOG_INFO;#else	    goto not_there;#endif	}    case 'K':	if (strEQ(name + 0, "LOG_KERN")) {	/*  removed */#ifdef LOG_KERN	    return LOG_KERN;#else	    goto not_there;#endif	}    case 'L':	if (!strnEQ(name + 0,"LOG_", 4))	    break;	return constant_LOG_L(name, len);    case 'M':	if (strEQ(name + 0, "LOG_MAIL")) {	/*  removed */#ifdef LOG_MAIL	    return LOG_MAIL;#else	    goto not_there;#endif	}    case 'N':	if (!strnEQ(name + 0,"LOG_", 4))	    break;	return constant_LOG_N(name, len);    case 'O':	if (strEQ(name + 0, "LOG_ODELAY")) {	/*  removed */#ifdef LOG_ODELAY	    return LOG_ODELAY;#else	    goto not_there;#endif	}    case 'P':	if (!strnEQ(name + 0,"LOG_", 4))	    break;	return constant_LOG_P(name, len);    case 'S':	if (strEQ(name + 0, "LOG_SYSLOG")) {	/*  removed */#ifdef LOG_SYSLOG	    return LOG_SYSLOG;#else	    goto not_there;#endif	}    case 'U':	if (!strnEQ(name + 0,"LOG_", 4))	    break;	return constant_LOG_U(name, len);    case 'W':	if (strEQ(name + 0, "LOG_WARNING")) {	/*  removed */#ifdef LOG_WARNING	    return LOG_WARNING;#else	    goto not_there;#endif	}    }    errno = EINVAL;    return 0;not_there:    errno = ENOENT;    return 0;}MODULE = Sys::Syslog		PACKAGE = Sys::Syslog		char *_PATH_LOG()    CODE:#ifdef _PATH_LOG	RETVAL = _PATH_LOG;#else	RETVAL = "";#endif    OUTPUT:	RETVALintLOG_FAC(p)    INPUT:	int		p    CODE:#ifdef LOG_FAC	RETVAL = LOG_FAC(p);#else	croak("Your vendor has not defined the Sys::Syslog macro LOG_FAC");	RETVAL = -1;#endif    OUTPUT:	RETVALintLOG_PRI(p)    INPUT:	int		p    CODE:#ifdef LOG_PRI	RETVAL = LOG_PRI(p);#else	croak("Your vendor has not defined the Sys::Syslog macro LOG_PRI");	RETVAL = -1;#endif    OUTPUT:	RETVALintLOG_MAKEPRI(fac,pri)    INPUT:	int		fac	int		pri    CODE:#ifdef LOG_MAKEPRI	RETVAL = LOG_MAKEPRI(fac,pri);#else	croak("Your vendor has not defined the Sys::Syslog macro LOG_MAKEPRI");	RETVAL = -1;#endif    OUTPUT:	RETVALintLOG_MASK(pri)    INPUT:	int		pri    CODE:#ifdef LOG_MASK	RETVAL = LOG_MASK(pri);#else	croak("Your vendor has not defined the Sys::Syslog macro LOG_MASK");	RETVAL = -1;#endif    OUTPUT:	RETVALintLOG_UPTO(pri)    INPUT:	int		pri    CODE:#ifdef LOG_UPTO	RETVAL = LOG_UPTO(pri);#else	croak("Your vendor has not defined the Sys::Syslog macro LOG_UPTO");	RETVAL = -1;#endif    OUTPUT:	RETVALdoubleconstant(sv)    PREINIT:	STRLEN		len;    INPUT:	SV *		sv	char *		s = SvPV(sv, len);    CODE:	RETVAL = constant(s,len);    OUTPUT:	RETVAL

⌨️ 快捷键说明

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