From 15a5cd851a199724a10f45c70e5290df23ee4bb0 Mon Sep 17 00:00:00 2001 From: Assar Westerlund Date: Wed, 16 Jul 1997 01:07:50 +0000 Subject: [PATCH] new files git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@2331 ec53bebd-3082-4978-b11e-865c3cabbd6b --- lib/krb5/read_message.c | 26 ++++++++++++++++++++++++++ lib/krb5/write_message.c | 23 +++++++++++++++++++++++ 2 files changed, 49 insertions(+) create mode 100644 lib/krb5/read_message.c create mode 100644 lib/krb5/write_message.c diff --git a/lib/krb5/read_message.c b/lib/krb5/read_message.c new file mode 100644 index 000000000..dffc25d42 --- /dev/null +++ b/lib/krb5/read_message.c @@ -0,0 +1,26 @@ +#include "krb5_locl.h" + +RCSID("$Id$"); + +krb5_error_code +krb5_read_message (krb5_context context, + krb5_pointer p_fd, + krb5_data *data) +{ + krb5_error_code ret; + u_int32_t len; + u_int8_t buf[4]; + int fd = *((int *)p_fd); + + if (krb5_net_read (context, fd, buf, 4) != 4) + return errno; + len = (buf[0] << 24) | (buf[1] << 16) | (buf[2] << 8) | buf[3]; + ret = krb5_data_alloc (data, len); + if (ret) + return ret; + if (krb5_net_read (context, fd, data->data, len) != len) { + krb5_data_free (data); + return errno; + } + return 0; +} diff --git a/lib/krb5/write_message.c b/lib/krb5/write_message.c new file mode 100644 index 000000000..14e3174a0 --- /dev/null +++ b/lib/krb5/write_message.c @@ -0,0 +1,23 @@ +#include "krb5_locl.h" + +RCSID("$Id$"); + +krb5_error_code +krb5_write_message (krb5_context context, + krb5_pointer p_fd, + krb5_data *data) +{ + u_int32_t len; + u_int8_t buf[4]; + int fd = *((int *)p_fd); + + len = data->length; + buf[0] = (len >> 24) & 0xFF; + buf[1] = (len >> 16) & 0xFF; + buf[2] = (len >> 8) & 0xFF; + buf[3] = (len >> 0) & 0xFF; + if (krb5_net_write (context, fd, buf, 4) != 4 + || krb5_net_write (context, fd, data->data, len) != len) + return errno; + return 0; +}