19fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States /* 29fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * CDDL HEADER START 39fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * 49fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * The contents of this file are subject to the terms of the 59fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * Common Development and Distribution License (the "License"). 69fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * You may not use this file except in compliance with the License. 79fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * 89fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 99fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * or http://www.opensolaris.org/os/licensing. 109fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * See the License for the specific language governing permissions 119fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * and limitations under the License. 129fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * 139fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * When distributing Covered Code, include this CDDL HEADER in each 149fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 159fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * If applicable, add the following below this CDDL HEADER, with the 169fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * fields enclosed by brackets "[]" replaced with your own identifying 179fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * information: Portions Copyright [yyyy] [name of copyright owner] 189fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * 199fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * CDDL HEADER END 209fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States */ 219fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States /* 22c5866007SKeyur Desai * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. 239fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States */ 249fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 259fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States #include <sys/sunddi.h> 269fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States #ifndef _KERNEL 279fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States #include <string.h> 289fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States #include <strings.h> 299fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States #include <stddef.h> 309fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States #endif /* _KERNEL */ 319fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States #include <smbsrv/smb_door.h> 329fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States #include <smbsrv/alloc.h> 339fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States #include <sys/socket.h> 349fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States #include <sys/sysmacros.h> 359fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 369fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States #define SMB_XDRMAX32_SZ 0xFFFFFFFF 379fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 389fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States bool_t smb_list_xdr(XDR *, list_t *, const size_t, const size_t, 399fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States const xdrproc_t); 409fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 419fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States bool_t 429fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States smb_buf32_xdr(XDR *xdrs, smb_buf32_t *objp) 439fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States { 449fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States uint_t maxsize = SMB_XDRMAX32_SZ; 459fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States uint_t size; 469fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 479fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (xdrs->x_op != XDR_DECODE) 489fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States maxsize = size = (uint_t)objp->len; 499fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 509fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (xdr_bytes(xdrs, (char **)&objp->val, &size, maxsize)) { 519fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (xdrs->x_op == XDR_DECODE) 529fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States objp->len = (uint32_t)size; 539fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (TRUE); 549fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } 559fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 569fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 579fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } 589fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 599fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States /* 609fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * When decoding into a string, ensure that objp->buf is NULL or 619fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * is pointing at a buffer large enough to receive the string. 629fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * Don't leave it as an uninitialized pointer. 639fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * 649fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * If objp->buf is NULL, xdr_string will allocate memory for the 659fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * string. Otherwise it will copy into the available buffer. 669fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States */ 679fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States bool_t 689fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States smb_string_xdr(XDR *xdrs, smb_string_t *objp) 699fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States { 709fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_string(xdrs, &objp->buf, ~0)) 719fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 729fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (TRUE); 739fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } 749fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 759fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States const char * 769fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States smb_doorhdr_opname(uint32_t op) 779fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States { 789fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States struct { 799fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States uint32_t op; 809fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States const char *name; 819fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } ops[] = { 829fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States { SMB_DR_NULL, "null" }, 839fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States { SMB_DR_ASYNC_RESPONSE, "async_response" }, 849fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States { SMB_DR_USER_AUTH_LOGON, "user_auth_logon" }, 859fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States { SMB_DR_USER_NONAUTH_LOGON, "user_nonauth_logon" }, 869fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States { SMB_DR_USER_AUTH_LOGOFF, "user_auth_logoff" }, 879fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States { SMB_DR_LOOKUP_SID, "lookup_sid" }, 889fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States { SMB_DR_LOOKUP_NAME, "lookup_name" }, 899fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States { SMB_DR_JOIN, "join" }, 909fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States { SMB_DR_GET_DCINFO, "get_dcinfo" }, 919fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States { SMB_DR_VSS_GET_COUNT, "vss_get_count" }, 929fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States { SMB_DR_VSS_GET_SNAPSHOTS, "vss_get_snapshots" }, 939fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States { SMB_DR_VSS_MAP_GMTTOKEN, "vss_map_gmttoken" }, 949fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States { SMB_DR_ADS_FIND_HOST, "ads_find_host" }, 959fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States { SMB_DR_QUOTA_QUERY, "quota_query" }, 969fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States { SMB_DR_QUOTA_SET, "quota_set" }, 97*148c5f43SAlan Wright { SMB_DR_DFS_GET_REFERRALS, "dfs_get_referrals" }, 98*148c5f43SAlan Wright { SMB_DR_SHR_HOSTACCESS, "share_hostaccess" }, 99*148c5f43SAlan Wright { SMB_DR_SHR_EXEC, "share_exec" } 1009fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States }; 1019fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States int i; 1029fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 1039fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States for (i = 0; i < (sizeof (ops) / sizeof (ops[0])); ++i) { 1049fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (ops[i].op == op) 1059fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (ops[i].name); 1069fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } 1079fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 1089fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return ("unknown"); 1099fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } 1109fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 1119fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States /* 1129fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * Encode a door header structure into an XDR buffer. 1139fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States */ 1149fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States int 1159fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States smb_doorhdr_encode(smb_doorhdr_t *hdr, uint8_t *buf, uint32_t buflen) 1169fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States { 1179fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States XDR xdrs; 1189fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States int rc = 0; 1199fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 1209fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States xdrmem_create(&xdrs, (const caddr_t)buf, buflen, XDR_ENCODE); 1219fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 1229fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!smb_doorhdr_xdr(&xdrs, hdr)) 1239fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States rc = -1; 1249fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 1259fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States xdr_destroy(&xdrs); 1269fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (rc); 1279fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } 1289fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 1299fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States /* 1309fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * Decode an XDR buffer into a door header structure. 1319fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States */ 1329fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States int 1339fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States smb_doorhdr_decode(smb_doorhdr_t *hdr, uint8_t *buf, uint32_t buflen) 1349fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States { 1359fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States XDR xdrs; 1369fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States int rc = 0; 1379fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 1389fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States bzero(hdr, sizeof (smb_doorhdr_t)); 1399fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States xdrmem_create(&xdrs, (const caddr_t)buf, buflen, XDR_DECODE); 1409fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 1419fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!smb_doorhdr_xdr(&xdrs, hdr)) 1429fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States rc = -1; 1439fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 1449fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States xdr_destroy(&xdrs); 1459fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (rc); 1469fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } 1479fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 1489fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States bool_t 1499fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States smb_doorhdr_xdr(XDR *xdrs, smb_doorhdr_t *objp) 1509fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States { 1519fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_uint32_t(xdrs, &objp->dh_magic)) 1529fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 1539fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_uint32_t(xdrs, &objp->dh_flags)) 1549fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 1559fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_uint32_t(xdrs, &objp->dh_fid)) 1569fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 1579fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_uint32_t(xdrs, &objp->dh_op)) 1589fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 1599fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_uint32_t(xdrs, &objp->dh_txid)) 1609fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 1619fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_uint32_t(xdrs, &objp->dh_datalen)) 1629fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 1639fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_uint32_t(xdrs, &objp->dh_resid)) 1649fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 1659fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_uint32_t(xdrs, &objp->dh_door_rc)) 1669fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 1679fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_uint32_t(xdrs, &objp->dh_status)) 1689fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 1699fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (TRUE); 1709fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } 1719fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 1729fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States /* 1739fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * Encode an smb_netuserinfo_t into a buffer. 1749fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States */ 1759fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States int 1769fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States smb_netuserinfo_encode(smb_netuserinfo_t *info, uint8_t *buf, 1779fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States uint32_t buflen, uint_t *nbytes) 1789fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States { 1799fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States XDR xdrs; 1809fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States int rc = 0; 1819fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 1829fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States xdrmem_create(&xdrs, (const caddr_t)buf, buflen, XDR_ENCODE); 1839fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 1849fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!smb_netuserinfo_xdr(&xdrs, info)) 1859fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States rc = -1; 1869fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 1879fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (nbytes != NULL) 1889fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States *nbytes = xdr_getpos(&xdrs); 1899fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States xdr_destroy(&xdrs); 1909fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (rc); 1919fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } 1929fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 1939fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States /* 1949fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * Decode an XDR buffer into an smb_netuserinfo_t. 1959fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States */ 1969fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States int 1979fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States smb_netuserinfo_decode(smb_netuserinfo_t *info, uint8_t *buf, 1989fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States uint32_t buflen, uint_t *nbytes) 1999fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States { 2009fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States XDR xdrs; 2019fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States int rc = 0; 2029fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 2039fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States xdrmem_create(&xdrs, (const caddr_t)buf, buflen, XDR_DECODE); 2049fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 2059fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States bzero(info, sizeof (smb_netuserinfo_t)); 2069fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!smb_netuserinfo_xdr(&xdrs, info)) 2079fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States rc = -1; 2089fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 2099fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (nbytes != NULL) 2109fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States *nbytes = xdr_getpos(&xdrs); 2119fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States xdr_destroy(&xdrs); 2129fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (rc); 2139fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } 2149fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 2159fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States bool_t 2169fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States smb_inaddr_xdr(XDR *xdrs, smb_inaddr_t *objp) 2179fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States { 2189fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_int32_t(xdrs, &objp->a_family)) 2199fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 2209fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (objp->a_family == AF_INET) { 2219fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_uint32_t(xdrs, (in_addr_t *)&objp->a_ipv4)) 2229fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 2239fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } else { 2249fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_vector(xdrs, (char *)&objp->a_ipv6, 2259fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States sizeof (objp->a_ipv6), sizeof (char), (xdrproc_t)xdr_char)) 2269fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 2279fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } 2289fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (TRUE); 2299fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } 2309fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 2319fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States /* 2329fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * XDR encode/decode for smb_netuserinfo_t. 2339fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States */ 2349fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States bool_t 2359fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States smb_netuserinfo_xdr(XDR *xdrs, smb_netuserinfo_t *objp) 2369fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States { 2379fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_uint64_t(xdrs, &objp->ui_session_id)) 2389fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 239c5866007SKeyur Desai if (!xdr_uint16_t(xdrs, &objp->ui_smb_uid)) 2409fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 2419fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_uint16_t(xdrs, &objp->ui_domain_len)) 2429fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 2439fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_string(xdrs, &objp->ui_domain, ~0)) 2449fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 2459fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_uint16_t(xdrs, &objp->ui_account_len)) 2469fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 2479fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_string(xdrs, &objp->ui_account, ~0)) 2489fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 249c5866007SKeyur Desai if (!xdr_uint32_t(xdrs, &objp->ui_posix_uid)) 250c5866007SKeyur Desai return (FALSE); 2519fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_uint16_t(xdrs, &objp->ui_workstation_len)) 2529fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 2539fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_string(xdrs, &objp->ui_workstation, ~0)) 2549fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 2559fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!smb_inaddr_xdr(xdrs, &objp->ui_ipaddr)) 2569fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 2579fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_int32_t(xdrs, &objp->ui_native_os)) 2589fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 2599fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_int64_t(xdrs, &objp->ui_logon_time)) 2609fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 2619fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_uint32_t(xdrs, &objp->ui_numopens)) 2629fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 2639fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_uint32_t(xdrs, &objp->ui_flags)) 2649fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 2659fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (TRUE); 2669fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } 2679fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 2689fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States /* 2699fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * Encode an smb_netconnectinfo_t into a buffer. 2709fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States */ 2719fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States int 2729fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States smb_netconnectinfo_encode(smb_netconnectinfo_t *info, uint8_t *buf, 2739fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States uint32_t buflen, uint_t *nbytes) 2749fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States { 2759fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States XDR xdrs; 2769fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States int rc = 0; 2779fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 2789fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States xdrmem_create(&xdrs, (const caddr_t)buf, buflen, XDR_ENCODE); 2799fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 2809fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!smb_netconnectinfo_xdr(&xdrs, info)) 2819fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States rc = -1; 2829fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 2839fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (nbytes != NULL) 2849fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States *nbytes = xdr_getpos(&xdrs); 2859fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States xdr_destroy(&xdrs); 2869fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (rc); 2879fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } 2889fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 2899fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States /* 2909fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * Decode an XDR buffer into an smb_netconnectinfo_t. 2919fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States */ 2929fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States int 2939fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States smb_netconnectinfo_decode(smb_netconnectinfo_t *info, uint8_t *buf, 2949fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States uint32_t buflen, uint_t *nbytes) 2959fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States { 2969fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States XDR xdrs; 2979fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States int rc = 0; 2989fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 2999fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States xdrmem_create(&xdrs, (const caddr_t)buf, buflen, XDR_DECODE); 3009fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 3019fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States bzero(info, sizeof (smb_netconnectinfo_t)); 3029fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!smb_netconnectinfo_xdr(&xdrs, info)) 3039fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States rc = -1; 3049fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 3059fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (nbytes != NULL) 3069fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States *nbytes = xdr_getpos(&xdrs); 3079fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States xdr_destroy(&xdrs); 3089fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (rc); 3099fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } 3109fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 3119fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States /* 3129fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * XDR encode/decode for smb_netconnectinfo_t. 3139fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States */ 3149fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States bool_t 3159fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States smb_netconnectinfo_xdr(XDR *xdrs, smb_netconnectinfo_t *objp) 3169fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States { 3179fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_uint32_t(xdrs, &objp->ci_id)) 3189fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 3199fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_uint32_t(xdrs, &objp->ci_type)) 3209fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 3219fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_uint32_t(xdrs, &objp->ci_numopens)) 3229fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 3239fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_uint32_t(xdrs, &objp->ci_numusers)) 3249fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 3259fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_uint32_t(xdrs, &objp->ci_time)) 3269fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 3279fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_uint32_t(xdrs, &objp->ci_namelen)) 3289fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 3299fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_uint32_t(xdrs, &objp->ci_sharelen)) 3309fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 3319fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_string(xdrs, &objp->ci_username, MAXNAMELEN)) 3329fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 3339fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_string(xdrs, &objp->ci_share, MAXNAMELEN)) 3349fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 3359fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (TRUE); 3369fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } 3379fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 3389fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States /* 3399fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * Encode an smb_netfileinfo_t into a buffer. 3409fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States */ 3419fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States int 3429fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States smb_netfileinfo_encode(smb_netfileinfo_t *info, uint8_t *buf, 3439fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States uint32_t buflen, uint_t *nbytes) 3449fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States { 3459fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States XDR xdrs; 3469fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States int rc = 0; 3479fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 3489fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States xdrmem_create(&xdrs, (const caddr_t)buf, buflen, XDR_ENCODE); 3499fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 3509fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!smb_netfileinfo_xdr(&xdrs, info)) 3519fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States rc = -1; 3529fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 3539fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (nbytes != NULL) 3549fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States *nbytes = xdr_getpos(&xdrs); 3559fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States xdr_destroy(&xdrs); 3569fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (rc); 3579fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } 3589fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 3599fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States /* 3609fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * Decode an XDR buffer into an smb_netfileinfo_t. 3619fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States */ 3629fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States int 3639fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States smb_netfileinfo_decode(smb_netfileinfo_t *info, uint8_t *buf, 3649fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States uint32_t buflen, uint_t *nbytes) 3659fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States { 3669fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States XDR xdrs; 3679fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States int rc = 0; 3689fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 3699fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States xdrmem_create(&xdrs, (const caddr_t)buf, buflen, XDR_DECODE); 3709fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 3719fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States bzero(info, sizeof (smb_netfileinfo_t)); 3729fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!smb_netfileinfo_xdr(&xdrs, info)) 3739fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States rc = -1; 3749fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 3759fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (nbytes != NULL) 3769fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States *nbytes = xdr_getpos(&xdrs); 3779fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States xdr_destroy(&xdrs); 3789fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (rc); 3799fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } 3809fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 3819fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States /* 3829fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * XDR encode/decode for smb_netfileinfo_t. 3839fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States */ 3849fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States bool_t 3859fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States smb_netfileinfo_xdr(XDR *xdrs, smb_netfileinfo_t *objp) 3869fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States { 3879fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_uint16_t(xdrs, &objp->fi_fid)) 3889fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 3899fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_uint32_t(xdrs, &objp->fi_uniqid)) 3909fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 3919fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_uint32_t(xdrs, &objp->fi_permissions)) 3929fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 3939fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_uint32_t(xdrs, &objp->fi_numlocks)) 3949fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 3959fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_uint32_t(xdrs, &objp->fi_pathlen)) 3969fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 3979fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_uint32_t(xdrs, &objp->fi_namelen)) 3989fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 3999fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_string(xdrs, &objp->fi_path, MAXPATHLEN)) 4009fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 4019fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_string(xdrs, &objp->fi_username, MAXNAMELEN)) 4029fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 4039fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (TRUE); 4049fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } 4059fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 4069fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States bool_t 4079fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States smb_gmttoken_query_xdr(XDR *xdrs, smb_gmttoken_query_t *objp) 4089fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States { 4099fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_uint32_t(xdrs, &objp->gtq_count)) { 4109fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 4119fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } 4129fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_string(xdrs, &objp->gtq_path, ~0)) { 4139fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 4149fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } 4159fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (TRUE); 4169fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } 4179fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 4189fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States static bool_t 4199fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States smb_gmttoken_xdr(XDR *xdrs, smb_gmttoken_t *objp) 4209fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States { 4219fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_string(xdrs, objp, SMB_VSS_GMT_SIZE)) { 4229fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 4239fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } 4249fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (TRUE); 4259fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } 4269fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 4279fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States bool_t 4289fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States smb_gmttoken_response_xdr(XDR *xdrs, smb_gmttoken_response_t *objp) 4299fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States { 4309fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_uint32_t(xdrs, &objp->gtr_count)) { 4319fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 4329fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } 4339fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_array(xdrs, (char **)&objp->gtr_gmttokens.gtr_gmttokens_val, 4349fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States (uint_t *)&objp->gtr_gmttokens.gtr_gmttokens_len, ~0, 4359fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States sizeof (smb_gmttoken_t), (xdrproc_t)smb_gmttoken_xdr)) { 4369fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 4379fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } 4389fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (TRUE); 4399fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } 4409fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 4419fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States bool_t 4429fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States smb_gmttoken_snapname_xdr(XDR *xdrs, smb_gmttoken_snapname_t *objp) 4439fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States { 4449fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_string(xdrs, &objp->gts_path, MAXPATHLEN)) { 4459fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 4469fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } 4479fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_string(xdrs, &objp->gts_gmttoken, SMB_VSS_GMT_SIZE)) { 4489fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 4499fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } 4509fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (TRUE); 4519fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } 4529fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 4539fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States bool_t 4549fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States smb_quota_xdr(XDR *xdrs, smb_quota_t *objp) 4559fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States { 4569fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_vector(xdrs, (char *)objp->q_sidstr, SMB_SID_STRSZ, 4579fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States sizeof (char), (xdrproc_t)xdr_char)) 4589fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 4599fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_uint32_t(xdrs, &objp->q_sidtype)) 4609fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 4619fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_uint64_t(xdrs, &objp->q_used)) 4629fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 4639fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_uint64_t(xdrs, &objp->q_thresh)) 4649fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 4659fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_uint64_t(xdrs, &objp->q_limit)) 4669fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 4679fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 4689fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (TRUE); 4699fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } 4709fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 4719fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States bool_t 4729fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States smb_quota_sid_xdr(XDR *xdrs, smb_quota_sid_t *objp) 4739fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States { 4749fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_vector(xdrs, (char *)objp->qs_sidstr, SMB_SID_STRSZ, 4759fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States sizeof (char), (xdrproc_t)xdr_char)) 4769fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 4779fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (TRUE); 4789fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } 4799fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 4809fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States bool_t 4819fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States smb_quota_query_xdr(XDR *xdrs, smb_quota_query_t *objp) 4829fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States { 4839fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_string(xdrs, &objp->qq_root_path, ~0)) 4849fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 4859fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_uint32_t(xdrs, &objp->qq_query_op)) 4869fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 4879fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_bool(xdrs, &objp->qq_single)) 4889fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 4899fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_bool(xdrs, &objp->qq_restart)) 4909fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 4919fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_uint32_t(xdrs, &objp->qq_max_quota)) 4929fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 4939fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!smb_list_xdr(xdrs, &objp->qq_sid_list, 4949fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States offsetof(smb_quota_sid_t, qs_list_node), 4959fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States sizeof (smb_quota_sid_t), (xdrproc_t)smb_quota_sid_xdr)) 4969fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 4979fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 4989fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (TRUE); 4999fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } 5009fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 5019fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States bool_t 5029fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States smb_quota_response_xdr(XDR *xdrs, smb_quota_response_t *objp) 5039fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States { 5049fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_uint32_t(xdrs, &objp->qr_status)) 5059fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 5069fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!smb_list_xdr(xdrs, &objp->qr_quota_list, 5079fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States offsetof(smb_quota_t, q_list_node), 5089fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States sizeof (smb_quota_t), (xdrproc_t)smb_quota_xdr)) 5099fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 5109fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (TRUE); 5119fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } 5129fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 5139fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States bool_t 5149fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States smb_quota_set_xdr(XDR *xdrs, smb_quota_set_t *objp) 5159fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States { 5169fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_string(xdrs, &objp->qs_root_path, ~0)) 5179fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 5189fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!smb_list_xdr(xdrs, &objp->qs_quota_list, 5199fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States offsetof(smb_quota_t, q_list_node), 5209fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States sizeof (smb_quota_t), (xdrproc_t)smb_quota_xdr)) 5219fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 5229fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (TRUE); 5239fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } 5249fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 5259fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States /* 5269fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * XDR a list_t list of elements 5279fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * offset - offset of list_node_t in list element 5289fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * elsize - size of list element 5299fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * elproc - XDR function for the list element 5309fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States */ 5319fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States bool_t 5329fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States smb_list_xdr(XDR *xdrs, list_t *list, const size_t offset, 5339fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States const size_t elsize, const xdrproc_t elproc) 5349fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States { 5359fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States void *node; 5369fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States uint32_t count = 0; 5379fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 5389fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States switch (xdrs->x_op) { 5399fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States case XDR_ENCODE: 5409fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States node = list_head(list); 5419fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States while (node) { 5429fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States ++count; 5439fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States node = list_next(list, node); 5449fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } 5459fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_uint32_t(xdrs, &count)) 5469fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 5479fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 5489fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States node = list_head(list); 5499fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States while (node) { 5509fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!elproc(xdrs, node)) 5519fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 5529fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States node = list_next(list, node); 5539fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } 5549fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (TRUE); 5559fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 5569fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States case XDR_DECODE: 5579fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_uint32_t(xdrs, &count)) 5589fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 5599fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States list_create(list, elsize, offset); 5609fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States while (count) { 5619fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States node = MEM_MALLOC("xdr", elsize); 5629fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (node == NULL) 5639fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 5649fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!elproc(xdrs, node)) 5659fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 5669fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States list_insert_tail(list, node); 5679fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States --count; 5689fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } 5699fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (TRUE); 5709fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 5719fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States case XDR_FREE: 5729fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States while ((node = list_head(list)) != NULL) { 5739fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States list_remove(list, node); 5749fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States (void) elproc(xdrs, node); 5759fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States MEM_FREE("xdr", node); 5769fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } 5779fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States list_destroy(list); 5789fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (TRUE); 5799fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } 5809fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 5819fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 5829fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } 5839fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 5849fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States bool_t 5859fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States dfs_target_pclass_xdr(XDR *xdrs, dfs_target_pclass_t *objp) 5869fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States { 5879fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (xdr_enum(xdrs, (enum_t *)objp)); 5889fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } 5899fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 5909fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States bool_t 5919fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States dfs_target_priority_xdr(XDR *xdrs, dfs_target_priority_t *objp) 5929fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States { 5939fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!dfs_target_pclass_xdr(xdrs, &objp->p_class)) 5949fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 5959fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 5969fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_uint16_t(xdrs, &objp->p_rank)) 5979fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 5989fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 5999fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (TRUE); 6009fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } 6019fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 6029fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States bool_t 6039fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States dfs_target_xdr(XDR *xdrs, dfs_target_t *objp) 6049fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States { 6059fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_vector(xdrs, (char *)objp->t_server, DFS_SRVNAME_MAX, 6069fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States sizeof (char), (xdrproc_t)xdr_char)) 6079fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 6089fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 6099fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_vector(xdrs, (char *)objp->t_share, DFS_NAME_MAX, 6109fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States sizeof (char), (xdrproc_t)xdr_char)) 6119fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 6129fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 6139fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_uint32_t(xdrs, &objp->t_state)) 6149fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 6159fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 6169fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!dfs_target_priority_xdr(xdrs, &objp->t_priority)) 6179fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 6189fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 6199fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (TRUE); 6209fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } 6219fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 6229fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States bool_t 6239fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States dfs_reftype_xdr(XDR *xdrs, dfs_reftype_t *objp) 6249fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States { 6259fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (xdr_enum(xdrs, (enum_t *)objp)); 6269fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } 6279fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 6289fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States bool_t 6299fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States dfs_info_xdr(XDR *xdrs, dfs_info_t *objp) 6309fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States { 6319fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_vector(xdrs, (char *)objp->i_uncpath, DFS_PATH_MAX, 6329fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States sizeof (char), (xdrproc_t)xdr_char)) 6339fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 6349fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 6359fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_vector(xdrs, (char *)objp->i_comment, DFS_COMMENT_MAX, 6369fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States sizeof (char), (xdrproc_t)xdr_char)) 6379fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 6389fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 6399fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_vector(xdrs, (char *)objp->i_guid, 6409fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States UUID_PRINTABLE_STRING_LENGTH, sizeof (char), (xdrproc_t)xdr_char)) 6419fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 6429fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 6439fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_uint32_t(xdrs, &objp->i_state)) 6449fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 6459fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 6469fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_uint32_t(xdrs, &objp->i_timeout)) 6479fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 6489fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 6499fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_uint32_t(xdrs, &objp->i_propflags)) 6509fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 6519fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 6529fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_uint32_t(xdrs, &objp->i_type)) 6539fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 6549fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 6559fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_array(xdrs, (char **)&objp->i_targets, 6569fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States (uint32_t *)&objp->i_ntargets, ~0, sizeof (dfs_target_t), 6579fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States (xdrproc_t)dfs_target_xdr)) 6589fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 6599fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 6609fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (TRUE); 6619fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } 6629fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 6639fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States bool_t 6649fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States dfs_referral_query_xdr(XDR *xdrs, dfs_referral_query_t *objp) 6659fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States { 6669fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!dfs_reftype_xdr(xdrs, &objp->rq_type)) 6679fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 6689fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 6699fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_string(xdrs, &objp->rq_path, ~0)) 6709fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 6719fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 6729fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (TRUE); 6739fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } 6749fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 6759fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States bool_t 6769fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States dfs_referral_response_xdr(XDR *xdrs, dfs_referral_response_t *objp) 6779fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States { 6789fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!dfs_info_xdr(xdrs, &objp->rp_referrals)) 6799fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 6809fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 6819fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States if (!xdr_uint32_t(xdrs, &objp->rp_status)) 6829fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (FALSE); 6839fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 6849fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States return (TRUE); 6859fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } 686*148c5f43SAlan Wright 687*148c5f43SAlan Wright bool_t 688*148c5f43SAlan Wright smb_shr_hostaccess_query_xdr(XDR *xdrs, smb_shr_hostaccess_query_t *objp) 689*148c5f43SAlan Wright { 690*148c5f43SAlan Wright if (!xdr_string(xdrs, &objp->shq_none, ~0)) 691*148c5f43SAlan Wright return (FALSE); 692*148c5f43SAlan Wright 693*148c5f43SAlan Wright if (!xdr_string(xdrs, &objp->shq_ro, ~0)) 694*148c5f43SAlan Wright return (FALSE); 695*148c5f43SAlan Wright 696*148c5f43SAlan Wright if (!xdr_string(xdrs, &objp->shq_rw, ~0)) 697*148c5f43SAlan Wright return (FALSE); 698*148c5f43SAlan Wright 699*148c5f43SAlan Wright if (!xdr_uint32_t(xdrs, &objp->shq_flag)) 700*148c5f43SAlan Wright return (FALSE); 701*148c5f43SAlan Wright 702*148c5f43SAlan Wright if (!smb_inaddr_xdr(xdrs, &objp->shq_ipaddr)) 703*148c5f43SAlan Wright return (FALSE); 704*148c5f43SAlan Wright 705*148c5f43SAlan Wright return (TRUE); 706*148c5f43SAlan Wright } 707*148c5f43SAlan Wright 708*148c5f43SAlan Wright bool_t 709*148c5f43SAlan Wright smb_shr_execinfo_xdr(XDR *xdrs, smb_shr_execinfo_t *objp) 710*148c5f43SAlan Wright { 711*148c5f43SAlan Wright if (!xdr_string(xdrs, &objp->e_sharename, ~0)) 712*148c5f43SAlan Wright return (FALSE); 713*148c5f43SAlan Wright 714*148c5f43SAlan Wright if (!xdr_string(xdrs, &objp->e_winname, ~0)) 715*148c5f43SAlan Wright return (FALSE); 716*148c5f43SAlan Wright 717*148c5f43SAlan Wright if (!xdr_string(xdrs, &objp->e_userdom, ~0)) 718*148c5f43SAlan Wright return (FALSE); 719*148c5f43SAlan Wright 720*148c5f43SAlan Wright if (!smb_inaddr_xdr(xdrs, &objp->e_srv_ipaddr)) 721*148c5f43SAlan Wright return (FALSE); 722*148c5f43SAlan Wright 723*148c5f43SAlan Wright if (!smb_inaddr_xdr(xdrs, &objp->e_cli_ipaddr)) 724*148c5f43SAlan Wright return (FALSE); 725*148c5f43SAlan Wright 726*148c5f43SAlan Wright if (!xdr_string(xdrs, &objp->e_cli_netbiosname, ~0)) 727*148c5f43SAlan Wright return (FALSE); 728*148c5f43SAlan Wright 729*148c5f43SAlan Wright if (!xdr_u_int(xdrs, &objp->e_uid)) 730*148c5f43SAlan Wright return (FALSE); 731*148c5f43SAlan Wright 732*148c5f43SAlan Wright if (!xdr_int(xdrs, &objp->e_type)) 733*148c5f43SAlan Wright return (FALSE); 734*148c5f43SAlan Wright 735*148c5f43SAlan Wright return (TRUE); 736*148c5f43SAlan Wright } 737