Merge "pbx_dundi: DUNDi weight parameter not processed correctly"
authorzuul <zuul@gerrit.asterisk.org>
Wed, 22 Feb 2017 16:19:45 +0000 (10:19 -0600)
committerGerrit Code Review <gerrit2@gerrit.digium.api>
Wed, 22 Feb 2017 16:19:45 +0000 (10:19 -0600)
pbx/pbx_dundi.c

index 50a9160..58086aa 100644 (file)
@@ -992,9 +992,9 @@ static int dundi_prop_precache(struct dundi_transaction *trans, struct dundi_ies
                                        sizeof(trans->parent->dr[trans->parent->respcount].tech));
                                trans->parent->respcount++;
                                ast_clear_flag_nonstd(trans->parent->hmd, DUNDI_HINT_DONT_ASK);
-                       } else if (trans->parent->dr[z].weight > ies->answers[x]->weight) {
+                       } else if (trans->parent->dr[z].weight > ntohs(ies->answers[x]->weight)) {
                                /* Update weight if appropriate */
-                               trans->parent->dr[z].weight = ies->answers[x]->weight;
+                               trans->parent->dr[z].weight = ntohs(ies->answers[x]->weight);
                        }
                } else
                        ast_log(LOG_NOTICE, "Dropping excessive answers in precache for %s@%s\n",
@@ -1762,9 +1762,9 @@ static int handle_command_response(struct dundi_transaction *trans, struct dundi
                                                                        sizeof(trans->parent->dr[trans->parent->respcount].tech));
                                                                trans->parent->respcount++;
                                                                ast_clear_flag_nonstd(trans->parent->hmd, DUNDI_HINT_DONT_ASK);
-                                                       } else if (trans->parent->dr[z].weight > ies.answers[x]->weight) {
+                                                       } else if (trans->parent->dr[z].weight > ntohs(ies.answers[x]->weight)) {
                                                                /* Update weight if appropriate */
-                                                               trans->parent->dr[z].weight = ies.answers[x]->weight;
+                                                               trans->parent->dr[z].weight = ntohs(ies.answers[x]->weight);
                                                        }
                                                } else
                                                        ast_log(LOG_NOTICE, "Dropping excessive answers to request for %s@%s\n",