From 99f4a082597fc74905b1da498de6aee21b737319 Mon Sep 17 00:00:00 2001 From: Assar Westerlund Date: Thu, 27 Jul 2000 16:21:45 +0000 Subject: [PATCH] get the addresses in a cray-compat way git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@8858 ec53bebd-3082-4978-b11e-865c3cabbd6b --- appl/test/gssapi_client.c | 15 +++++++++++++-- appl/test/gssapi_server.c | 16 ++++++++++++++-- 2 files changed, 27 insertions(+), 4 deletions(-) diff --git a/appl/test/gssapi_client.c b/appl/test/gssapi_client.c index 0c7b9fcc4..f130a85f4 100644 --- a/appl/test/gssapi_client.c +++ b/appl/test/gssapi_client.c @@ -96,6 +96,8 @@ proto (int sock, const char *hostname, const char *service) gss_name_t server; gss_buffer_desc name_token; struct gss_channel_bindings_struct input_chan_bindings; + u_char init_buf[4]; + u_char acct_buf[4]; name_token.length = asprintf ((char **)&name_token.value, "%s@%s", service, hostname); @@ -123,10 +125,19 @@ proto (int sock, const char *hostname, const char *service) input_chan_bindings.initiator_addrtype = GSS_C_AF_INET; input_chan_bindings.initiator_address.length = 4; - input_chan_bindings.initiator_address.value = &local.sin_addr.s_addr; + init_buf[0] = (local.sin_addr.s_addr >> 24) & 0xFF; + init_buf[1] = (local.sin_addr.s_addr >> 16) & 0xFF; + init_buf[2] = (local.sin_addr.s_addr >> 8) & 0xFF; + init_buf[3] = (local.sin_addr.s_addr >> 0) & 0xFF; + input_chan_bindings.initiator_address.value = init_buf; + input_chan_bindings.acceptor_addrtype = GSS_C_AF_INET; input_chan_bindings.acceptor_address.length = 4; - input_chan_bindings.acceptor_address.value = &remote.sin_addr.s_addr; + acct_buf[0] = (remote.sin_addr.s_addr >> 24) & 0xFF; + acct_buf[1] = (remote.sin_addr.s_addr >> 16) & 0xFF; + acct_buf[2] = (remote.sin_addr.s_addr >> 8) & 0xFF; + acct_buf[3] = (remote.sin_addr.s_addr >> 0) & 0xFF; + input_chan_bindings.acceptor_address.value = acct_buf; #if 0 input_chan_bindings.application_data.value = malloc(4); diff --git a/appl/test/gssapi_server.c b/appl/test/gssapi_server.c index b7ab53874..c1870dc40 100644 --- a/appl/test/gssapi_server.c +++ b/appl/test/gssapi_server.c @@ -115,6 +115,8 @@ proto (int sock, const char *service) struct gss_channel_bindings_struct input_chan_bindings; gss_cred_id_t delegated_cred_handle = NULL; krb5_ccache ccache; + u_char init_buf[4]; + u_char acct_buf[4]; addrlen = sizeof(local); if (getsockname (sock, (struct sockaddr *)&local, &addrlen) < 0 @@ -128,10 +130,20 @@ proto (int sock, const char *service) input_chan_bindings.initiator_addrtype = GSS_C_AF_INET; input_chan_bindings.initiator_address.length = 4; - input_chan_bindings.initiator_address.value = &remote.sin_addr.s_addr; + init_buf[0] = (remote.sin_addr.s_addr >> 24) & 0xFF; + init_buf[1] = (remote.sin_addr.s_addr >> 16) & 0xFF; + init_buf[2] = (remote.sin_addr.s_addr >> 8) & 0xFF; + init_buf[3] = (remote.sin_addr.s_addr >> 0) & 0xFF; + + input_chan_bindings.initiator_address.value = init_buf; input_chan_bindings.acceptor_addrtype = GSS_C_AF_INET; + input_chan_bindings.acceptor_address.length = 4; - input_chan_bindings.acceptor_address.value = &local.sin_addr.s_addr; + acct_buf[0] = (local.sin_addr.s_addr >> 24) & 0xFF; + acct_buf[1] = (local.sin_addr.s_addr >> 16) & 0xFF; + acct_buf[2] = (local.sin_addr.s_addr >> 8) & 0xFF; + acct_buf[3] = (local.sin_addr.s_addr >> 0) & 0xFF; + input_chan_bindings.acceptor_address.value = acct_buf; input_chan_bindings.application_data.value = malloc(4); #if 0 * (unsigned short *)input_chan_bindings.application_data.value =