X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=portmap%2Flibnfs-raw-portmap.c;h=8e2a3c53aee9b3cc7dae71aa359051a38c27aee1;hb=af8d37c8b703f3dc22d3ff1c7578b16e84c25050;hp=76c1cdfb9a7d007e3569eb18fd88473f5316cb68;hpb=7fbedfdefd1df0bb6f67d7ee769918c0a09ed3be;p=deb_libnfs.git diff --git a/portmap/libnfs-raw-portmap.c b/portmap/libnfs-raw-portmap.c index 76c1cdf..8e2a3c5 100644 --- a/portmap/libnfs-raw-portmap.c +++ b/portmap/libnfs-raw-portmap.c @@ -1,3 +1,32 @@ +/* +Copyright (c) 2014, Ronnie Sahlberg +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +The views and conclusions contained in the software and documentation are those +of the authors and should not be interpreted as representing official policies, +either expressed or implied, of the FreeBSD Project. +*/ + /* * Please do not edit this file. * It was generated using rpcgen. @@ -6,7 +35,7 @@ #include "libnfs-zdr.h" #include "libnfs-raw-portmap.h" -bool_t +uint32_t zdr_pmap2_mapping (ZDR *zdrs, pmap2_mapping *objp) { register int32_t *buf; @@ -62,7 +91,7 @@ zdr_pmap2_mapping (ZDR *zdrs, pmap2_mapping *objp) return TRUE; } -bool_t +uint32_t zdr_pmap2_call_args (ZDR *zdrs, pmap2_call_args *objp) { register int32_t *buf; @@ -118,7 +147,7 @@ zdr_pmap2_call_args (ZDR *zdrs, pmap2_call_args *objp) return TRUE; } -bool_t +uint32_t zdr_pmap2_call_result (ZDR *zdrs, pmap2_call_result *objp) { register int32_t *buf; @@ -131,7 +160,7 @@ zdr_pmap2_call_result (ZDR *zdrs, pmap2_call_result *objp) return TRUE; } -bool_t +uint32_t zdr_pmap2_mapping_list (ZDR *zdrs, pmap2_mapping_list *objp) { register int32_t *buf; @@ -144,7 +173,7 @@ zdr_pmap2_mapping_list (ZDR *zdrs, pmap2_mapping_list *objp) return TRUE; } -bool_t +uint32_t zdr_pmap2_dump_result (ZDR *zdrs, pmap2_dump_result *objp) { register int32_t *buf; @@ -155,8 +184,8 @@ zdr_pmap2_dump_result (ZDR *zdrs, pmap2_dump_result *objp) return TRUE; } -bool_t -zdr_pmap3_getaddr_result (ZDR *zdrs, pmap3_getaddr_result *objp) +uint32_t +zdr_pmap3_string_result (ZDR *zdrs, pmap3_string_result *objp) { register int32_t *buf; buf = NULL; @@ -166,7 +195,7 @@ zdr_pmap3_getaddr_result (ZDR *zdrs, pmap3_getaddr_result *objp) return TRUE; } -bool_t +uint32_t zdr_pmap3_mapping (ZDR *zdrs, pmap3_mapping *objp) { register int32_t *buf; @@ -185,7 +214,7 @@ zdr_pmap3_mapping (ZDR *zdrs, pmap3_mapping *objp) return TRUE; } -bool_t +uint32_t zdr_pmap3_mapping_list (ZDR *zdrs, pmap3_mapping_list *objp) { register int32_t *buf; @@ -198,7 +227,7 @@ zdr_pmap3_mapping_list (ZDR *zdrs, pmap3_mapping_list *objp) return TRUE; } -bool_t +uint32_t zdr_pmap3_dump_result (ZDR *zdrs, pmap3_dump_result *objp) { register int32_t *buf; @@ -208,3 +237,85 @@ zdr_pmap3_dump_result (ZDR *zdrs, pmap3_dump_result *objp) return FALSE; return TRUE; } + +uint32_t +zdr_pmap3_call_args (ZDR *zdrs, pmap3_call_args *objp) +{ + register int32_t *buf; + buf = NULL; + + + if (zdrs->x_op == ZDR_ENCODE) { + buf = ZDR_INLINE (zdrs, 3 * BYTES_PER_ZDR_UNIT); + if (buf == NULL) { + if (!zdr_u_int (zdrs, &objp->prog)) + return FALSE; + if (!zdr_u_int (zdrs, &objp->vers)) + return FALSE; + if (!zdr_u_int (zdrs, &objp->proc)) + return FALSE; + + } else { + IZDR_PUT_U_LONG(buf, objp->prog); + IZDR_PUT_U_LONG(buf, objp->vers); + IZDR_PUT_U_LONG(buf, objp->proc); + } + if (!zdr_bytes (zdrs, (char **)&objp->args.args_val, (u_int *) &objp->args.args_len, ~0)) + return FALSE; + return TRUE; + } else if (zdrs->x_op == ZDR_DECODE) { + buf = ZDR_INLINE (zdrs, 3 * BYTES_PER_ZDR_UNIT); + if (buf == NULL) { + if (!zdr_u_int (zdrs, &objp->prog)) + return FALSE; + if (!zdr_u_int (zdrs, &objp->vers)) + return FALSE; + if (!zdr_u_int (zdrs, &objp->proc)) + return FALSE; + + } else { + objp->prog = IZDR_GET_U_LONG(buf); + objp->vers = IZDR_GET_U_LONG(buf); + objp->proc = IZDR_GET_U_LONG(buf); + } + if (!zdr_bytes (zdrs, (char **)&objp->args.args_val, (u_int *) &objp->args.args_len, ~0)) + return FALSE; + return TRUE; + } + + if (!zdr_u_int (zdrs, &objp->prog)) + return FALSE; + if (!zdr_u_int (zdrs, &objp->vers)) + return FALSE; + if (!zdr_u_int (zdrs, &objp->proc)) + return FALSE; + if (!zdr_bytes (zdrs, (char **)&objp->args.args_val, (u_int *) &objp->args.args_len, ~0)) + return FALSE; + return TRUE; +} + +uint32_t +zdr_pmap3_call_result (ZDR *zdrs, pmap3_call_result *objp) +{ + register int32_t *buf; + buf = NULL; + + if (!zdr_u_int (zdrs, &objp->port)) + return FALSE; + if (!zdr_bytes (zdrs, (char **)&objp->res.res_val, (u_int *) &objp->res.res_len, ~0)) + return FALSE; + return TRUE; +} + +uint32_t +zdr_pmap3_netbuf (ZDR *zdrs, pmap3_netbuf *objp) +{ + register int32_t *buf; + buf = NULL; + + if (!zdr_u_int (zdrs, &objp->maxlen)) + return FALSE; + if (!zdr_bytes (zdrs, (char **)&objp->buf.buf_val, (u_int *) &objp->buf.buf_len, ~0)) + return FALSE; + return TRUE; +}