Lines Matching +full:realm +full:-
1 // SPDX-License-Identifier: GPL-2.0+
126 mutex_init(&sn->gssp_lock); in init_gssp_clnt()
127 sn->gssp_clnt = NULL; in init_gssp_clnt()
136 mutex_lock(&sn->gssp_lock); in set_gssp_clnt()
139 if (sn->gssp_clnt) in set_gssp_clnt()
140 rpc_shutdown_client(sn->gssp_clnt); in set_gssp_clnt()
141 sn->gssp_clnt = clnt; in set_gssp_clnt()
143 mutex_unlock(&sn->gssp_lock); in set_gssp_clnt()
149 mutex_lock(&sn->gssp_lock); in clear_gssp_clnt()
150 if (sn->gssp_clnt) { in clear_gssp_clnt()
151 rpc_shutdown_client(sn->gssp_clnt); in clear_gssp_clnt()
152 sn->gssp_clnt = NULL; in clear_gssp_clnt()
154 mutex_unlock(&sn->gssp_lock); in clear_gssp_clnt()
161 mutex_lock(&sn->gssp_lock); in get_gssp_clnt()
162 clnt = sn->gssp_clnt; in get_gssp_clnt()
164 refcount_inc(&clnt->cl_count); in get_gssp_clnt()
165 mutex_unlock(&sn->gssp_lock); in get_gssp_clnt()
177 return -EIO; in gssp_call()
180 dprintk("gssp: rpc_call returned error %d\n", -status); in gssp_call()
182 case -EPROTONOSUPPORT: in gssp_call()
183 status = -EINVAL; in gssp_call()
185 case -ECONNREFUSED: in gssp_call()
186 case -ETIMEDOUT: in gssp_call()
187 case -ENOTCONN: in gssp_call()
188 status = -EAGAIN; in gssp_call()
190 case -ERESTARTSYS: in gssp_call()
192 status = -EINTR; in gssp_call()
206 for (i = 0; i < arg->npages && arg->pages[i]; i++) in gssp_free_receive_pages()
207 __free_page(arg->pages[i]); in gssp_free_receive_pages()
209 kfree(arg->pages); in gssp_free_receive_pages()
216 arg->npages = DIV_ROUND_UP(NGROUPS_MAX * 4, PAGE_SIZE); in gssp_alloc_receive_pages()
217 arg->pages = kcalloc(arg->npages, sizeof(struct page *), GFP_KERNEL); in gssp_alloc_receive_pages()
218 if (!arg->pages) in gssp_alloc_receive_pages()
219 return -ENOMEM; in gssp_alloc_receive_pages()
220 for (i = 0; i < arg->npages; i++) { in gssp_alloc_receive_pages()
221 arg->pages[i] = alloc_page(GFP_KERNEL); in gssp_alloc_receive_pages()
222 if (!arg->pages[i]) { in gssp_alloc_receive_pages()
224 return -ENOMEM; in gssp_alloc_receive_pages()
232 return kmemdup_nul(netobj->data, netobj->len, GFP_KERNEL); in gssp_stringify()
242 /* terminate and remove realm part */ in gssp_hostbased_service()
247 /* change service-hostname delimiter */ in gssp_hostbased_service()
275 .state = data->in_handle in gssp_accept_sec_context_upcall()
278 .input_token = data->in_token, in gssp_accept_sec_context_upcall()
292 .output_token = &data->out_token in gssp_accept_sec_context_upcall()
304 if (data->in_handle.len != 0) in gssp_accept_sec_context_upcall()
306 res.output_token->len = GSSX_max_output_token_sz; in gssp_accept_sec_context_upcall()
318 data->major_status = res.status.major_status; in gssp_accept_sec_context_upcall()
319 data->minor_status = res.status.minor_status; in gssp_accept_sec_context_upcall()
321 data->out_handle = rctxh.exported_context_token; in gssp_accept_sec_context_upcall()
322 data->mech_oid.len = rctxh.mech.len; in gssp_accept_sec_context_upcall()
324 memcpy(data->mech_oid.data, rctxh.mech.data, in gssp_accept_sec_context_upcall()
325 data->mech_oid.len); in gssp_accept_sec_context_upcall()
337 if (value->len == 1) { in gssp_accept_sec_context_upcall()
339 data->creds = *(struct svc_cred *)value->data; in gssp_accept_sec_context_upcall()
340 data->found_creds = 1; in gssp_accept_sec_context_upcall()
343 kfree(value->data); in gssp_accept_sec_context_upcall()
351 if (data->found_creds) { in gssp_accept_sec_context_upcall()
353 data->creds.cr_raw_principal = in gssp_accept_sec_context_upcall()
355 data->creds.cr_principal = in gssp_accept_sec_context_upcall()
357 gssp_hostbased_service(&data->creds.cr_principal); in gssp_accept_sec_context_upcall()
360 data->creds.cr_targ_princ = in gssp_accept_sec_context_upcall()
362 gssp_hostbased_service(&data->creds.cr_targ_princ); in gssp_accept_sec_context_upcall()
373 kfree(data->in_handle.data); in gssp_free_upcall_data()
374 kfree(data->out_handle.data); in gssp_free_upcall_data()
375 kfree(data->out_token.data); in gssp_free_upcall_data()
376 free_svc_cred(&data->creds); in gssp_free_upcall_data()