diff options
author | Robert S. French <rfrench@mit.edu> | 1988-05-13 14:04:40 +0000 |
---|---|---|
committer | Robert S. French <rfrench@mit.edu> | 1988-05-13 14:04:40 +0000 |
commit | 7ae9c463865984d4556d156db75ded7dfff6d3fe (patch) | |
tree | 0b211fe087b02f0c0ca9f43bcf8958ee0ca612ba /lib/ZFmtNotice.c | |
parent | 6cc2f240adefe2956a056bcc55d7de63e13f2bb2 (diff) |
Changed to handle new malloc'ed packets
Diffstat (limited to 'lib/ZFmtNotice.c')
-rw-r--r-- | lib/ZFmtNotice.c | 41 |
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); } |