🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

1 total messages Started by sja Thu, 12 Oct 1989 18:24
trouble including <rpc/rpc.h> trouble including <rpc/rpc.h>
#500
Author: sja
Date: Thu, 12 Oct 1989 18:24
1779 lines
13945 bytes
I have trouble including C file <rpc/rpc.h>. The g++ receives a fatal
signal if I try compiling following program. I am compiling on Sun3
running Sun 4.0 OS. I am enclosing the program, version number and 
C preprocessor output. I would appreciate  any information in this regard.

Thanks,

Jags
sja@cs.purdue.edu

--------------------
extern "C" {
#include "/usr/include/rpc/rpc.h"
}

main()
{
   printf("done\n");
}

--------------------
version info:
/usr/local/gnu/lib/g++-1.35.1.lib/g++-include -DBSD -I/usr/local/gnu/lib/g++-1.35.1.lib/g++-include -undef -D__GNU__ -D__GNUG__ -D__cplusplus -Dmc68000 -Dsun -Dunix -D__mc68000__ -D__sun__ -D__unix__ -D__HAVE_68881__ -Dmc68020 dbgtest.cc

--------------------
g++ output:
g++ -c -g  -I/usr/local/gnu/lib/g++-1.35.1.lib/g++-include -DBSD dbgtest.cc
/usr/include/rpc/auth.h:47: Segmentation violation
g++: Program cc1plus got fatal signal 11.
*** Error code 1
--------------------
output of C preprocessor:
# 1 "dbgtest.cc"
 
extern "C" {
# 1 "/usr/include/rpc/rpc.h"
 

 








# 1 "/usr/include/rpc/types.h"
 

 






















extern char *malloc();








# 1 "/usr/include/sys/types.h"
 

 








 



# 1 "/usr/include/sys/sysmacros.h"
 

 





 


 


 



# 16 "/usr/include/sys/types.h"


typedef	unsigned char	u_char;
typedef	unsigned short	u_short;
typedef	unsigned int	u_int;
typedef	unsigned long	u_long;
typedef	unsigned short	ushort;		 
typedef	unsigned int	uint;		 








typedef	struct	_physadr { short r[1]; } *physadr;
typedef	struct	label_t	{
	int	val[13];
} label_t;













typedef	struct	_quad { long val[2]; } quad;
typedef	long	daddr_t;
typedef	char *	caddr_t;
typedef	u_long	ino_t;
typedef	long	swblk_t;
typedef	int	size_t;
typedef	long	time_t;
typedef	short	dev_t;
typedef	long	off_t;
typedef	u_short	uid_t;
typedef	u_short	gid_t;
typedef	long	key_t;


 









typedef	long	fd_mask;









typedef	struct fd_set {
	fd_mask	fds_bits[(((256 )+(( (sizeof(fd_mask) * 8		)	)-1))/( (sizeof(fd_mask) * 8		)	)) ];
} fd_set;

typedef	char *	addr_t;






# 107 "/usr/include/sys/types.h"



# 35 "/usr/include/rpc/types.h"

# 1 "/usr/include/sys/time.h"
 

 








 



struct timeval {
	long	tv_sec;		 
	long	tv_usec;	 
};

struct timezone {
	int	tz_minuteswest;	 
	int	tz_dsttime;	 
};












 










 







struct	itimerval {
	struct	timeval it_interval;	 
	struct	timeval it_value;	 
};


# 1 "/usr/include/time.h"
 

 


struct tm {
	int	tm_sec;
	int	tm_min;
	int	tm_hour;
	int	tm_mday;
	int	tm_mon;
	int	tm_year;
	int	tm_wday;
	int	tm_yday;
	int	tm_isdst;
	char	*tm_zone;
	long	tm_gmtoff;
};

extern	struct tm *gmtime(), *localtime();
extern	char *asctime(), *ctime();
extern	void tzset(), tzsetwall();
# 62 "/usr/include/sys/time.h"




# 36 "/usr/include/rpc/types.h"



# 12 "/usr/include/rpc/rpc.h"

# 1 "/usr/include/netinet/in.h"
 







 






 
















 















 








 







 






 








 






 






struct in_addr {
	union {
		struct { u_char s_b1,s_b2,s_b3,s_b4; } S_un_b;
		struct { u_short s_w1,s_w2; } S_un_w;
		u_long S_addr;
	} S_un;






};

 

































 





 


struct sockaddr_in {
	short	sin_family;
	u_short	sin_port;
	struct	in_addr sin_addr;
	char	sin_zero[8];
};

 





 













# 188 "/usr/include/netinet/in.h"



# 13 "/usr/include/rpc/rpc.h"


 
# 1 "/usr/include/rpc/xdr.h"
 

 








 




























 





enum xdr_op {
	XDR_ENCODE=0,
	XDR_DECODE=1,
	XDR_FREE=2
};

 






 








typedef	int  (*xdrproc_t)();

 





typedef struct {
	enum xdr_op	x_op;		 
	struct xdr_ops {
		int 	(*x_getlong)();	 
		int 	(*x_putlong)();	 
		int 	(*x_getbytes)(); 
		int 	(*x_putbytes)(); 
		u_int	(*x_getpostn)(); 
		int   (*x_setpostn)(); 
		long *	(*x_inline)();	 
		void	(*x_destroy)();	 
	} *x_ops;
	caddr_t 	x_public;	 
	caddr_t		x_private;	 
	caddr_t 	x_base;		 
	int		x_handy;	 
} XDR;

 















































 










struct xdr_discrim {
	int	value;
	xdrproc_t proc;
};

 





























 


extern int 	xdr_void();
extern int 	xdr_int();
extern int 	xdr_u_int();
extern int 	xdr_long();
extern int 	xdr_u_long();
extern int 	xdr_short();
extern int 	xdr_u_short();
extern int 	xdr_bool();
extern int 	xdr_enum();
extern int 	xdr_array();
extern int 	xdr_bytes();
extern int 	xdr_opaque();
extern int 	xdr_string();
extern int 	xdr_union();

extern int 	xdr_char();
extern int 	xdr_u_char();
extern int 	xdr_vector();
extern int 	xdr_float();
extern int 	xdr_double();
extern int 	xdr_reference();
extern int 	xdr_pointer();
extern int 	xdr_wrapstring();


 




struct netobj {
	u_int	n_len;
	char	*n_bytes;
};
typedef struct netobj netobj;
extern int    xdr_netobj();

 



extern void   xdrmem_create();		 

extern void   xdrstdio_create();	 
extern void   xdrrec_create();		 
extern int  xdrrec_endofrecord();	 
extern int  xdrrec_skiprecord();	 
extern int  xdrrec_eof();		 





# 16 "/usr/include/rpc/rpc.h"


 
# 1 "/usr/include/rpc/auth.h"
 

 













 


enum auth_stat {
	AUTH_OK=0,
	 


	AUTH_BADCRED=1,			 
	AUTH_REJECTEDCRED=2,		 
	AUTH_BADVERF=3,			 
	AUTH_REJECTEDVERF=4,		 
	AUTH_TOOWEAK=5,			 
	 


	AUTH_INVALIDRESP=6,		 
	AUTH_FAILED=7			 
};


typedef u_long u_int32;	 


union des_block {
	struct {
		u_int32 high;
		u_int32 low;
	} key;
	char c[8];
};
typedef union des_block des_block;
extern int  xdr_des_block();

 


struct opaque_auth {
	int 	oa_flavor;		 
	caddr_t	oa_base;		 
	u_int	oa_length;		 
};


 


typedef struct {
	struct	opaque_auth	ah_cred;
	struct	opaque_auth	ah_verf;
	union	des_block	ah_key;
	struct auth_ops {
		void	(*ah_nextverf)();
		int	(*ah_marshal)();	 
		int	(*ah_validate)();	 
		int	(*ah_refresh)();	 
		void	(*ah_destroy)();	 
	} *ah_ops;
	caddr_t ah_private;
} AUTH;


 

































extern struct opaque_auth _null_auth;


 



 











extern AUTH *authunix_create();
extern AUTH *authunix_create_default();	 
extern AUTH *authnone_create();		 

extern AUTH *authdes_create();	






# 19 "/usr/include/rpc/rpc.h"


 
# 1 "/usr/include/rpc/clnt.h"
 

 








 




enum clnt_stat {
	RPC_SUCCESS=0,			 
	 


	RPC_CANTENCODEARGS=1,		 
	RPC_CANTDECODERES=2,		 
	RPC_CANTSEND=3,			 
	RPC_CANTRECV=4,			 
	RPC_TIMEDOUT=5,			 
	 


	RPC_VERSMISMATCH=6,		 
	RPC_AUTHERROR=7,		 
	RPC_PROGUNAVAIL=8,		 
	RPC_PROGVERSMISMATCH=9,		 
	RPC_PROCUNAVAIL=10,		 
	RPC_CANTDECODEARGS=11,		 
	RPC_SYSTEMERROR=12,		 

	 


	RPC_UNKNOWNHOST=13,		 
	RPC_UNKNOWNPROTO=17,		 

	 


	RPC_PMAPFAILURE=14,		 
	RPC_PROGNOTREGISTERED=15,	 
	 


	RPC_FAILED=16
};


 


struct rpc_err {
	enum clnt_stat re_status;
	union {
		int RE_errno;		 
		enum auth_stat RE_why;	 
		struct {
			u_long low;	 
			u_long high;	 
		} RE_vers;
		struct {		 
			long s1;
			long s2;
		} RE_lb;		 
	} ru;




};


 




typedef struct {
	AUTH	*cl_auth;			 
	struct clnt_ops {
		enum clnt_stat	(*cl_call)();	 
		void		(*cl_abort)();	 
		void		(*cl_geterr)();	 
		int 		(*cl_freeres)();  
		void		(*cl_destroy)(); 
		int           (*cl_control)(); 
	} *cl_ops;
	caddr_t			cl_private;	 
} CLIENT;


 






 















 







 








 









 









 





 





 








 










 





 






 






extern CLIENT *clntraw_create();


 


extern CLIENT *
clnt_create( );  






	
	

 










extern CLIENT *clnttcp_create();

 




















extern CLIENT *clntudp_create();
extern CLIENT *clntudp_bufcreate();

 


void clnt_pcreateerror( );	 
char *clnt_spcreateerror( );	 

 

 
void clnt_perrno( );	 

 


void clnt_perror( ); 	 
char *clnt_sperror( );	 

 


struct rpc_createerr {
	enum clnt_stat cf_stat;
	struct rpc_err cf_error;  
};

extern struct rpc_createerr rpc_createerr;




 


char *clnt_sperrno( );	 


# 311 "/usr/include/rpc/clnt.h"






# 22 "/usr/include/rpc/rpc.h"


 
# 1 "/usr/include/rpc/rpc_msg.h"
 

 









 





enum msg_type {
	CALL=0,
	REPLY=1
};

enum reply_stat {
	MSG_ACCEPTED=0,
	MSG_DENIED=1
};

enum accept_stat {
	SUCCESS=0,
	PROG_UNAVAIL=1,
	PROG_MISMATCH=2,
	PROC_UNAVAIL=3,
	GARBAGE_ARGS=4,
	SYSTEM_ERR=5
};

enum reject_stat {
	RPC_MISMATCH=0,
	AUTH_ERROR=1
};

 



 




struct accepted_reply {
	struct opaque_auth	ar_verf;
	enum accept_stat	ar_stat;
	union {
		struct {
			u_long	low;
			u_long	high;
		} AR_versions;
		struct {
			caddr_t	where;
			xdrproc_t proc;
		} AR_results;
		 
	} ru;


};

 


struct rejected_reply {
	enum reject_stat rj_stat;
	union {
		struct {
			u_long low;
			u_long high;
		} RJ_versions;
		enum auth_stat RJ_why;   
	} ru;


};

 


struct reply_body {
	enum reply_stat rp_stat;
	union {
		struct accepted_reply RP_ar;
		struct rejected_reply RP_dr;
	} ru;


};

 


struct call_body {
	u_long cb_rpcvers;	 
	u_long cb_prog;
	u_long cb_vers;
	u_long cb_proc;
	struct opaque_auth cb_cred;
	struct opaque_auth cb_verf;  
};

 


struct rpc_msg {
	u_long			rm_xid;
	enum msg_type		rm_direction;
	union {
		struct call_body RM_cmb;
		struct reply_body RM_rmb;
	} ru;


};




 





extern int 	xdr_callmsg();

 





extern int 	xdr_callhdr();

 





extern int 	xdr_replymsg();

 





extern void	_seterr_reply();
# 25 "/usr/include/rpc/rpc.h"

# 1 "/usr/include/rpc/auth_unix.h"
 

 





 






 


 


 


struct authunix_parms {
	u_long	 aup_time;
	char	*aup_machname;
	int	 aup_uid;
	int	 aup_gid;
	u_int	 aup_len;
	int	*aup_gids;
};

extern int  xdr_authunix_parms();

 




struct short_hand_verf {
	struct opaque_auth new_cred;
};
# 26 "/usr/include/rpc/rpc.h"

# 1 "/usr/include/rpc/auth_des.h"
 

 








 


enum authdes_namekind {
	ADN_FULLNAME, 
	ADN_NICKNAME
};

 



struct authdes_fullname {
	char *name;		 
	des_block key;		 
	u_long window;		 
};


 


struct authdes_cred {
	enum authdes_namekind adc_namekind;
	struct authdes_fullname adc_fullname;
	u_long adc_nickname;
};



 


struct authdes_verf {
	union {
		struct timeval adv_ctime;	 
		des_block adv_xtime;		 
	} adv_time_u;
	u_long adv_int_u;
};

 










 











# 27 "/usr/include/rpc/rpc.h"


 
# 1 "/usr/include/rpc/svc.h"
 










 





















enum xprt_stat {
	XPRT_DIED,
	XPRT_MOREREQS,
	XPRT_IDLE
};

 


typedef struct {



	int		xp_sock;

	u_short		xp_port;	  
	struct xp_ops {
	    int 	(*xp_recv)();	  
	    enum xprt_stat (*xp_stat)();  
	    int 	(*xp_getargs)();  
	    int 	(*xp_reply)();	  
	    int 	(*xp_freeargs)(); 
	    void	(*xp_destroy)();  
	} *xp_ops;
	int		xp_addrlen;	  
	struct sockaddr_in xp_raddr;	  
	struct opaque_auth xp_verf;	  
	caddr_t		xp_p1;		  
	caddr_t		xp_p2;		  
} SVCXPRT;

 




 






































 


struct svc_req {
	u_long		rq_prog;	 
	u_long		rq_vers;	 
	u_long		rq_proc;	 
	struct opaque_auth rq_cred;	 
	caddr_t		rq_clntcred;	 
	SVCXPRT	*rq_xprt;		 
};


 









extern int 	svc_register();

 






extern void	svc_unregister();

 





extern void	xprt_register();


 





extern void	xprt_unregister();





 

























extern int 	svc_sendreply();
extern void	svcerr_decode();
extern void	svcerr_weakauth();
extern void	svcerr_noproc();
extern void	svcerr_progvers();
extern void	svcerr_auth();
extern void	svcerr_noprog();

extern void	svcerr_systemerr();

    
 











 



extern fd_set svc_fdset;


 



extern void rpctest_service();


extern void	svc_getreq();

extern void	svc_getreqset();	 

extern void	svc_run(); 	  

 




 




 


extern SVCXPRT *svcraw_create();

 


extern SVCXPRT *svcudp_create();
extern SVCXPRT *svcudp_bufcreate();

 


extern SVCXPRT *svctcp_create();











# 30 "/usr/include/rpc/rpc.h"

# 1 "/usr/include/rpc/svc_auth.h"
 

 






 


extern enum auth_stat _authenticate();
# 31 "/usr/include/rpc/rpc.h"



# 3 "dbgtest.cc"

}

main()
{
   printf("done\n");
}
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads