| 1 /* This file is part of the Project Athena Zephyr Notification System. |
|
| 2 * It contains source for the ZFormatRawNotice function. |
|
| 3 * |
|
| 4 * Created by: Robert French |
|
| 5 * |
|
| 6 * Copyright (c) 1987 by the Massachusetts Institute of Technology. |
|
| 7 * For copying and distribution information, see the file |
|
| 8 * "mit-copyright.h". |
|
| 9 */ |
|
| 10 |
|
| 11 #include "internal.h" |
|
| 12 |
|
| 13 Code_t ZFormatRawNotice(notice, buffer, ret_len) |
|
| 14 register ZNotice_t *notice; |
|
| 15 char **buffer; |
|
| 16 int *ret_len; |
|
| 17 { |
|
| 18 char header[Z_MAXHEADERLEN]; |
|
| 19 int hdrlen; |
|
| 20 Code_t retval; |
|
| 21 |
|
| 22 if ((retval = Z_FormatRawHeader(notice, header, sizeof(header), |
|
| 23 &hdrlen, NULL, NULL)) != ZERR_NONE) |
|
| 24 return (retval); |
|
| 25 |
|
| 26 *ret_len = hdrlen+notice->z_message_len; |
|
| 27 |
|
| 28 /* *ret_len is never 0, don't have to worry about malloc(0) */ |
|
| 29 if (!(*buffer = (char *) malloc((unsigned) *ret_len))) |
|
| 30 return (ENOMEM); |
|
| 31 |
|
| 32 (void) memcpy(*buffer, header, hdrlen); |
|
| 33 (void) memcpy(*buffer+hdrlen, notice->z_message, notice->z_message_len); |
|
| 34 |
|
| 35 return (ZERR_NONE); |
|
| 36 } |
|