mirror of
https://github.com/signalwire/freeswitch.git
synced 2025-04-16 08:49:01 +00:00
Fixed a bug on 64bit platform.
This commit is contained in:
parent
52f14165f8
commit
d05b08e2be
@ -190,7 +190,7 @@ typedef struct osp_destination {
|
|||||||
|
|
||||||
typedef struct osp_results {
|
typedef struct osp_results {
|
||||||
const char *profile; /* Provider name */
|
const char *profile; /* Provider name */
|
||||||
unsigned long long transid; /* Transaction ID */
|
uint64_t transid; /* Transaction ID */
|
||||||
switch_time_t start; /* Call start time */
|
switch_time_t start; /* Call start time */
|
||||||
char called[OSP_SIZE_NORSTR]; /* Original called number */
|
char called[OSP_SIZE_NORSTR]; /* Original called number */
|
||||||
const char *srcnid; /* Source network ID */
|
const char *srcnid; /* Source network ID */
|
||||||
@ -199,13 +199,13 @@ typedef struct osp_results {
|
|||||||
} osp_results_t;
|
} osp_results_t;
|
||||||
|
|
||||||
typedef struct osp_cookie {
|
typedef struct osp_cookie {
|
||||||
const char *profile; /* Provider name */
|
const char *profile; /* Provider name */
|
||||||
unsigned long long transid; /* Transaction ID */
|
uint64_t transid; /* Transaction ID */
|
||||||
switch_time_t start; /* Call start time */
|
switch_time_t start; /* Call start time */
|
||||||
int destcount; /* Destination count */
|
int destcount; /* Destination count */
|
||||||
const char *dest; /* Destination IP */
|
const char *dest; /* Destination IP */
|
||||||
const char *srcnid; /* Source network ID */
|
const char *srcnid; /* Source network ID */
|
||||||
const char *destnid; /* Destination network ID */
|
const char *destnid; /* Destination network ID */
|
||||||
} osp_cookie_t;
|
} osp_cookie_t;
|
||||||
|
|
||||||
typedef struct osp_usage {
|
typedef struct osp_usage {
|
||||||
@ -231,7 +231,7 @@ typedef struct osp_usage {
|
|||||||
|
|
||||||
typedef struct osp_threadarg {
|
typedef struct osp_threadarg {
|
||||||
OSPTTRANHANDLE handle; /* Transaction handle */
|
OSPTTRANHANDLE handle; /* Transaction handle */
|
||||||
unsigned long long transid; /* Transaction ID */
|
uint64_t transid; /* Transaction ID */
|
||||||
switch_call_cause_t cause; /* Release code */
|
switch_call_cause_t cause; /* Release code */
|
||||||
time_t start; /* Call start time */
|
time_t start; /* Call start time */
|
||||||
time_t alert; /* Call alert time */
|
time_t alert; /* Call alert time */
|
||||||
@ -490,36 +490,40 @@ static switch_status_t osp_load_settings(
|
|||||||
} else if (!strcasecmp(name, "device-ip")) {
|
} else if (!strcasecmp(name, "device-ip")) {
|
||||||
provider->device = switch_core_strdup(osp_globals.pool, value);
|
provider->device = switch_core_strdup(osp_globals.pool, value);
|
||||||
} else if (!strcasecmp(name, "ssl-lifetime")) {
|
} else if (!strcasecmp(name, "ssl-lifetime")) {
|
||||||
provider->lifetime = atoi(value);
|
if (sscanf(value, "%d", &number) == 1) {
|
||||||
|
provider->lifetime = number;
|
||||||
|
} else {
|
||||||
|
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "ssl-lifetime must be a number\n");
|
||||||
|
}
|
||||||
} else if (!strcasecmp(name, "http-max-connections")) {
|
} else if (!strcasecmp(name, "http-max-connections")) {
|
||||||
number = atoi(value);
|
if ((sscanf(value, "%d", &number) == 1) && (number >= OSP_MIN_MAXCONN) && (number <= OSP_MAX_MAXCONN)) {
|
||||||
if ((number >= OSP_MIN_MAXCONN) && (number <= OSP_MAX_MAXCONN)) {
|
|
||||||
provider->maxconnect = number;
|
provider->maxconnect = number;
|
||||||
} else {
|
} else {
|
||||||
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING,
|
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING,
|
||||||
"http-max-connections must be between %d and %d\n", OSP_MIN_MAXCONN, OSP_MAX_MAXCONN);
|
"http-max-connections must be between %d and %d\n", OSP_MIN_MAXCONN, OSP_MAX_MAXCONN);
|
||||||
}
|
}
|
||||||
} else if (!strcasecmp(name, "http-persistence")) {
|
} else if (!strcasecmp(name, "http-persistence")) {
|
||||||
provider->persistence = atoi(value);
|
if (sscanf(value, "%d", &number) == 1) {
|
||||||
|
provider->persistence = number;
|
||||||
|
} else {
|
||||||
|
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "http-persistence must be a number\n");
|
||||||
|
}
|
||||||
} else if (!strcasecmp(name, "http-retry-delay")) {
|
} else if (!strcasecmp(name, "http-retry-delay")) {
|
||||||
number = atoi(value);
|
if ((sscanf(value, "%d", &number) == 1) && (number >= OSP_MIN_RETRYDELAY) && (number <= OSP_MAX_RETRYDELAY)) {
|
||||||
if ((number >= OSP_MIN_RETRYDELAY) && (number <= OSP_MAX_RETRYDELAY)) {
|
|
||||||
provider->retrydelay = number;
|
provider->retrydelay = number;
|
||||||
} else {
|
} else {
|
||||||
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING,
|
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING,
|
||||||
"http-retry-delay must be between %d and %d\n", OSP_MIN_RETRYDELAY, OSP_MAX_RETRYDELAY);
|
"http-retry-delay must be between %d and %d\n", OSP_MIN_RETRYDELAY, OSP_MAX_RETRYDELAY);
|
||||||
}
|
}
|
||||||
} else if (!strcasecmp(name, "http-retry-limit")) {
|
} else if (!strcasecmp(name, "http-retry-limit")) {
|
||||||
number = atoi(value);
|
if ((sscanf(value, "%d", &number) == 1) && (number >= OSP_MIN_RETRYLIMIT) && (number <= OSP_MAX_RETRYLIMIT)) {
|
||||||
if ((number >= OSP_MIN_RETRYLIMIT) && (number <= OSP_MAX_RETRYLIMIT)) {
|
|
||||||
provider->retrylimit = number;
|
provider->retrylimit = number;
|
||||||
} else {
|
} else {
|
||||||
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING,
|
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING,
|
||||||
"http-retry-limit must be between %d and %d\n", OSP_MIN_RETRYLIMIT, OSP_MAX_RETRYLIMIT);
|
"http-retry-limit must be between %d and %d\n", OSP_MIN_RETRYLIMIT, OSP_MAX_RETRYLIMIT);
|
||||||
}
|
}
|
||||||
} else if (!strcasecmp(name, "http-timeout")) {
|
} else if (!strcasecmp(name, "http-timeout")) {
|
||||||
number = atoi(value);
|
if ((sscanf(value, "%d", &number) == 1) && (number >= OSP_MIN_TIMEOUT) && (number <= OSP_MAX_TIMEOUT)) {
|
||||||
if ((number >= OSP_MIN_TIMEOUT) && (number <= OSP_MAX_TIMEOUT)) {
|
|
||||||
provider->timeout = number;
|
provider->timeout = number;
|
||||||
} else {
|
} else {
|
||||||
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING,
|
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING,
|
||||||
@ -534,8 +538,7 @@ static switch_status_t osp_load_settings(
|
|||||||
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "Unknown service type '%s'\n", value);
|
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "Unknown service type '%s'\n", value);
|
||||||
}
|
}
|
||||||
} else if (!strcasecmp(name, "max-destinations")) {
|
} else if (!strcasecmp(name, "max-destinations")) {
|
||||||
number = atoi(value);
|
if ((sscanf(value, "%d", &number) == 1) && (number >= OSP_MIN_MAXDEST) && (number <= OSP_MAX_MAXDEST)) {
|
||||||
if ((number >= OSP_MIN_MAXDEST) && (number <= OSP_MAX_MAXDEST)) {
|
|
||||||
provider->maxdest = number;
|
provider->maxdest = number;
|
||||||
} else {
|
} else {
|
||||||
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING,
|
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING,
|
||||||
@ -1182,7 +1185,7 @@ static void osp_log_authrsp(
|
|||||||
for (i = 0; i < results->numdest; i++) {
|
for (i = 0; i < results->numdest; i++) {
|
||||||
switch_log_printf(SWITCH_CHANNEL_LOG, osp_globals.loglevel,
|
switch_log_printf(SWITCH_CHANNEL_LOG, osp_globals.loglevel,
|
||||||
"AuthRsp: "
|
"AuthRsp: "
|
||||||
"transid = '%llu' "
|
"transid = '%"PRIu64"' "
|
||||||
"destcount = '%d' "
|
"destcount = '%d' "
|
||||||
"timelimit = '%u' "
|
"timelimit = '%u' "
|
||||||
"destination = '%s' "
|
"destination = '%s' "
|
||||||
@ -1435,7 +1438,7 @@ static void osp_build_allparam(
|
|||||||
|
|
||||||
if (results && head && size) {
|
if (results && head && size) {
|
||||||
switch_snprintf(head, size,
|
switch_snprintf(head, size,
|
||||||
"{%s=%s,%s=%llu,%s=%llu",
|
"{%s=%s,%s=%"PRIu64",%s=%"PRId64"",
|
||||||
OSP_VAR_PROFILE, results->profile,
|
OSP_VAR_PROFILE, results->profile,
|
||||||
OSP_VAR_TRANSID, results->transid,
|
OSP_VAR_TRANSID, results->transid,
|
||||||
OSP_VAR_START, results->start);
|
OSP_VAR_START, results->start);
|
||||||
@ -1755,21 +1758,15 @@ static switch_status_t osp_get_ospcookie(
|
|||||||
return SWITCH_STATUS_FALSE;
|
return SWITCH_STATUS_FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((strvar = switch_channel_get_variable(channel, OSP_VAR_TRANSID))) {
|
if (!(strvar = switch_channel_get_variable(channel, OSP_VAR_TRANSID)) || (sscanf(strvar, "%"PRIu64"", &cookie->transid) != 1)) {
|
||||||
cookie->transid = atoll(strvar);
|
|
||||||
} else {
|
|
||||||
cookie->transid = 0;
|
cookie->transid = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((strvar = switch_channel_get_variable(channel, OSP_VAR_START))) {
|
if (!(strvar = switch_channel_get_variable(channel, OSP_VAR_START)) || (sscanf(strvar, "%"PRId64"", &cookie->start) != 1)) {
|
||||||
cookie->start = atoll(strvar);
|
|
||||||
} else {
|
|
||||||
cookie->start = 0;
|
cookie->start = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((strvar = switch_channel_get_variable(channel, OSP_VAR_DESTCOUNT))) {
|
if (!(strvar = switch_channel_get_variable(channel, OSP_VAR_DESTCOUNT)) || (sscanf(strvar, "%d", &cookie->destcount) != 1)) {
|
||||||
cookie->destcount = atoi(strvar);
|
|
||||||
} else {
|
|
||||||
cookie->destcount = 0;
|
cookie->destcount = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1843,24 +1840,16 @@ static void osp_get_usage(
|
|||||||
|
|
||||||
usage->fcodec = switch_channel_get_variable(channel, OSP_FS_DOWNCODEC);
|
usage->fcodec = switch_channel_get_variable(channel, OSP_FS_DOWNCODEC);
|
||||||
usage->rcodec = switch_channel_get_variable(channel, OSP_FS_UPCODEC);
|
usage->rcodec = switch_channel_get_variable(channel, OSP_FS_UPCODEC);
|
||||||
if ((strvar = switch_channel_get_variable(channel, OSP_FS_RTPDOWNOCTS))) {
|
if (!(strvar = switch_channel_get_variable(channel, OSP_FS_RTPDOWNOCTS)) || (sscanf(strvar, "%d", &usage->rtpdownoctets) != 1)) {
|
||||||
usage->rtpdownoctets = atoi(strvar);
|
|
||||||
} else {
|
|
||||||
usage->rtpdownoctets = OSP_DEF_STATS;
|
usage->rtpdownoctets = OSP_DEF_STATS;
|
||||||
}
|
}
|
||||||
if ((strvar = switch_channel_get_variable(channel, OSP_FS_RTPUPOCTS))) {
|
if (!(strvar = switch_channel_get_variable(channel, OSP_FS_RTPUPOCTS)) || (sscanf(strvar, "%d", &usage->rtpupoctets) != 1)) {
|
||||||
usage->rtpupoctets = atoi(strvar);
|
|
||||||
} else {
|
|
||||||
usage->rtpupoctets = OSP_DEF_STATS;
|
usage->rtpupoctets = OSP_DEF_STATS;
|
||||||
}
|
}
|
||||||
if ((strvar = switch_channel_get_variable(channel, OSP_FS_RTPDOWNPKTS))) {
|
if (!(strvar = switch_channel_get_variable(channel, OSP_FS_RTPDOWNPKTS)) || (sscanf(strvar, "%d", &usage->rtpdownpackets) != 1)) {
|
||||||
usage->rtpdownpackets = atoi(strvar);
|
|
||||||
} else {
|
|
||||||
usage->rtpdownpackets = OSP_DEF_STATS;
|
usage->rtpdownpackets = OSP_DEF_STATS;
|
||||||
}
|
}
|
||||||
if ((strvar = switch_channel_get_variable(channel, OSP_FS_RTPUPPKTS))) {
|
if (!(strvar = switch_channel_get_variable(channel, OSP_FS_RTPUPPKTS)) || (sscanf(strvar, "%d", &usage->rtpuppackets) != 1)) {
|
||||||
usage->rtpuppackets = atoi(strvar);
|
|
||||||
} else {
|
|
||||||
usage->rtpuppackets = OSP_DEF_STATS;
|
usage->rtpuppackets = OSP_DEF_STATS;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1900,7 +1889,7 @@ static OSPTTHREADRETURN osp_report_thread(
|
|||||||
NULL); /* Log buffer */
|
NULL); /* Log buffer */
|
||||||
if (error != OSPC_ERR_NO_ERROR) {
|
if (error != OSPC_ERR_NO_ERROR) {
|
||||||
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR,
|
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR,
|
||||||
"Failed to report usage for '%llu' attempt '%d'\n",
|
"Failed to report usage for '%"PRIu64"' attempt '%d'\n",
|
||||||
info->transid,
|
info->transid,
|
||||||
i + 1);
|
i + 1);
|
||||||
} else {
|
} else {
|
||||||
@ -2032,7 +2021,7 @@ static void osp_log_usageind(
|
|||||||
if (osp_globals.debug) {
|
if (osp_globals.debug) {
|
||||||
switch_log_printf(SWITCH_CHANNEL_LOG, osp_globals.loglevel,
|
switch_log_printf(SWITCH_CHANNEL_LOG, osp_globals.loglevel,
|
||||||
"UsageInd: "
|
"UsageInd: "
|
||||||
"transid = '%llu' "
|
"transid = '%"PRIu64"' "
|
||||||
"destcount = '%d' "
|
"destcount = '%d' "
|
||||||
"callid = '%s' "
|
"callid = '%s' "
|
||||||
"calling = '%s' "
|
"calling = '%s' "
|
||||||
@ -2043,9 +2032,9 @@ static void osp_log_usageind(
|
|||||||
"protocol = '%s' "
|
"protocol = '%s' "
|
||||||
"cause = '%d' "
|
"cause = '%d' "
|
||||||
"release = '%s' "
|
"release = '%s' "
|
||||||
"times = '%llu/%llu/%llu/%llu' "
|
"times = '%"PRId64"/%"PRId64"/%"PRId64"/%"PRId64"' "
|
||||||
"duration = '%llu' "
|
"duration = '%"PRId64"' "
|
||||||
"pdd = '%llu' "
|
"pdd = '%"PRId64"' "
|
||||||
"outsessionid = '%s' "
|
"outsessionid = '%s' "
|
||||||
"codec = '%s/%s' "
|
"codec = '%s/%s' "
|
||||||
"rtpctets = '%d/%d' "
|
"rtpctets = '%d/%d' "
|
||||||
|
Loading…
x
Reference in New Issue
Block a user