After some study, thought, comparing, etc. I've backed out the previous universal mod to make ast_flags a 64 bit thing. Instead, I added a 64-bit version of ast_flags (ast_flags64), and 64-bit versions of the test-flag, set-flag, etc. macros, and an app_parse_options64 routine, and I use these in app_dial alone, to eliminate the 30-option limit it had grown to meet. There is room now for 32 more options and flags. I was heavily tempted to implement some of the other ideas that were presented, but this solution does not intro any new versions of dial, doesn't have a different API, has a minimal/zero impact on code outside of dial, and doesn't seriously (I hope) affect the code structure of dial. It's the best I can think of right now. My goal was NOT to rewrite dial. I leave that to a future, coordinated effort.

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@75983 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Steve Murphy
2007-07-19 23:24:27 +00:00
parent 7756ba6619
commit 0e969271ae
28 changed files with 250 additions and 135 deletions

View File

@@ -69,7 +69,7 @@ struct iax_template {
unsigned int server;
unsigned short serverport;
unsigned int altserver;
uint64_t flags;
unsigned int flags;
unsigned int format;
unsigned int tos;
} *templates;
@@ -88,7 +88,7 @@ static struct iax_flag {
{ "disable3way", PROV_FLAG_DIS_THREEWAY },
};
char *iax_provflags2str(char *buf, int buflen, uint64_t flags)
char *iax_provflags2str(char *buf, int buflen, unsigned int flags)
{
int x;
@@ -117,7 +117,7 @@ static unsigned int iax_str2flags(const char *buf)
int x;
int len;
int found;
uint64_t flags = 0;
unsigned int flags = 0;
char *e;
while(buf && *buf) {
e = strchr(buf, ',');