📄 defines.h
字号:
#endif#ifndef _PATH_DEVNULL# define _PATH_DEVNULL "/dev/null"#endif#ifndef MAIL_DIRECTORY# define MAIL_DIRECTORY "/var/spool/mail"#endif#ifndef MAILDIR# define MAILDIR MAIL_DIRECTORY#endif#if !defined(_PATH_MAILDIR) && defined(MAILDIR)# define _PATH_MAILDIR MAILDIR#endif /* !defined(_PATH_MAILDIR) && defined(MAILDIR) */#ifndef _PATH_NOLOGIN# define _PATH_NOLOGIN "/etc/nologin"#endif/* Define this to be the path of the xauth program. */#ifdef XAUTH_PATH#define _PATH_XAUTH XAUTH_PATH#endif /* XAUTH_PATH *//* derived from XF4/xc/lib/dps/Xlibnet.h */#ifndef X_UNIX_PATH# ifdef __hpux# define X_UNIX_PATH "/var/spool/sockets/X11/%u"# else# define X_UNIX_PATH "/tmp/.X11-unix/X%u"# endif#endif /* X_UNIX_PATH */#define _PATH_UNIX_X X_UNIX_PATH#ifndef _PATH_TTY# define _PATH_TTY "/dev/tty"#endif/* Macros */#if defined(HAVE_LOGIN_GETCAPBOOL) && defined(HAVE_LOGIN_CAP_H)# define HAVE_LOGIN_CAP#endif#ifndef MAX# define MAX(a,b) (((a)>(b))?(a):(b))# define MIN(a,b) (((a)<(b))?(a):(b))#endif#ifndef roundup# define roundup(x, y) ((((x)+((y)-1))/(y))*(y))#endif#ifndef timersub#define timersub(a, b, result) \ do { \ (result)->tv_sec = (a)->tv_sec - (b)->tv_sec; \ (result)->tv_usec = (a)->tv_usec - (b)->tv_usec; \ if ((result)->tv_usec < 0) { \ --(result)->tv_sec; \ (result)->tv_usec += 1000000; \ } \ } while (0)#endif#ifndef TIMEVAL_TO_TIMESPEC#define TIMEVAL_TO_TIMESPEC(tv, ts) { \ (ts)->tv_sec = (tv)->tv_sec; \ (ts)->tv_nsec = (tv)->tv_usec * 1000; \}#endif#ifndef TIMESPEC_TO_TIMEVAL#define TIMESPEC_TO_TIMEVAL(tv, ts) { \ (tv)->tv_sec = (ts)->tv_sec; \ (tv)->tv_usec = (ts)->tv_nsec / 1000; \}#endif#ifndef __P# define __P(x) x#endif#if !defined(IN6_IS_ADDR_V4MAPPED)# define IN6_IS_ADDR_V4MAPPED(a) \ ((((u_int32_t *) (a))[0] == 0) && (((u_int32_t *) (a))[1] == 0) && \ (((u_int32_t *) (a))[2] == htonl (0xffff)))#endif /* !defined(IN6_IS_ADDR_V4MAPPED) */#if !defined(__GNUC__) || (__GNUC__ < 2)# define __attribute__(x)#endif /* !defined(__GNUC__) || (__GNUC__ < 2) */#ifndef __dead# define __dead __attribute__((noreturn))#endif/* *-*-nto-qnx doesn't define this macro in the system headers */#ifdef MISSING_HOWMANY# define howmany(x,y) (((x)+((y)-1))/(y))#endif#ifndef OSSH_ALIGNBYTES#define OSSH_ALIGNBYTES (sizeof(int) - 1)#endif#ifndef __CMSG_ALIGN#define __CMSG_ALIGN(p) (((u_int)(p) + OSSH_ALIGNBYTES) &~ OSSH_ALIGNBYTES)#endif/* Length of the contents of a control message of length len */#ifndef CMSG_LEN#define CMSG_LEN(len) (__CMSG_ALIGN(sizeof(struct cmsghdr)) + (len))#endif/* Length of the space taken up by a padded control message of length len */#ifndef CMSG_SPACE#define CMSG_SPACE(len) (__CMSG_ALIGN(sizeof(struct cmsghdr)) + __CMSG_ALIGN(len))#endif/* given pointer to struct cmsghdr, return pointer to data */#ifndef CMSG_DATA#define CMSG_DATA(cmsg) ((u_char *)(cmsg) + __CMSG_ALIGN(sizeof(struct cmsghdr)))#endif /* CMSG_DATA *//* * RFC 2292 requires to check msg_controllen, in case that the kernel returns * an empty list for some reasons. */#ifndef CMSG_FIRSTHDR#define CMSG_FIRSTHDR(mhdr) \ ((mhdr)->msg_controllen >= sizeof(struct cmsghdr) ? \ (struct cmsghdr *)(mhdr)->msg_control : \ (struct cmsghdr *)NULL)#endif /* CMSG_FIRSTHDR */#ifndef offsetof# define offsetof(type, member) ((size_t) &((type *)0)->member)#endif/* Function replacement / compatibility hacks */#if !defined(HAVE_GETADDRINFO) && (defined(HAVE_OGETADDRINFO) || defined(HAVE_NGETADDRINFO))# define HAVE_GETADDRINFO#endif#ifndef HAVE_GETOPT_OPTRESET# undef getopt# undef opterr# undef optind# undef optopt# undef optreset# undef optarg# define getopt(ac, av, o) BSDgetopt(ac, av, o)# define opterr BSDopterr# define optind BSDoptind# define optopt BSDoptopt# define optreset BSDoptreset# define optarg BSDoptarg#endif/* In older versions of libpam, pam_strerror takes a single argument */#ifdef HAVE_OLD_PAM# define PAM_STRERROR(a,b) pam_strerror((b))#else# define PAM_STRERROR(a,b) pam_strerror((a),(b))#endif#ifdef PAM_SUN_CODEBASE# define PAM_MSG_MEMBER(msg, n, member) ((*(msg))[(n)].member)#else# define PAM_MSG_MEMBER(msg, n, member) ((msg)[(n)]->member)#endif#if defined(BROKEN_GETADDRINFO) && defined(HAVE_GETADDRINFO)# undef HAVE_GETADDRINFO#endif#if defined(BROKEN_GETADDRINFO) && defined(HAVE_FREEADDRINFO)# undef HAVE_FREEADDRINFO#endif#if defined(BROKEN_GETADDRINFO) && defined(HAVE_GAI_STRERROR)# undef HAVE_GAI_STRERROR#endif#if defined(BROKEN_UPDWTMPX) && defined(HAVE_UPDWTMPX)# undef HAVE_UPDWTMPX#endif#if !defined(HAVE_MEMMOVE) && defined(HAVE_BCOPY)# define memmove(s1, s2, n) bcopy((s2), (s1), (n))#endif /* !defined(HAVE_MEMMOVE) && defined(HAVE_BCOPY) */#if defined(HAVE_VHANGUP) && !defined(HAVE_DEV_PTMX)# define USE_VHANGUP#endif /* defined(HAVE_VHANGUP) && !defined(HAVE_DEV_PTMX) */#ifndef GETPGRP_VOID# define getpgrp() getpgrp(0)#endif#ifdef USE_BSM_AUDIT# define SSH_AUDIT_EVENTS# define CUSTOM_SSH_AUDIT_EVENTS#endif/* OPENSSL_free() is Free() in versions before OpenSSL 0.9.6 */#if !defined(OPENSSL_VERSION_NUMBER) || (OPENSSL_VERSION_NUMBER < 0x0090600f)# define OPENSSL_free(x) Free(x)#endif#if !defined(HAVE___func__) && defined(HAVE___FUNCTION__)# define __func__ __FUNCTION__#elif !defined(HAVE___func__)# define __func__ ""#endif#if defined(KRB5) && !defined(HEIMDAL)# define krb5_get_err_text(context,code) error_message(code)#endif#if defined(SKEYCHALLENGE_4ARG)# define _compat_skeychallenge(a,b,c,d) skeychallenge(a,b,c,d)#else# define _compat_skeychallenge(a,b,c,d) skeychallenge(a,b,c)#endif/* Maximum number of file descriptors available */#ifdef HAVE_SYSCONF# define SSH_SYSFDMAX sysconf(_SC_OPEN_MAX)#else# define SSH_SYSFDMAX 10000#endif/* * Define this to use pipes instead of socketpairs for communicating with the * client program. Socketpairs do not seem to work on all systems. * * configure.ac sets this for a few OS's which are known to have problems * but you may need to set it yourself *//* #define USE_PIPES 1 *//** ** login recorder definitions **//* FIXME: put default paths back in */#ifndef UTMP_FILE# ifdef _PATH_UTMP# define UTMP_FILE _PATH_UTMP# else# ifdef CONF_UTMP_FILE# define UTMP_FILE CONF_UTMP_FILE# endif# endif#endif#ifndef WTMP_FILE# ifdef _PATH_WTMP# define WTMP_FILE _PATH_WTMP# else# ifdef CONF_WTMP_FILE# define WTMP_FILE CONF_WTMP_FILE# endif# endif#endif/* pick up the user's location for lastlog if given */#ifndef LASTLOG_FILE# ifdef _PATH_LASTLOG# define LASTLOG_FILE _PATH_LASTLOG# else# ifdef CONF_LASTLOG_FILE# define LASTLOG_FILE CONF_LASTLOG_FILE# endif# endif#endif#if defined(HAVE_SHADOW_H) && !defined(DISABLE_SHADOW)# define USE_SHADOW#endif/* The login() library function in libutil is first choice */#if defined(HAVE_LOGIN) && !defined(DISABLE_LOGIN)# define USE_LOGIN#else/* Simply select your favourite login types. *//* Can't do if-else because some systems use several... <sigh> */# if defined(UTMPX_FILE) && !defined(DISABLE_UTMPX)# define USE_UTMPX# endif# if defined(UTMP_FILE) && !defined(DISABLE_UTMP)# define USE_UTMP# endif# if defined(WTMPX_FILE) && !defined(DISABLE_WTMPX)# define USE_WTMPX# endif# if defined(WTMP_FILE) && !defined(DISABLE_WTMP)# define USE_WTMP# endif#endif#ifndef UT_LINESIZE# define UT_LINESIZE 8#endif/* I hope that the presence of LASTLOG_FILE is enough to detect this */#if defined(LASTLOG_FILE) && !defined(DISABLE_LASTLOG)# define USE_LASTLOG#endif#ifdef HAVE_OSF_SIA# ifdef USE_SHADOW# undef USE_SHADOW# endif# define CUSTOM_SYS_AUTH_PASSWD 1#endif/* HP-UX 11.11 */#ifdef BTMP_FILE# define _PATH_BTMP BTMP_FILE#endif#if defined(USE_BTMP) && defined(_PATH_BTMP)# define CUSTOM_FAILED_LOGIN#endif/** end of login recorder definitions */#endif /* _DEFINES_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -