| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220 |
- #ifndef SNMP_SYSTEM_H
- #define SNMP_SYSTEM_H
- #ifndef NET_SNMP_CONFIG_H
- #error "Please include <net-snmp/net-snmp-config.h> before this file"
- #endif
- #include <stdarg.h> /* va_list */
- #ifdef __cplusplus
- extern "C" {
- #endif
- /* Portions of this file are subject to the following copyrights. See
- * the Net-SNMP's COPYING file for more details and other copyrights
- * that may apply:
- */
- /***********************************************************
- Copyright 1993 by Carnegie Mellon University
- All Rights Reserved
- Permission to use, copy, modify, and distribute this software and its
- documentation for any purpose and without fee is hereby granted,
- provided that the above copyright notice appear in all copies and that
- both that copyright notice and this permission notice appear in
- supporting documentation, and that the name of CMU not be
- used in advertising or publicity pertaining to distribution of the
- software without specific, written prior permission.
- CMU DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
- ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
- CMU BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
- ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
- WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
- ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- SOFTWARE.
- ******************************************************************/
- /*
- * portions Copyright © 2003 Sun Microsystems, Inc. All rights reserved.
- * Use is subject to license terms specified in the COPYING file
- * distributed with the Net-SNMP package.
- */
- struct timeval;
- /*
- * function to create a daemon. Will fork and call setsid().
- *
- * Returns: -1 : fork failed
- * 0 : No errors
- */
- NETSNMP_IMPORT
- int netsnmp_daemonize(int quit_immediately, int stderr_log);
- /*
- * Definitions for the system dependent library file
- *
- * Do not define 'struct direct' when MSVC_PERL is defined because a
- * structure with that name is also defined in the Perl header
- * lib\CORE\dirent.h. Do not declare gettimeofday() either.
- */
- #ifndef MSVC_PERL
- #ifndef HAVE_READDIR
- /*
- * structure of a directory entry
- */
- typedef struct direct {
- long d_ino; /* inode number (not used by MS-DOS) */
- int d_namlen; /* Name length */
- char d_name[257]; /* file name */
- } _DIRECT;
- /*
- * structure for dir operations
- */
- typedef struct _dir_struc {
- char *start; /* Starting position */
- char *curr; /* Current position */
- long size; /* Size of string table */
- long nfiles; /* number if filenames in table */
- struct direct dirstr; /* Directory structure to return */
- } DIR;
- NETSNMP_IMPORT
- DIR *opendir(const char *filename);
- NETSNMP_IMPORT
- struct direct *readdir(DIR * dirp);
- NETSNMP_IMPORT
- int closedir(DIR * dirp);
- #endif /* HAVE_READDIR */
- #ifndef HAVE_GETTIMEOFDAY
- NETSNMP_IMPORT
- int gettimeofday(struct timeval *, struct timezone *tz);
- #endif
- #endif /* MSVC_PERL */
- #if !defined(HAVE_STRNCASECMP) && !defined(strncasecmp)
- NETSNMP_IMPORT
- int strcasecmp(const char *s1, const char *s2);
- NETSNMP_IMPORT
- int strncasecmp(const char *s1, const char *s2, size_t n);
- #endif
- #ifdef WIN32
- NETSNMP_IMPORT
- char *winsock_startup(void);
- NETSNMP_IMPORT
- void winsock_cleanup(void);
- #define SOCK_STARTUP winsock_startup()
- #define SOCK_CLEANUP winsock_cleanup()
- #else /* !WIN32 */
- #define SOCK_STARTUP
- #define SOCK_CLEANUP
- #endif /* WIN32 */
- #include <net-snmp/types.h> /* For definition of in_addr_t */
- #ifdef HAVE_NETINET_IN_H
- #include <netinet/in.h>
- #endif
- /* Simply resolve a hostname and return first IPv4 address.
- * Returns -1 on error */
- NETSNMP_IMPORT
- int netsnmp_gethostbyname_v4(const char* name,
- in_addr_t *addr_out);
- /** netsnmp versions of dns resoloution.. may include DNSSEC validation. */
- struct addrinfo; /* forward declare */
- NETSNMP_IMPORT
- struct hostent *netsnmp_gethostbyname(const char *name);
- NETSNMP_IMPORT
- struct hostent *netsnmp_gethostbyaddr(const void *addr, socklen_t len,
- int type);
- NETSNMP_IMPORT
- int netsnmp_getaddrinfo(const char *name, const char *service,
- const struct addrinfo *hints,
- struct addrinfo **res);
- NETSNMP_IMPORT
- in_addr_t get_myaddr(void);
- NETSNMP_IMPORT
- long get_uptime(void);
- #ifndef HAVE_STRDUP
- char *strdup(const char *);
- #endif
- #ifndef HAVE_SETENV
- NETSNMP_IMPORT
- int setenv(const char *, const char *, int);
- #endif
- NETSNMP_IMPORT
- int calculate_time_diff(const struct timeval *,
- const struct timeval *);
- NETSNMP_IMPORT
- u_int calculate_sectime_diff(const struct timeval *now,
- const struct timeval *then);
- #ifndef HAVE_STRCASESTR
- char *strcasestr(const char *, const char *);
- #endif
- #ifndef HAVE_STRTOL
- long strtol(const char *, char **, int);
- #endif
- #ifndef HAVE_STRTOUL
- unsigned long strtoul(const char *, char **, int);
- #endif
- #ifndef HAVE_STRTOULL
- NETSNMP_IMPORT uint64_t strtoull(const char *, char **, int);
- #endif
- #ifndef HAVE_STRTOK_R
- NETSNMP_IMPORT
- char *strtok_r(char *, const char *, char **);
- #endif
- #ifndef HAVE_SNPRINTF
- int snprintf(char *, size_t, const char *, ...);
- #endif
- #ifndef HAVE_ASPRINTF
- NETSNMP_IMPORT
- int vasprintf(char **strp, const char *fmt, va_list ap);
- NETSNMP_IMPORT
- int asprintf(char **strp, const char *fmt, ...);
- #endif
- NETSNMP_IMPORT
- int mkdirhier(const char *pathname, mode_t mode,
- int skiplast);
- NETSNMP_IMPORT
- const char *netsnmp_mktemp(void);
- #ifndef HAVE_STRLCPY
- NETSNMP_IMPORT
- size_t strlcpy(char *, const char *, size_t);
- #endif
- #ifndef HAVE_STRLCAT
- NETSNMP_IMPORT
- size_t strlcat(char *, const char *, size_t);
- #endif
- int netsnmp_os_prematch(const char *ospmname,
- const char *ospmrelprefix);
- int netsnmp_os_kernel_width(void);
- NETSNMP_IMPORT
- int netsnmp_str_to_uid(const char *useroruid);
- NETSNMP_IMPORT
- int netsnmp_str_to_gid(const char *grouporgid);
- #ifdef __cplusplus
- }
- #endif
- #endif /* SNMP_SYSTEM_H */
|