]> asedeno.scripts.mit.edu Git - 1ts-debian.git/blobdiff - zephyr/lib/ZFmtNotice.c
krb5-interrealm patches
[1ts-debian.git] / zephyr / lib / ZFmtNotice.c
index f954b5113a030f512bfbcfc6f876d2d221641512..1dc7af9d72b517f9b88df32eb5eb4e294a275a8f 100644 (file)
@@ -41,3 +41,29 @@ Code_t ZFormatNotice(notice, buffer, ret_len, cert_routine)
 
     return (ZERR_NONE);
 }
+
+Code_t ZNewFormatNotice(notice, buffer, ret_len, cert_routine)
+    register ZNotice_t *notice;
+    char **buffer;
+    int *ret_len;
+    Z_AuthProc cert_routine;
+{
+    char header[Z_MAXHEADERLEN];
+    int hdrlen;
+    Code_t retval;
+
+    if ((retval = Z_NewFormatHeader(notice, header, sizeof(header), &hdrlen, 
+                                cert_routine)) != ZERR_NONE)
+       return (retval);
+
+    *ret_len = hdrlen+notice->z_message_len;
+
+    /* Length can never be zero, don't have to worry about malloc(0). */
+    if (!(*buffer = (char *) malloc((unsigned)*ret_len)))
+       return (ENOMEM);
+
+    (void) memcpy(*buffer, header, hdrlen);
+    (void) memcpy(*buffer+hdrlen, notice->z_message, notice->z_message_len);
+
+    return (ZERR_NONE);
+}