From: Wilfried Göesgens Date: Thu, 13 Dec 2007 21:19:20 +0000 (+0000) Subject: * fixups. subscribers only post mailinglists work now. X-Git-Tag: v7.86~2652 X-Git-Url: https://code.citadel.org/?a=commitdiff_plain;h=7239856720fe09b101458045f7d35fe76e4ce1fe;p=citadel.git * fixups. subscribers only post mailinglists work now. --- diff --git a/citadel/modules/network/serv_network.c b/citadel/modules/network/serv_network.c index cf9c9800b..ebac0f6b4 100644 --- a/citadel/modules/network/serv_network.c +++ b/citadel/modules/network/serv_network.c @@ -1063,24 +1063,26 @@ int writenfree_spoolcontrol_file(SpoolControl **scc, char *filename) int is_recipient(SpoolControl *sc, const char *Name) { namelist *nptr; + size_t len; + len = strlen(Name); nptr = sc->listrecps; while (nptr != NULL) { - if (strcmp(Name, nptr->name)==0) + if (strncmp(Name, nptr->name, len)==0) return 1; nptr = nptr->next; } /* Do the same for digestrecps */ nptr = sc->digestrecps; while (nptr != NULL) { - if (strcmp(Name, nptr->name)==0) + if (strncmp(Name, nptr->name, len)==0) return 1; nptr = nptr->next; } /* Do the same for participates */ nptr = sc->participates; while (nptr != NULL) { - if (strcmp(Name, nptr->name)==0) + if (strncmp(Name, nptr->name, len)==0) return 1; nptr = nptr->next; } diff --git a/citadel/msgbase.c b/citadel/msgbase.c index d5f22580a..9c65dc030 100644 --- a/citadel/msgbase.c +++ b/citadel/msgbase.c @@ -3113,19 +3113,14 @@ int CtdlDoIHavePermissionToPostInThisRoom(char *errmsgbuf, else if (CC->room.QRflags2 & QR2_SUBSONLY){ SpoolControl *sc; char filename[SIZ]; - char room_to_spool[SIZ]; int found; if (RemoteIdentifier == NULL) { snprintf(errmsgbuf, n, "Need sender to permit access."); - return (0); - } - if (getroom(&CC->room, room_to_spool) != 0) { - lprintf(CTDL_CRIT, "ERROR: cannot load <%s>\n", room_to_spool); - return (0); + return (ERROR + USERNAME_REQUIRED); } - + assoc_file_name(filename, sizeof filename, &CC->room, ctdl_netcfg_dir); lprintf(CTDL_INFO, "Networking started for <%s>\n", CC->room.QRname); @@ -3134,12 +3129,15 @@ int CtdlDoIHavePermissionToPostInThisRoom(char *errmsgbuf, { end_critical_section(S_NETCONFIGS); snprintf(errmsgbuf, n, "No Subscribers found."); - return (0); + return (ERROR + NO_SUCH_USER); } end_critical_section(S_NETCONFIGS); found = is_recipient (sc, RemoteIdentifier); free_spoolcontrol_struct(&sc); - return (found); + if (found) + return (0); + else + return (ERROR + NO_SUCH_USER); } else if (CC->room.QRflags2 & QR2_MODERATED) { return (0);