/*
* This file contains functions which handle the mapping of Internet addresses
* to users on the Citadel system.
+ *
+ * Copyright (c) 1987-2015 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.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
*/
+
#include "sysdep.h"
#include <stdlib.h>
#include <unistd.h>
}
else if (!strcasecmp(encoding, "Q")) { /**< quoted-printable */
size_t len;
- long pos;
+ unsigned long pos;
len = strlen(istr);
pos = 0;
if (fqdn == NULL) return(hostalias_nomatch);
if (IsEmptyStr(fqdn)) return(hostalias_nomatch);
if (!strcasecmp(fqdn, "localhost")) return(hostalias_localhost);
- if (!strcasecmp(fqdn, config.c_fqdn)) return(hostalias_localhost);
- if (!strcasecmp(fqdn, config.c_nodename)) return(hostalias_localhost);
+ if (!strcasecmp(fqdn, CtdlGetConfigStr("c_fqdn"))) return(hostalias_localhost);
+ if (!strcasecmp(fqdn, CtdlGetConfigStr("c_nodename"))) return(hostalias_localhost);
if (inetcfg == NULL) return(hostalias_nomatch);
config_lines = num_tokens(inetcfg, '\n');
*/
void remove_any_whitespace_to_the_left_or_right_of_at_symbol(char *name)
{
- int i;
+ unsigned int i;
for (i = 0; i < strlen(name); ++i) {
if (name[i] == '@') {
strcpy(name, &name[1]);
aaa[strlen(aaa) - 1] = 0;
strcpy(bbb, "");
- for (a = 0; a < strlen(aaa); ++a) {
+ for (a = 0; aaa[a] != '\0'; ++a) {
if (aaa[a] == ',') {
strcpy(bbb, &aaa[a + 1]);
aaa[a] = 0;
+ break;
}
}
if (!strcasecmp(name, aaa))
}
/* Change "user @ xxx" to "user" if xxx is an alias for this host */
- for (a=0; a<strlen(name); ++a) {
+ for (a=0; name[a] != '\0'; ++a) {
if (name[a] == '@') {
if (CtdlHostAlias(&name[a+1]) == hostalias_localhost) {
name[a] = 0;
MSG_syslog(LOG_INFO, "Changed to <%s>\n", name);
+ break;
}
}
}
case MES_LOCAL:
if (!strcasecmp(this_recp, "sysop")) {
++ret->num_room;
- strcpy(this_recp, config.c_aideroom);
+ strcpy(this_recp, CtdlGetConfigStr("c_aideroom"));
if (!IsEmptyStr(ret->recp_room)) {
strcat(ret->recp_room, "|");
}
int a;
strcpy(user, "");
- strcpy(node, config.c_fqdn);
+ strcpy(node, CtdlGetConfigStr("c_fqdn"));
strcpy(name, "");
if (rfc822 == NULL) return;
strcpy(name, &name[1]);
/* and anything to the right of a @ or % */
- for (a = 0; a < strlen(name); ++a) {
- if (name[a] == '@')
+ for (a = 0; name[a] != '\0'; ++a) {
+ if (name[a] == '@') {
name[a] = 0;
- if (name[a] == '%')
+ break;
+ }
+ if (name[a] == '%') {
name[a] = 0;
+ break;
+ }
}
/* but if there are parentheses, that changes the rules... */
strcpy(&name[0], &name[1]);
}
strcpy(&name[0], &name[1]);
- for (a = 0; a < strlen(name); ++a)
- if (name[a] == 34)
+ for (a = 0; name[a] != '\0'; ++a)
+ if (name[a] == 34) {
name[a] = 0;
+ break;
+ }
}
/* extract user id */
strcpy(user, rfc822);
strcpy(user, &user[1]);
/* and anything to the right of a @ or % */
- for (a = 0; a < strlen(user); ++a) {
- if (user[a] == '@')
+ for (a = 0; user[a] != '\0'; ++a) {
+ if (user[a] == '@') {
user[a] = 0;
- if (user[a] == '%')
+ break;
+ }
+ if (user[a] == '%') {
user[a] = 0;
+ break;
+ }
}
&& (haschar(node, '%')==0)
&& (haschar(node, '!')==0)
) {
- strcpy(node, config.c_nodename);
+ strcpy(node, CtdlGetConfigStr("c_nodename"));
}
else {
strcpy(node, &node[1]);
/* now get rid of the user portion of a node!user string */
- for (a = 0; a < strlen(node); ++a)
- if (node[a] == '!')
+ for (a = 0; node[a] != '\0'; ++a)
+ if (node[a] == '!') {
node[a] = 0;
+ break;
+ }
}
/* strip leading and trailing spaces in all strings */