Remove obsolete rpc usage
Fix compilation fail with glibc 2.27. The latest version of glibc (2.27 at this time) is compiled without --enable-obsolete-rpc flag.
This commit is contained in:
parent
5478eb4be9
commit
a971b9e8e1
32
src/sigar.c
32
src/sigar.c
|
@ -618,38 +618,6 @@ sigar_file_system_list_destroy(sigar_t *sigar,
|
||||||
#define NFS_VERSION 2
|
#define NFS_VERSION 2
|
||||||
#endif
|
#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;
|
||||||
|
|
|
@ -739,9 +739,6 @@ int sigar_cpu_mhz_from_model(char *model)
|
||||||
|
|
||||||
#if !defined(WIN32) && !defined(NETWARE)
|
#if !defined(WIN32) && !defined(NETWARE)
|
||||||
#include <netdb.h>
|
#include <netdb.h>
|
||||||
#include <rpc/rpc.h>
|
|
||||||
#include <rpc/pmap_prot.h>
|
|
||||||
#include <rpc/pmap_clnt.h>
|
|
||||||
#ifdef SIGAR_HPUX
|
#ifdef SIGAR_HPUX
|
||||||
#include <nfs/nfs.h>
|
#include <nfs/nfs.h>
|
||||||
#endif
|
#endif
|
||||||
|
@ -749,84 +746,10 @@ int sigar_cpu_mhz_from_model(char *model)
|
||||||
#include <arpa/inet.h>
|
#include <arpa/inet.h>
|
||||||
#endif
|
#endif
|
||||||
#if defined(__sun) || defined(SIGAR_HPUX)
|
#if defined(__sun) || defined(SIGAR_HPUX)
|
||||||
#include <rpc/clnt_soc.h>
|
|
||||||
#endif
|
#endif
|
||||||
#if defined(_AIX) || defined(SIGAR_HPUX) || defined(__OpenBSD__) || defined(__NetBSD__)
|
#if defined(_AIX) || defined(SIGAR_HPUX) || defined(__OpenBSD__) || defined(__NetBSD__)
|
||||||
#include <sys/socket.h>
|
#include <sys/socket.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static enum clnt_stat get_sockaddr(struct sockaddr_in *addr, char *host)
|
|
||||||
{
|
|
||||||
register struct hostent *hp;
|
|
||||||
sigar_hostent_t data;
|
|
||||||
|
|
||||||
memset(addr, 0, sizeof(struct sockaddr_in));
|
|
||||||
addr->sin_family = AF_INET;
|
|
||||||
|
|
||||||
if ((addr->sin_addr.s_addr = inet_addr(host)) == -1) {
|
|
||||||
if (!(hp = sigar_gethostbyname(host, &data))) {
|
|
||||||
return RPC_UNKNOWNHOST;
|
|
||||||
}
|
|
||||||
memcpy(&addr->sin_addr, hp->h_addr, hp->h_length);
|
|
||||||
}
|
|
||||||
|
|
||||||
return RPC_SUCCESS;
|
|
||||||
}
|
|
||||||
|
|
||||||
char *sigar_rpc_strerror(int err)
|
|
||||||
{
|
|
||||||
return (char *)clnt_sperrno(err);
|
|
||||||
}
|
|
||||||
|
|
||||||
SIGAR_DECLARE(int) sigar_rpc_ping(char *host,
|
|
||||||
int protocol,
|
|
||||||
unsigned long program,
|
|
||||||
unsigned long version)
|
|
||||||
{
|
|
||||||
CLIENT *client;
|
|
||||||
struct sockaddr_in addr;
|
|
||||||
int sock;
|
|
||||||
struct timeval timeout;
|
|
||||||
unsigned short port = 0;
|
|
||||||
enum clnt_stat rpc_stat;
|
|
||||||
|
|
||||||
rpc_stat = get_sockaddr(&addr, host);
|
|
||||||
if (rpc_stat != RPC_SUCCESS) {
|
|
||||||
return rpc_stat;
|
|
||||||
}
|
|
||||||
|
|
||||||
timeout.tv_sec = 2;
|
|
||||||
timeout.tv_usec = 0;
|
|
||||||
addr.sin_port = htons(port);
|
|
||||||
sock = RPC_ANYSOCK;
|
|
||||||
|
|
||||||
if (protocol == SIGAR_NETCONN_UDP) {
|
|
||||||
client =
|
|
||||||
clntudp_create(&addr, program, version,
|
|
||||||
timeout, &sock);
|
|
||||||
}
|
|
||||||
else if (protocol == SIGAR_NETCONN_TCP) {
|
|
||||||
client =
|
|
||||||
clnttcp_create(&addr, program, version,
|
|
||||||
&sock, 0, 0);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
return RPC_UNKNOWNPROTO;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!client) {
|
|
||||||
return rpc_createerr.cf_stat;
|
|
||||||
}
|
|
||||||
|
|
||||||
timeout.tv_sec = 10;
|
|
||||||
timeout.tv_usec = 0;
|
|
||||||
rpc_stat = clnt_call(client, NULLPROC, (xdrproc_t)xdr_void, NULL,
|
|
||||||
(xdrproc_t)xdr_void, NULL, timeout);
|
|
||||||
|
|
||||||
clnt_destroy(client);
|
|
||||||
|
|
||||||
return rpc_stat;
|
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
int sigar_file2str(const char *fname, char *buffer, int buflen)
|
int sigar_file2str(const char *fname, char *buffer, int buflen)
|
||||||
|
|
Loading…
Reference in New Issue