size_t strlcat(char *dst, const char *src, size_t siz);
#endif
-#ifdef HAVE_STRDUP
-#define DupString(x,y) do { x = strdup(y); if(x == NULL) outofmemory(); } while(0)
-#else
-#define DupString(x,y) do { x = malloc(strlen(y) + 1); if(x == NULL) outofmemory(); strcpy(x, y); } while(0)
-#endif
-
#ifdef HAVE_STRNDUP
#define DupNString(x, y, len) do { x = strndup(y, len); if(x == NULL) outofmemory(); } while (0)
#else
rb_free(source_p->serv->fullcaps);
}
- DupString(source_p->serv->fullcaps, parv[1]);
+ source_p->serv->fullcaps = rb_strdup(parv[1]);
for (s = strtoken(&p, t, " "); s; s = strtoken(&p, NULL, " "))
{
aconf = make_conf();
aconf->status = CONF_DLINE;
- DupString(aconf->host, dlhost);
+ aconf->host = rb_strdup(dlhost);
/* Look for an oper reason */
if((oper_reason = strchr(reason, '|')) != NULL)
oper_reason++;
if(!EmptyString(oper_reason))
- DupString(aconf->spasswd, oper_reason);
+ aconf->spasswd = rb_strdup(oper_reason);
}
if(tdline_time > 0)
rb_snprintf(dlbuffer, sizeof(dlbuffer),
"Temporary D-line %d min. - %s (%s)",
(int) (tdline_time / 60), reason, current_date);
- DupString(aconf->passwd, dlbuffer);
+ aconf->passwd = rb_strdup(dlbuffer);
aconf->hold = CurrentTime + tdline_time;
add_temp_dline(aconf);
else
{
rb_snprintf(dlbuffer, sizeof(dlbuffer), "%s (%s)", reason, current_date);
- DupString(aconf->passwd, dlbuffer);
+ aconf->passwd = rb_strdup(dlbuffer);
add_conf_by_address(aconf->host, CONF_DLINE, NULL, aconf);
write_confitem(DLINE_TYPE, source_p, NULL, aconf->host, reason,
oper_reason, current_date, 0);
oper_reason++;
if(!EmptyString(oper_reason))
- DupString(aconf->spasswd, oper_reason);
+ aconf->spasswd = rb_strdup(oper_reason);
}
rb_snprintf(buffer, sizeof(buffer), "%s (%s)", reason, current_date);
- DupString(aconf->passwd, buffer);
- DupString(aconf->user, user);
- DupString(aconf->host, host);
+ aconf->passwd = rb_strdup(buffer);
+ aconf->user = rb_strdup(user);
+ aconf->host = rb_strdup(host);
aconf->hold = CurrentTime + ConfigFileEntry.gline_time;
add_gline(aconf);
sizeof(pending->oper_user2));
strlcpy(pending->oper_host2, source_p->host,
sizeof(pending->oper_host2));
- DupString(pending->reason2, reason);
+ pending->reason2 = rb_strdup(reason);
pending->oper_server2 = scache_get_name(source_p->servptr->serv->nameinfo);
pending->last_gline_time = CurrentTime;
pending->time_request2 = CurrentTime;
strlcpy(pending->user, user, sizeof(pending->user));
strlcpy(pending->host, host, sizeof(pending->host));
- DupString(pending->reason1, reason);
+ pending->reason1 = rb_strdup(reason);
pending->reason2 = NULL;
pending->last_gline_time = CurrentTime;
current_date = smalldate();
aconf = make_conf();
aconf->status = CONF_KILL;
- DupString(aconf->host, host);
- DupString(aconf->user, user);
+ aconf->host = rb_strdup(host);
+ aconf->user = rb_strdup(user);
aconf->port = 0;
/* Look for an oper reason */
oper_reason++;
if(!EmptyString(oper_reason))
- DupString(aconf->spasswd, oper_reason);
+ aconf->spasswd = rb_strdup(oper_reason);
}
if(tkline_time > 0)
rb_snprintf(buffer, sizeof(buffer),
"Temporary K-line %d min. - %s (%s)",
(int) (tkline_time / 60), reason, current_date);
- DupString(aconf->passwd, buffer);
+ aconf->passwd = rb_strdup(buffer);
apply_tkline(source_p, aconf, reason, oper_reason, current_date, tkline_time);
}
else
{
rb_snprintf(buffer, sizeof(buffer), "%s (%s)", reason, current_date);
- DupString(aconf->passwd, buffer);
+ aconf->passwd = rb_strdup(buffer);
apply_kline(source_p, aconf, reason, oper_reason, current_date);
}
aconf = make_conf();
aconf->status = CONF_KILL;
- DupString(aconf->user, user);
- DupString(aconf->host, host);
+ aconf->user = rb_strdup(user);
+ aconf->host = rb_strdup(host);
/* Look for an oper reason */
if((oper_reason = strchr(reason, '|')) != NULL)
oper_reason++;
if(!EmptyString(oper_reason))
- DupString(aconf->spasswd, oper_reason);
+ aconf->spasswd = rb_strdup(oper_reason);
}
current_date = smalldate();
rb_snprintf(buffer, sizeof(buffer),
"Temporary K-line %d min. - %s (%s)",
(int) (tkline_time / 60), reason, current_date);
- DupString(aconf->passwd, buffer);
+ aconf->passwd = rb_strdup(buffer);
apply_tkline(source_p, aconf, reason, oper_reason, current_date, tkline_time);
}
else
{
rb_snprintf(buffer, sizeof(buffer), "%s (%s)", reason, current_date);
- DupString(aconf->passwd, buffer);
+ aconf->passwd = rb_strdup(buffer);
apply_kline(source_p, aconf, reason, oper_reason, current_date);
}
aconf = make_conf();
aconf->status = CONF_RESV_CHANNEL;
aconf->port = 0;
- DupString(aconf->name, name);
- DupString(aconf->passwd, reason);
+ aconf->name = rb_strdup(name);
+ aconf->passwd = rb_strdup(reason);
add_to_resv_hash(aconf->name, aconf);
if(temp_time > 0)
aconf = make_conf();
aconf->status = CONF_RESV_NICK;
aconf->port = 0;
- DupString(aconf->name, name);
- DupString(aconf->passwd, reason);
+ aconf->name = rb_strdup(name);
+ aconf->passwd = rb_strdup(reason);
rb_dlinkAddAlloc(aconf, &resv_conf_list);
if(temp_time > 0)
rb_snprintf(buf, sizeof(buf), "%s %s", parv[2], parv[3]);
rb_free(source_p->localClient->fullcaps);
- DupString(source_p->localClient->fullcaps, buf);
+ source_p->localClient->fullcaps = rb_strdup(buf);
do_local_user(client_p, source_p, parv[1], parv[4]);
return 0;
}
*new = '\0';
- DupString(aconf->name, tmp);
+ aconf->name = rb_strdup(tmp);
}
else
- DupString(aconf->name, name);
+ aconf->name = rb_strdup(name);
- DupString(aconf->passwd, reason);
+ aconf->passwd = rb_strdup(reason);
collapse(aconf->name);
if(temp_time > 0)
{
struct Channel *chptr;
chptr = BlockHeapAlloc(channel_heap);
- DupString(chptr->chname, chname);
+ chptr->chname = rb_strdup(chname);
return (chptr);
}
{
struct Ban *bptr;
bptr = BlockHeapAlloc(ban_heap);
- DupString(bptr->banstr, banstr);
- DupString(bptr->who, who);
+ bptr->banstr = rb_strdup(banstr);
+ bptr->who = rb_strdup(who);
return (bptr);
}
initclass()
{
default_class = make_class();
- DupString(ClassName(default_class), "default");
+ ClassName(default_class) = rb_strdup("default");
}
/*
if((i = find_hook(name)) < 0)
{
i = find_freehookslot();
- DupString(hooks[i].name, name);
+ hooks[i].name = rb_strdup(name);
num_hooks++;
}
struct Dictionary *dtree = (struct Dictionary *) rb_malloc(sizeof(struct Dictionary));
dtree->compare_cb = compare_cb;
- DupString(dtree->id, name);
+ dtree->id = rb_strdup(name);
if (!elem_heap)
elem_heap = BlockHeapCreate(sizeof(struct DictionaryElement), 1024);
break;
case CF_STRING:
case CF_QSTRING:
- DupString(new->v.string, str);
+ new->v.string = rb_strdup(str);
break;
}
{
$$ = rb_malloc(sizeof(conf_parm_t));
$$->type = CF_QSTRING;
- DupString($$->v.string, $1);
+ $$->v.string = rb_strdup($1);
}
| timespec
{
else
{
$$->type = CF_STRING;
- DupString($$->v.string, $1);
+ $$->v.string = rb_strdup($1);
}
}
;
const char *operreason_field, const char *date_field)
{
if(host_field != NULL)
- DupString(aconf->host, host_field);
+ aconf->host = rb_strdup(host_field);
if(pass_field != NULL)
{
if(!EmptyString(date_field))
rb_sprintf(aconf->passwd, "%s (%s)", pass_field, date_field);
}
else
- DupString(aconf->passwd, pass_field);
+ aconf->passwd = rb_strdup(pass_field);
}
if(user_field != NULL)
- DupString(aconf->user, user_field);
+ aconf->user = rb_strdup(user_field);
if(operreason_field != NULL)
- DupString(aconf->spasswd, operreason_field);
+ aconf->spasswd = rb_strdup(operreason_field);
}
/*
aconf = make_conf();
aconf->status = CONF_XLINE;
- DupString(aconf->name, gecos_field);
- DupString(aconf->passwd, reason_field);
+ aconf->name = rb_strdup(gecos_field);
+ aconf->passwd = rb_strdup(reason_field);
rb_dlinkAddAlloc(aconf, &xline_conf_list);
}
aconf->status = CONF_RESV_CHANNEL;
aconf->port = 0;
- DupString(aconf->name, host_field);
- DupString(aconf->passwd, reason_field);
+ aconf->name = rb_strdup(host_field);
+ aconf->passwd = rb_strdup(reason_field);
add_to_resv_hash(aconf->name, aconf);
}
else if(clean_resv_nick(host_field))
aconf->status = CONF_RESV_NICK;
aconf->port = 0;
- DupString(aconf->name, host_field);
- DupString(aconf->passwd, reason_field);
+ aconf->name = rb_strdup(host_field);
+ aconf->passwd = rb_strdup(reason_field);
rb_dlinkAddAlloc(aconf, &resv_conf_list);
}
}
modlist[num_mods]->address = tmpptr;
modlist[num_mods]->version = ver;
modlist[num_mods]->core = core;
- DupString(modlist[num_mods]->name, mod_basename);
+ modlist[num_mods]->name = rb_strdup(mod_basename);
modlist[num_mods]->mapi_header = mapi_version;
modlist[num_mods]->mapi_version = MAPI_VERSION(*mapi_version);
num_mods++;
/* the ircd will exit() in main() if we dont set one */
if(strlen(s) <= HOSTLEN)
- DupString(ServerInfo.name, (char *) data);
+ ServerInfo.name = rb_strdup((char *) data);
}
}
*p = '\0';
rb_free(ServerInfo.network_name);
- DupString(ServerInfo.network_name, (char *) data);
+ ServerInfo.network_name = rb_strdup((char *) data);
}
static void
if(strlen(conf_cur_block_name) > OPERNICKLEN)
conf_cur_block_name[OPERNICKLEN] = '\0';
- DupString(yy_oper->name, conf_cur_block_name);
+ yy_oper->name = rb_strdup(conf_cur_block_name);
}
if(EmptyString(yy_oper->name))
{
yy_tmpoper = ptr->data;
- DupString(yy_tmpoper->name, yy_oper->name);
+ yy_tmpoper->name = rb_strdup(yy_oper->name);
/* could be an rsa key instead.. */
if(!EmptyString(yy_oper->passwd))
- DupString(yy_tmpoper->passwd, yy_oper->passwd);
+ yy_tmpoper->passwd = rb_strdup(yy_oper->passwd);
yy_tmpoper->flags = yy_oper->flags;
yy_tmpoper->umodes = yy_oper->umodes;
{
*p++ = '\0';
- DupString(yy_tmpoper->username, host);
- DupString(yy_tmpoper->host, p);
+ yy_tmpoper->username = rb_strdup(host);
+ yy_tmpoper->host = rb_strdup(p);
}
else
{
- DupString(yy_tmpoper->username, "*");
- DupString(yy_tmpoper->host, host);
+ yy_tmpoper->username = rb_strdup("*");
+ yy_tmpoper->host = rb_strdup(host);
}
if(EmptyString(yy_tmpoper->username) || EmptyString(yy_tmpoper->host))
rb_free(yy_oper->passwd);
}
- DupString(yy_oper->passwd, (char *) data);
+ yy_oper->passwd = rb_strdup((char *) data);
}
static void
{
#ifdef HAVE_LIBCRYPTO
rb_free(yy_oper->rsa_pubkey_file);
- DupString(yy_oper->rsa_pubkey_file, (char *) data);
+ yy_oper->rsa_pubkey_file = rb_strdup((char *) data);
#else
conf_report_error("Warning -- ignoring rsa_public_key_file (OpenSSL support not available");
#endif
conf_end_class(struct TopConf *tc)
{
if(conf_cur_block_name != NULL)
- DupString(yy_class->class_name, conf_cur_block_name);
+ yy_class->class_name = rb_strdup(conf_cur_block_name);
if(EmptyString(yy_class->class_name))
{
conf_set_listen_address(void *data)
{
rb_free(listener_address);
- DupString(listener_address, data);
+ listener_address = rb_strdup(data);
}
static int
rb_dlink_node *next_ptr;
if(EmptyString(yy_aconf->name))
- DupString(yy_aconf->name, "NOMATCH");
+ yy_aconf->name = rb_strdup("NOMATCH");
/* didnt even get one ->host? */
if(EmptyString(yy_aconf->host))
yy_tmp = ptr->data;
if(yy_aconf->passwd)
- DupString(yy_tmp->passwd, yy_aconf->passwd);
+ yy_tmp->passwd = rb_strdup(yy_aconf->passwd);
/* this will always exist.. */
- DupString(yy_tmp->name, yy_aconf->name);
+ yy_tmp->name = rb_strdup(yy_aconf->name);
if(yy_aconf->className)
- DupString(yy_tmp->className, yy_aconf->className);
+ yy_tmp->className = rb_strdup(yy_aconf->className);
yy_tmp->flags = yy_aconf->flags;
yy_tmp->port = yy_aconf->port;
{
*p++ = '\0';
- DupString(yy_tmp->user, data);
- DupString(yy_tmp->host, p);
+ yy_tmp->user = rb_strdup(data);
+ yy_tmp->host = rb_strdup(p);
}
else
{
- DupString(yy_tmp->user, "*");
- DupString(yy_tmp->host, data);
+ yy_tmp->user = rb_strdup("*");
+ yy_tmp->host = rb_strdup(data);
}
if(yy_aconf != yy_tmp)
if(yy_aconf->passwd)
memset(yy_aconf->passwd, 0, strlen(yy_aconf->passwd));
rb_free(yy_aconf->passwd);
- DupString(yy_aconf->passwd, data);
+ yy_aconf->passwd = rb_strdup(data);
}
static void
}
rb_free(yy_aconf->name);
- DupString(yy_aconf->name, data);
+ yy_aconf->name = rb_strdup(data);
yy_aconf->flags |= CONF_FLAGS_SPOOF_IP;
}
{
yy_aconf->flags |= CONF_FLAGS_REDIR;
rb_free(yy_aconf->name);
- DupString(yy_aconf->name, data);
+ yy_aconf->name = rb_strdup(data);
}
static void
conf_set_auth_class(void *data)
{
rb_free(yy_aconf->className);
- DupString(yy_aconf->className, data);
+ yy_aconf->className = rb_strdup(data);
}
/* ok, shared_oper handles the stacking, shared_flags handles adding
return;
}
- DupString(yy_shared->server, args->v.string);
+ yy_shared->server = rb_strdup(args->v.string);
args = args->next;
}
else
- DupString(yy_shared->server, "*");
+ yy_shared->server = rb_strdup("*");
if((args->type & CF_MTYPE) != CF_QSTRING)
{
*p++ = '\0';
if(EmptyString(p))
- DupString(yy_shared->host, "*");
+ yy_shared->host = rb_strdup("*");
else
- DupString(yy_shared->host, p);
+ yy_shared->host = rb_strdup(p);
if(EmptyString(username))
- DupString(yy_shared->username, "*");
+ yy_shared->username = rb_strdup("*");
else
- DupString(yy_shared->username, username);
+ yy_shared->username = rb_strdup(username);
rb_dlinkAddAlloc(yy_shared, &yy_shared_list);
yy_shared = NULL;
yy_server->flags |= SERVER_TB;
if(conf_cur_block_name != NULL)
- DupString(yy_server->name, conf_cur_block_name);
+ yy_server->name = rb_strdup(conf_cur_block_name);
return 0;
}
conf_set_connect_host(void *data)
{
rb_free(yy_server->host);
- DupString(yy_server->host, data);
+ yy_server->host = rb_strdup(data);
if (strchr(yy_server->host, ':'))
yy_server->aftype = AF_INET6;
}
rb_free(yy_server->spasswd);
}
- DupString(yy_server->spasswd, data);
+ yy_server->spasswd = rb_strdup(data);
}
static void
memset(yy_server->passwd, 0, strlen(yy_server->passwd));
rb_free(yy_server->passwd);
}
- DupString(yy_server->passwd, data);
+ yy_server->passwd = rb_strdup(data);
}
static void
yy_hub = make_remote_conf();
yy_hub->flags = CONF_HUB;
- DupString(yy_hub->host, data);
- DupString(yy_hub->server, yy_server->name);
+ yy_hub->host = rb_strdup(data);
+ yy_hub->server = rb_strdup(yy_server->name);
rb_dlinkAdd(yy_hub, &yy_hub->node, &hubleaf_conf_list);
}
yy_leaf = make_remote_conf();
yy_leaf->flags = CONF_LEAF;
- DupString(yy_leaf->host, data);
- DupString(yy_leaf->server, yy_server->name);
+ yy_leaf->host = rb_strdup(data);
+ yy_leaf->server = rb_strdup(yy_server->name);
rb_dlinkAdd(yy_leaf, &yy_leaf->node, &hubleaf_conf_list);
}
conf_set_connect_class(void *data)
{
rb_free(yy_server->class_name);
- DupString(yy_server->class_name, data);
+ yy_server->class_name = rb_strdup(data);
}
static void
}
yy_tmp = make_conf();
- DupString(yy_tmp->passwd, "*");
- DupString(yy_tmp->host, data);
+ yy_tmp->passwd = rb_strdup("*");
+ yy_tmp->host = rb_strdup(data);
yy_tmp->status = CONF_EXEMPTDLINE;
add_conf_by_address(yy_tmp->host, CONF_EXEMPTDLINE, NULL, yy_tmp);
}
free_remote_conf(yy_shared);
yy_shared = make_remote_conf();
- DupString(yy_shared->server, data);
+ yy_shared->server = rb_strdup(data);
rb_dlinkAddAlloc(yy_shared, &yy_cluster_list);
yy_shared = NULL;
return;
}
- DupString(tmp, data);
+ tmp = rb_strdup(data);
rb_dlinkAddAlloc(tmp, &service_list);
if((target_p = find_server(NULL, tmp)))
yy_alias = rb_malloc(sizeof(struct alias_entry));
if (conf_cur_block_name != NULL)
- DupString(yy_alias->name, conf_cur_block_name);
+ yy_alias->name = rb_strdup(conf_cur_block_name);
yy_alias->flags = 0;
yy_alias->hits = 0;
if (data == NULL || yy_alias == NULL) /* this shouldn't ever happen */
return;
- DupString(yy_alias->name, data);
+ yy_alias->name = rb_strdup(data);
}
static void
if (data == NULL || yy_alias == NULL) /* this shouldn't ever happen */
return;
- DupString(yy_alias->target, data);
+ yy_alias->target = rb_strdup(data);
}
static void
conf_set_blacklist_host(void *data)
{
- DupString(yy_blacklist_host, data);
+ yy_blacklist_host = rb_strdup(data);
}
static void
conf_set_blacklist_reason(void *data)
{
- DupString(yy_blacklist_reason, data);
+ yy_blacklist_reason = rb_strdup(data);
if (yy_blacklist_host && yy_blacklist_reason)
{
}
if(name)
- DupString(conf_cur_block_name, name);
+ conf_cur_block_name = rb_strdup(name);
else
conf_cur_block_name = NULL;
input[len] = '\0';
rb_free(*loc);
- DupString(*loc, input);
+ *loc = rb_strdup(input);
}
int
value->v.list->type = CF_STRING;
if(cp->v.number == 1)
- DupString(cp->v.string, "yes");
+ cp->v.string = rb_strdup("yes");
else
- DupString(cp->v.string, "no");
+ cp->v.string = rb_strdup("no");
}
/* maybe it's a CF_TIME and they passed CF_INT --
/* ServerInfo.name is not rehashable */
/* ServerInfo.name = ServerInfo.name; */
ServerInfo.description = NULL;
- DupString(ServerInfo.network_name, NETWORK_NAME_DEFAULT);
- DupString(ServerInfo.network_desc, NETWORK_DESC_DEFAULT);
+ ServerInfo.network_name = rb_strdup(NETWORK_NAME_DEFAULT);
+ ServerInfo.network_desc = rb_strdup(NETWORK_DESC_DEFAULT);
memset(&ServerInfo.ip, 0, sizeof(ServerInfo.ip));
ServerInfo.specific_ipv4_vhost = 0;
AdminInfo.email = NULL;
AdminInfo.description = NULL;
- DupString(ConfigFileEntry.default_operstring, "is an IRC operator");
- DupString(ConfigFileEntry.default_adminstring, "is a Server Administrator");
- DupString(ConfigFileEntry.servicestring, "is a Network Service");
+ ConfigFileEntry.default_operstring = rb_strdup("is an IRC operator");
+ ConfigFileEntry.default_adminstring = rb_strdup("is a Server Administrator");
+ ConfigFileEntry.servicestring = rb_strdup("is a Network Service");
ConfigFileEntry.default_umodes = UMODE_INVISIBLE;
ConfigFileEntry.failed_oper_notice = YES;
ConfigFileEntry.hide_error_messages = 1;
ConfigFileEntry.dots_in_ident = 0;
ConfigFileEntry.max_targets = MAX_TARGETS_DEFAULT;
- DupString(ConfigFileEntry.servlink_path, SLPATH);
+ ConfigFileEntry.servlink_path = rb_strdup(SLPATH);
ConfigFileEntry.egdpool_path = NULL;
ConfigFileEntry.use_whois_actually = YES;
ConfigFileEntry.burst_away = NO;
ConfigFileEntry.ts_max_delta = TS_MAX_DELTA_DEFAULT;
if(ConfigFileEntry.servlink_path == NULL)
- DupString(ConfigFileEntry.servlink_path, SLPATH);
+ ConfigFileEntry.servlink_path = rb_strdup(SLPATH);
if(ServerInfo.network_name == NULL)
- DupString(ServerInfo.network_name, NETWORK_NAME_DEFAULT);
+ ServerInfo.network_name = rb_strdup(NETWORK_NAME_DEFAULT);
if(ServerInfo.network_desc == NULL)
- DupString(ServerInfo.network_desc, NETWORK_DESC_DEFAULT);
+ ServerInfo.network_desc = rb_strdup(NETWORK_DESC_DEFAULT);
if((ConfigFileEntry.client_flood < CLIENT_FLOOD_MIN) ||
(ConfigFileEntry.client_flood > CLIENT_FLOOD_MAX))
{
if(aconf->className == NULL)
{
- DupString(aconf->className, "default");
+ aconf->className = rb_strdup("default");
ClassPtr(aconf) = default_class;
return;
}
}
rb_free(aconf->className);
- DupString(aconf->className, "default");
+ aconf->className = rb_strdup("default");
return;
}
{
ClassPtr(aconf) = default_class;
rb_free(aconf->className);
- DupString(aconf->className, "default");
+ aconf->className = rb_strdup("default");
return;
}
}
{
if(EmptyString(server_p->class_name))
{
- DupString(server_p->class_name, "default");
+ server_p->class_name = rb_strdup("default");
server_p->class = default_class;
return;
}
server_p->name);
rb_free(server_p->class_name);
- DupString(server_p->class_name, "default");
+ server_p->class_name = rb_strdup("default");
}
if(strchr(server_p->host, '*') || strchr(server_p->host, '?'))
pnode->data = target;
target->pnode = pnode;
- DupString(target->ip, host);
+ target->ip = rb_strdup(host);
target->expiry = CurrentTime + (60*60*12);
rb_dlinkAdd(target, &target->node, &tgchange_list);
if(client_p->localClient->fullcaps)
{
- DupString(client_p->serv->fullcaps, client_p->localClient->fullcaps);
+ client_p->serv->fullcaps = rb_strdup(client_p->localClient->fullcaps);
rb_free(client_p->localClient->fullcaps);
client_p->localClient->fullcaps = NULL;
}
SetExemptKline(source_p);
source_p->flags2 |= oper_p->flags;
- DupString(source_p->localClient->opername, oper_p->name);
+ source_p->localClient->opername = rb_strdup(oper_p->name);
rb_dlinkAddAlloc(source_p, &local_oper_list);
rb_dlinkAddAlloc(source_p, &oper_list);
{
struct substitution_variable *tmp = rb_malloc(sizeof(struct substitution_variable));
- DupString(tmp->name, name);
- DupString(tmp->value, value);
+ tmp->name = rb_strdup(name);
+ tmp->value = rb_strdup(value);
rb_dlinkAddAlloc(tmp, varlist);
}