aboutsummaryrefslogtreecommitdiffstats
path: root/pbx
diff options
context:
space:
mode:
authormarkster <markster@f38db490-d61c-443f-a65b-d21fe96a405b>2005-01-10 14:46:59 +0000
committermarkster <markster@f38db490-d61c-443f-a65b-d21fe96a405b>2005-01-10 14:46:59 +0000
commitc47ebe99cf8fd8835013ad794239327a6406af97 (patch)
tree94729885f0b947fa8b165ec1de895249d579c6c0 /pbx
parent299b57eafc306308f45ce587e29f4a71ae7d27b8 (diff)
More flagification, courtesy drumkilla (bug #3280)
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@4748 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'pbx')
-rwxr-xr-xpbx/pbx_dundi.c131
1 files changed, 65 insertions, 66 deletions
diff --git a/pbx/pbx_dundi.c b/pbx/pbx_dundi.c
index f581af694..dae634862 100755
--- a/pbx/pbx_dundi.c
+++ b/pbx/pbx_dundi.c
@@ -164,7 +164,7 @@ struct dundi_transaction {
dundi_eid them_eid; /* Their EID, to us */
aes_encrypt_ctx ecx; /* AES 128 Encryption context */
aes_decrypt_ctx dcx; /* AES 128 Decryption context */
- int flags; /* Has final packet been sent */
+ unsigned int flags; /* Has final packet been sent */
int ttl; /* Remaining TTL for queries on this one */
int thread; /* We have a calling thread */
int retranstimer; /* How long to wait before retransmissions */
@@ -461,7 +461,7 @@ static int reset_transaction(struct dundi_transaction *trans)
trans->oiseqno = 0;
trans->oseqno = 0;
trans->aseqno = 0;
- trans->flags &= ~FLAG_FINAL;
+ ast_clear_flag(trans, FLAG_FINAL);
return 0;
}
@@ -507,39 +507,38 @@ struct dundi_query_state {
static int dundi_lookup_local(struct dundi_result *dr, struct dundi_mapping *map, char *called_number, dundi_eid *us_eid, int anscnt, struct dundi_hint_metadata *hmd)
{
- int flags;
+ struct ast_flags flags = {0};
int x;
if (!ast_strlen_zero(map->lcontext)) {
- flags = 0;
if (ast_exists_extension(NULL, map->lcontext, called_number, 1, NULL))
- flags |= DUNDI_FLAG_EXISTS;
+ ast_set_flag(&flags, DUNDI_FLAG_EXISTS);
if (ast_canmatch_extension(NULL, map->lcontext, called_number, 1, NULL))
- flags |= DUNDI_FLAG_CANMATCH;
+ ast_set_flag(&flags, DUNDI_FLAG_CANMATCH);
if (ast_matchmore_extension(NULL, map->lcontext, called_number, 1, NULL))
- flags |= DUNDI_FLAG_MATCHMORE;
+ ast_set_flag(&flags, DUNDI_FLAG_MATCHMORE);
if (ast_ignore_pattern(map->lcontext, called_number))
- flags |= DUNDI_FLAG_IGNOREPAT;
+ ast_set_flag(&flags, DUNDI_FLAG_IGNOREPAT);
/* Clearly we can't say 'don't ask' anymore if we found anything... */
- if (flags)
- hmd->flags &= ~DUNDI_HINT_DONT_ASK;
+ if (ast_test_flag(&flags, AST_FLAGS_ALL))
+ ast_clear_flag_nonstd(hmd, DUNDI_HINT_DONT_ASK);
if (map->options & DUNDI_FLAG_INTERNAL_NOPARTIAL) {
/* Skip partial answers */
- flags &= ~(DUNDI_FLAG_MATCHMORE|DUNDI_FLAG_CANMATCH);
+ ast_clear_flag(&flags, DUNDI_FLAG_MATCHMORE|DUNDI_FLAG_CANMATCH);
}
- if (flags) {
+ if (ast_test_flag(&flags, AST_FLAGS_ALL)) {
struct varshead headp;
struct ast_var_t *newvariable;
- flags |= map->options & 0xffff;
- dr[anscnt].flags = flags;
+ ast_set_flag(&flags, map->options & 0xffff);
+ ast_copy_flags(dr + anscnt, &flags, AST_FLAGS_ALL);
dr[anscnt].techint = map->tech;
dr[anscnt].weight = map->weight;
dr[anscnt].expiration = DUNDI_DEFAULT_CACHE_TIME;
strncpy(dr[anscnt].tech, tech2str(map->tech), sizeof(dr[anscnt].tech));
dr[anscnt].eid = *us_eid;
dundi_eid_to_str(dr[anscnt].eid_str, sizeof(dr[anscnt].eid_str), &dr[anscnt].eid);
- if (flags & DUNDI_FLAG_EXISTS) {
+ if (ast_test_flag(&flags, DUNDI_FLAG_EXISTS)) {
AST_LIST_HEAD_INIT(&headp);
newvariable = ast_var_assign("NUMBER", called_number);
AST_LIST_INSERT_HEAD(&headp, newvariable, entries);
@@ -622,9 +621,9 @@ static void *dundi_lookup_thread(void *data)
}
ast_mutex_lock(&peerlock);
/* Truncate if "don't ask" isn't present */
- if (!(hmd.flags & DUNDI_HINT_DONT_ASK))
+ if (!ast_test_flag_nonstd(&hmd, DUNDI_HINT_DONT_ASK))
hmd.exten[0] = '\0';
- if (st->trans->flags & FLAG_DEAD) {
+ if (ast_test_flag(st->trans, FLAG_DEAD)) {
ast_log(LOG_DEBUG, "Our transaction went away!\n");
st->trans->thread = 0;
destroy_trans(st->trans, 0);
@@ -661,9 +660,9 @@ static void *dundi_precache_thread(void *data)
ast_mutex_lock(&peerlock);
/* Truncate if "don't ask" isn't present */
- if (!(hmd.flags & DUNDI_HINT_DONT_ASK))
+ if (!ast_test_flag_nonstd(&hmd, DUNDI_HINT_DONT_ASK))
hmd.exten[0] = '\0';
- if (st->trans->flags & FLAG_DEAD) {
+ if (ast_test_flag(st->trans, FLAG_DEAD)) {
ast_log(LOG_DEBUG, "Our transaction went away!\n");
st->trans->thread = 0;
destroy_trans(st->trans, 0);
@@ -714,7 +713,7 @@ static void *dundi_query_thread(void *data)
res = dundi_query_eid_internal(&dei, st->called_context, &st->reqeid, &hmd, st->ttl, 1, st->eids);
}
ast_mutex_lock(&peerlock);
- if (st->trans->flags & FLAG_DEAD) {
+ if (ast_test_flag(st->trans, FLAG_DEAD)) {
ast_log(LOG_DEBUG, "Our transaction went away!\n");
st->trans->thread = 0;
destroy_trans(st->trans, 0);
@@ -812,10 +811,10 @@ static int cache_save_hint(dundi_eid *eidpeer, struct dundi_request *req, struct
expiration = DUNDI_DEFAULT_CACHE_TIME;
/* Only cache hint if "don't ask" is there... */
- if (!(ntohs(hint->flags)& DUNDI_HINT_DONT_ASK))
+ if (!ast_test_flag_nonstd(hint, htons(DUNDI_HINT_DONT_ASK)))
return 0;
- unaffected = ntohs(hint->flags) & DUNDI_HINT_UNAFFECTED;
+ unaffected = ast_test_flag_nonstd(hint, htons(DUNDI_HINT_UNAFFECTED));
dundi_eid_to_str_short(eidpeer_str, sizeof(eidpeer_str), eidpeer);
dundi_eid_to_str_short(eidroot_str, sizeof(eidroot_str), &req->root_eid);
@@ -933,7 +932,7 @@ static int dundi_prop_precache(struct dundi_transaction *trans, struct dundi_ies
strncpy(trans->parent->dr[trans->parent->respcount].tech, tech2str(ies->answers[x]->protocol),
sizeof(trans->parent->dr[trans->parent->respcount].tech));
trans->parent->respcount++;
- trans->parent->hmd->flags &= ~DUNDI_HINT_DONT_ASK;
+ ast_clear_flag_nonstd(trans->parent->hmd, DUNDI_HINT_DONT_ASK);
} else if (trans->parent->dr[z].weight > ies->answers[x]->weight) {
/* Update weight if appropriate */
trans->parent->dr[z].weight = ies->answers[x]->weight;
@@ -1126,7 +1125,7 @@ static int cache_lookup_internal(time_t now, struct dundi_request *req, char *ke
char data[1024]="";
char *ptr, *term, *src;
int tech;
- int flags;
+ struct ast_flags flags;
int weight;
int length;
int z;
@@ -1141,7 +1140,7 @@ static int cache_lookup_internal(time_t now, struct dundi_request *req, char *ke
if (expiration > 0) {
ast_log(LOG_DEBUG, "Found cache expiring in %d seconds!\n", (int)(timeout - now));
ptr += length;
- while((sscanf(ptr, "%d/%d/%d/%n", &flags, &weight, &tech, &length) == 3)) {
+ while((sscanf(ptr, "%d/%d/%d/%n", &(flags.flags), &weight, &tech, &length) == 3)) {
ptr += length;
term = strchr(ptr, '|');
if (term) {
@@ -1153,7 +1152,7 @@ static int cache_lookup_internal(time_t now, struct dundi_request *req, char *ke
} else
src = "";
ast_log(LOG_DEBUG, "Found cached answer '%s/%s' originally from '%s' with flags '%s' on behalf of '%s'\n",
- tech2str(tech), ptr, src, dundi_flags2str(fs, sizeof(fs), flags), eid_str_full);
+ tech2str(tech), ptr, src, dundi_flags2str(fs, sizeof(fs), flags.flags), eid_str_full);
/* Make sure it's not already there */
for (z=0;z<req->respcount;z++) {
if ((req->dr[z].techint == tech) &&
@@ -1162,7 +1161,7 @@ static int cache_lookup_internal(time_t now, struct dundi_request *req, char *ke
}
if (z == req->respcount) {
/* Copy into parent responses */
- req->dr[req->respcount].flags = flags;
+ ast_copy_flags(&(req->dr[req->respcount]), &flags, AST_FLAGS_ALL);
req->dr[req->respcount].weight = weight;
req->dr[req->respcount].techint = tech;
req->dr[req->respcount].expiration = expiration;
@@ -1174,7 +1173,7 @@ static int cache_lookup_internal(time_t now, struct dundi_request *req, char *ke
strncpy(req->dr[req->respcount].tech, tech2str(tech),
sizeof(req->dr[req->respcount].tech));
req->respcount++;
- req->hmd->flags &= ~DUNDI_HINT_DONT_ASK;
+ ast_clear_flag_nonstd(req->hmd, DUNDI_HINT_DONT_ASK);
} else if (req->dr[z].weight > weight)
req->dr[z].weight = weight;
ptr = term + 1;
@@ -1253,7 +1252,7 @@ static void apply_peer(struct dundi_transaction *trans, struct dundi_peer *p)
trans->them_eid = p->eid;
/* Enable encryption if appropriate */
if (!ast_strlen_zero(p->inkey))
- trans->flags |= FLAG_ENCRYPT;
+ ast_set_flag(trans, FLAG_ENCRYPT);
if (p->maxms) {
trans->autokilltimeout = p->maxms;
trans->retranstimer = DUNDI_DEFAULT_RETRANS_TIMER;
@@ -1406,10 +1405,10 @@ static int dundi_encrypt(struct dundi_transaction *trans, struct dundi_packet *p
if (update_key(peer))
return -1;
if (!peer->sentfullkey)
- trans->flags |= FLAG_SENDFULLKEY;
+ ast_set_flag(trans, FLAG_SENDFULLKEY);
/* Append key data */
dundi_ie_append_eid(&ied, DUNDI_IE_EID, &trans->us_eid);
- if (trans->flags & FLAG_SENDFULLKEY) {
+ if (ast_test_flag(trans, FLAG_SENDFULLKEY)) {
dundi_ie_append_raw(&ied, DUNDI_IE_SHAREDKEY, peer->txenckey, 128);
dundi_ie_append_raw(&ied, DUNDI_IE_SIGNATURE, peer->txenckey + 128, 128);
} else {
@@ -1634,7 +1633,7 @@ static int handle_command_response(struct dundi_transaction *trans, struct dundi
if (ies.cause < 1) {
/* Success of some sort */
ast_log(LOG_DEBUG, "Looks like success of some sort (%d), %d answers\n", ies.cause, ies.anscount);
- if (trans->flags & FLAG_ENCRYPT) {
+ if (ast_test_flag(trans, FLAG_ENCRYPT)) {
authpass = encrypted;
} else
authpass = 1;
@@ -1668,7 +1667,7 @@ static int handle_command_response(struct dundi_transaction *trans, struct dundi
strncpy(trans->parent->dr[trans->parent->respcount].tech, tech2str(ies.answers[x]->protocol),
sizeof(trans->parent->dr[trans->parent->respcount].tech));
trans->parent->respcount++;
- trans->parent->hmd->flags &= ~DUNDI_HINT_DONT_ASK;
+ ast_clear_flag_nonstd(trans->parent->hmd, DUNDI_HINT_DONT_ASK);
} else if (trans->parent->dr[z].weight > ies.answers[x]->weight) {
/* Update weight if appropriate */
trans->parent->dr[z].weight = ies.answers[x]->weight;
@@ -1680,18 +1679,18 @@ static int handle_command_response(struct dundi_transaction *trans, struct dundi
/* Save all the results (if any) we had. Even if no results, still cache lookup. Let
the cache know if this request was unaffected by our entity list. */
cache_save(&trans->them_eid, trans->parent, y,
- ies.hint ? ntohs(ies.hint->flags) & DUNDI_HINT_UNAFFECTED : 0, ies.expiration, 0);
+ ies.hint ? ast_test_flag_nonstd(ies.hint, htons(DUNDI_HINT_UNAFFECTED)) : 0, ies.expiration, 0);
if (ies.hint) {
cache_save_hint(&trans->them_eid, trans->parent, ies.hint, ies.expiration);
- if (ntohs(ies.hint->flags) & DUNDI_HINT_TTL_EXPIRED)
- trans->parent->hmd->flags |= DUNDI_HINT_TTL_EXPIRED;
- if (ntohs(ies.hint->flags) & DUNDI_HINT_DONT_ASK) {
+ if (ast_test_flag_nonstd(ies.hint, htons(DUNDI_HINT_TTL_EXPIRED)))
+ ast_set_flag_nonstd(trans->parent->hmd, DUNDI_HINT_TTL_EXPIRED);
+ if (ast_test_flag_nonstd(ies.hint, htons(DUNDI_HINT_DONT_ASK))) {
if (strlen(ies.hint->data) > strlen(trans->parent->hmd->exten)) {
strncpy(trans->parent->hmd->exten, ies.hint->data,
sizeof(trans->parent->hmd->exten) - 1);
}
} else {
- trans->parent->hmd->flags &= ~DUNDI_HINT_DONT_ASK;
+ ast_clear_flag_nonstd(trans->parent->hmd, DUNDI_HINT_DONT_ASK);
}
}
if (ies.expiration > 0) {
@@ -1718,7 +1717,7 @@ static int handle_command_response(struct dundi_transaction *trans, struct dundi
if (ies.cause < 1) {
/* Success of some sort */
ast_log(LOG_DEBUG, "Looks like success of some sort (%d)\n", ies.cause);
- if (trans->flags & FLAG_ENCRYPT) {
+ if (ast_test_flag(trans, FLAG_ENCRYPT)) {
authpass = encrypted;
} else
authpass = 1;
@@ -1750,8 +1749,8 @@ static int handle_command_response(struct dundi_transaction *trans, struct dundi
}
}
if (ies.hint) {
- if (ntohs(ies.hint->flags) & DUNDI_HINT_TTL_EXPIRED)
- trans->parent->hmd->flags |= DUNDI_HINT_TTL_EXPIRED;
+ if (ast_test_flag_nonstd(ies.hint, htons(DUNDI_HINT_TTL_EXPIRED)))
+ ast_set_flag_nonstd(trans->parent->hmd, DUNDI_HINT_TTL_EXPIRED);
}
}
/* Close connection if not final */
@@ -1772,7 +1771,7 @@ static int handle_command_response(struct dundi_transaction *trans, struct dundi
if (ies.cause < 1) {
int hasauth;
/* Success of some sort */
- if (trans->flags & FLAG_ENCRYPT) {
+ if (ast_test_flag(trans, FLAG_ENCRYPT)) {
hasauth = encrypted;
} else
hasauth = 1;
@@ -1805,13 +1804,13 @@ static int handle_command_response(struct dundi_transaction *trans, struct dundi
dundi_send(trans, DUNDI_COMMAND_CANCEL, 0, 1, NULL);
break;
case DUNDI_COMMAND_ENCREJ:
- if ((trans->flags & FLAG_SENDFULLKEY) || !trans->lasttrans || !(peer = find_peer(&trans->them_eid))) {
+ if ((ast_test_flag(trans, FLAG_SENDFULLKEY)) || !trans->lasttrans || !(peer = find_peer(&trans->them_eid))) {
/* No really, it's over at this point */
if (!final)
dundi_send(trans, DUNDI_COMMAND_CANCEL, 0, 1, NULL);
} else {
/* Send with full key */
- trans->flags |= FLAG_SENDFULLKEY;
+ ast_set_flag(trans, FLAG_SENDFULLKEY);
if (final) {
/* Ooops, we got a final message, start by sending ACK... */
dundi_ack(trans, hdr->cmdresp & 0x80);
@@ -1853,7 +1852,7 @@ static int handle_command_response(struct dundi_transaction *trans, struct dundi
trans->ecx = peer->them_ecx;
trans->dcx = peer->them_dcx;
}
- if ((trans->flags & FLAG_ENCRYPT) && ies.encblock && ies.enclen) {
+ if (ast_test_flag(trans, FLAG_ENCRYPT) && ies.encblock && ies.enclen) {
struct dundi_hdr *dhdr;
unsigned char decoded[MAX_PACKET_SIZE];
int ddatalen;
@@ -1873,7 +1872,7 @@ static int handle_command_response(struct dundi_transaction *trans, struct dundi
}
if (!final) {
/* Turn off encryption */
- trans->flags &= ~FLAG_ENCRYPT;
+ ast_clear_flag(trans, FLAG_ENCRYPT);
dundi_send(trans, DUNDI_COMMAND_ENCREJ, 0, 1, NULL);
}
break;
@@ -1936,7 +1935,7 @@ static int handle_frame(struct dundi_hdr *h, struct sockaddr_in *sin, int datale
/* Got a transaction, see where this header fits in */
if (h->oseqno == trans->iseqno) {
/* Just what we were looking for... Anything but ack increments iseqno */
- if (ack_trans(trans, h->iseqno) && (trans->flags & FLAG_FINAL)) {
+ if (ack_trans(trans, h->iseqno) && ast_test_flag(trans, FLAG_FINAL)) {
/* If final, we're done */
destroy_trans(trans, 0);
return 0;
@@ -2759,14 +2758,14 @@ static struct dundi_transaction *create_transaction(struct dundi_peer *p)
memset(trans, 0, sizeof(struct dundi_transaction));
if (global_storehistory) {
gettimeofday(&trans->start, NULL);
- trans->flags |= FLAG_STOREHIST;
+ ast_set_flag(trans, FLAG_STOREHIST);
}
trans->retranstimer = DUNDI_DEFAULT_RETRANS_TIMER;
trans->autokillid = -1;
if (p) {
apply_peer(trans, p);
if (!p->sentfullkey)
- trans->flags |= FLAG_SENDFULLKEY;
+ ast_set_flag(trans, FLAG_SENDFULLKEY);
}
trans->strans = tid;
trans->allnext = alltrans;
@@ -2829,7 +2828,7 @@ static void destroy_trans(struct dundi_transaction *trans, int fromtimeout)
int x;
int cnt;
char eid_str[20];
- if (trans->flags & (FLAG_ISREG | FLAG_ISQUAL | FLAG_STOREHIST)) {
+ if (ast_test_flag(trans, FLAG_ISREG | FLAG_ISQUAL | FLAG_STOREHIST)) {
peer = peers;
while (peer) {
if (peer->regtrans == trans)
@@ -2857,7 +2856,7 @@ static void destroy_trans(struct dundi_transaction *trans, int fromtimeout)
}
peer->qualtrans = NULL;
}
- if (trans->flags & FLAG_STOREHIST) {
+ if (ast_test_flag(trans, FLAG_STOREHIST)) {
if (trans->parent && !ast_strlen_zero(trans->parent->number)) {
if (!dundi_eid_cmp(&trans->them_eid, &peer->eid)) {
peer->avgms = 0;
@@ -2932,7 +2931,7 @@ static void destroy_trans(struct dundi_transaction *trans, int fromtimeout)
trans->autokillid = -1;
if (trans->thread) {
/* If used by a thread, mark as dead and be done */
- trans->flags |= FLAG_DEAD;
+ ast_set_flag(trans, FLAG_DEAD);
} else
free(trans);
}
@@ -2946,7 +2945,7 @@ static int dundi_rexmit(void *data)
pack = data;
if (pack->retrans < 1) {
pack->retransid = -1;
- if (!(pack->parent->flags & FLAG_ISQUAL))
+ if (!ast_test_flag(pack->parent, FLAG_ISQUAL))
ast_log(LOG_NOTICE, "Max retries exceeded to host '%s:%d' msg %d on call %d\n",
ast_inet_ntoa(iabuf, sizeof(iabuf), pack->parent->addr.sin_addr),
ntohs(pack->parent->addr.sin_port), pack->h->oseqno, ntohs(pack->h->strans));
@@ -2970,7 +2969,7 @@ static int dundi_send(struct dundi_transaction *trans, int cmdresp, int flags, i
char eid_str[20];
len = sizeof(struct dundi_packet) + sizeof(struct dundi_hdr) + (ied ? ied->pos : 0);
/* Reserve enough space for encryption */
- if (trans->flags & FLAG_ENCRYPT)
+ if (ast_test_flag(trans, FLAG_ENCRYPT))
len += 384;
pack = malloc(len);
if (pack) {
@@ -2995,7 +2994,7 @@ static int dundi_send(struct dundi_transaction *trans, int cmdresp, int flags, i
}
if (final) {
pack->h->cmdresp |= DUNDI_COMMAND_FINAL;
- trans->flags |= FLAG_FINAL;
+ ast_set_flag(trans, FLAG_FINAL);
}
pack->h->cmdflags = flags;
if (cmdresp != DUNDI_COMMAND_ACK) {
@@ -3004,7 +3003,7 @@ static int dundi_send(struct dundi_transaction *trans, int cmdresp, int flags, i
}
trans->aseqno = trans->iseqno;
/* If we have their public key, encrypt */
- if (trans->flags & FLAG_ENCRYPT) {
+ if (ast_test_flag(trans, FLAG_ENCRYPT)) {
switch(cmdresp) {
case DUNDI_COMMAND_REGREQ:
case DUNDI_COMMAND_REGRESPONSE:
@@ -3211,7 +3210,7 @@ static int precache_transactions(struct dundi_request *dr, struct dundi_mapping
trans = dr->trans;
while(trans) {
- if (!(trans->flags & FLAG_DEAD))
+ if (!ast_test_flag(trans, FLAG_DEAD))
precache_trans(trans, maps, mapcount, expiration, foundanswers);
trans = trans->next;
}
@@ -3222,7 +3221,7 @@ static int precache_transactions(struct dundi_request *dr, struct dundi_mapping
while(trans) {
transn = trans->next;
trans->thread = 0;
- if (trans->flags & FLAG_DEAD) {
+ if (ast_test_flag(trans, FLAG_DEAD)) {
ast_log(LOG_DEBUG, "Our transaction went away!\n");
destroy_trans(trans, 0);
}
@@ -3395,7 +3394,7 @@ static void build_transactions(struct dundi_request *dr, int ttl, int order, int
if (!dundi_eid_cmp(avoid[x], &p->eid) || !dundi_eid_cmp(avoid[x], &p->us_eid)) {
/* If not a direct connection, it affects our answer */
if (directs && !directs[x])
- dr->hmd->flags &= ~DUNDI_HINT_UNAFFECTED;
+ ast_clear_flag_nonstd(dr->hmd, DUNDI_HINT_UNAFFECTED);
break;
}
}
@@ -3575,7 +3574,7 @@ static int dundi_lookup_internal(struct dundi_result *result, int maxret, struct
do this earlier because we didn't know if we were going to have transactions
or not. */
if (!ttl) {
- hmd->flags |= DUNDI_HINT_TTL_EXPIRED;
+ ast_set_flag_nonstd(hmd, DUNDI_HINT_TTL_EXPIRED);
abort_request(&dr);
unregister_request(&dr);
close(dr.pfds[0]);
@@ -3799,7 +3798,7 @@ static int dundi_query_eid_internal(struct dundi_entity_info *dei, const char *d
do this earlier because we didn't know if we were going to have transactions
or not. */
if (!ttl) {
- hmd->flags |= DUNDI_HINT_TTL_EXPIRED;
+ ast_set_flag_nonstd(hmd, DUNDI_HINT_TTL_EXPIRED);
return 0;
}
@@ -3863,7 +3862,7 @@ static int dundi_lookup_exec(struct ast_channel *chan, void *data)
if (results > 0) {
sort_results(dr, results);
for (x=0;x<results;x++) {
- if (dr[x].flags & DUNDI_FLAG_EXISTS) {
+ if (ast_test_flag(dr + x, DUNDI_FLAG_EXISTS)) {
pbx_builtin_setvar_helper(chan, "DUNDTECH", dr[x].tech);
pbx_builtin_setvar_helper(chan, "DUNDDEST", dr[x].dest);
break;
@@ -4088,7 +4087,7 @@ static int do_register(void *data)
destroy_trans(peer->regtrans, 0);
peer->regtrans = create_transaction(peer);
if (peer->regtrans) {
- peer->regtrans->flags |= FLAG_ISREG;
+ ast_set_flag(peer->regtrans, FLAG_ISREG);
memset(&ied, 0, sizeof(ied));
dundi_ie_append_short(&ied, DUNDI_IE_VERSION, DUNDI_DEFAULT_VERSION);
dundi_ie_append_eid(&ied, DUNDI_IE_EID, &peer->regtrans->us_eid);
@@ -4130,7 +4129,7 @@ static void qualify_peer(struct dundi_peer *peer, int schedonly)
peer->qualtrans = create_transaction(peer);
if (peer->qualtrans) {
gettimeofday(&peer->qualtx, NULL);
- peer->qualtrans->flags |= FLAG_ISQUAL;
+ ast_set_flag(peer->qualtrans, FLAG_ISQUAL);
dundi_send(peer->qualtrans, DUNDI_COMMAND_NULL, 0, 1, NULL);
}
}
@@ -4346,7 +4345,7 @@ static int dundi_helper(struct ast_channel *chan, const char *context, const cha
}
res = dundi_lookup(results, MAX_RESULTS, chan, data, exten, 0);
for (x=0;x<res;x++) {
- if (results[x].flags & flag)
+ if (ast_test_flag(results + x, flag))
found++;
}
if (found >= priority)
@@ -4399,7 +4398,7 @@ static int dundi_exec(struct ast_channel *chan, const char *context, const char
if (res > 0) {
sort_results(results, res);
for (x=0;x<res;x++) {
- if (results[x].flags & DUNDI_FLAG_EXISTS) {
+ if (ast_test_flag(results + x, DUNDI_FLAG_EXISTS)) {
if (!--priority)
break;
}