/* free resources which were allocated by gfp_xdr_set_secsession() */ void gfp_xdr_reset_secsession(struct gfp_xdr *conn) { struct io_gfsl *io = gfp_xdr_cookie(conn); if (io != NULL) free_secsession(io); gfp_xdr_set(conn, &gfp_xdr_secsession_iobuffer_ops, NULL, -1); }
gfarm_error_t gfp_xdr_set_secsession(struct gfp_xdr *conn, gfarmSecSession *secsession, gss_cred_id_t cred_to_be_freed) { struct io_gfsl *io; GFARM_MALLOC(io); if (io == NULL) return (GFARM_ERR_NO_MEMORY); io->session = secsession; io->cred_to_be_freed = cred_to_be_freed; io->exported_credential = NULL; io->buffer = NULL; io->p = io->residual = 0; gfp_xdr_set(conn, &gfp_xdr_secsession_iobuffer_ops, io, secsession->fd); return (GFARM_ERR_NO_ERROR); }
gfarm_error_t gfp_xdr_set_secsession(struct gfp_xdr *conn, gfarmSecSession *secsession, gss_cred_id_t cred_to_be_freed) { struct io_gfsl *io; GFARM_MALLOC(io); if (io == NULL) { gflog_debug(GFARM_MSG_1001480, "allocation of 'io_gfsl' failed: %s", gfarm_error_string(GFARM_ERR_NO_MEMORY)); return (GFARM_ERR_NO_MEMORY); } io->session = secsession; io->cred_to_be_freed = cred_to_be_freed; io->exported_credential = NULL; io->buffer = NULL; io->p = io->residual = 0; gfp_xdr_set(conn, &gfp_xdr_secsession_iobuffer_ops, io, secsession->fd); return (GFARM_ERR_NO_ERROR); }
void gfp_xdr_downgrade_to_insecure_session(struct gfp_xdr *conn) { gfp_xdr_set(conn, &gfp_xdr_insecure_gsi_session_iobuffer_ops, gfp_xdr_cookie(conn), gfp_xdr_fd(conn)); }