Sat, 21 Nov 2020 22:54:04 -0600
Use GSubprocess to manager zephyr tzc command.
This is a straight conversion, and does not make any attempt to be more asynchronous, as I don't know the protocol between them, but I expect there are ways to reduce the blocking.
Testing Done:
Compile only.
Reviewed at https://reviews.imfreedom.org/r/247/
/* This file is part of the Project Athena Zephyr Notification System. * It contains source for the ZFormatNoticeList function. * * Created by: Robert French * * Copyright (c) 1987,1991 by the Massachusetts Institute of Technology. * For copying and distribution information, see the file * "mit-copyright.h". */ #include "internal.h" Code_t ZFormatNoticeList(ZNotice_t *notice, register char **list, int nitems, char **buffer, int *ret_len, Z_AuthProc cert_routine) { char header[Z_MAXHEADERLEN]; register int i; int hdrlen, size; char *ptr; Code_t retval; if ((retval = Z_FormatHeader(notice, header, sizeof(header), &hdrlen, cert_routine)) != ZERR_NONE) return (retval); size = 0; for (i=0;i<nitems;i++) size += strlen(list[i])+1; *ret_len = hdrlen+size; /* *ret_len can never be zero here, no need to worry about malloc(0). */ if (!(*buffer = (char *) malloc((unsigned)*ret_len))) return (ENOMEM); (void) memcpy(*buffer, header, hdrlen); ptr = *buffer+hdrlen; for (;nitems;nitems--, list++) { i = strlen(*list)+1; (void) memcpy(ptr, *list, i); ptr += i; } return (ZERR_NONE); }