From 32aeb1fa6cf598cd710fa5ac4b6dc8ec0715375e Mon Sep 17 00:00:00 2001 From: Bram Matthys Date: Tue, 19 May 2015 12:00:12 +0200 Subject: [PATCH] ModData: only broadcast changes if sync==1. Fix return value of moddata_client_set(). --- src/moddata.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/moddata.c b/src/moddata.c index b85b08609..05a925a2d 100644 --- a/src/moddata.c +++ b/src/moddata.c @@ -403,12 +403,16 @@ int moddata_client_set(aClient *acptr, char *varname, char *value) memset(&moddata_client(acptr, md), 0, sizeof(ModData)); } - if (value) - sendto_server(NULL, 0, 0, ":%s MD %s %s %s :%s", - me.name, "client", acptr->name, md->name, value); /* set */ - else - sendto_server(NULL, 0, 0, ":%s MD %s %s %s", - me.name, "client", acptr->name, md->name); /* unset */ + if (md->sync) + { + if (value) + sendto_server(NULL, 0, 0, ":%s MD %s %s %s :%s", + me.name, "client", acptr->name, md->name, value); /* set */ + else + sendto_server(NULL, 0, 0, ":%s MD %s %s %s", + me.name, "client", acptr->name, md->name); /* unset */ + } + return 1; } /** Get ModData for client (via variable name) */