summaryrefslogtreecommitdiff
path: root/lib/ZFmtNotice.c
diff options
context:
space:
mode:
authorGravatar Robert S. French <rfrench@mit.edu>1988-05-13 14:04:40 +0000
committerGravatar Robert S. French <rfrench@mit.edu>1988-05-13 14:04:40 +0000
commit7ae9c463865984d4556d156db75ded7dfff6d3fe (patch)
tree0b211fe087b02f0c0ca9f43bcf8958ee0ca612ba /lib/ZFmtNotice.c
parent6cc2f240adefe2956a056bcc55d7de63e13f2bb2 (diff)
Changed to handle new malloc'ed packets
Diffstat (limited to 'lib/ZFmtNotice.c')
-rw-r--r--lib/ZFmtNotice.c41
1 files changed, 19 insertions, 22 deletions
diff --git a/lib/ZFmtNotice.c b/lib/ZFmtNotice.c
index bcae262..be9a3e1 100644
--- a/lib/ZFmtNotice.c
+++ b/lib/ZFmtNotice.c
@@ -20,32 +20,29 @@ static char rcsid_ZFormatNotice_c[] = "$Header$";
#include <zephyr/zephyr.h>
-Code_t ZFormatNotice(notice,buffer,buffer_len,len,cert_routine)
- ZNotice_t *notice;
- ZPacket_t buffer;
- int buffer_len;
- int *len;
- int (*cert_routine)();
+Code_t ZFormatNotice(notice, buffer, len, cert_routine)
+ ZNotice_t *notice;
+ char **buffer;
+ int *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_FormatHeader(notice,buffer,buffer_len,&hdrlen,
- cert_routine)) != ZERR_NONE)
- return (retval);
+ if ((retval = Z_FormatHeader(notice, header, sizeof(header), &hdrlen,
+ cert_routine)) != ZERR_NONE)
+ return (retval);
- ptr = buffer+hdrlen;
+ *len = hdrlen+notice->z_message_len;
- if (notice->z_message_len+hdrlen > buffer_len)
- return (ZERR_PKTLEN);
+ if (!(*buffer = malloc(*len)))
+ return (ENOMEM);
- bcopy(notice->z_message,ptr,notice->z_message_len);
+ notice->z_packet = *buffer;
+
+ 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);
}