diff --git a/src/lib/libc/xdr/Makefile b/src/lib/libc/xdr/Makefile index b777397..0a180f1 100644 --- a/src/lib/libc/xdr/Makefile +++ b/src/lib/libc/xdr/Makefile @@ -10,10 +10,8 @@ #Objects OBJS = crypt_clnt.o crypt_xdr.o xdr.o xdr_array.o xdr_float.o xdr_mem.o xdr_rec.o xdr_reference.o xdr_sizeof.o xdr_stdio.o -#Output -OUTPUT = libc.so -$(OUTPUT): $(OBJS) +all: $(OBJS) # Compile the source files .cc.o: @@ -33,5 +31,5 @@ # Clean up the junk clean: - $(REMOVE) $(OBJS) $(OUTPUT) + $(REMOVE) $(OBJS) diff --git a/src/lib/libc/xdr/crypt.h b/src/lib/libc/xdr/crypt.h new file mode 100644 index 0000000..8272db2 --- /dev/null +++ b/src/lib/libc/xdr/crypt.h @@ -0,0 +1,88 @@ +/* + * Please do not edit this file. + * It was generated using rpcgen. + */ + +#ifndef _CRYPT_H_RPCGEN +#define _CRYPT_H_RPCGEN + +#include + +#ifdef __cplusplus +extern "C" { +#endif + + +enum des_dir { + ENCRYPT_DES = 0, + DECRYPT_DES = 1 +}; +typedef enum des_dir des_dir; + +enum des_mode { + CBC_DES = 0, + ECB_DES = 1 +}; +typedef enum des_mode des_mode; + +struct desargs { + u_char des_key[8]; + des_dir des_dir; + des_mode des_mode; + u_char des_ivec[8]; + struct { + u_int desbuf_len; + char *desbuf_val; + } desbuf; +}; +typedef struct desargs desargs; + +struct desresp { + struct { + u_int desbuf_len; + char *desbuf_val; + } desbuf; + u_char des_ivec[8]; + int stat; +}; +typedef struct desresp desresp; + +#define CRYPT_PROG ((unsigned long)(600100029)) +#define CRYPT_VERS ((unsigned long)(1)) + +#if defined(__STDC__) || defined(__cplusplus) +extern void crypt_prog_1(struct svc_req *rqstp, register SVCXPRT *transp); +#define DES_CRYPT ((unsigned long)(1)) +extern desresp * des_crypt_1(desargs *, CLIENT *); +extern desresp * des_crypt_1_svc(desargs *, struct svc_req *); +extern int crypt_prog_1_freeresult(SVCXPRT *, xdrproc_t, caddr_t); + +#else /* K&R C */ +extern void crypt_prog_1(); +#define DES_CRYPT ((unsigned long)(1)) +extern desresp * des_crypt_1(); +extern desresp * des_crypt_1_svc(); +extern int crypt_prog_1_freeresult(); +#endif /* K&R C */ + +/* the xdr functions */ + +#if defined(__STDC__) || defined(__cplusplus) +extern bool_t xdr_des_dir(XDR *, des_dir*); +extern bool_t xdr_des_mode(XDR *, des_mode*); +extern bool_t xdr_desargs(XDR *, desargs*); +extern bool_t xdr_desresp(XDR *, desresp*); + +#else /* K&R C */ +extern bool_t xdr_des_dir(); +extern bool_t xdr_des_mode(); +extern bool_t xdr_desargs(); +extern bool_t xdr_desresp(); + +#endif /* K&R C */ + +#ifdef __cplusplus +} +#endif + +#endif /* !_CRYPT_H_RPCGEN */ diff --git a/src/lib/libc/xdr/crypt_clnt.c b/src/lib/libc/xdr/crypt_clnt.c new file mode 100644 index 0000000..b5e3370 --- /dev/null +++ b/src/lib/libc/xdr/crypt_clnt.c @@ -0,0 +1,27 @@ +/* + * Please do not edit this file. + * It was generated using rpcgen. + */ + +#include /* for memset */ +#include "crypt.h" +#include +__FBSDID("$FreeBSD: src/include/rpcsvc/crypt.x,v 1.5 2003/05/04 02:51:42 obrien Exp $"); + +/* Default timeout can be changed using clnt_control() */ +static struct timeval TIMEOUT = { 25, 0 }; + +desresp * +des_crypt_1(desargs *argp, CLIENT *clnt) +{ + static desresp clnt_res; + + memset((char *)&clnt_res, 0, sizeof (clnt_res)); + if (clnt_call(clnt, DES_CRYPT, + (xdrproc_t) xdr_desargs, (caddr_t) argp, + (xdrproc_t) xdr_desresp, (caddr_t) &clnt_res, + TIMEOUT) != RPC_SUCCESS) { + return (NULL); + } + return (&clnt_res); +} diff --git a/src/lib/libc/xdr/crypt_xdr.c b/src/lib/libc/xdr/crypt_xdr.c new file mode 100644 index 0000000..7045228 --- /dev/null +++ b/src/lib/libc/xdr/crypt_xdr.c @@ -0,0 +1,59 @@ +/* + * Please do not edit this file. + * It was generated using rpcgen. + */ + +#include "crypt.h" +#include +__FBSDID("$FreeBSD: src/include/rpcsvc/crypt.x,v 1.5 2003/05/04 02:51:42 obrien Exp $"); + +bool_t +xdr_des_dir(register XDR *xdrs, des_dir *objp) +{ + + if (!xdr_enum(xdrs, (enum_t *)objp)) + return (FALSE); + return (TRUE); +} + +bool_t +xdr_des_mode(register XDR *xdrs, des_mode *objp) +{ + + if (!xdr_enum(xdrs, (enum_t *)objp)) + return (FALSE); + return (TRUE); +} + +bool_t +xdr_desargs(register XDR *xdrs, desargs *objp) +{ + + if (!xdr_vector(xdrs, (char *)objp->des_key, 8, + sizeof (u_char), (xdrproc_t) xdr_u_char)) + return (FALSE); + if (!xdr_des_dir(xdrs, &objp->des_dir)) + return (FALSE); + if (!xdr_des_mode(xdrs, &objp->des_mode)) + return (FALSE); + if (!xdr_vector(xdrs, (char *)objp->des_ivec, 8, + sizeof (u_char), (xdrproc_t) xdr_u_char)) + return (FALSE); + if (!xdr_bytes(xdrs, (char **)&objp->desbuf.desbuf_val, (u_int *) &objp->desbuf.desbuf_len, ~0)) + return (FALSE); + return (TRUE); +} + +bool_t +xdr_desresp(register XDR *xdrs, desresp *objp) +{ + + if (!xdr_bytes(xdrs, (char **)&objp->desbuf.desbuf_val, (u_int *) &objp->desbuf.desbuf_len, ~0)) + return (FALSE); + if (!xdr_vector(xdrs, (char *)objp->des_ivec, 8, + sizeof (u_char), (xdrproc_t) xdr_u_char)) + return (FALSE); + if (!xdr_int(xdrs, &objp->stat)) + return (FALSE); + return (TRUE); +}