#include <tr_debug.h>
#include <tr_gss_client.h>
-static int tr_gssc_destructor(void *obj)
-{
- TR_GSSC_INSTANCE *tr_gssc=talloc_get_type_abort(obj, TR_GSSC_INSTANCE);
- if (NULL!=tr_gssc) {
- if (NULL!=tr_gssc->client_dh)
- tr_destroy_dh_params(tr_gssc->client_dh);
- }
- return 0;
-}
-
TR_GSSC_INSTANCE *tr_gssc_instance_new(TALLOC_CTX *mem_ctx)
{
TR_GSSC_INSTANCE *gssc=talloc(NULL, TR_GSSC_INSTANCE);
if (gssc != NULL) {
gssc->service_name = NULL;
- gssc->client_dh = NULL;
gssc->conn = -1;
gssc->gss_ctx = talloc(gssc, gss_ctx_id_t);
if (gssc->gss_ctx == NULL) {
- talloc_free(gssc); /* before the destructor is set */
+ talloc_free(gssc);
return NULL;
}
- talloc_set_destructor((void *)gssc, tr_gssc_destructor);
}
return gssc;
}
talloc_free(tmp_ctx);
return resp_msg;
}
-
-DH * tr_gssc_get_dh(TR_GSSC_INSTANCE *inst)
-{
- return inst->client_dh;
-}
-
-DH *tr_gssc_set_dh(TR_GSSC_INSTANCE *inst, DH *dh)
-{
- inst->client_dh = dh;
- return dh;
-}
#include <talloc.h>
#include <stdint.h>
#include <jansson.h>
-#include <gmodule.h>
+#include <glib.h>
#include <gssapi.h>
#include <trust_router/tid.h>
#include <trp_internal.h>
#include <tr_gss_names.h>
#include <tr_gss_client.h>
#include <tr_name_internal.h>
-#include <trust_router/tr_dh.h>
#include <mon.h>
/* Typedefs */
/* monc.c */
MONC_INSTANCE *monc_new(TALLOC_CTX *mem_ctx);
void monc_free(MONC_INSTANCE *monc);
-DH *monc_get_dh(MONC_INSTANCE *inst);
-DH *monc_set_dh(MONC_INSTANCE *inst, DH *dh);
int monc_open_connection(MONC_INSTANCE *monc, const char *server, unsigned int port);
MON_RESP *monc_send_request(TALLOC_CTX *mem_ctx, MONC_INSTANCE *monc, MON_REQ *req);
#ifndef TID_INTERNAL_H
#define TID_INTERNAL_H
#include <glib.h>
+#include <jansson.h>
-#include <tr_rp.h>
#include <trust_router/tid.h>
-#include <jansson.h>
-#include "tr_gss_client.h"
+#include <trust_router/tr_dh.h>
+#include <tr_rp.h>
+#include <tr_gss_client.h>
struct tid_srvr_blk {
TID_SRVR_BLK *next;
struct tidc_instance {
TR_GSSC_INSTANCE *gssc;
+ DH *client_dh;
};
struct tid_process {
#define TRUST_ROUTER_TR_GSS_CLIENT_H
#include <gssapi.h>
-#include <trust_router/tr_dh.h>
#include <tr_msg.h>
typedef struct tr_gssc_instance TR_GSSC_INSTANCE;
/* Client instance */
struct tr_gssc_instance {
const char *service_name;
- DH *client_dh;
gss_ctx_id_t *gss_ctx;
int conn;
};
void tr_gssc_instance_free(TR_GSSC_INSTANCE *tr_gssc);
int tr_gssc_open_connection(TR_GSSC_INSTANCE *gssc, const char *server, unsigned int port);
TR_MSG *tr_gssc_exchange_msgs(TALLOC_CTX *mem_ctx, TR_GSSC_INSTANCE *gssc, TR_MSG *req_msg);
-DH * tr_gssc_get_dh(TR_GSSC_INSTANCE *inst);
-DH *tr_gssc_set_dh(TR_GSSC_INSTANCE *inst, DH *dh);
#endif //TRUST_ROUTER_TR_GSS_CLIENT_H
talloc_free(tmp_ctx);
return resp;
}
-
-DH *monc_get_dh(MONC_INSTANCE *inst)
-{
- return tr_gssc_get_dh(inst->gssc);
-}
-
-DH *monc_set_dh(MONC_INSTANCE *inst, DH *dh)
-{
- return tr_gssc_set_dh(inst->gssc, dh);
-}
int tmp_len = 32;
+static int tidc_destructor(void *obj)
+{
+ TIDC_INSTANCE *tidc=talloc_get_type_abort(obj, TIDC_INSTANCE);
+ if (NULL!=tidc) {
+ if (NULL!=tidc->client_dh)
+ tr_destroy_dh_params(tidc->client_dh);
+ }
+ return 0;
+}
+
+
/* creates struct in talloc null context */
TIDC_INSTANCE *tidc_create(void)
{
talloc_free(tidc);
return NULL;
}
-
tidc->gssc->service_name = "trustidentity";
+ tidc->client_dh = NULL;
+ talloc_set_destructor((void *)tidc, tidc_destructor);
}
return tidc;
}
goto error;
}
- tid_req->tidc_dh = tr_dh_dup(tidc->gssc->client_dh);
+ tid_req->tidc_dh = tr_dh_dup(tidc_get_dh(tidc));
/* generate an ID */
request_id = tr_random_id(NULL);
}
-DH * tidc_get_dh(TIDC_INSTANCE *inst)
+DH *tidc_get_dh(TIDC_INSTANCE *inst)
{
- return tr_gssc_get_dh(inst->gssc);
+ return inst->client_dh;
}
DH *tidc_set_dh(TIDC_INSTANCE *inst, DH *dh)
{
- return tr_gssc_set_dh(inst->gssc, dh);
+ inst->client_dh = dh;
+ return dh;
}