u_char * var_hrfilesys(struct variable *vp, oid * name, size_t * length, int exact, size_t * var_len, WriteMethod ** write_method) { int fsys_idx; static char string[1024]; char *mnt_type; fsys_idx = header_hrfilesys(vp, name, length, exact, var_len, write_method); if (fsys_idx == MATCH_FAILED) return NULL; switch (vp->magic) { case HRFSYS_INDEX: long_return = fsys_idx; return (u_char *) & long_return; case HRFSYS_MOUNT: snprintf(string, sizeof(string), HRFS_entry->HRFS_mount); string[ sizeof(string)-1 ] = 0; *var_len = strlen(string); return (u_char *) string; case HRFSYS_RMOUNT: if (Check_HR_FileSys_NFS()) { snprintf(string, sizeof(string), HRFS_entry->HRFS_name); string[ sizeof(string)-1 ] = 0; } else string[0] = '\0'; *var_len = strlen(string); return (u_char *) string; case HRFSYS_TYPE: if (Check_HR_FileSys_NFS()) fsys_type_id[fsys_type_len - 1] = 14; else { /* * Not sufficient to identity the file * type precisely, but it's a start. */ #if HAVE_GETFSSTAT && !defined(MFSNAMELEN) switch (HRFS_entry->HRFS_type) { case MOUNT_UFS: fsys_type_id[fsys_type_len - 1] = 3; break; case MOUNT_NFS: fsys_type_id[fsys_type_len - 1] = 14; break; case MOUNT_HFS: fsys_type_id[fsys_type_len - 1] = 7; break; case MOUNT_MFS: fsys_type_id[fsys_type_len - 1] = 8; break; case MOUNT_MSDOS: fsys_type_id[fsys_type_len - 1] = 5; break; case MOUNT_LFS: fsys_type_id[fsys_type_len - 1] = 1; break; case MOUNT_LOFS: fsys_type_id[fsys_type_len - 1] = 1; break; case MOUNT_FDESC: fsys_type_id[fsys_type_len - 1] = 1; break; case MOUNT_PORTAL: fsys_type_id[fsys_type_len - 1] = 1; break; case MOUNT_NULL: fsys_type_id[fsys_type_len - 1] = 1; break; case MOUNT_UMAP: fsys_type_id[fsys_type_len - 1] = 1; break; case MOUNT_KERNFS: fsys_type_id[fsys_type_len - 1] = 1; break; case MOUNT_PROCFS: fsys_type_id[fsys_type_len - 1] = 1; break; case MOUNT_AFS: fsys_type_id[fsys_type_len - 1] = 16; break; case MOUNT_CD9660: fsys_type_id[fsys_type_len - 1] = 12; break; case MOUNT_UNION: fsys_type_id[fsys_type_len - 1] = 1; break; case MOUNT_DEVFS: fsys_type_id[fsys_type_len - 1] = 1; break; #ifdef MOUNT_EXT2FS case MOUNT_EXT2FS: fsys_type_id[fsys_type_len - 1] = 23; break; #endif #ifdef MOUNT_TFS case MOUNT_TFS: fsys_type_id[fsys_type_len - 1] = 15; break; #endif } #elif defined(aix4) || defined(aix5) || defined(aix6) switch (HRFS_entry->HRFS_type) { case MNT_AIX: case MNT_JFS: fsys_type_id[fsys_type_len - 1] = 3; break; case MNT_CDROM: fsys_type_id[fsys_type_len - 1] = 12; break; #ifdef MNT_NAMEFS case MNT_NAMEFS: #endif #ifdef MNT_PROCFS case MNT_PROCFS: #endif case MNT_SFS: case MNT_CACHEFS: fsys_type_id[fsys_type_len - 1] = 1; break; case MNT_NFS: case MNT_NFS3: case MNT_AUTOFS: fsys_type_id[fsys_type_len - 1] = 14; break; } #else mnt_type = HRFS_entry->HRFS_type; if (mnt_type == NULL) fsys_type_id[fsys_type_len - 1] = 2; /* unknown */ #ifdef MNTTYPE_HFS else if (!strcmp(mnt_type, MNTTYPE_HFS)) fsys_type_id[fsys_type_len - 1] = 7; #endif #ifdef MNTTYPE_UFS else if (!strcmp(mnt_type, MNTTYPE_UFS)) #if (defined(BerkelyFS) && !defined(MNTTYPE_HFS)) || defined(solaris2) fsys_type_id[fsys_type_len - 1] = 3; #else /* SysV */ fsys_type_id[fsys_type_len - 1] = 4; /* or 3? XXX */ #endif #endif #ifdef MNTTYPE_SYSV else if (!strcmp(mnt_type, MNTTYPE_SYSV)) fsys_type_id[fsys_type_len - 1] = 4; #endif #ifdef MNTTYPE_PC else if (!strcmp(mnt_type, MNTTYPE_PC)) fsys_type_id[fsys_type_len - 1] = 5; #endif #ifdef MNTTYPE_MSDOS else if (!strcmp(mnt_type, MNTTYPE_MSDOS)) fsys_type_id[fsys_type_len - 1] = 5; #endif #ifdef MNTTYPE_FAT32 else if (!strcmp(mnt_type, MNTTYPE_FAT32)) fsys_type_id[fsys_type_len - 1] = 22; #endif #ifdef MNTTYPE_CDFS else if (!strcmp(mnt_type, MNTTYPE_CDFS)) #ifdef RockRidge fsys_type_id[fsys_type_len - 1] = 13; #else /* ISO 9660 */ fsys_type_id[fsys_type_len - 1] = 12; #endif #endif #ifdef MNTTYPE_HSFS else if (!strcmp(mnt_type, MNTTYPE_HSFS)) fsys_type_id[fsys_type_len - 1] = 13; #endif #ifdef MNTTYPE_ISO9660 else if (!strcmp(mnt_type, MNTTYPE_ISO9660)) fsys_type_id[fsys_type_len - 1] = 12; #endif #ifdef MNTTYPE_CD9660 else if (!strcmp(mnt_type, MNTTYPE_CD9660)) fsys_type_id[fsys_type_len - 1] = 12; #endif #ifdef MNTTYPE_SMBFS else if (!strcmp(mnt_type, MNTTYPE_SMBFS)) fsys_type_id[fsys_type_len - 1] = 14; #endif #ifdef MNTTYPE_NFS else if (!strcmp(mnt_type, MNTTYPE_NFS)) fsys_type_id[fsys_type_len - 1] = 14; #endif #ifdef MNTTYPE_NFS3 else if (!strcmp(mnt_type, MNTTYPE_NFS3)) fsys_type_id[fsys_type_len - 1] = 14; #endif #ifdef MNTTYPE_NFS4 else if (!strcmp(mnt_type, MNTTYPE_NFS4)) fsys_type_id[fsys_type_len - 1] = 14; #endif #ifdef MNTTYPE_MFS else if (!strcmp(mnt_type, MNTTYPE_MFS)) fsys_type_id[fsys_type_len - 1] = 8; #endif #ifdef MNTTYPE_EXT2FS else if (!strcmp(mnt_type, MNTTYPE_EXT2FS)) fsys_type_id[fsys_type_len - 1] = 23; #endif #ifdef MNTTYPE_EXT3FS else if (!strcmp(mnt_type, MNTTYPE_EXT3FS)) fsys_type_id[fsys_type_len - 1] = 23; #endif #ifdef MNTTYPE_NTFS else if (!strcmp(mnt_type, MNTTYPE_NTFS)) fsys_type_id[fsys_type_len - 1] = 9; #endif else fsys_type_id[fsys_type_len - 1] = 1; /* Other */ #endif /* HAVE_GETFSSTAT */ }
u_char * var_hrfilesys(struct variable *vp, oid *name, size_t *length, int exact, size_t *var_len, WriteMethod **write_method) { int fsys_idx; static char string[100]; char *mnt_type; fsys_idx = header_hrfilesys(vp, name, length, exact, var_len, write_method); if ( fsys_idx == MATCH_FAILED ) return NULL; switch (vp->magic){ case HRFSYS_INDEX: long_return = fsys_idx; return (u_char *)&long_return; case HRFSYS_MOUNT: sprintf(string, HRFS_entry->HRFS_mount); *var_len = strlen(string); return (u_char *) string; case HRFSYS_RMOUNT: #if HAVE_GETFSSTAT #if defined(MFSNAMELEN) if (!strcmp(HRFS_entry->HRFS_type, MOUNT_NFS)) #else if (HRFS_entry->HRFS_type == MOUNT_NFS) #endif #else if (!strcmp( HRFS_entry->HRFS_type, MNTTYPE_NFS)) #endif sprintf(string, HRFS_entry->HRFS_name); else string[0] = '\0'; *var_len = strlen(string); return (u_char *) string; case HRFSYS_TYPE: /* * Not sufficient to identity the file * type precisely, but it's a start. */ #if HAVE_GETFSSTAT && !defined(MFSNAMELEN) switch (HRFS_entry->HRFS_type) { case MOUNT_UFS: fsys_type_id[fsys_type_len-1] = 3; break; case MOUNT_NFS: fsys_type_id[fsys_type_len-1] = 14; break; case MOUNT_MFS: fsys_type_id[fsys_type_len-1] = 8; break; case MOUNT_MSDOS: fsys_type_id[fsys_type_len-1] = 5; break; case MOUNT_LFS: fsys_type_id[fsys_type_len-1] = 1; break; case MOUNT_LOFS: fsys_type_id[fsys_type_len-1] = 1; break; case MOUNT_FDESC: fsys_type_id[fsys_type_len-1] = 1; break; case MOUNT_PORTAL: fsys_type_id[fsys_type_len-1] = 1; break; case MOUNT_NULL: fsys_type_id[fsys_type_len-1] = 1; break; case MOUNT_UMAP: fsys_type_id[fsys_type_len-1] = 1; break; case MOUNT_KERNFS: fsys_type_id[fsys_type_len-1] = 1; break; case MOUNT_PROCFS: fsys_type_id[fsys_type_len-1] = 1; break; case MOUNT_AFS: fsys_type_id[fsys_type_len-1] = 16; break; case MOUNT_CD9660: fsys_type_id[fsys_type_len-1] = 12; break; case MOUNT_UNION: fsys_type_id[fsys_type_len-1] = 1; break; case MOUNT_DEVFS: fsys_type_id[fsys_type_len-1] = 1; break; #ifdef MOUNT_EXT2FS case MOUNT_EXT2FS: fsys_type_id[fsys_type_len-1] = 23; break; #endif #ifdef MOUNT_TFS case MOUNT_TFS: fsys_type_id[fsys_type_len-1] = 15; break; #endif } #else mnt_type = HRFS_entry->HRFS_type; if ( mnt_type == NULL ) fsys_type_id[fsys_type_len-1] = 2; /* unknown */ #ifdef MNTTYPE_HFS else if (!strcmp( mnt_type, MNTTYPE_HFS)) #ifdef BerkelyFS fsys_type_id[fsys_type_len-1] = 3; #else /* SysV */ fsys_type_id[fsys_type_len-1] = 4; #endif #endif #ifdef MNTTYPE_UFS else if (!strcmp( mnt_type, MNTTYPE_UFS)) #if defined(BerkelyFS) && !defined(MNTTYPE_HFS) fsys_type_id[fsys_type_len-1] = 3; #else /* SysV */ fsys_type_id[fsys_type_len-1] = 4; /* or 3? XXX */ #endif #endif #ifdef MNTTYPE_SYSV else if (!strcmp( mnt_type, MNTTYPE_SYSV))