<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>