diff options
author | Robert S. French <rfrench@mit.edu> | 1987-06-29 13:26:38 +0000 |
---|---|---|
committer | Robert S. French <rfrench@mit.edu> | 1987-06-29 13:26:38 +0000 |
commit | 31f8e167b83e8a8924f72acef60d08f991cf1e49 (patch) | |
tree | 28aa43aa615c5de476657e0708dec2057e8418ab /lib | |
parent | 42bd2bcb98e460804471d83a7270c428e1a5d231 (diff) |
Initial revision
Diffstat (limited to 'lib')
-rw-r--r-- | lib/ZFmtRawLst.c | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/lib/ZFmtRawLst.c b/lib/ZFmtRawLst.c new file mode 100644 index 0000000..a9ba259 --- /dev/null +++ b/lib/ZFmtRawLst.c @@ -0,0 +1,50 @@ +/* This file is part of the Project Athena Zephyr Notification System. + * It contains source for the ZFormatRawNoticeList function. + * + * Created by: Robert French + * + * $Source$ + * $Author$ + * + * Copyright (c) 1987 by the Massachusetts Institute of Technology. + * For copying and distribution information, see the file + * "mit-copyright.h". + */ +/* $Header$ */ + +#include <zephyr/mit-copyright.h> + +#include <zephyr/zephyr.h> + +Code_t ZFormatRawNoticeList(notice,list,nitems,buffer,buffer_len,ret_len) + ZNotice_t *notice; + char *list[]; + int nitems; + ZPacket_t buffer; + int buffer_len; + int *ret_len; +{ + char *ptr,*end; + Code_t retval; + + end = buffer+buffer_len; + + if ((retval = Z_FormatRawHeader(notice,buffer,buffer_len,ret_len)) != + ZERR_NONE) + return (retval); + + ptr = buffer+*ret_len; + + for (;nitems;nitems--,list++) { + if (ptr+strlen(*list)+1 > end) + return (ZERR_PKTLEN); + bcopy(*list,ptr,strlen(*list)+1); + *ret_len += strlen(*list)+1; + ptr += strlen(*list)+1; + } + + if (*ret_len > Z_MAXPKTLEN) + return (ZERR_PKTLEN); + + return (ZERR_NONE); +} |