Index: agent/mibgroup/mibII/tcp.c --- agent/mibgroup/mibII/tcp.c.orig 2014-12-08 21:23:22.000000000 +0100 +++ agent/mibgroup/mibII/tcp.c 2014-12-09 18:18:18.070721565 +0100 @@ -88,7 +88,7 @@ * But only define it under FreeBSD, since it * breaks other systems (notable AIX) */ -#ifdef freebsd4 +#if defined (freebsd4) || defined (__NetBSD__) int hz = 1000; #endif Index: agent/mibgroup/mibII/tcpTable.c --- agent/mibgroup/mibII/tcpTable.c.orig 2014-12-08 21:23:22.000000000 +0100 +++ agent/mibgroup/mibII/tcpTable.c 2014-12-09 18:18:18.070721565 +0100 @@ -110,6 +110,11 @@ #define TCPTABLE_REMOTEPORT pcb.inp_fport #define TCPTABLE_IS_LINKED_LIST +#if defined(__FreeBSD__) +#undef INP_NEXT_SYMBOL +#define INP_NEXT_SYMBOL inp_next +#endif + #endif /* linux */ #endif /* WIN32 cygwin */ #endif /* solaris2 */ @@ -923,12 +928,17 @@ nnew = SNMP_MALLOC_TYPEDEF(netsnmp_inpcb); if (!nnew) break; +#if defined(__FreeBSD__) + memcpy(&(nnew->pcb), &(((struct xinpcb *) xig)->xi_inp), + sizeof(struct inpcb)); +#else nnew->state = StateMap[((NS_ELEM *) xig)->xt_tp.t_state]; if (nnew->state == 5 /* established */ || nnew->state == 8 /* closeWait */ ) tcp_estab++; memcpy(&(nnew->pcb), &(((NS_ELEM *) xig)->xt_inp), sizeof(struct inpcb)); +#endif if (nnew->pcb.inp_vflag & INP_IPV6) free(nnew); Index: agent/mibgroup/ucd-snmp/diskio.c --- agent/mibgroup/ucd-snmp/diskio.c.orig 2014-12-08 21:23:22.000000000 +0100 +++ agent/mibgroup/ucd-snmp/diskio.c 2014-12-09 18:18:18.070721565 +0100 @@ -942,6 +942,20 @@ case DISKIO_DEVICE: *var_len = strlen(stat->dinfo->devices[indx].device_name); return (u_char *) stat->dinfo->devices[indx].device_name; +#if defined(freebsd5) && (__FreeBSD_version >= 500107) + case DISKIO_NREAD: + long_ret = (signed long) stat->dinfo->devices[indx].bytes[DEVSTAT_READ]; + return (u_char *) & long_ret; + case DISKIO_NWRITTEN: + long_ret = (signed long) stat->dinfo->devices[indx].bytes[DEVSTAT_WRITE]; + return (u_char *) & long_ret; + case DISKIO_READS: + long_ret = (signed long) stat->dinfo->devices[indx].operations[DEVSTAT_READ]; + return (u_char *) & long_ret; + case DISKIO_WRITES: + long_ret = (signed long) stat->dinfo->devices[indx].operations[DEVSTAT_WRITE]; + return (u_char *) & long_ret; +#else case DISKIO_NREAD: #if HAVE_DEVSTAT_GETDEVS long_ret = (signed long) stat->dinfo->devices[indx].bytes[DEVSTAT_READ]; @@ -999,6 +1013,7 @@ case DISKIO_LA15: long_ret = devloads[indx].la15; return (u_char *) & long_ret; +#endif default: ERROR_MSG("diskio.c: don't know how to handle this request."); Index: agent/mibgroup/ucd-snmp/memory_solaris2.c --- agent/mibgroup/ucd-snmp/memory_solaris2.c.orig 2014-12-08 21:23:22.000000000 +0100 +++ agent/mibgroup/ucd-snmp/memory_solaris2.c 2014-12-09 18:18:18.070721565 +0100 @@ -1,3 +1,4 @@ +#undef _FILE_OFFSET_BITS /* swapctl doesn't support 64bit off_t */ #include /* local SNMP configuration details */ #if HAVE_STRING_H #include Index: agent/mibgroup/ucd-snmp/proc.c --- agent/mibgroup/ucd-snmp/proc.c.orig 2014-12-08 21:23:22.000000000 +0100 +++ agent/mibgroup/ucd-snmp/proc.c 2014-12-09 18:18:18.081282290 +0100 @@ -1,3 +1,6 @@ +#ifdef solaris2 +#undef _FILE_OFFSET_BITS /* solaris procfs doesn't support 64bit off_t */ +#endif #include #include Index: agent/mibgroup/util_funcs.c --- agent/mibgroup/util_funcs.c.orig 2014-12-08 21:23:22.000000000 +0100 +++ agent/mibgroup/util_funcs.c 2014-12-09 18:18:18.081282290 +0100 @@ -455,6 +455,9 @@ int fd[2][2], i, cnt; char ctmp[STRMAX], *cptr1, *cptr2, argvs[STRMAX], **argv, **aptr; + + *pid = -1; /* open_persist_pipe ignores return code but checks *pid */ + /* * Setup our pipes */ Index: agent/snmpd.c --- agent/snmpd.c.orig 2014-12-08 21:23:22.000000000 +0100 +++ agent/snmpd.c 2014-12-09 18:18:18.081282290 +0100 @@ -441,7 +441,7 @@ int dont_fork = 0, do_help = 0; int log_set = 0; int agent_mode = -1; - char *pid_file = NULL; + char *pid_file = "@l_prefix@/var/snmp/snmpd.pid"; char option_compatability[] = "-Le"; #if HAVE_GETPID int fd; Index: apps/snmptrapd.c --- apps/snmptrapd.c.orig 2014-12-08 21:23:22.000000000 +0100 +++ apps/snmptrapd.c 2014-12-09 18:18:18.081282290 +0100 @@ -723,6 +723,7 @@ */ #if HAVE_GETPID strcat(options, "p:"); + parse_config_pidFile(NULL, "@l_prefix@/var/snmp/snmptrapd.pid"); #endif #ifndef NETSNMP_FEATURE_REMOVE_LOGGING_SYSLOG Index: include/net-snmp/library/system.h --- include/net-snmp/library/system.h.orig 2014-12-08 21:23:22.000000000 +0100 +++ include/net-snmp/library/system.h 2014-12-09 18:18:18.081282290 +0100 @@ -155,7 +155,8 @@ #endif #ifndef HAVE_SETENV NETSNMP_IMPORT - int setenv(const char *, const char *, int); + int __netsnmp_setenv(const char *, const char *, int); +# define setenv(a,b,c) __netsnmp_setenv(a,b,c) #endif NETSNMP_IMPORT Index: snmplib/system.c --- snmplib/system.c.orig 2014-12-08 21:23:22.000000000 +0100 +++ snmplib/system.c 2014-12-09 18:18:18.081282290 +0100 @@ -1068,7 +1068,7 @@ #ifndef HAVE_SETENV int -setenv(const char *name, const char *value, int overwrite) +__netsnmp_setenv(const char *name, const char *value, int overwrite) { char *cp; int ret;