861 nfsauth_globals_t *nag;
862 struct netbuf *taddrmask;
863 struct netbuf addr; /* temporary copy of client's address */
864 const struct netbuf *claddr;
865 avl_tree_t *tree;
866 struct auth_cache ac; /* used as a template for avl_find() */
867 struct auth_cache_clnt *c;
868 struct auth_cache_clnt acc; /* used as a template for avl_find() */
869 struct auth_cache *p = NULL;
870 int access;
871
872 uid_t tmpuid;
873 gid_t tmpgid;
874 uint_t tmpngids;
875 gid_t *tmpgids;
876
877 avl_index_t where; /* used for avl_find()/avl_insert() */
878
879 ASSERT(cr != NULL);
880
881 ASSERT3P(curzone, ==, exi->exi_zone);
882 nag = nfsauth_get_zg();
883
884 /*
885 * Now check whether this client already
886 * has an entry for this flavor in the cache
887 * for this export.
888 * Get the caller's address, mask off the
889 * parts of the address that do not identify
890 * the host (port number, etc), and then hash
891 * it to find the chain of cache entries.
892 */
893
894 claddr = svc_getrpccaller(req->rq_xprt);
895 addr = *claddr;
896 addr.buf = kmem_alloc(addr.maxlen, KM_SLEEP);
897 bcopy(claddr->buf, addr.buf, claddr->len);
898
899 SVC_GETADDRMASK(req->rq_xprt, SVC_TATTR_ADDRMASK, (void **)&taddrmask);
900 ASSERT(taddrmask != NULL);
901 addrmask(&addr, taddrmask);
|
861 nfsauth_globals_t *nag;
862 struct netbuf *taddrmask;
863 struct netbuf addr; /* temporary copy of client's address */
864 const struct netbuf *claddr;
865 avl_tree_t *tree;
866 struct auth_cache ac; /* used as a template for avl_find() */
867 struct auth_cache_clnt *c;
868 struct auth_cache_clnt acc; /* used as a template for avl_find() */
869 struct auth_cache *p = NULL;
870 int access;
871
872 uid_t tmpuid;
873 gid_t tmpgid;
874 uint_t tmpngids;
875 gid_t *tmpgids;
876
877 avl_index_t where; /* used for avl_find()/avl_insert() */
878
879 ASSERT(cr != NULL);
880
881 ASSERT3P(curzone->zone_id, ==, exi->exi_zoneid);
882 nag = nfsauth_get_zg();
883
884 /*
885 * Now check whether this client already
886 * has an entry for this flavor in the cache
887 * for this export.
888 * Get the caller's address, mask off the
889 * parts of the address that do not identify
890 * the host (port number, etc), and then hash
891 * it to find the chain of cache entries.
892 */
893
894 claddr = svc_getrpccaller(req->rq_xprt);
895 addr = *claddr;
896 addr.buf = kmem_alloc(addr.maxlen, KM_SLEEP);
897 bcopy(claddr->buf, addr.buf, claddr->len);
898
899 SVC_GETADDRMASK(req->rq_xprt, SVC_TATTR_ADDRMASK, (void **)&taddrmask);
900 ASSERT(taddrmask != NULL);
901 addrmask(&addr, taddrmask);
|