svn commit: r240060 - in head: include/rpc sys/rpc
Yuri Pankov
yuri.pankov at gmail.com
Sun Sep 2 21:16:11 UTC 2012
On Sun, 2 Sep 2012 21:04:40 +0000 (UTC), Pedro F. Giffuni wrote:
> Author: pfg
> Date: Sun Sep 2 21:04:40 2012
> New Revision: 240060
> URL: http://svn.freebsd.org/changeset/base/240060
>
> Log:
> 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
>
> Modified:
> head/include/rpc/auth.h
> head/include/rpc/auth_unix.h
> head/include/rpc/clnt.h
> head/include/rpc/clnt_soc.h
> head/include/rpc/des_crypt.h
> head/include/rpc/nettype.h
> head/include/rpc/pmap_clnt.h
> head/include/rpc/pmap_rmt.h
> head/include/rpc/rpc_com.h
> head/include/rpc/rpc_msg.h
> head/include/rpc/rpcb_clnt.h
> head/include/rpc/rpcent.h
> head/include/rpc/rpcsec_gss.h
> head/include/rpc/svc.h
> head/include/rpc/svc_soc.h
> head/include/rpc/xdr.h
> head/sys/rpc/rpc_com.h
> head/sys/rpc/xdr.h
>
> Modified: head/include/rpc/auth.h
> ==============================================================================
> --- head/include/rpc/auth.h Sun Sep 2 18:54:51 2012 (r240059)
> +++ head/include/rpc/auth.h Sun Sep 2 21:04:40 2012 (r240060)
> @@ -51,6 +51,10 @@
> #include <sys/cdefs.h>
> #include <sys/socket.h>
>
> +#ifdef __cplusplus
> +extern "C" {
> +#endif
> +
> #define MAX_AUTH_BYTES 400
> #define MAXNETNAMELEN 255 /* maximum length of network user's name */
>
> @@ -366,4 +370,8 @@ __END_DECLS
> #define RPCSEC_GSS_KRB5I 390004
> #define RPCSEC_GSS_KRB5P 390005
>
> +#ifdef __cplusplus
> +}
> +#endif
> +
> #endif /* !_RPC_AUTH_H */
>
> Modified: head/include/rpc/auth_unix.h
> ==============================================================================
> --- head/include/rpc/auth_unix.h Sun Sep 2 18:54:51 2012 (r240059)
> +++ head/include/rpc/auth_unix.h Sun Sep 2 21:04:40 2012 (r240060)
> @@ -48,6 +48,10 @@
> #define _RPC_AUTH_UNIX_H
> #include <sys/cdefs.h>
>
> +#ifdef __cplusplus
> +extern "C" {
> +#endif
> +
> /* The machine name is part of a credential; it may not exceed 255 bytes */
> #define MAX_MACHINE_NAME 255
>
> @@ -81,4 +85,8 @@ struct short_hand_verf {
> struct opaque_auth new_cred;
> };
>
> +#ifdef __cplusplus
> +}
> +#endif
> +
> #endif /* !_RPC_AUTH_UNIX_H */
>
> Modified: head/include/rpc/clnt.h
> ==============================================================================
> --- head/include/rpc/clnt.h Sun Sep 2 18:54:51 2012 (r240059)
> +++ head/include/rpc/clnt.h Sun Sep 2 21:04:40 2012 (r240060)
> @@ -64,6 +64,10 @@
> #include <netconfig.h>
> #include <sys/un.h>
>
> +#ifdef __cplusplus
> +extern "C" {
> +#endif
> +
> /*
> * Well-known IPV6 RPC broadcast address.
> */
> @@ -551,6 +555,10 @@ extern enum clnt_stat rpc_broadcast_exp(
> const int, const char *);
> __END_DECLS
>
> +#ifdef __cplusplus
> +}
> +#endif
> +
> /* For backward compatibility */
> #include <rpc/clnt_soc.h>
>
>
> Modified: head/include/rpc/clnt_soc.h
> ==============================================================================
> --- head/include/rpc/clnt_soc.h Sun Sep 2 18:54:51 2012 (r240059)
> +++ head/include/rpc/clnt_soc.h Sun Sep 2 21:04:40 2012 (r240060)
> @@ -49,6 +49,10 @@
>
> #include <sys/cdefs.h>
>
> +#ifdef __cplusplus
> +extern "C" {
> +#endif
> +
> #define UDPMSGSIZE 8800 /* rpc imposed limit on udp msg size */
>
> /*
> @@ -103,4 +107,8 @@ extern CLIENT *clntudp_bufcreate(struct
> struct timeval, int *, u_int, u_int);
> __END_DECLS
>
> +#ifdef __cplusplus
> +}
> +#endif
> +
> #endif /* _RPC_CLNT_SOC_H */
>
> Modified: head/include/rpc/des_crypt.h
> ==============================================================================
> --- head/include/rpc/des_crypt.h Sun Sep 2 18:54:51 2012 (r240059)
> +++ head/include/rpc/des_crypt.h Sun Sep 2 21:04:40 2012 (r240060)
> @@ -47,6 +47,10 @@
> #include <sys/cdefs.h>
> #include <rpc/rpc.h>
>
> +#ifdef __cplusplus
> +extern "C" {
> +#endif
> +
> #define DES_MAXDATA 8192 /* max bytes encrypted in one call */
> #define DES_DIRMASK (1 << 0)
> #define DES_ENCRYPT (0*DES_DIRMASK) /* Encrypt */
> @@ -103,4 +107,8 @@ __BEGIN_DECLS
> void des_setparity( char *);
> __END_DECLS
>
> +#ifdef __cplusplus
> +}
> +#endif
> +
> #endif /* _DES_DES_CRYPT_H */
>
> Modified: head/include/rpc/nettype.h
> ==============================================================================
> --- head/include/rpc/nettype.h Sun Sep 2 18:54:51 2012 (r240059)
> +++ head/include/rpc/nettype.h Sun Sep 2 21:04:40 2012 (r240060)
> @@ -44,6 +44,10 @@
>
> #include <netconfig.h>
>
> +#ifdef __cplusplus
> +extern "C" {
> +#endif
> +
> #define _RPC_NONE 0
> #define _RPC_NETPATH 1
> #define _RPC_VISIBLE 2
> @@ -61,4 +65,8 @@ extern struct netconfig *__rpc_getconf(v
> extern struct netconfig *__rpc_getconfip(const char *);
> __END_DECLS
>
> +#ifdef __cplusplus
> +}
> +#endif
> +
> #endif /* !_RPC_NETTYPE_H */
>
> Modified: head/include/rpc/pmap_clnt.h
> ==============================================================================
> --- head/include/rpc/pmap_clnt.h Sun Sep 2 18:54:51 2012 (r240059)
> +++ head/include/rpc/pmap_clnt.h Sun Sep 2 21:04:40 2012 (r240060)
> @@ -66,6 +66,10 @@
> #define _RPC_PMAP_CLNT_H_
> #include <sys/cdefs.h>
>
> +#ifdef __cplusplus
> +extern "C" {
> +#endif
> +
> __BEGIN_DECLS
> extern bool_t pmap_set(u_long, u_long, int, int);
> extern bool_t pmap_unset(u_long, u_long);
> @@ -83,4 +87,8 @@ extern u_short pmap_getport(struct sock
> u_long, u_long, u_int);
> __END_DECLS
>
> +#ifdef __cplusplus
> +}
> +#endif
> +
> #endif /* !_RPC_PMAP_CLNT_H_ */
>
> Modified: head/include/rpc/pmap_rmt.h
> ==============================================================================
> --- head/include/rpc/pmap_rmt.h Sun Sep 2 18:54:51 2012 (r240059)
> +++ head/include/rpc/pmap_rmt.h Sun Sep 2 21:04:40 2012 (r240060)
> @@ -44,6 +44,10 @@
> #define _RPC_PMAP_RMT_H
> #include <sys/cdefs.h>
>
> +#ifdef __cplusplus
> +extern "C" {
> +#endif
> +
> struct rmtcallargs {
> u_long prog, vers, proc, arglen;
> caddr_t args_ptr;
> @@ -62,4 +66,8 @@ extern bool_t xdr_rmtcall_args(XDR *, st
> extern bool_t xdr_rmtcallres(XDR *, struct rmtcallres *);
> __END_DECLS
>
> +#ifdef __cplusplus
> +}
> +#endif
> +
> #endif /* !_RPC_PMAP_RMT_H */
>
> Modified: head/include/rpc/rpc_com.h
> ==============================================================================
> --- head/include/rpc/rpc_com.h Sun Sep 2 18:54:51 2012 (r240059)
> +++ head/include/rpc/rpc_com.h Sun Sep 2 21:04:40 2012 (r240060)
> @@ -42,9 +42,13 @@
> #ifndef _RPC_RPCCOM_H
> #define _RPC_RPCCOM_H
>
> +/* #pragma ident "@(#)rpc_com.h 1.11 93/07/05 SMI" */
> +
> #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
> @@ -80,4 +84,8 @@ char *_get_next_token(char *, int);
>
> __END_DECLS
>
> +#ifdef __cplusplus
> +}
> +#endif
> +
> #endif /* _RPC_RPCCOM_H */
>
> Modified: head/include/rpc/rpc_msg.h
> ==============================================================================
> --- head/include/rpc/rpc_msg.h Sun Sep 2 18:54:51 2012 (r240059)
> +++ head/include/rpc/rpc_msg.h Sun Sep 2 21:04:40 2012 (r240060)
> @@ -43,6 +43,10 @@
> #ifndef _RPC_RPC_MSG_H
> #define _RPC_RPC_MSG_H
>
> +#ifdef __cplusplus
> +extern "C" {
> +#endif
> +
> #define RPC_MSG_VERSION ((u_int32_t) 2)
> #define RPC_SERVICE_PORT ((u_short) 2048)
>
> @@ -211,4 +215,8 @@ extern bool_t xdr_rejected_reply(XDR *,
> extern void _seterr_reply(struct rpc_msg *, struct rpc_err *);
> __END_DECLS
>
> +#ifdef __cplusplus
> +}
> +#endif
> +
> #endif /* !_RPC_RPC_MSG_H */
>
> Modified: head/include/rpc/rpcb_clnt.h
> ==============================================================================
> --- head/include/rpc/rpcb_clnt.h Sun Sep 2 18:54:51 2012 (r240059)
> +++ head/include/rpc/rpcb_clnt.h Sun Sep 2 21:04:40 2012 (r240060)
> @@ -61,6 +61,10 @@
> #include <rpc/types.h>
> #include <rpc/rpcb_prot.h>
>
> +#ifdef __cplusplus
> +extern "C" {
> +#endif
> +
> __BEGIN_DECLS
> extern bool_t rpcb_set(const rpcprog_t, const rpcvers_t,
> const struct netconfig *, const struct netbuf *);
> @@ -82,4 +86,8 @@ extern char *rpcb_taddr2uaddr(struct net
> extern struct netbuf *rpcb_uaddr2taddr(struct netconfig *, char *);
> __END_DECLS
>
> +#ifdef __cplusplus
> +}
> +#endif
> +
> #endif /* !_RPC_RPCB_CLNT_H */
>
> Modified: head/include/rpc/rpcent.h
> ==============================================================================
> --- head/include/rpc/rpcent.h Sun Sep 2 18:54:51 2012 (r240059)
> +++ head/include/rpc/rpcent.h Sun Sep 2 21:04:40 2012 (r240060)
> @@ -45,6 +45,9 @@
> /* #pragma ident "@(#)rpcent.h 1.13 94/04/25 SMI" */
> /* @(#)rpcent.h 1.1 88/12/06 SMI */
>
> +#ifdef __cplusplus
> +extern "C" {
> +#endif
>
> struct rpcent {
> char *r_name; /* name of server for this rpc program */
> @@ -64,4 +67,8 @@ extern void setrpcent(int);
> extern void endrpcent(void);
> __END_DECLS
>
> +#ifdef __cplusplus
> +}
> +#endif
> +
> #endif /* !_RPC_CENT_H */
>
> Modified: head/include/rpc/rpcsec_gss.h
> ==============================================================================
> --- head/include/rpc/rpcsec_gss.h Sun Sep 2 18:54:51 2012 (r240059)
> +++ head/include/rpc/rpcsec_gss.h Sun Sep 2 21:04:40 2012 (r240060)
> @@ -29,6 +29,10 @@
> #ifndef _RPCSEC_GSS_H
> #define _RPCSEC_GSS_H
>
> +#ifdef __cplusplus
> +extern "C" {
> +#endif
> +
> #include <gssapi/gssapi.h>
>
> #ifndef MAX_GSS_MECH
> @@ -176,4 +180,8 @@ bool_t __rpc_gss_set_error(int rpc_gss_e
>
> __END_DECLS
>
> +#ifdef __cplusplus
> +}
> +#endif
> +
> #endif /* !_RPCSEC_GSS_H */
>
> Modified: head/include/rpc/svc.h
> ==============================================================================
> --- head/include/rpc/svc.h Sun Sep 2 18:54:51 2012 (r240059)
> +++ head/include/rpc/svc.h Sun Sep 2 21:04:40 2012 (r240060)
> @@ -65,6 +65,10 @@
> * parameters, struct svc_req * and SVCXPRT *, defined below.
> */
>
> +#ifdef __cplusplus
> +extern "C" {
> +#endif
> +
> /*
> * Service control requests
> */
> @@ -467,6 +471,9 @@ int __rpc_get_local_uid(SVCXPRT *_transp
>
> __END_DECLS
>
> +#ifdef __cplusplus
> +}
> +#endif
>
> /* for backward compatibility */
> #include <rpc/svc_soc.h>
>
> Modified: head/include/rpc/svc_soc.h
> ==============================================================================
> --- head/include/rpc/svc_soc.h Sun Sep 2 18:54:51 2012 (r240059)
> +++ head/include/rpc/svc_soc.h Sun Sep 2 21:04:40 2012 (r240060)
> @@ -49,6 +49,10 @@
> * with TS-RPC
> */
>
> +#ifdef __cplusplus
> +extern "C" {
> +#endif
> +
> /*
> * Approved way of getting address of caller
> */
> @@ -113,4 +117,8 @@ __BEGIN_DECLS
> extern SVCXPRT *svcfd_create(int, u_int, u_int);
> __END_DECLS
>
> +#ifdef __cplusplus
> +}
> +#endif
> +
> #endif /* !_RPC_SVC_SOC_H */
>
> Modified: head/include/rpc/xdr.h
> ==============================================================================
> --- head/include/rpc/xdr.h Sun Sep 2 18:54:51 2012 (r240059)
> +++ head/include/rpc/xdr.h Sun Sep 2 21:04:40 2012 (r240060)
> @@ -43,6 +43,10 @@
> #define _RPC_XDR_H
> #include <sys/cdefs.h>
>
> +#ifdef __cplusplus
> +extern "C" {
> +#endif
> +
> /*
> * XDR provides a conventional way for converting between C data
> * 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),
> * 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 */
> const struct xdr_ops {
> /* 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 " */
> - bool_t (*x_putlong)(struct __rpc_xdr *, const long *);
> + bool_t (*x_putlong)(struct XDR *, const long *);
> /* 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 " */
> - 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 */
> - u_int (*x_getpostn)(struct __rpc_xdr *);
> + u_int (*x_getpostn)(struct XDR *);
> /* 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 */
> - int32_t *(*x_inline)(struct __rpc_xdr *, u_int);
> + int32_t *(*x_inline)(struct XDR *, u_int);
> /* free privates of this xdr_stream */
> - void (*x_destroy)(struct __rpc_xdr *);
> - bool_t (*x_control)(struct __rpc_xdr *, int, void *);
> + void (*x_destroy)(struct XDR *);
> + bool_t (*x_control)(struct XDR *, int, void *);
> } *x_ops;
> char * x_public; /* users' 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);
> __END_DECLS
>
> +#ifdef __cplusplus
> +}
> +#endif
> +
> #endif /* !_RPC_XDR_H */
>
> Modified: head/sys/rpc/rpc_com.h
> ==============================================================================
> --- head/sys/rpc/rpc_com.h Sun Sep 2 18:54:51 2012 (r240059)
> +++ head/sys/rpc/rpc_com.h Sun Sep 2 21:04:40 2012 (r240060)
> @@ -114,8 +114,8 @@ extern int __rpc_sockisbound(struct sock
> extern int bindresvport(struct socket *so, struct sockaddr *sa);
>
> struct xucred;
> -struct __rpc_xdr;
> -bool_t xdr_authunix_parms(struct __rpc_xdr *xdrs, uint32_t *time, struct xucred *cred);
> +struct XDR;
> +bool_t xdr_authunix_parms(struct XDR *xdrs, uint32_t *time, struct xucred *cred);
> #endif
>
> __END_DECLS
>
> Modified: head/sys/rpc/xdr.h
> ==============================================================================
> --- head/sys/rpc/xdr.h Sun Sep 2 18:54:51 2012 (r240059)
> +++ head/sys/rpc/xdr.h Sun Sep 2 21:04:40 2012 (r240060)
> @@ -97,26 +97,26 @@ enum xdr_op {
> * an operations vector for the particular implementation (e.g. see xdr_mem.c),
> * 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 */
> const struct xdr_ops {
> /* 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 " */
> - bool_t (*x_putlong)(struct __rpc_xdr *, const long *);
> + bool_t (*x_putlong)(struct XDR *, const long *);
> /* 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 " */
> - 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 */
> - u_int (*x_getpostn)(struct __rpc_xdr *);
> + u_int (*x_getpostn)(struct XDR *);
> /* 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 */
> - int32_t *(*x_inline)(struct __rpc_xdr *, u_int);
> + int32_t *(*x_inline)(struct XDR *, u_int);
> /* free privates of this xdr_stream */
> - void (*x_destroy)(struct __rpc_xdr *);
> - bool_t (*x_control)(struct __rpc_xdr *, int, void *);
> + void (*x_destroy)(struct XDR *);
> + bool_t (*x_control)(struct XDR *, int, void *);
> } *x_ops;
> char * x_public; /* users' data */
> void * x_private; /* pointer to private data */
Don't __BEGIN_DECLS and __END_DECLS do exactly that? i.e. it looks like
some of the #ifdef's you added are redundant.
More information about the svn-src-head
mailing list