1*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States /* 2*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * CDDL HEADER START 3*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * 4*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * The contents of this file are subject to the terms of the 5*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * Common Development and Distribution License (the "License"). 6*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * You may not use this file except in compliance with the License. 7*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * 8*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * or http://www.opensolaris.org/os/licensing. 10*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * See the License for the specific language governing permissions 11*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * and limitations under the License. 12*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * 13*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * When distributing Covered Code, include this CDDL HEADER in each 14*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 15*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * If applicable, add the following below this CDDL HEADER, with the 16*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * fields enclosed by brackets "[]" replaced with your own identifying 17*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * information: Portions Copyright [yyyy] [name of copyright owner] 18*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * 19*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * CDDL HEADER END 20*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States */ 21*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States /* 22*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * Copyright 2010 Sun Microsystems, Inc. All rights reserved. 23*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * Use is subject to license terms. 24*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States */ 25*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 26*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States #include <sys/sunddi.h> 27*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States #ifndef _KERNEL 28*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States #include <string.h> 29*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States #include <strings.h> 30*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States #include <stddef.h> 31*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States #endif /* _KERNEL */ 32*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States #include <smbsrv/smb_door.h> 33*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States #include <smbsrv/smb_xdr.h> 34*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States #include <smbsrv/alloc.h> 35*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States #include <sys/socket.h> 36*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States #include <sys/sysmacros.h> 37*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 38*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States #define SMB_XDRMAX32_SZ 0xFFFFFFFF 39*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 40*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States bool_t smb_list_xdr(XDR *, list_t *, const size_t, const size_t, 41*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States const xdrproc_t); 42*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 43*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States bool_t 44*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States smb_buf32_xdr(XDR *xdrs, smb_buf32_t *objp) 45*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States { 46*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States uint_t maxsize = SMB_XDRMAX32_SZ; 47*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States uint_t size; 48*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 49*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (xdrs->x_op != XDR_DECODE) 50*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States maxsize = size = (uint_t)objp->len; 51*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 52*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (xdr_bytes(xdrs, (char **)&objp->val, &size, maxsize)) { 53*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (xdrs->x_op == XDR_DECODE) 54*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States objp->len = (uint32_t)size; 55*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (TRUE); 56*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } 57*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 58*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 59*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } 60*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 61*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States /* 62*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * When decoding into a string, ensure that objp->buf is NULL or 63*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * is pointing at a buffer large enough to receive the string. 64*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * Don't leave it as an uninitialized pointer. 65*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * 66*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * If objp->buf is NULL, xdr_string will allocate memory for the 67*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * string. Otherwise it will copy into the available buffer. 68*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States */ 69*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States bool_t 70*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States smb_string_xdr(XDR *xdrs, smb_string_t *objp) 71*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States { 72*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_string(xdrs, &objp->buf, ~0)) 73*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 74*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (TRUE); 75*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } 76*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 77*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States const char * 78*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States smb_doorhdr_opname(uint32_t op) 79*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States { 80*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States struct { 81*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States uint32_t op; 82*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States const char *name; 83*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } ops[] = { 84*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States { SMB_DR_NULL, "null" }, 85*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States { SMB_DR_ASYNC_RESPONSE, "async_response" }, 86*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States { SMB_DR_USER_AUTH_LOGON, "user_auth_logon" }, 87*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States { SMB_DR_USER_NONAUTH_LOGON, "user_nonauth_logon" }, 88*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States { SMB_DR_USER_AUTH_LOGOFF, "user_auth_logoff" }, 89*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States { SMB_DR_LOOKUP_SID, "lookup_sid" }, 90*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States { SMB_DR_LOOKUP_NAME, "lookup_name" }, 91*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States { SMB_DR_JOIN, "join" }, 92*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States { SMB_DR_GET_DCINFO, "get_dcinfo" }, 93*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States { SMB_DR_VSS_GET_COUNT, "vss_get_count" }, 94*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States { SMB_DR_VSS_GET_SNAPSHOTS, "vss_get_snapshots" }, 95*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States { SMB_DR_VSS_MAP_GMTTOKEN, "vss_map_gmttoken" }, 96*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States { SMB_DR_ADS_FIND_HOST, "ads_find_host" }, 97*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States { SMB_DR_QUOTA_QUERY, "quota_query" }, 98*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States { SMB_DR_QUOTA_SET, "quota_set" }, 99*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States { SMB_DR_DFS_GET_REFERRALS, "dfs_get_referrals" } 100*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States }; 101*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States int i; 102*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 103*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States for (i = 0; i < (sizeof (ops) / sizeof (ops[0])); ++i) { 104*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (ops[i].op == op) 105*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (ops[i].name); 106*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } 107*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 108*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return ("unknown"); 109*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } 110*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 111*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States /* 112*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * Encode a door header structure into an XDR buffer. 113*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States */ 114*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States int 115*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States smb_doorhdr_encode(smb_doorhdr_t *hdr, uint8_t *buf, uint32_t buflen) 116*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States { 117*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States XDR xdrs; 118*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States int rc = 0; 119*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 120*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States xdrmem_create(&xdrs, (const caddr_t)buf, buflen, XDR_ENCODE); 121*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 122*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!smb_doorhdr_xdr(&xdrs, hdr)) 123*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States rc = -1; 124*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 125*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States xdr_destroy(&xdrs); 126*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (rc); 127*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } 128*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 129*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States /* 130*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * Decode an XDR buffer into a door header structure. 131*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States */ 132*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States int 133*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States smb_doorhdr_decode(smb_doorhdr_t *hdr, uint8_t *buf, uint32_t buflen) 134*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States { 135*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States XDR xdrs; 136*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States int rc = 0; 137*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 138*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States bzero(hdr, sizeof (smb_doorhdr_t)); 139*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States xdrmem_create(&xdrs, (const caddr_t)buf, buflen, XDR_DECODE); 140*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 141*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!smb_doorhdr_xdr(&xdrs, hdr)) 142*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States rc = -1; 143*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 144*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States xdr_destroy(&xdrs); 145*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (rc); 146*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } 147*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 148*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States bool_t 149*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States smb_doorhdr_xdr(XDR *xdrs, smb_doorhdr_t *objp) 150*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States { 151*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_uint32_t(xdrs, &objp->dh_magic)) 152*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 153*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_uint32_t(xdrs, &objp->dh_flags)) 154*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 155*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_uint32_t(xdrs, &objp->dh_fid)) 156*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 157*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_uint32_t(xdrs, &objp->dh_op)) 158*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 159*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_uint32_t(xdrs, &objp->dh_txid)) 160*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 161*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_uint32_t(xdrs, &objp->dh_datalen)) 162*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 163*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_uint32_t(xdrs, &objp->dh_resid)) 164*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 165*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_uint32_t(xdrs, &objp->dh_door_rc)) 166*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 167*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_uint32_t(xdrs, &objp->dh_status)) 168*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 169*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (TRUE); 170*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } 171*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 172*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States /* 173*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * Encode an smb_netuserinfo_t into a buffer. 174*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States */ 175*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States int 176*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States smb_netuserinfo_encode(smb_netuserinfo_t *info, uint8_t *buf, 177*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States uint32_t buflen, uint_t *nbytes) 178*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States { 179*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States XDR xdrs; 180*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States int rc = 0; 181*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 182*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States xdrmem_create(&xdrs, (const caddr_t)buf, buflen, XDR_ENCODE); 183*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 184*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!smb_netuserinfo_xdr(&xdrs, info)) 185*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States rc = -1; 186*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 187*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (nbytes != NULL) 188*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States *nbytes = xdr_getpos(&xdrs); 189*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States xdr_destroy(&xdrs); 190*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (rc); 191*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } 192*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 193*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States /* 194*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * Decode an XDR buffer into an smb_netuserinfo_t. 195*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States */ 196*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States int 197*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States smb_netuserinfo_decode(smb_netuserinfo_t *info, uint8_t *buf, 198*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States uint32_t buflen, uint_t *nbytes) 199*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States { 200*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States XDR xdrs; 201*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States int rc = 0; 202*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 203*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States xdrmem_create(&xdrs, (const caddr_t)buf, buflen, XDR_DECODE); 204*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 205*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States bzero(info, sizeof (smb_netuserinfo_t)); 206*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!smb_netuserinfo_xdr(&xdrs, info)) 207*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States rc = -1; 208*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 209*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (nbytes != NULL) 210*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States *nbytes = xdr_getpos(&xdrs); 211*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States xdr_destroy(&xdrs); 212*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (rc); 213*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } 214*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 215*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States bool_t 216*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States smb_inaddr_xdr(XDR *xdrs, smb_inaddr_t *objp) 217*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States { 218*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_int32_t(xdrs, &objp->a_family)) 219*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 220*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (objp->a_family == AF_INET) { 221*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_uint32_t(xdrs, (in_addr_t *)&objp->a_ipv4)) 222*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 223*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } else { 224*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_vector(xdrs, (char *)&objp->a_ipv6, 225*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States sizeof (objp->a_ipv6), sizeof (char), (xdrproc_t)xdr_char)) 226*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 227*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } 228*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (TRUE); 229*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } 230*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 231*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States /* 232*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * XDR encode/decode for smb_netuserinfo_t. 233*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States */ 234*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States bool_t 235*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States smb_netuserinfo_xdr(XDR *xdrs, smb_netuserinfo_t *objp) 236*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States { 237*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_uint64_t(xdrs, &objp->ui_session_id)) 238*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 239*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_uint16_t(xdrs, &objp->ui_uid)) 240*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 241*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_uint16_t(xdrs, &objp->ui_domain_len)) 242*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 243*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_string(xdrs, &objp->ui_domain, ~0)) 244*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 245*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_uint16_t(xdrs, &objp->ui_account_len)) 246*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 247*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_string(xdrs, &objp->ui_account, ~0)) 248*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 249*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_uint16_t(xdrs, &objp->ui_workstation_len)) 250*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 251*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_string(xdrs, &objp->ui_workstation, ~0)) 252*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 253*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!smb_inaddr_xdr(xdrs, &objp->ui_ipaddr)) 254*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 255*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_int32_t(xdrs, &objp->ui_native_os)) 256*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 257*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_int64_t(xdrs, &objp->ui_logon_time)) 258*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 259*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_uint32_t(xdrs, &objp->ui_numopens)) 260*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 261*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_uint32_t(xdrs, &objp->ui_flags)) 262*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 263*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (TRUE); 264*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } 265*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 266*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States /* 267*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * Encode an smb_netconnectinfo_t into a buffer. 268*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States */ 269*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States int 270*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States smb_netconnectinfo_encode(smb_netconnectinfo_t *info, uint8_t *buf, 271*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States uint32_t buflen, uint_t *nbytes) 272*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States { 273*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States XDR xdrs; 274*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States int rc = 0; 275*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 276*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States xdrmem_create(&xdrs, (const caddr_t)buf, buflen, XDR_ENCODE); 277*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 278*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!smb_netconnectinfo_xdr(&xdrs, info)) 279*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States rc = -1; 280*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 281*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (nbytes != NULL) 282*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States *nbytes = xdr_getpos(&xdrs); 283*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States xdr_destroy(&xdrs); 284*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (rc); 285*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } 286*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 287*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States /* 288*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * Decode an XDR buffer into an smb_netconnectinfo_t. 289*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States */ 290*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States int 291*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States smb_netconnectinfo_decode(smb_netconnectinfo_t *info, uint8_t *buf, 292*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States uint32_t buflen, uint_t *nbytes) 293*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States { 294*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States XDR xdrs; 295*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States int rc = 0; 296*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 297*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States xdrmem_create(&xdrs, (const caddr_t)buf, buflen, XDR_DECODE); 298*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 299*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States bzero(info, sizeof (smb_netconnectinfo_t)); 300*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!smb_netconnectinfo_xdr(&xdrs, info)) 301*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States rc = -1; 302*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 303*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (nbytes != NULL) 304*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States *nbytes = xdr_getpos(&xdrs); 305*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States xdr_destroy(&xdrs); 306*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (rc); 307*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } 308*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 309*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States /* 310*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * XDR encode/decode for smb_netconnectinfo_t. 311*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States */ 312*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States bool_t 313*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States smb_netconnectinfo_xdr(XDR *xdrs, smb_netconnectinfo_t *objp) 314*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States { 315*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_uint32_t(xdrs, &objp->ci_id)) 316*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 317*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_uint32_t(xdrs, &objp->ci_type)) 318*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 319*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_uint32_t(xdrs, &objp->ci_numopens)) 320*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 321*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_uint32_t(xdrs, &objp->ci_numusers)) 322*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 323*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_uint32_t(xdrs, &objp->ci_time)) 324*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 325*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_uint32_t(xdrs, &objp->ci_namelen)) 326*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 327*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_uint32_t(xdrs, &objp->ci_sharelen)) 328*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 329*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_string(xdrs, &objp->ci_username, MAXNAMELEN)) 330*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 331*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_string(xdrs, &objp->ci_share, MAXNAMELEN)) 332*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 333*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (TRUE); 334*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } 335*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 336*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States /* 337*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * Encode an smb_netfileinfo_t into a buffer. 338*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States */ 339*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States int 340*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States smb_netfileinfo_encode(smb_netfileinfo_t *info, uint8_t *buf, 341*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States uint32_t buflen, uint_t *nbytes) 342*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States { 343*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States XDR xdrs; 344*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States int rc = 0; 345*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 346*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States xdrmem_create(&xdrs, (const caddr_t)buf, buflen, XDR_ENCODE); 347*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 348*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!smb_netfileinfo_xdr(&xdrs, info)) 349*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States rc = -1; 350*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 351*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (nbytes != NULL) 352*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States *nbytes = xdr_getpos(&xdrs); 353*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States xdr_destroy(&xdrs); 354*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (rc); 355*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } 356*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 357*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States /* 358*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * Decode an XDR buffer into an smb_netfileinfo_t. 359*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States */ 360*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States int 361*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States smb_netfileinfo_decode(smb_netfileinfo_t *info, uint8_t *buf, 362*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States uint32_t buflen, uint_t *nbytes) 363*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States { 364*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States XDR xdrs; 365*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States int rc = 0; 366*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 367*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States xdrmem_create(&xdrs, (const caddr_t)buf, buflen, XDR_DECODE); 368*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 369*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States bzero(info, sizeof (smb_netfileinfo_t)); 370*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!smb_netfileinfo_xdr(&xdrs, info)) 371*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States rc = -1; 372*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 373*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (nbytes != NULL) 374*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States *nbytes = xdr_getpos(&xdrs); 375*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States xdr_destroy(&xdrs); 376*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (rc); 377*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } 378*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 379*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States /* 380*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * XDR encode/decode for smb_netfileinfo_t. 381*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States */ 382*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States bool_t 383*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States smb_netfileinfo_xdr(XDR *xdrs, smb_netfileinfo_t *objp) 384*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States { 385*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_uint16_t(xdrs, &objp->fi_fid)) 386*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 387*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_uint32_t(xdrs, &objp->fi_uniqid)) 388*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 389*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_uint32_t(xdrs, &objp->fi_permissions)) 390*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 391*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_uint32_t(xdrs, &objp->fi_numlocks)) 392*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 393*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_uint32_t(xdrs, &objp->fi_pathlen)) 394*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 395*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_uint32_t(xdrs, &objp->fi_namelen)) 396*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 397*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_string(xdrs, &objp->fi_path, MAXPATHLEN)) 398*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 399*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_string(xdrs, &objp->fi_username, MAXNAMELEN)) 400*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 401*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (TRUE); 402*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } 403*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 404*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States bool_t 405*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States smb_dr_kshare_xdr(XDR *xdrs, smb_dr_kshare_t *objp) 406*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States { 407*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_int32_t(xdrs, &objp->k_op)) 408*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 409*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_string(xdrs, &objp->k_path, MAXPATHLEN)) 410*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 411*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_string(xdrs, &objp->k_sharename, MAXNAMELEN)) 412*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 413*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (TRUE); 414*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } 415*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 416*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States bool_t 417*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States smb_gmttoken_query_xdr(XDR *xdrs, smb_gmttoken_query_t *objp) 418*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States { 419*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_uint32_t(xdrs, &objp->gtq_count)) { 420*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 421*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } 422*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_string(xdrs, &objp->gtq_path, ~0)) { 423*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 424*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } 425*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (TRUE); 426*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } 427*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 428*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States static bool_t 429*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States smb_gmttoken_xdr(XDR *xdrs, smb_gmttoken_t *objp) 430*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States { 431*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_string(xdrs, objp, SMB_VSS_GMT_SIZE)) { 432*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 433*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } 434*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (TRUE); 435*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } 436*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 437*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States bool_t 438*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States smb_gmttoken_response_xdr(XDR *xdrs, smb_gmttoken_response_t *objp) 439*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States { 440*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_uint32_t(xdrs, &objp->gtr_count)) { 441*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 442*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } 443*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_array(xdrs, (char **)&objp->gtr_gmttokens.gtr_gmttokens_val, 444*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States (uint_t *)&objp->gtr_gmttokens.gtr_gmttokens_len, ~0, 445*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States sizeof (smb_gmttoken_t), (xdrproc_t)smb_gmttoken_xdr)) { 446*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 447*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } 448*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (TRUE); 449*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } 450*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 451*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States bool_t 452*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States smb_gmttoken_snapname_xdr(XDR *xdrs, smb_gmttoken_snapname_t *objp) 453*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States { 454*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_string(xdrs, &objp->gts_path, MAXPATHLEN)) { 455*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 456*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } 457*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_string(xdrs, &objp->gts_gmttoken, SMB_VSS_GMT_SIZE)) { 458*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 459*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } 460*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (TRUE); 461*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } 462*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 463*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States bool_t 464*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States smb_quota_xdr(XDR *xdrs, smb_quota_t *objp) 465*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States { 466*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_vector(xdrs, (char *)objp->q_sidstr, SMB_SID_STRSZ, 467*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States sizeof (char), (xdrproc_t)xdr_char)) 468*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 469*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_uint32_t(xdrs, &objp->q_sidtype)) 470*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 471*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_uint64_t(xdrs, &objp->q_used)) 472*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 473*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_uint64_t(xdrs, &objp->q_thresh)) 474*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 475*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_uint64_t(xdrs, &objp->q_limit)) 476*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 477*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 478*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (TRUE); 479*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } 480*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 481*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States bool_t 482*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States smb_quota_sid_xdr(XDR *xdrs, smb_quota_sid_t *objp) 483*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States { 484*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_vector(xdrs, (char *)objp->qs_sidstr, SMB_SID_STRSZ, 485*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States sizeof (char), (xdrproc_t)xdr_char)) 486*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 487*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (TRUE); 488*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } 489*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 490*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States bool_t 491*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States smb_quota_query_xdr(XDR *xdrs, smb_quota_query_t *objp) 492*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States { 493*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_string(xdrs, &objp->qq_root_path, ~0)) 494*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 495*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_uint32_t(xdrs, &objp->qq_query_op)) 496*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 497*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_bool(xdrs, &objp->qq_single)) 498*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 499*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_bool(xdrs, &objp->qq_restart)) 500*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 501*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_uint32_t(xdrs, &objp->qq_max_quota)) 502*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 503*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!smb_list_xdr(xdrs, &objp->qq_sid_list, 504*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States offsetof(smb_quota_sid_t, qs_list_node), 505*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States sizeof (smb_quota_sid_t), (xdrproc_t)smb_quota_sid_xdr)) 506*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 507*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 508*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (TRUE); 509*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } 510*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 511*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States bool_t 512*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States smb_quota_response_xdr(XDR *xdrs, smb_quota_response_t *objp) 513*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States { 514*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_uint32_t(xdrs, &objp->qr_status)) 515*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 516*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!smb_list_xdr(xdrs, &objp->qr_quota_list, 517*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States offsetof(smb_quota_t, q_list_node), 518*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States sizeof (smb_quota_t), (xdrproc_t)smb_quota_xdr)) 519*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 520*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (TRUE); 521*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } 522*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 523*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States bool_t 524*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States smb_quota_set_xdr(XDR *xdrs, smb_quota_set_t *objp) 525*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States { 526*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_string(xdrs, &objp->qs_root_path, ~0)) 527*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 528*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!smb_list_xdr(xdrs, &objp->qs_quota_list, 529*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States offsetof(smb_quota_t, q_list_node), 530*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States sizeof (smb_quota_t), (xdrproc_t)smb_quota_xdr)) 531*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 532*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (TRUE); 533*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } 534*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 535*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States /* 536*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * XDR a list_t list of elements 537*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * offset - offset of list_node_t in list element 538*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * elsize - size of list element 539*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * elproc - XDR function for the list element 540*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States */ 541*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States bool_t 542*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States smb_list_xdr(XDR *xdrs, list_t *list, const size_t offset, 543*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States const size_t elsize, const xdrproc_t elproc) 544*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States { 545*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States void *node; 546*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States uint32_t count = 0; 547*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 548*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States switch (xdrs->x_op) { 549*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States case XDR_ENCODE: 550*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States node = list_head(list); 551*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States while (node) { 552*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States ++count; 553*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States node = list_next(list, node); 554*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } 555*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_uint32_t(xdrs, &count)) 556*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 557*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 558*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States node = list_head(list); 559*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States while (node) { 560*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!elproc(xdrs, node)) 561*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 562*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States node = list_next(list, node); 563*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } 564*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (TRUE); 565*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 566*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States case XDR_DECODE: 567*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_uint32_t(xdrs, &count)) 568*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 569*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States list_create(list, elsize, offset); 570*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States while (count) { 571*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States node = MEM_MALLOC("xdr", elsize); 572*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (node == NULL) 573*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 574*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!elproc(xdrs, node)) 575*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 576*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States list_insert_tail(list, node); 577*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States --count; 578*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } 579*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (TRUE); 580*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 581*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States case XDR_FREE: 582*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States while ((node = list_head(list)) != NULL) { 583*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States list_remove(list, node); 584*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States (void) elproc(xdrs, node); 585*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States MEM_FREE("xdr", node); 586*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } 587*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States list_destroy(list); 588*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (TRUE); 589*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } 590*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 591*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 592*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } 593*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 594*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States bool_t 595*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States dfs_target_pclass_xdr(XDR *xdrs, dfs_target_pclass_t *objp) 596*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States { 597*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (xdr_enum(xdrs, (enum_t *)objp)); 598*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } 599*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 600*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States bool_t 601*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States dfs_target_priority_xdr(XDR *xdrs, dfs_target_priority_t *objp) 602*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States { 603*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!dfs_target_pclass_xdr(xdrs, &objp->p_class)) 604*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 605*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 606*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_uint16_t(xdrs, &objp->p_rank)) 607*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 608*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 609*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (TRUE); 610*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } 611*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 612*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States bool_t 613*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States dfs_target_xdr(XDR *xdrs, dfs_target_t *objp) 614*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States { 615*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_vector(xdrs, (char *)objp->t_server, DFS_SRVNAME_MAX, 616*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States sizeof (char), (xdrproc_t)xdr_char)) 617*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 618*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 619*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_vector(xdrs, (char *)objp->t_share, DFS_NAME_MAX, 620*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States sizeof (char), (xdrproc_t)xdr_char)) 621*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 622*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 623*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_uint32_t(xdrs, &objp->t_state)) 624*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 625*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 626*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!dfs_target_priority_xdr(xdrs, &objp->t_priority)) 627*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 628*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 629*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (TRUE); 630*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } 631*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 632*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States bool_t 633*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States dfs_reftype_xdr(XDR *xdrs, dfs_reftype_t *objp) 634*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States { 635*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (xdr_enum(xdrs, (enum_t *)objp)); 636*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } 637*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 638*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States bool_t 639*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States dfs_info_xdr(XDR *xdrs, dfs_info_t *objp) 640*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States { 641*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_vector(xdrs, (char *)objp->i_uncpath, DFS_PATH_MAX, 642*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States sizeof (char), (xdrproc_t)xdr_char)) 643*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 644*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 645*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_vector(xdrs, (char *)objp->i_comment, DFS_COMMENT_MAX, 646*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States sizeof (char), (xdrproc_t)xdr_char)) 647*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 648*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 649*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_vector(xdrs, (char *)objp->i_guid, 650*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States UUID_PRINTABLE_STRING_LENGTH, sizeof (char), (xdrproc_t)xdr_char)) 651*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 652*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 653*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_uint32_t(xdrs, &objp->i_state)) 654*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 655*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 656*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_uint32_t(xdrs, &objp->i_timeout)) 657*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 658*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 659*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_uint32_t(xdrs, &objp->i_propflags)) 660*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 661*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 662*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_uint32_t(xdrs, &objp->i_type)) 663*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 664*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 665*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_array(xdrs, (char **)&objp->i_targets, 666*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States (uint32_t *)&objp->i_ntargets, ~0, sizeof (dfs_target_t), 667*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States (xdrproc_t)dfs_target_xdr)) 668*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 669*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 670*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (TRUE); 671*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } 672*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 673*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States bool_t 674*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States dfs_referral_query_xdr(XDR *xdrs, dfs_referral_query_t *objp) 675*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States { 676*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!dfs_reftype_xdr(xdrs, &objp->rq_type)) 677*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 678*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 679*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_string(xdrs, &objp->rq_path, ~0)) 680*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 681*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 682*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (TRUE); 683*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } 684*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 685*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States bool_t 686*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States dfs_referral_response_xdr(XDR *xdrs, dfs_referral_response_t *objp) 687*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States { 688*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!dfs_info_xdr(xdrs, &objp->rp_referrals)) 689*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 690*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 691*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_uint32_t(xdrs, &objp->rp_status)) 692*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 693*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 694*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (TRUE); 695*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } 696