Fix RPC headers for C++

C++ mangling will cause trouble with variables like __rpc_xdr
in xdr.h so rename this to XDR.
While here add proper C++ guards to RPC headers.

PR:		137443
MFC after:	2 weeks
This commit is contained in:
Pedro F. Giffuni 2012-09-02 21:04:40 +00:00
parent 19a75aff51
commit 370c6ad8ce
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=240060
18 changed files with 149 additions and 23 deletions

View File

@ -51,6 +51,10 @@
#include <sys/cdefs.h> #include <sys/cdefs.h>
#include <sys/socket.h> #include <sys/socket.h>
#ifdef __cplusplus
extern "C" {
#endif
#define MAX_AUTH_BYTES 400 #define MAX_AUTH_BYTES 400
#define MAXNETNAMELEN 255 /* maximum length of network user's name */ #define MAXNETNAMELEN 255 /* maximum length of network user's name */
@ -366,4 +370,8 @@ __END_DECLS
#define RPCSEC_GSS_KRB5I 390004 #define RPCSEC_GSS_KRB5I 390004
#define RPCSEC_GSS_KRB5P 390005 #define RPCSEC_GSS_KRB5P 390005
#ifdef __cplusplus
}
#endif
#endif /* !_RPC_AUTH_H */ #endif /* !_RPC_AUTH_H */

View File

@ -48,6 +48,10 @@
#define _RPC_AUTH_UNIX_H #define _RPC_AUTH_UNIX_H
#include <sys/cdefs.h> #include <sys/cdefs.h>
#ifdef __cplusplus
extern "C" {
#endif
/* The machine name is part of a credential; it may not exceed 255 bytes */ /* The machine name is part of a credential; it may not exceed 255 bytes */
#define MAX_MACHINE_NAME 255 #define MAX_MACHINE_NAME 255
@ -81,4 +85,8 @@ struct short_hand_verf {
struct opaque_auth new_cred; struct opaque_auth new_cred;
}; };
#ifdef __cplusplus
}
#endif
#endif /* !_RPC_AUTH_UNIX_H */ #endif /* !_RPC_AUTH_UNIX_H */

View File

@ -64,6 +64,10 @@
#include <netconfig.h> #include <netconfig.h>
#include <sys/un.h> #include <sys/un.h>
#ifdef __cplusplus
extern "C" {
#endif
/* /*
* Well-known IPV6 RPC broadcast address. * Well-known IPV6 RPC broadcast address.
*/ */
@ -551,6 +555,10 @@ extern enum clnt_stat rpc_broadcast_exp(const rpcprog_t, const rpcvers_t,
const int, const char *); const int, const char *);
__END_DECLS __END_DECLS
#ifdef __cplusplus
}
#endif
/* For backward compatibility */ /* For backward compatibility */
#include <rpc/clnt_soc.h> #include <rpc/clnt_soc.h>

View File

@ -49,6 +49,10 @@
#include <sys/cdefs.h> #include <sys/cdefs.h>
#ifdef __cplusplus
extern "C" {
#endif
#define UDPMSGSIZE 8800 /* rpc imposed limit on udp msg size */ #define UDPMSGSIZE 8800 /* rpc imposed limit on udp msg size */
/* /*
@ -103,4 +107,8 @@ extern CLIENT *clntudp_bufcreate(struct sockaddr_in *, u_long, u_long,
struct timeval, int *, u_int, u_int); struct timeval, int *, u_int, u_int);
__END_DECLS __END_DECLS
#ifdef __cplusplus
}
#endif
#endif /* _RPC_CLNT_SOC_H */ #endif /* _RPC_CLNT_SOC_H */

View File

@ -47,6 +47,10 @@
#include <sys/cdefs.h> #include <sys/cdefs.h>
#include <rpc/rpc.h> #include <rpc/rpc.h>
#ifdef __cplusplus
extern "C" {
#endif
#define DES_MAXDATA 8192 /* max bytes encrypted in one call */ #define DES_MAXDATA 8192 /* max bytes encrypted in one call */
#define DES_DIRMASK (1 << 0) #define DES_DIRMASK (1 << 0)
#define DES_ENCRYPT (0*DES_DIRMASK) /* Encrypt */ #define DES_ENCRYPT (0*DES_DIRMASK) /* Encrypt */
@ -103,4 +107,8 @@ __BEGIN_DECLS
void des_setparity( char *); void des_setparity( char *);
__END_DECLS __END_DECLS
#ifdef __cplusplus
}
#endif
#endif /* _DES_DES_CRYPT_H */ #endif /* _DES_DES_CRYPT_H */

View File

@ -44,6 +44,10 @@
#include <netconfig.h> #include <netconfig.h>
#ifdef __cplusplus
extern "C" {
#endif
#define _RPC_NONE 0 #define _RPC_NONE 0
#define _RPC_NETPATH 1 #define _RPC_NETPATH 1
#define _RPC_VISIBLE 2 #define _RPC_VISIBLE 2
@ -61,4 +65,8 @@ extern struct netconfig *__rpc_getconf(void *);
extern struct netconfig *__rpc_getconfip(const char *); extern struct netconfig *__rpc_getconfip(const char *);
__END_DECLS __END_DECLS
#ifdef __cplusplus
}
#endif
#endif /* !_RPC_NETTYPE_H */ #endif /* !_RPC_NETTYPE_H */

View File

@ -66,6 +66,10 @@
#define _RPC_PMAP_CLNT_H_ #define _RPC_PMAP_CLNT_H_
#include <sys/cdefs.h> #include <sys/cdefs.h>
#ifdef __cplusplus
extern "C" {
#endif
__BEGIN_DECLS __BEGIN_DECLS
extern bool_t pmap_set(u_long, u_long, int, int); extern bool_t pmap_set(u_long, u_long, int, int);
extern bool_t pmap_unset(u_long, u_long); extern bool_t pmap_unset(u_long, u_long);
@ -83,4 +87,8 @@ extern u_short pmap_getport(struct sockaddr_in *,
u_long, u_long, u_int); u_long, u_long, u_int);
__END_DECLS __END_DECLS
#ifdef __cplusplus
}
#endif
#endif /* !_RPC_PMAP_CLNT_H_ */ #endif /* !_RPC_PMAP_CLNT_H_ */

View File

@ -44,6 +44,10 @@
#define _RPC_PMAP_RMT_H #define _RPC_PMAP_RMT_H
#include <sys/cdefs.h> #include <sys/cdefs.h>
#ifdef __cplusplus
extern "C" {
#endif
struct rmtcallargs { struct rmtcallargs {
u_long prog, vers, proc, arglen; u_long prog, vers, proc, arglen;
caddr_t args_ptr; caddr_t args_ptr;
@ -62,4 +66,8 @@ extern bool_t xdr_rmtcall_args(XDR *, struct rmtcallargs *);
extern bool_t xdr_rmtcallres(XDR *, struct rmtcallres *); extern bool_t xdr_rmtcallres(XDR *, struct rmtcallres *);
__END_DECLS __END_DECLS
#ifdef __cplusplus
}
#endif
#endif /* !_RPC_PMAP_RMT_H */ #endif /* !_RPC_PMAP_RMT_H */

View File

@ -42,9 +42,13 @@
#ifndef _RPC_RPCCOM_H #ifndef _RPC_RPCCOM_H
#define _RPC_RPCCOM_H #define _RPC_RPCCOM_H
/* #pragma ident "@(#)rpc_com.h 1.11 93/07/05 SMI" */
#include <sys/cdefs.h> #include <sys/cdefs.h>
/* #pragma ident "@(#)rpc_com.h 1.11 93/07/05 SMI" */ #ifdef __cplusplus
extern "C" {
#endif
/* /*
* The max size of the transport, if the size cannot be determined * The max size of the transport, if the size cannot be determined
@ -80,4 +84,8 @@ char *_get_next_token(char *, int);
__END_DECLS __END_DECLS
#ifdef __cplusplus
}
#endif
#endif /* _RPC_RPCCOM_H */ #endif /* _RPC_RPCCOM_H */

View File

@ -43,6 +43,10 @@
#ifndef _RPC_RPC_MSG_H #ifndef _RPC_RPC_MSG_H
#define _RPC_RPC_MSG_H #define _RPC_RPC_MSG_H
#ifdef __cplusplus
extern "C" {
#endif
#define RPC_MSG_VERSION ((u_int32_t) 2) #define RPC_MSG_VERSION ((u_int32_t) 2)
#define RPC_SERVICE_PORT ((u_short) 2048) #define RPC_SERVICE_PORT ((u_short) 2048)
@ -211,4 +215,8 @@ extern bool_t xdr_rejected_reply(XDR *, struct rejected_reply *);
extern void _seterr_reply(struct rpc_msg *, struct rpc_err *); extern void _seterr_reply(struct rpc_msg *, struct rpc_err *);
__END_DECLS __END_DECLS
#ifdef __cplusplus
}
#endif
#endif /* !_RPC_RPC_MSG_H */ #endif /* !_RPC_RPC_MSG_H */

View File

@ -61,6 +61,10 @@
#include <rpc/types.h> #include <rpc/types.h>
#include <rpc/rpcb_prot.h> #include <rpc/rpcb_prot.h>
#ifdef __cplusplus
extern "C" {
#endif
__BEGIN_DECLS __BEGIN_DECLS
extern bool_t rpcb_set(const rpcprog_t, const rpcvers_t, extern bool_t rpcb_set(const rpcprog_t, const rpcvers_t,
const struct netconfig *, const struct netbuf *); const struct netconfig *, const struct netbuf *);
@ -82,4 +86,8 @@ extern char *rpcb_taddr2uaddr(struct netconfig *, struct netbuf *);
extern struct netbuf *rpcb_uaddr2taddr(struct netconfig *, char *); extern struct netbuf *rpcb_uaddr2taddr(struct netconfig *, char *);
__END_DECLS __END_DECLS
#ifdef __cplusplus
}
#endif
#endif /* !_RPC_RPCB_CLNT_H */ #endif /* !_RPC_RPCB_CLNT_H */

View File

@ -45,6 +45,9 @@
/* #pragma ident "@(#)rpcent.h 1.13 94/04/25 SMI" */ /* #pragma ident "@(#)rpcent.h 1.13 94/04/25 SMI" */
/* @(#)rpcent.h 1.1 88/12/06 SMI */ /* @(#)rpcent.h 1.1 88/12/06 SMI */
#ifdef __cplusplus
extern "C" {
#endif
struct rpcent { struct rpcent {
char *r_name; /* name of server for this rpc program */ char *r_name; /* name of server for this rpc program */
@ -64,4 +67,8 @@ extern void setrpcent(int);
extern void endrpcent(void); extern void endrpcent(void);
__END_DECLS __END_DECLS
#ifdef __cplusplus
}
#endif
#endif /* !_RPC_CENT_H */ #endif /* !_RPC_CENT_H */

View File

@ -29,6 +29,10 @@
#ifndef _RPCSEC_GSS_H #ifndef _RPCSEC_GSS_H
#define _RPCSEC_GSS_H #define _RPCSEC_GSS_H
#ifdef __cplusplus
extern "C" {
#endif
#include <gssapi/gssapi.h> #include <gssapi/gssapi.h>
#ifndef MAX_GSS_MECH #ifndef MAX_GSS_MECH
@ -176,4 +180,8 @@ bool_t __rpc_gss_set_error(int rpc_gss_error, int system_error);
__END_DECLS __END_DECLS
#ifdef __cplusplus
}
#endif
#endif /* !_RPCSEC_GSS_H */ #endif /* !_RPCSEC_GSS_H */

View File

@ -65,6 +65,10 @@
* parameters, struct svc_req * and SVCXPRT *, defined below. * parameters, struct svc_req * and SVCXPRT *, defined below.
*/ */
#ifdef __cplusplus
extern "C" {
#endif
/* /*
* Service control requests * Service control requests
*/ */
@ -467,6 +471,9 @@ int __rpc_get_local_uid(SVCXPRT *_transp, uid_t *_uid);
__END_DECLS __END_DECLS
#ifdef __cplusplus
}
#endif
/* for backward compatibility */ /* for backward compatibility */
#include <rpc/svc_soc.h> #include <rpc/svc_soc.h>

View File

@ -49,6 +49,10 @@
* with TS-RPC * with TS-RPC
*/ */
#ifdef __cplusplus
extern "C" {
#endif
/* /*
* Approved way of getting address of caller * Approved way of getting address of caller
*/ */
@ -113,4 +117,8 @@ __BEGIN_DECLS
extern SVCXPRT *svcfd_create(int, u_int, u_int); extern SVCXPRT *svcfd_create(int, u_int, u_int);
__END_DECLS __END_DECLS
#ifdef __cplusplus
}
#endif
#endif /* !_RPC_SVC_SOC_H */ #endif /* !_RPC_SVC_SOC_H */

View File

@ -43,6 +43,10 @@
#define _RPC_XDR_H #define _RPC_XDR_H
#include <sys/cdefs.h> #include <sys/cdefs.h>
#ifdef __cplusplus
extern "C" {
#endif
/* /*
* XDR provides a conventional way for converting between C data * XDR provides a conventional way for converting between C data
* types and an external bit-string representation. Library supplied * types and an external bit-string representation. Library supplied
@ -97,26 +101,26 @@ enum xdr_op {
* an operations vector for the particular implementation (e.g. see xdr_mem.c), * an operations vector for the particular implementation (e.g. see xdr_mem.c),
* and two private fields for the use of the particular implementation. * and two private fields for the use of the particular implementation.
*/ */
typedef struct __rpc_xdr { typedef struct XDR {
enum xdr_op x_op; /* operation; fast additional param */ enum xdr_op x_op; /* operation; fast additional param */
const struct xdr_ops { const struct xdr_ops {
/* get a long from underlying stream */ /* get a long from underlying stream */
bool_t (*x_getlong)(struct __rpc_xdr *, long *); bool_t (*x_getlong)(struct XDR *, long *);
/* put a long to " */ /* put a long to " */
bool_t (*x_putlong)(struct __rpc_xdr *, const long *); bool_t (*x_putlong)(struct XDR *, const long *);
/* get some bytes from " */ /* get some bytes from " */
bool_t (*x_getbytes)(struct __rpc_xdr *, char *, u_int); bool_t (*x_getbytes)(struct XDR *, char *, u_int);
/* put some bytes to " */ /* put some bytes to " */
bool_t (*x_putbytes)(struct __rpc_xdr *, const char *, u_int); bool_t (*x_putbytes)(struct XDR *, const char *, u_int);
/* returns bytes off from beginning */ /* returns bytes off from beginning */
u_int (*x_getpostn)(struct __rpc_xdr *); u_int (*x_getpostn)(struct XDR *);
/* lets you reposition the stream */ /* lets you reposition the stream */
bool_t (*x_setpostn)(struct __rpc_xdr *, u_int); bool_t (*x_setpostn)(struct XDR *, u_int);
/* buf quick ptr to buffered data */ /* buf quick ptr to buffered data */
int32_t *(*x_inline)(struct __rpc_xdr *, u_int); int32_t *(*x_inline)(struct XDR *, u_int);
/* free privates of this xdr_stream */ /* free privates of this xdr_stream */
void (*x_destroy)(struct __rpc_xdr *); void (*x_destroy)(struct XDR *);
bool_t (*x_control)(struct __rpc_xdr *, int, void *); bool_t (*x_control)(struct XDR *, int, void *);
} *x_ops; } *x_ops;
char * x_public; /* users' data */ char * x_public; /* users' data */
void * x_private; /* pointer to private data */ void * x_private; /* pointer to private data */
@ -366,4 +370,8 @@ extern bool_t xdrrec_eof(XDR *);
extern u_int xdrrec_readbytes(XDR *, caddr_t, u_int); extern u_int xdrrec_readbytes(XDR *, caddr_t, u_int);
__END_DECLS __END_DECLS
#ifdef __cplusplus
}
#endif
#endif /* !_RPC_XDR_H */ #endif /* !_RPC_XDR_H */

View File

@ -114,8 +114,8 @@ extern int __rpc_sockisbound(struct socket*);
extern int bindresvport(struct socket *so, struct sockaddr *sa); extern int bindresvport(struct socket *so, struct sockaddr *sa);
struct xucred; struct xucred;
struct __rpc_xdr; struct XDR;
bool_t xdr_authunix_parms(struct __rpc_xdr *xdrs, uint32_t *time, struct xucred *cred); bool_t xdr_authunix_parms(struct XDR *xdrs, uint32_t *time, struct xucred *cred);
#endif #endif
__END_DECLS __END_DECLS

View File

@ -97,26 +97,26 @@ enum xdr_op {
* an operations vector for the particular implementation (e.g. see xdr_mem.c), * an operations vector for the particular implementation (e.g. see xdr_mem.c),
* and two private fields for the use of the particular implementation. * and two private fields for the use of the particular implementation.
*/ */
typedef struct __rpc_xdr { typedef struct XDR {
enum xdr_op x_op; /* operation; fast additional param */ enum xdr_op x_op; /* operation; fast additional param */
const struct xdr_ops { const struct xdr_ops {
/* get a long from underlying stream */ /* get a long from underlying stream */
bool_t (*x_getlong)(struct __rpc_xdr *, long *); bool_t (*x_getlong)(struct XDR *, long *);
/* put a long to " */ /* put a long to " */
bool_t (*x_putlong)(struct __rpc_xdr *, const long *); bool_t (*x_putlong)(struct XDR *, const long *);
/* get some bytes from " */ /* get some bytes from " */
bool_t (*x_getbytes)(struct __rpc_xdr *, char *, u_int); bool_t (*x_getbytes)(struct XDR *, char *, u_int);
/* put some bytes to " */ /* put some bytes to " */
bool_t (*x_putbytes)(struct __rpc_xdr *, const char *, u_int); bool_t (*x_putbytes)(struct XDR *, const char *, u_int);
/* returns bytes off from beginning */ /* returns bytes off from beginning */
u_int (*x_getpostn)(struct __rpc_xdr *); u_int (*x_getpostn)(struct XDR *);
/* lets you reposition the stream */ /* lets you reposition the stream */
bool_t (*x_setpostn)(struct __rpc_xdr *, u_int); bool_t (*x_setpostn)(struct XDR *, u_int);
/* buf quick ptr to buffered data */ /* buf quick ptr to buffered data */
int32_t *(*x_inline)(struct __rpc_xdr *, u_int); int32_t *(*x_inline)(struct XDR *, u_int);
/* free privates of this xdr_stream */ /* free privates of this xdr_stream */
void (*x_destroy)(struct __rpc_xdr *); void (*x_destroy)(struct XDR *);
bool_t (*x_control)(struct __rpc_xdr *, int, void *); bool_t (*x_control)(struct XDR *, int, void *);
} *x_ops; } *x_ops;
char * x_public; /* users' data */ char * x_public; /* users' data */
void * x_private; /* pointer to private data */ void * x_private; /* pointer to private data */