1--- net-snmp-5.3.1/agent/mibgroup/host/hr_filesys.c	2005-02-28 04:52:58.000000000 -0800
2+++ net-snmp/agent/mibgroup/host/hr_filesys.c	2006-07-05 23:41:47.000000000 -0700
3@@ -39,15 +39,14 @@
4 #include <stdlib.h>
5 #endif
6 
7-#if defined(bsdi4) || defined(freebsd3) || defined(freebsd4) || defined(freebsd5)
8-#if HAVE_GETFSSTAT
9-#if defined(MFSNAMELEN)
10-#define MOUNT_NFS	"nfs"
11+#if defined(bsdi4) || defined(freebsd3) || defined(freebsd4) || defined(freebsd5) || defined(darwin)
12+#if HAVE_GETFSSTAT && defined(MFSNAMELEN)
13 #define MNTTYPE_UFS	"ufs"
14 #define BerkelyFS
15 #define MNTTYPE_FFS	"ffs"
16 #define MNTTYPE_NFS	"nfs"
17 #define MNTTYPE_NFS3	"nfs"
18+#define MNTTYPE_HFS	"hfs"
19 #define MNTTYPE_MFS	"mfs"
20 #define MNTTYPE_MSDOS	"msdos"
21 #define MNTTYPE_LFS	"lfs"
22@@ -65,7 +64,6 @@
23 #define MNTTYPE_CFS	"coda"
24 #define MNTTYPE_NTFS	"ntfs"
25 #endif
26-#endif
27 #endif                          /* freebsd3 */
28 
29 #define HRFS_MONOTONICALLY_INCREASING
30@@ -320,6 +318,9 @@
31         case MOUNT_NFS:
32             fsys_type_id[fsys_type_len - 1] = 14;
33             break;
34+        case MOUNT_HFS:
35+            fsys_type_id[fsys_type_len - 1] = 7;
36+            break;
37         case MOUNT_MFS:
38             fsys_type_id[fsys_type_len - 1] = 8;
39             break;
40@@ -378,12 +379,8 @@
41         if (mnt_type == NULL)
42             fsys_type_id[fsys_type_len - 1] = 2;        /* unknown */
43 #ifdef MNTTYPE_HFS
44-        else if (!strcmp(mnt_type, MNTTYPE_HFS))
45-#ifdef BerkelyFS
46-            fsys_type_id[fsys_type_len - 1] = 3;
47-#else                           /* SysV */
48-            fsys_type_id[fsys_type_len - 1] = 4;
49-#endif
50+        else if (!strncmp(mnt_type, MNTTYPE_HFS, strlen(MNTTYPE_HFS)))
51+            fsys_type_id[fsys_type_len - 1] = 7;
52 #endif
53 #ifdef MNTTYPE_UFS
54         else if (!strcmp(mnt_type, MNTTYPE_UFS))
55@@ -624,12 +621,9 @@
56 int
57 Check_HR_FileSys_NFS (void)
58 {
59-#if HAVE_GETFSSTAT
60-#if defined(MFSNAMELEN)
61-    if (!strcmp(HRFS_entry->HRFS_type, MOUNT_NFS))
62-#else
63-    if (HRFS_entry->HRFS_type == MOUNT_NFS)
64-#endif
65+#if HAVE_GETFSSTAT && !defined(MFSNAMELEN)
66+    if ((HRFS_entry->HRFS_type == MOUNT_NFS) ||
67+        (HRFS_entry->HRFS_type == MOUNT_AFS))
68 #else /* HAVE_GETFSSTAT */
69     if ( HRFS_entry->HRFS_type != NULL && (
70 #if defined(MNTTYPE_NFS)
71@@ -638,22 +632,25 @@
72 	!strcmp( HRFS_entry->HRFS_type, "nfs") ||
73 #endif
74 #if defined(MNTTYPE_NFS3)
75-	    !strcmp( HRFS_entry->HRFS_type, MNTTYPE_NFS3) ||
76+        !strcmp( HRFS_entry->HRFS_type, MNTTYPE_NFS3) ||
77 #endif
78 #if defined(MNTTYPE_SMBFS)
79-	    !strcmp( HRFS_entry->HRFS_type, MNTTYPE_SMBFS) ||
80+        !strcmp( HRFS_entry->HRFS_type, MNTTYPE_SMBFS) ||
81 #endif
82 #if defined(MNTTYPE_LOFS)
83-	    !strcmp( HRFS_entry->HRFS_type, MNTTYPE_LOFS) ||
84+        !strcmp( HRFS_entry->HRFS_type, MNTTYPE_LOFS) ||
85 #endif
86-	    /*
87-	     * MVFS is Rational ClearCase's view file system
88-	     * it is similiar to NFS file systems in that it is mounted
89-	     * locally or remotely from the ClearCase server
90-	     */
91-	    !strcmp( HRFS_entry->HRFS_type, "mvfs")))
92+#if defined(MNTTYPE_AFP)
93+        !strcmp( HRFS_entry->HRFS_type, MNTTYPE_AFP) ||
94+#endif
95+        /*
96+         * MVFS is Rational ClearCase's view file system
97+         * it is similiar to NFS file systems in that it is mounted
98+         * locally or remotely from the ClearCase server
99+         */
100+        !strcmp( HRFS_entry->HRFS_type, "mvfs")))
101 #endif /* HAVE_GETFSSTAT */
102-	return 1;	/* NFS file system */
103+        return 1;	/* NFS file system */
104 
105     return 0;		/* no NFS file system */
106 }
107