jsrvr = json_object();
- /* Server IP Address -- TBD */
- jstr = json_string("127.0.0.1");
+ /* Server IP Address -- TBD handle IPv6 */
+ jstr = json_string(inet_ntoa(srvr->aaa_server_addr));
json_object_set_new(jsrvr, "server_addr", jstr);
/* Server DH Block */
+ jstr = json_string(srvr->key_name->buf);
+ json_object_set_new(jsrvr, "key_name", jstr);
json_object_set_new(jsrvr, "server_dh", tr_msg_encode_dh(srvr->aaa_server_dh));
// fprintf(stderr,"tr_msg_encode_one_server(): jsrvr contains:\n");
{
TID_SRVR_BLK *srvr;
json_t *jsrvr_addr = NULL;
+ json_t *jsrvr_kn = NULL;
json_t *jsrvr_dh = NULL;
if (jsrvr == NULL)
return NULL;
if ((NULL == (jsrvr_addr = json_object_get(jsrvr, "server_addr"))) ||
+ (NULL == (jsrvr_kn = json_object_get(jsrvr, "key_name"))) ||
(NULL == (jsrvr_dh = json_object_get(jsrvr, "server_dh")))) {
fprintf (stderr, "tr_msg_decode_one_server(): Error parsing required fields.\n");
free(srvr);
/* TBD -- handle IPv6 Addresses */
inet_aton(json_string_value(jsrvr_addr), &(srvr->aaa_server_addr));
+ srvr->key_name = tr_new_name((char *)json_string_value(jsrvr_kn));
srvr->aaa_server_dh = tr_msg_decode_dh(jsrvr_dh);
return srvr;
typedef struct tid_srvr_blk {
struct tid_srvr_blk *next;
struct in_addr aaa_server_addr;
+ TR_NAME *key_name;
DH *aaa_server_dh; /* AAA server's public dh information */
} TID_SRVR_BLK;
return -1;
}
+ /* Hard-code the IP Address in the response. If this were a AAA server, we'd expect
+ * this to be set by the Trust Router before calling us.
+ */
+ if (0 == inet_aton("127.0.0.1", &((*resp)->servers->aaa_server_addr))) {
+ printf("tids_req_handler(): inet_aton() failed.\n");
+ return -1;
+ }
+
+ /* Set the key name */
+ (*resp)->servers->key_name = tr_new_name("placeholder.key.name");
+
/* Generate the server key */
printf("Generating the server key.\n");
if (NULL == (s_keybuf = malloc(DH_size((*resp)->servers->aaa_server_dh)))) {
/* Create a TID server instance */
if (NULL == (tids = tids_create())) {
- printf("Error in tids_create(). Exiting.\n");
+ printf("Unable to create TIDS instance,exiting.\n");
return 1;
}
#include <stdlib.h>
#include <unistd.h>
+#include <string.h>
#include <stdio.h>
#include <errno.h>
#include <sys/socket.h>
gss_ctx_id_t gssctx = GSS_C_NO_CONTEXT;
if (!tids_auth_connection(conn, &gssctx)) {
- fprintf(stderr, "Error authorizing TID Server connection, rc = %d.\n", rc);
+ fprintf(stderr, "Error authorizing TID Server connection.\n");
close(conn);
return;
}
TIDS_INSTANCE *tids_create (void)
{
- TIDS_INSTANCE *tids = 0;
+ TIDS_INSTANCE *tids = NULL;
if (tids = malloc(sizeof(TIDS_INSTANCE)))
memset(tids, 0, sizeof(TIDS_INSTANCE));
return tids;