summaryrefslogtreecommitdiff
path: root/lib/ZFmtRaw.c
diff options
context:
space:
mode:
authorGravatar Robert S. French <rfrench@mit.edu>1988-05-13 14:16:15 +0000
committerGravatar Robert S. French <rfrench@mit.edu>1988-05-13 14:16:15 +0000
commitfef29bc13f6ce59e26aa36b0151d3262b8beab65 (patch)
tree7a96988a8730c1aaca47c8124f7ef772a598bc87 /lib/ZFmtRaw.c
parentbbb9f7303ec10ed46f1f6ecf3510dbbc35f3bed4 (diff)
New mallocing stuff
Diffstat (limited to 'lib/ZFmtRaw.c')
-rw-r--r--lib/ZFmtRaw.c38
1 files changed, 17 insertions, 21 deletions
diff --git a/lib/ZFmtRaw.c b/lib/ZFmtRaw.c
index b389c3a..28f5dff 100644
--- a/lib/ZFmtRaw.c
+++ b/lib/ZFmtRaw.c
@@ -20,31 +20,27 @@ static char rcsid_ZFormatRawNotice_c[] = "$Header$";
#include <zephyr/zephyr.h>
-Code_t ZFormatRawNotice(notice,buffer,buffer_len,len)
- ZNotice_t *notice;
- ZPacket_t buffer;
- int buffer_len;
- int *len;
+Code_t ZFormatRawNotice(notice, buffer, ret_len, cert_routine)
+ ZNotice_t *notice;
+ char **buffer;
+ int *ret_len;
+ int (*cert_routine)();
{
- char *ptr;
- int hdrlen;
- Code_t retval;
+ char header[Z_MAXHEADERLEN];
+ char *ptr;
+ int hdrlen;
+ Code_t retval;
- if ((retval = Z_FormatRawHeader(notice,buffer,buffer_len,&hdrlen)) !=
- ZERR_NONE)
- return (retval);
+ if ((retval = Z_FormatRawHeader(notice, header, sizeof(header), &hdrlen,
+ cert_routine)) != ZERR_NONE)
+ return (retval);
- ptr = buffer+hdrlen;
+ *ret_len = hdrlen+notice->z_message_len;
- if (notice->z_message_len+hdrlen > buffer_len)
- return (ZERR_PKTLEN);
+ if (!(*buffer = malloc(*ret_len)))
+ return (ENOMEM);
- bcopy(notice->z_message,ptr,notice->z_message_len);
+ bcopy(notice->z_message, *buffer+hdrlen, notice->z_message_len);
- *len = hdrlen+notice->z_message_len;
-
- if (*len > Z_MAXPKTLEN)
- return (ZERR_PKTLEN);
-
- return (ZERR_NONE);
+ return (ZERR_NONE);
}