X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=citadel%2Finternet_addressing.c;h=fffd9c7e001ccf32ea09c8a55203f176198789af;hb=f338fe3df988f4c9384e817237526325a31b6971;hp=33d70451a6f36406c36056d8b91954ce0e728f4e;hpb=50ff39d933b7178377b3a67f8edc31ffa42ffd28;p=citadel.git diff --git a/citadel/internet_addressing.c b/citadel/internet_addressing.c index 33d70451a..fffd9c7e0 100644 --- a/citadel/internet_addressing.c +++ b/citadel/internet_addressing.c @@ -2,7 +2,7 @@ * This file contains functions which handle the mapping of Internet addresses * to users on the Citadel system. * - * Copyright (c) 1987-2018 by the citadel.org team + * Copyright (c) 1987-2020 by the citadel.org team * * This program is open source software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 3. @@ -353,7 +353,7 @@ int CtdlIsMe(char *addr, int addr_buf_len) /* If the last item in a list of recipients was truncated to a partial address, - * remove it completely in order to avoid choking libSieve + * remove it completely in order to avoid choking library functions. */ void sanitize_truncated_recipient(char *str) { @@ -884,13 +884,11 @@ void unfold_rfc822_field(char **field, char **FieldEnd) { if ((*sField=='\r') || (*sField=='\n')) { - int Offset = 1; - while (((*(sField + Offset) == '\r') || - (*(sField + Offset) == '\n') || - (isspace(*(sField + Offset)))) && - (sField + Offset < pFieldEnd)) - Offset ++; - sField += Offset; + int offset = 1; + while ( ( (*(sField + offset) == '\r') || (*(sField + offset) == '\n' )) && (sField + offset < pFieldEnd) ) { + offset ++; + } + sField += offset; *pField = *sField; } else { @@ -1588,58 +1586,23 @@ char *harvest_collected_addresses(struct CtdlMessage *msg) { /* * Helper function for CtdlRebuildDirectoryIndex() - * - * Call this function as a ForEachUser backend in order to queue up - * user names, or call it with a null user to make it do the processing. - * This allows us to maintain the list as a static instead of passing - * pointers around. */ -void CtdlRebuildDirectoryIndex_backend(struct ctdluser *usbuf, void *data) { - - struct crdib { - char name[64]; - char emails[512]; - }; +void CtdlRebuildDirectoryIndex_backend(char *username, void *data) { - static struct crdib *e = NULL; - static int num_e = 0; - static int alloc_e = 0; - - /* this is the calling mode where we add a user */ + int j = 0; + struct ctdluser usbuf; - if (usbuf != NULL) { - if (num_e >= alloc_e) { - if (alloc_e == 0) { - alloc_e = 100; - e = malloc(sizeof(struct crdib) * alloc_e); - } - else { - alloc_e *= 2; - e = realloc(e, (sizeof(struct crdib) * alloc_e)); - } - } - strcpy(e[num_e].name, usbuf->fullname); - strcpy(e[num_e].emails, usbuf->emailaddrs); - ++num_e; + if (CtdlGetUser(&usbuf, username) != 0) { return; } - /* this is the calling mode where we do the processing */ - - int i, j; - for (i=0; i