From 7ae9c463865984d4556d156db75ded7dfff6d3fe Mon Sep 17 00:00:00 2001 From: "Robert S. French" Date: Fri, 13 May 1988 14:04:40 +0000 Subject: Changed to handle new malloc'ed packets --- lib/ZFmtNotice.c | 41 +++++++++++++++++++---------------------- 1 file changed, 19 insertions(+), 22 deletions(-) (limited to 'lib/ZFmtNotice.c') 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 -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); } -- cgit v1.2.3