add sigar_file_system_ping util
This commit is contained in:
		
							parent
							
								
									2ac98124c8
								
							
						
					
					
						commit
						6e51d8ac7b
					
				@ -458,6 +458,10 @@ sigar_file_system_usage_get(sigar_t *sigar,
 | 
				
			|||||||
                            const char *dirname,
 | 
					                            const char *dirname,
 | 
				
			||||||
                            sigar_file_system_usage_t *fsusage);
 | 
					                            sigar_file_system_usage_t *fsusage);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					SIGAR_DECLARE(int)
 | 
				
			||||||
 | 
					sigar_file_system_ping(sigar_t *sigar,
 | 
				
			||||||
 | 
					                       sigar_file_system_t *fs);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
typedef struct {
 | 
					typedef struct {
 | 
				
			||||||
    enum {
 | 
					    enum {
 | 
				
			||||||
        SIGAR_AF_UNSPEC,
 | 
					        SIGAR_AF_UNSPEC,
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										40
									
								
								src/sigar.c
									
									
									
									
									
								
							
							
						
						
									
										40
									
								
								src/sigar.c
									
									
									
									
									
								
							@ -682,6 +682,46 @@ sigar_file_system_list_destroy(sigar_t *sigar,
 | 
				
			|||||||
    return SIGAR_OK;
 | 
					    return SIGAR_OK;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef NFS_PROGRAM
 | 
				
			||||||
 | 
					#define NFS_PROGRAM 100003
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef NFS_VERSION
 | 
				
			||||||
 | 
					#define NFS_VERSION 2
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					SIGAR_DECLARE(int)
 | 
				
			||||||
 | 
					sigar_file_system_ping(sigar_t *sigar,
 | 
				
			||||||
 | 
					                       sigar_file_system_t *fs)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    int status = SIGAR_OK;
 | 
				
			||||||
 | 
					#ifndef WIN32
 | 
				
			||||||
 | 
					    char *ptr;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if ((fs->type == SIGAR_FSTYPE_NETWORK) &&
 | 
				
			||||||
 | 
					        strEQ(fs->sys_type_name, "nfs") &&
 | 
				
			||||||
 | 
					        (ptr = strchr(fs->dev_name, ':')))
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        *ptr = '\0'; /* "hostname:/mount" -> "hostname" */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        status = sigar_rpc_ping(fs->dev_name,
 | 
				
			||||||
 | 
					                                SIGAR_NETCONN_UDP,
 | 
				
			||||||
 | 
					                                NFS_PROGRAM, NFS_VERSION);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if (SIGAR_LOG_IS_DEBUG(sigar)) {
 | 
				
			||||||
 | 
					            sigar_log_printf(sigar, SIGAR_LOG_DEBUG,
 | 
				
			||||||
 | 
					                             "[fs_ping] %s -> %s: %s",
 | 
				
			||||||
 | 
					                             fs->dir_name, fs->dev_name,
 | 
				
			||||||
 | 
					                             ((status == SIGAR_OK) ?
 | 
				
			||||||
 | 
					                              "OK" : sigar_rpc_strerror(status)));
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        *ptr = ':'; /* "hostname" -> "hostname:/mount" */
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					    return status;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
int sigar_cpu_info_list_create(sigar_cpu_info_list_t *cpu_infos)
 | 
					int sigar_cpu_info_list_create(sigar_cpu_info_list_t *cpu_infos)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    cpu_infos->number = 0;
 | 
					    cpu_infos->number = 0;
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user