<p>Tzafrir Cohen has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.asterisk.org/8921">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">cdr_mysql: check early for missing configs<br><br>ASTERISK-27572<br><br>Change-Id: Id5126f525fb255574bbf44878059a8d1890843fc<br>---<br>M addons/cdr_mysql.c<br>1 file changed, 36 insertions(+), 1 deletion(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.asterisk.org:29418/asterisk refs/changes/21/8921/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">diff --git a/addons/cdr_mysql.c b/addons/cdr_mysql.c<br>index bd31664..766c1fc 100644<br>--- a/addons/cdr_mysql.c<br>+++ b/addons/cdr_mysql.c<br>@@ -185,7 +185,7 @@<br>       ast_mutex_lock(&mysql_lock);<br> <br> db_reconnect:<br>-  if ((!connected) && (hostname || dbsock) && dbuser && password && dbname && dbtable ) {<br>+      if (!connected) {<br>             /* Attempt to connect */<br>              mysql_init(&mysql);<br>               /* Add option to quickly timeout the connection */<br>@@ -581,6 +581,37 @@<br>      return AST_MODULE_LOAD_SUCCESS;<br> }<br> <br>+static const char * my_global_var(ast_config *cfg, const char *var_name)<br>+{<br>+        return ast_variable_retrieve(cfg, "global", variable);<br>+}<br>+<br>+<br>+const char[] required_global_cfgs[] = {<br>+ "dbuser", "dbpassword", "dbname", "dbtable"<br>+};<br>+<br>+static int is_valid_cfg(ast_config *cfg)<br>+{<br>+   int i;<br>+<br>+    if (! (my_global_var(cfg, "hostname") || my_global_var(cfg, "dbsock")))     {<br>+            ast_log(LOG_ERROR, "Either 'hostname' or 'dbsock' must be set\n");<br>+         return 0;<br>+    }<br>+<br>+ for (i = 0; i < sizeof(required_global_cfgs); i++) {<br>+              if (!my_global_var(cfg, required_global_cfgs[i])) {<br>+                  ast_log(LOG_ERROR, "'%s' must be set\n",<br>+                                   required_global_cfgs[i]);<br>+                    return 0;<br>+            }<br>+<br>+ }<br>+<br>+ return 1;<br>+}<br>+<br> static int my_load_module(int reload)<br> {<br>  int res;<br>@@ -605,6 +636,10 @@<br>                return AST_MODULE_LOAD_DECLINE;<br>       }<br> <br>+ if (!is_valid_cfg(cfg)) {<br>+            return AST_MODULE_LOAD_DECLINE;<br>+      }<br>+<br>  if (reload) {<br>                 AST_RWLIST_WRLOCK(&columns);<br>              my_unload_module(1);<br></pre><p>To view, visit <a href="https://gerrit.asterisk.org/8921">change 8921</a>. To unsubscribe, visit <a href="https://gerrit.asterisk.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.asterisk.org/8921"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: asterisk </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>
<div style="display:none"> Gerrit-Change-Id: Id5126f525fb255574bbf44878059a8d1890843fc </div>
<div style="display:none"> Gerrit-Change-Number: 8921 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Tzafrir Cohen <tzafrir.cohen@xorcom.com> </div>