aboutsummaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
authormogorman <mogorman@f38db490-d61c-443f-a65b-d21fe96a405b>2006-07-05 18:45:40 +0000
committermogorman <mogorman@f38db490-d61c-443f-a65b-d21fe96a405b>2006-07-05 18:45:40 +0000
commit29a8631c9688d6c8c4a7b0a4810289b4c9ff3408 (patch)
tree63512409e483fb580fcb18ef0716140e35c07024 /apps
parentb38bfdcd60701b236fc7d58f69eac3e38c6b945e (diff)
fix a compiler warning and clean up the code a bit.
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@37047 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'apps')
-rw-r--r--apps/app_osplookup.c236
1 files changed, 68 insertions, 168 deletions
diff --git a/apps/app_osplookup.c b/apps/app_osplookup.c
index c2f64240d..dcdd2f92d 100644
--- a/apps/app_osplookup.c
+++ b/apps/app_osplookup.c
@@ -58,18 +58,18 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
/* OSP Buffer Sizes */
#define OSP_INTSTR_SIZE ((unsigned int)16) /* OSP signed/unsigned int string buffer size */
#define OSP_NORSTR_SIZE ((unsigned int)256) /* OSP normal string buffer size */
-#define OSP_TOKSTR_SIZE ((unsigned int)4096) /* OSP token string buffer size */
+#define OSP_TOKSTR_SIZE ((unsigned int)4096) /* OSP token string buffer size */
/* OSP Constants */
-#define OSP_INVALID_HANDLE ((int)-1) /* Invalid OSP handle, provider, transaction etc. */
-#define OSP_CONFIG_FILE ((const char*)"osp.conf") /* OSP configuration file name */
-#define OSP_GENERAL_CAT ((const char*)"general") /* OSP global configuration context name */
-#define OSP_DEF_PROVIDER ((const char*)"default") /* OSP default provider context name */
+#define OSP_INVALID_HANDLE ((int)-1) /* Invalid OSP handle, provider, transaction etc. */
+#define OSP_CONFIG_FILE ((const char*)"osp.conf") /* OSP configuration file name */
+#define OSP_GENERAL_CAT ((const char*)"general") /* OSP global configuration context name */
+#define OSP_DEF_PROVIDER ((const char*)"default") /* OSP default provider context name */
#define OSP_MAX_CERTS ((unsigned int)10) /* OSP max number of cacerts */
#define OSP_MAX_SRVS ((unsigned int)10) /* OSP max number of service points */
-#define OSP_DEF_MAXCONNECTIONS ((unsigned int)20) /* OSP default max_connections */
-#define OSP_MIN_MAXCONNECTIONS ((unsigned int)1) /* OSP min max_connections */
-#define OSP_MAX_MAXCONNECTIONS ((unsigned int)1000) /* OSP max max_connections */
+#define OSP_DEF_MAXCONNECTIONS ((unsigned int)20) /* OSP default max_connections */
+#define OSP_MIN_MAXCONNECTIONS ((unsigned int)1) /* OSP min max_connections */
+#define OSP_MAX_MAXCONNECTIONS ((unsigned int)1000) /* OSP max max_connections */
#define OSP_DEF_RETRYDELAY ((unsigned int)0) /* OSP default retry delay */
#define OSP_MIN_RETRYDELAY ((unsigned int)0) /* OSP min retry delay */
#define OSP_MAX_RETRYDELAY ((unsigned int)10) /* OSP max retry delay */
@@ -78,15 +78,15 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
#define OSP_MAX_RETRYLIMIT ((unsigned int)100) /* OSP max retry times */
#define OSP_DEF_TIMEOUT ((unsigned int)500) /* OSP default timeout in ms */
#define OSP_MIN_TIMEOUT ((unsigned int)200) /* OSP min timeout in ms */
-#define OSP_MAX_TIMEOUT ((unsigned int)10000) /* OSP max timeout in ms */
+#define OSP_MAX_TIMEOUT ((unsigned int)10000) /* OSP max timeout in ms */
#define OSP_DEF_AUTHPOLICY ((enum osp_authpolicy)OSP_AUTH_YES)
-#define OSP_AUDIT_URL ((const char*)"localhost") /* OSP default Audit URL */
-#define OSP_LOCAL_VALIDATION ((int)1) /* Validate OSP token locally */
+#define OSP_AUDIT_URL ((const char*)"localhost") /* OSP default Audit URL */
+#define OSP_LOCAL_VALIDATION ((int)1) /* Validate OSP token locally */
#define OSP_SSL_LIFETIME ((unsigned int)300) /* SSL life time, in seconds */
-#define OSP_HTTP_PERSISTENCE ((int)1) /* In seconds */
+#define OSP_HTTP_PERSISTENCE ((int)1) /* In seconds */
#define OSP_CUSTOMER_ID ((const char*)"") /* OSP customer ID */
#define OSP_DEVICE_ID ((const char*)"") /* OSP device ID */
-#define OSP_DEF_DESTINATIONS ((unsigned int)5) /* OSP default max number of destinations */
+#define OSP_DEF_DESTINATIONS ((unsigned int)5) /* OSP default max number of destinations */
#define OSP_DEF_TIMELIMIT ((unsigned int)0) /* OSP default duration limit, no limit */
/* OSP Authentication Policy */
@@ -98,41 +98,41 @@ enum osp_authpolicy {
/* OSP Provider */
struct osp_provider {
- char name[OSP_NORSTR_SIZE]; /* OSP provider context name */
- char privatekey[OSP_NORSTR_SIZE]; /* OSP private key file name */
- char localcert[OSP_NORSTR_SIZE]; /* OSP local cert file name */
- unsigned int cacount; /* Number of cacerts */
- char cacerts[OSP_MAX_CERTS][OSP_NORSTR_SIZE]; /* Cacert file names */
- unsigned int spcount; /* Number of service points */
- char srvpoints[OSP_MAX_SRVS][OSP_NORSTR_SIZE]; /* Service point URLs */
- int maxconnections; /* Max number of connections */
- int retrydelay; /* Retry delay */
- int retrylimit; /* Retry limit */
- int timeout; /* Timeout in ms */
- char source[OSP_NORSTR_SIZE]; /* IP of self */
- enum osp_authpolicy authpolicy; /* OSP authentication policy */
- OSPTPROVHANDLE handle; /* OSP provider handle */
- struct osp_provider* next; /* Pointer to next OSP provider */
+ char name[OSP_NORSTR_SIZE]; /* OSP provider context name */
+ char privatekey[OSP_NORSTR_SIZE]; /* OSP private key file name */
+ char localcert[OSP_NORSTR_SIZE]; /* OSP local cert file name */
+ unsigned int cacount; /* Number of cacerts */
+ char cacerts[OSP_MAX_CERTS][OSP_NORSTR_SIZE]; /* Cacert file names */
+ unsigned int spcount; /* Number of service points */
+ char srvpoints[OSP_MAX_SRVS][OSP_NORSTR_SIZE]; /* Service point URLs */
+ int maxconnections; /* Max number of connections */
+ int retrydelay; /* Retry delay */
+ int retrylimit; /* Retry limit */
+ int timeout; /* Timeout in ms */
+ char source[OSP_NORSTR_SIZE]; /* IP of self */
+ enum osp_authpolicy authpolicy; /* OSP authentication policy */
+ OSPTPROVHANDLE handle; /* OSP provider handle */
+ struct osp_provider* next; /* Pointer to next OSP provider */
};
/* OSP Application In/Output Results */
struct osp_result {
- int inhandle; /* Inbound transaction handle */
- int outhandle; /* Outbound transaction handle */
- unsigned int intimelimit; /* Inbound duration limit */
- unsigned int outtimelimit; /* Outbound duration limit */
- char tech[20]; /* Asterisk TECH string */
- char dest[OSP_NORSTR_SIZE]; /* Destination in called@IP format */
- char calling[OSP_NORSTR_SIZE]; /* Calling number, may be translated */
- char token[OSP_TOKSTR_SIZE]; /* Outbound OSP token */
- int numresults; /* Number of remain destinations */
+ int inhandle; /* Inbound transaction handle */
+ int outhandle; /* Outbound transaction handle */
+ unsigned int intimelimit; /* Inbound duration limit */
+ unsigned int outtimelimit; /* Outbound duration limit */
+ char tech[20]; /* Asterisk TECH string */
+ char dest[OSP_NORSTR_SIZE]; /* Destination in called@IP format */
+ char calling[OSP_NORSTR_SIZE]; /* Calling number, may be translated */
+ char token[OSP_TOKSTR_SIZE]; /* Outbound OSP token */
+ int numresults; /* Number of remain destinations */
};
/* OSP Module Global Variables */
-AST_MUTEX_DEFINE_STATIC(osplock); /* Lock of OSP provider list */
-static int osp_initialized = 0; /* Init flag */
-static int osp_hardware = 0; /* Hardware accelleration flag */
-static struct osp_provider* ospproviders = NULL; /* OSP provider list */
+AST_MUTEX_DEFINE_STATIC(osplock); /* Lock of OSP provider list */
+static int osp_initialized = 0; /* Init flag */
+static int osp_hardware = 0; /* Hardware accelleration flag */
+static struct osp_provider* ospproviders = NULL; /* OSP provider list */
static unsigned int osp_tokenformat = TOKEN_ALGO_SIGNED; /* Token format supported */
/* OSP Client Wrapper APIs */
@@ -143,9 +143,7 @@ static unsigned int osp_tokenformat = TOKEN_ALGO_SIGNED; /* Token format support
* \param provider OSP provider context name
* \return 1 Success, 0 Failed, -1 Error
*/
-static int osp_create_provider(
- struct ast_config* cfg, /* OSP configuration */
- const char* provider) /* OSP provider context name */
+static int osp_create_provider(struct ast_config* cfg, const char* provider)
{
int res;
unsigned int t, i, j;
@@ -303,23 +301,9 @@ static int osp_create_provider(
psrvpoints[i] = p->srvpoints[i];
}
- error = OSPPProviderNew(
- p->spcount, psrvpoints,
- NULL,
- OSP_AUDIT_URL,
- &privatekey,
- &localcert,
- p->cacount, pcacerts,
- OSP_LOCAL_VALIDATION,
- OSP_SSL_LIFETIME,
- p->maxconnections,
- OSP_HTTP_PERSISTENCE,
- p->retrydelay,
- p->retrylimit,
- p->timeout,
- OSP_CUSTOMER_ID,
- OSP_DEVICE_ID,
- &p->handle);
+ error = OSPPProviderNew(p->spcount, psrvpoints, NULL, OSP_AUDIT_URL, &privatekey, &localcert, p->cacount, pcacerts, OSP_LOCAL_VALIDATION,
+ OSP_SSL_LIFETIME, p->maxconnections, OSP_HTTP_PERSISTENCE, p->retrydelay, p->retrylimit,p->timeout, OSP_CUSTOMER_ID,
+ OSP_DEVICE_ID, &p->handle);
if (error != OSPC_ERR_NO_ERROR) {
ast_log(LOG_WARNING, "OSP: Unable to create provider '%s', error '%d'\n", provider, error);
free(p);
@@ -354,9 +338,7 @@ static int osp_create_provider(
* \param policy OSP authentication policy, output
* \return 1 Success, 0 Failed, -1 Error
*/
-static int osp_get_policy(
- const char* provider, /* OSP provider context name */
- int* policy) /* OSP authentication policy, output */
+static int osp_get_policy(const char* provider, int* policy)
{
int res = 0;
struct osp_provider* p;
@@ -385,11 +367,7 @@ static int osp_get_policy(
* \param source Source of provider, output
* \return 1 Success, 0 Failed, -1 Error
*/
-static int osp_create_transaction(
- const char* provider, /* OSP provider context name */
- int* transaction, /* OSP transaction handle, output */
- unsigned int sourcesize, /* Size of source buffer, in/output */
- char* source) /* Source of provider context, output */
+static int osp_create_transaction(const char* provider, int* transaction, unsigned int sourcesize, char* source)
{
int res = 0;
struct osp_provider* p;
@@ -430,14 +408,7 @@ static int osp_create_transaction(
* \param timelimit Call duration limit, output
* \return 1 Success, 0 Failed, -1 Error
*/
-static int osp_validate_token(
- int transaction, /* OSP transaction handle */
- const char* source, /* Source of inbound call */
- const char* dest, /* Destination of inbound call */
- const char* calling, /* Calling number */
- const char* called, /* Called number */
- const char* token, /* OSP token, may be empty */
- unsigned int* timelimit) /* Call duration limit, output */
+static int osp_validate_token(int transaction, const char* source, const char* dest, const char* calling, const char* called, const char* token, unsigned int* timelimit)
{
int res;
int tokenlen;
@@ -478,9 +449,7 @@ static int osp_validate_token(
* \param out Outbound duration limit
* \return min duration limit
*/
-static unsigned int osp_choose_timelimit(
- unsigned int in, /* Inbound duration timelimit */
- unsigned int out) /* Outbound duration timelimit */
+static unsigned int osp_choose_timelimit(unsigned int in, unsigned int out)
{
if (in == OSP_DEF_TIMELIMIT) {
return out;
@@ -502,14 +471,7 @@ static unsigned int osp_choose_timelimit(
* \param result OSP lookup results, in/output
* \return 1 Success, 0 Failed, -1 Error
*/
-static int osp_check_destination(
- const char* called, /* Called number */
- const char* calling, /* Calling number */
- char* destination, /* Destination IP in '[x.x.x.x]' format */
- unsigned int tokenlen, /* OSP token length */
- const char* token, /* OSP token */
- enum OSPEFAILREASON* reason, /* Failure reason, output */
- struct osp_result* result) /* OSP lookup results, in/output */
+static int osp_check_destination(const char* called, const char* calling, char* destination, unsigned int tokenlen, const char* token, enum OSPEFAILREASON* reason, struct osp_result* result)
{
int res;
OSPE_DEST_OSP_ENABLED enabled;
@@ -578,8 +540,7 @@ static int osp_check_destination(
* \param cause Asterisk hangup cause
* \return OSP TC code
*/
-static enum OSPEFAILREASON asterisk2osp(
- int cause) /* Asterisk hangup cause */
+static enum OSPEFAILREASON asterisk2osp(int cause)
{
return (enum OSPEFAILREASON)cause;
}
@@ -595,23 +556,16 @@ static enum OSPEFAILREASON asterisk2osp(
* \param timelimit Call duration limit, output
* \return 1 Authenricated, 0 Unauthenticated, -1 Error
*/
-static int osp_auth(
- const char* provider, /* OSP provider context name */
- int* transaction, /* OSP transaction handle, output */
- const char* source, /* Source of inbound call */
- const char* calling, /* Calling number */
- const char* called, /* Called number */
- const char* token, /* OSP token, may be empty */
- unsigned int* timelimit) /* Call duration limit, output */
+static int osp_auth(const char* provider, int* transaction, const char* source, const char* calling, const char* called, const char* token, unsigned int* timelimit)
{
int res;
- int policy;
+ int policy = OSP_AUTH_YES;
char dest[OSP_NORSTR_SIZE];
*transaction = OSP_INVALID_HANDLE;
*timelimit = OSP_DEF_TIMELIMIT;
-
- if ((res = osp_get_policy(provider, &policy)) <= 0) {
+ res = osp_get_policy(provider, &policy);
+ if (!res) {
ast_log(LOG_DEBUG, "OSP: Unabe to find OSP authentication policy\n");
return res;
}
@@ -657,12 +611,7 @@ static int osp_auth(
* \param result Lookup results
* \return 1 Found , 0 No route, -1 Error
*/
-static int osp_lookup(
- const char* provider, /* OSP provider conttext name */
- const char* srcdev, /* Source device of outbound call */
- const char* calling, /* Calling number */
- const char* called, /* Called number */
- struct osp_result* result) /* OSP lookup results, in/output */
+static int osp_lookup(const char* provider, const char* srcdev, const char* calling, const char* called, struct osp_result* result)
{
int res;
char source[OSP_NORSTR_SIZE];
@@ -695,16 +644,8 @@ static int osp_lookup(
}
result->numresults = OSP_DEF_DESTINATIONS;
- error = OSPPTransactionRequestAuthorisation(
- result->outhandle,
- source, srcdev,
- calling ? calling : "", OSPC_E164,
- called, OSPC_E164,
- NULL,
- 0, NULL,
- NULL,
- &result->numresults,
- &dummy, NULL);
+ error = OSPPTransactionRequestAuthorisation(result->outhandle, source, srcdev, calling ? calling : "",
+ OSPC_E164, called, OSPC_E164, NULL, 0, NULL, NULL, &result->numresults, &dummy, NULL);
if (error != OSPC_ERR_NO_ERROR) {
ast_log(LOG_DEBUG, "OSP: Unable to request authorization\n");
result->numresults = 0;
@@ -724,16 +665,8 @@ static int osp_lookup(
callidlen = sizeof(callid);
tokenlen = sizeof(token);
- error = OSPPTransactionGetFirstDestination(
- result->outhandle,
- 0, NULL, NULL,
- &result->outtimelimit,
- &callidlen, callid,
- sizeof(callednum), callednum,
- sizeof(callingnum), callingnum,
- sizeof(destination), destination,
- 0, NULL,
- &tokenlen, token);
+ error = OSPPTransactionGetFirstDestination(result->outhandle, 0, NULL, NULL, &result->outtimelimit, &callidlen, callid,
+ sizeof(callednum), callednum, sizeof(callingnum), callingnum, sizeof(destination), destination, 0, NULL, &tokenlen, token);
if (error != OSPC_ERR_NO_ERROR) {
ast_log(LOG_DEBUG, "OSP: Unable to get first route\n");
result->numresults = 0;
@@ -769,17 +702,8 @@ static int osp_lookup(
while(result->numresults) {
callidlen = sizeof(callid);
tokenlen = sizeof(token);
- error = OSPPTransactionGetNextDestination(
- result->outhandle,
- reason,
- 0, NULL, NULL,
- &result->outtimelimit,
- &callidlen, callid,
- sizeof(callednum), callednum,
- sizeof(callingnum), callingnum,
- sizeof(destination), destination,
- 0, NULL,
- &tokenlen, token);
+ error = OSPPTransactionGetNextDestination(result->outhandle, reason, 0, NULL, NULL, &result->outtimelimit, &callidlen, callid,
+ sizeof(callednum), callednum, sizeof(callingnum), callingnum, sizeof(destination), destination, 0, NULL, &tokenlen, token);
if (error == OSPC_ERR_NO_ERROR) {
result->numresults--;
result->outtimelimit = osp_choose_timelimit(result->intimelimit, result->outtimelimit);
@@ -819,9 +743,7 @@ static int osp_lookup(
* \param result Lookup results, in/output
* \return 1 Found , 0 No route, -1 Error
*/
-static int osp_next(
- int cause, /* Asterisk hangup cuase */
- struct osp_result* result) /* OSP lookup results, in/output */
+static int osp_next(int cause, struct osp_result* result)
{
int res;
unsigned int callidlen;
@@ -863,17 +785,8 @@ static int osp_next(
while(result->numresults) {
callidlen = sizeof(callid);
tokenlen = sizeof(token);
- error = OSPPTransactionGetNextDestination(
- result->outhandle,
- reason,
- 0, NULL, NULL,
- &result->outtimelimit,
- &callidlen, callid,
- sizeof(callednum), callednum,
- sizeof(callingnum), callingnum,
- sizeof(destination), destination,
- 0, NULL,
- &tokenlen, token);
+ error = OSPPTransactionGetNextDestination(result->outhandle, reason, 0, NULL, NULL, &result->outtimelimit, &callidlen,
+ callid, sizeof(callednum), callednum, sizeof(callingnum), callingnum, sizeof(destination), destination, 0, NULL, &tokenlen, token);
if (error == OSPC_ERR_NO_ERROR) {
result->numresults--;
result->outtimelimit = osp_choose_timelimit(result->intimelimit, result->outtimelimit);
@@ -921,14 +834,7 @@ static int osp_next(
* \param release Who release first, 0 source, 1 destination
* \return 1 Success, 0 Failed, -1 Error
*/
-static int osp_finish(
- int handle, /* OSP in/outbound transaction handle */
- int recorded, /* If failure reason has been recorded */
- int cause, /* Asterisk hangup cause */
- time_t start, /* Call start time */
- time_t connect, /* Call connect time */
- time_t end, /* Call end time */
- unsigned int release) /* Who release first, 0 source, 1 destination */
+static int osp_finish(int handle, int recorded, int cause, time_t start, time_t connect, time_t end, unsigned int release)
{
int res;
enum OSPEFAILREASON reason;
@@ -948,14 +854,8 @@ static int osp_finish(
OSPPTransactionRecordFailure(handle, reason);
}
- error = OSPPTransactionReportUsage(
- handle,
- difftime(end, connect), start, end, alert, connect,
- isPddInfoPresent, pdd,
- release,
- confId,
- 0, 0, 0, 0,
- &dummy, NULL);
+ error = OSPPTransactionReportUsage(handle, difftime(end, connect), start, end, alert, connect, isPddInfoPresent, pdd,
+ release, confId, 0, 0, 0, 0, &dummy, NULL);
if (error == OSPC_ERR_NO_ERROR) {
ast_log(LOG_DEBUG, "OSP: Usage reported\n");
res = 1;