diff options
Diffstat (limited to 'lib/ZSendRaw.c')
-rw-r--r-- | lib/ZSendRaw.c | 29 |
1 files changed, 14 insertions, 15 deletions
diff --git a/lib/ZSendRaw.c b/lib/ZSendRaw.c index e9b72b4..b981771 100644 --- a/lib/ZSendRaw.c +++ b/lib/ZSendRaw.c @@ -21,24 +21,23 @@ static char rcsid_ZSendRawNotice_c[] = "$Header$"; #include <zephyr/zephyr_internal.h> Code_t ZSendRawNotice(notice) - ZNotice_t *notice; + ZNotice_t *notice; { - Code_t retval; - char *buffer; - int len; + Code_t retval; + ZNotice_t newnotice; + char *buffer; + int len; - buffer = (char *)malloc(Z_MAXPKTLEN); - if (!buffer) - return (ENOMEM); + if ((retval = ZFormatRawNotice(notice, &buffer, &len)) != + ZERR_NONE) + return (retval); - if ((retval = ZFormatRawNotice(notice,buffer,Z_MAXPKTLEN,&len)) != - ZERR_NONE) { - free(buffer); - return (retval); - } + if ((retval = ZParseNotice(buffer, len, &newnotice)) != ZERR_NONE) + return (retval); + + retval = Z_SendFragmentedNotice(&newnotice); - retval = ZSendPacket(buffer,len); - free(buffer); + free(buffer); - return (retval); + return (retval); } |