X-Git-Url: http://www.project-moonshot.org/gitweb/?p=trust_router.git;a=blobdiff_plain;f=tid%2Ftid_resp.c;h=3ff3d02b48b7096accf7e00b8ed4be5ac0332930;hp=4f46b12b0416968e35333659092346e3911286ea;hb=3c5fb17459ff56d5e23cea059503f46a42150a1e;hpb=6e1647f2f4714d8c0c4c27ef376302bab1ae4bb3 diff --git a/tid/tid_resp.c b/tid/tid_resp.c index 4f46b12..3ff3d02 100644 --- a/tid/tid_resp.c +++ b/tid/tid_resp.c @@ -83,6 +83,13 @@ void tid_resp_free(TID_RESP *resp) talloc_free(resp); } +/** + * Allocate a new copy of a TID_RESP + * + * @param mem_ctx + * @param resp + * @return + */ TID_RESP *tid_resp_dup(TALLOC_CTX *mem_ctx, TID_RESP *resp) { TID_RESP *newresp=NULL; @@ -93,19 +100,38 @@ TID_RESP *tid_resp_dup(TALLOC_CTX *mem_ctx, TID_RESP *resp) newresp=tid_resp_new(mem_ctx); if (NULL!=newresp) { - newresp->result=resp->result; - newresp->err_msg=tr_dup_name(resp->err_msg); - newresp->rp_realm=tr_dup_name(resp->rp_realm); - newresp->realm=tr_dup_name(resp->realm); - newresp->comm=tr_dup_name(resp->comm); - newresp->orig_coi=tr_dup_name(resp->orig_coi); - newresp->servers=tid_srvr_blk_dup(newresp, resp->servers); - tid_resp_set_cons(newresp, resp->cons); - tid_resp_set_error_path(newresp, resp->error_path); + tid_resp_cpy(newresp, resp); } return newresp; } +/** + * Copy contents of one TID_RESP to an existing TID_RESP + * + * @param dst + * @param src + * @return TID_SUCCESS on success, error code on error + */ +TID_RC tid_resp_cpy(TID_RESP *dst, TID_RESP *src) +{ + tid_resp_set_result(dst, tid_resp_get_result(src)); + tid_resp_set_err_msg(dst, + tr_dup_name(tid_resp_get_err_msg(src))); + tid_resp_set_rp_realm(dst, + tr_dup_name(tid_resp_get_rp_realm(src))); + tid_resp_set_realm(dst, + tr_dup_name(tid_resp_get_realm(src))); + tid_resp_set_comm(dst, + tr_dup_name(tid_resp_get_comm(src))); + tid_resp_set_cons(dst, src->cons); + tid_resp_set_orig_coi(dst, + tr_dup_name(tid_resp_get_orig_coi(src))); + dst->servers = tid_srvr_blk_dup(dst, src->servers); + tid_resp_set_error_path(dst, src->error_path); + + return TID_SUCCESS; +} + TR_EXPORT int tid_resp_get_result(TID_RESP *resp) { return(resp->result);