[asterisk-commits] branch north/chan_skinny-fixup r34338 -
/team/north/chan_skinny-fixup/channels/
asterisk-commits at lists.digium.com
asterisk-commits at lists.digium.com
Thu Jun 15 12:58:33 MST 2006
Author: north
Date: Thu Jun 15 14:58:33 2006
New Revision: 34338
URL: http://svn.digium.com/view/asterisk?rev=34338&view=rev
Log:
general cleanup
fix memory handling (replace a few malloc/memset with ast_calloc)
Modified:
team/north/chan_skinny-fixup/channels/chan_skinny.c
Modified: team/north/chan_skinny-fixup/channels/chan_skinny.c
URL: http://svn.digium.com/view/asterisk/team/north/chan_skinny-fixup/channels/chan_skinny.c?rev=34338&r1=34337&r2=34338&view=diff
==============================================================================
--- team/north/chan_skinny-fixup/channels/chan_skinny.c (original)
+++ team/north/chan_skinny-fixup/channels/chan_skinny.c Thu Jun 15 14:58:33 2006
@@ -1124,15 +1124,13 @@
break;
}
- a = d->addons;
- while (a) {
+ for (a = d->addons; a; a = a->next) {
if (!strcasecmp(a->type, "7914")) {
for (i = 0; i < 14; i++)
(btn++)->buttonDefinition = BT_CUST_LINESPEEDDIAL;
} else {
ast_log(LOG_WARNING, "Unknown addon type '%s' found. Skipping.\n", a->type);
}
- a = a->next;
}
return btn;
@@ -1548,13 +1546,13 @@
int new;
int old;
struct skinny_device *d = s->device;
- struct skinny_line *l = d->lines;
+ struct skinny_line *l;
*/
transmit_displaymessage(s, NULL);
/*
- while (l) {
+ for (l = d->lines; l; l = l->next) {
if (has_voicemail(l)) {
if (skinnydebug)
ast_verbose("Checking for voicemail Skinny %s@%s\n", l->name, d->name);
@@ -1565,7 +1563,6 @@
} else {
transmit_lamp_indication(s, STIMULUS_VOICEMAIL, l->instance, SKINNY_LAMP_OFF);
}
- l = l->next;
}
*/
}
@@ -1696,14 +1693,14 @@
return RESULT_SHOWUSAGE;
}
ast_mutex_lock(&devicelock);
- d = devices;
ast_cli(fd, "Name DeviceId IP TypeId R NL\n");
ast_cli(fd, "-------------------- ---------------- --------------- ------ - --\n");
- while(d) {
- l = d->lines;
+ for (d = devices; d; d = d->next) {
numlines = 0;
- while(l) { numlines++; l = l->next; }
+ for (l = d->lines; l; l = l->next) {
+ numlines++;
+ }
ast_cli(fd, "%-20s %-16s %-15s %6X %c %2d\n",
d->name,
@@ -1712,8 +1709,6 @@
d->type,
d->registered?'Y':'N',
numlines);
-
- d = d->next;
}
ast_mutex_unlock(&devicelock);
return RESULT_SUCCESS;
@@ -1728,41 +1723,18 @@
return RESULT_SHOWUSAGE;
}
ast_mutex_lock(&devicelock);
- d = devices;
-
-#if 0
- ast_cli(fd, "Device Name Instance Name Label O R\n");
- ast_cli(fd, "-------------------- -------- -------------------- -------------------- - -\n");
- while(d) {
- l = d->lines;
- while (l) {
- ast_cli(fd, "%-20s %8d %-20s %-20s %c %c\n",
- d->name,
- l->instance,
- l->name,
- l->label,
- sub->owner?'Y':'N',
- sub->rtp?'Y':'N');
- l = l->next;
- }
- d = d->next;
- }
-#else
+
ast_cli(fd, "Device Name Instance Name Label \n");
ast_cli(fd, "-------------------- -------- -------------------- --------------------\n");
- while(d) {
- l = d->lines;
- while (l) {
+ for (d = devices; d; d = d->next) {
+ for (l = d->lines; l; l = l->next) {
ast_cli(fd, "%-20s %8d %-20s %-20s\n",
d->name,
l->instance,
l->name,
l->label);
- l = l->next;
- }
- d = d->next;
- }
-#endif
+ }
+ }
ast_mutex_unlock(&devicelock);
return RESULT_SUCCESS;
@@ -1887,13 +1859,11 @@
} else if (!strcasecmp(v->name, "linelabel")) {
ast_copy_string(linelabel, v->value, sizeof(linelabel));
} else if (!strcasecmp(v->name, "speeddial")) {
- sd = malloc(sizeof(struct skinny_speeddial));
- if (sd) {
+ if (!(sd = ast_calloc(1, sizeof(struct skinny_speeddial)))) {
char *stringp, *exten, *label;
stringp = v->value;
exten = strsep(&stringp, ",");
label = strsep(&stringp, ",");
- memset(sd, 0, sizeof(struct skinny_speeddial));
ast_mutex_init(&sd->lock);
ast_copy_string(sd->exten, exten, sizeof(sd->exten));
if (label)
@@ -1905,28 +1875,20 @@
sd->next = d->speeddials;
d->speeddials = sd;
} else {
- /* XXX Should find a way to clean up our memory */
- ast_log(LOG_WARNING, "Out of memory allocating speeddial.\n");
return NULL;
}
} else if (!strcasecmp(v->name, "addon")) {
- a = malloc(sizeof(struct skinny_addon));
- if (a) {
- memset(a, 0, sizeof(struct skinny_addon));
+ if (!(a = ast_calloc(1, sizeof(struct skinny_addon)))) {
ast_mutex_init(&a->lock);
ast_copy_string(a->type, v->value, sizeof(a->type));
a->next = d->addons;
d->addons = a;
} else {
- /* XXX Should find a way to clean up our memory */
- ast_log(LOG_WARNING, "Out of memory allocating addon.\n");
return NULL;
}
} else if (!strcasecmp(v->name, "trunk") || !strcasecmp(v->name, "line")) {
- l = malloc(sizeof(struct skinny_line));
- if (l) {
- memset(l, 0, sizeof(struct skinny_line));
+ if (!(l = ast_calloc(1, sizeof(struct skinny_line)))) {
ast_mutex_init(&l->lock);
ast_copy_string(l->name, v->value, sizeof(l->name));
@@ -1969,8 +1931,6 @@
l->next = d->lines;
d->lines = l;
} else {
- /* XXX Should find a way to clean up our memory */
- ast_log(LOG_WARNING, "Out of memory allocating line.\n");
return NULL;
}
} else {
@@ -3143,13 +3103,11 @@
int btnSet = 0;
switch (btn[i].buttonDefinition) {
case BT_CUST_LINESPEEDDIAL:
- l = d->lines;
- sd = d->speeddials;
/* assume failure */
req->data.buttontemplate.definition[i].buttonDefinition = htolel(BT_NONE);
req->data.buttontemplate.definition[i].instanceNumber = htolel(0);
- while (l) {
+ for (l = d->lines; l; l = l->next) {
if (l->instance == lineInstance) {
ast_verbose("Adding button: %d, %d\n", BT_LINE, lineInstance);
req->data.buttontemplate.definition[i].buttonDefinition = htolel(BT_LINE);
@@ -3158,11 +3116,10 @@
btnSet = 1;
break;
}
- l = l->next;
}
if (!btnSet) {
- while (sd) {
+ for (sd = d->speeddials; sd; sd = sd->next) {
if (sd->instance == speeddialInstance) {
ast_verbose("Adding button: %d, %d\n", BT_SPEEDDIAL, speeddialInstance);
req->data.buttontemplate.definition[i].buttonDefinition = htolel(BT_SPEEDDIAL);
@@ -3171,16 +3128,14 @@
btnSet = 1;
break;
}
- sd = sd->next;
}
}
break;
case BT_LINE:
- l = d->lines;
req->data.buttontemplate.definition[i].buttonDefinition = htolel(BT_NONE);
req->data.buttontemplate.definition[i].instanceNumber = htolel(0);
- while (l) {
+ for (l = d->lines; l; l = l->next) {
if (l->instance == lineInstance) {
ast_verbose("Adding button: %d, %d\n", BT_LINE, lineInstance);
req->data.buttontemplate.definition[i].buttonDefinition = htolel(BT_LINE);
@@ -3189,15 +3144,13 @@
btnSet = 1;
break;
}
- l = l->next;
}
break;
case BT_SPEEDDIAL:
- sd = d->speeddials;
req->data.buttontemplate.definition[i].buttonDefinition = BT_NONE;
req->data.buttontemplate.definition[i].instanceNumber = 0;
- while (sd) {
+ for (sd = d->speeddials; sd; sd = sd->next) {
if (sd->instance == speeddialInstance) {
ast_verbose("Adding button: %d, %d\n", BT_SPEEDDIAL, speeddialInstance);
req->data.buttontemplate.definition[i].buttonDefinition = htolel(BT_SPEEDDIAL);
@@ -3206,7 +3159,6 @@
btnSet = 1;
break;
}
- sd = sd->next;
}
break;
case BT_CUST_HINT:
@@ -3867,19 +3819,10 @@
{
skinny_req *req;
-#if 0
- req = malloc(SKINNY_MAX_PACKET);
- memset(req, 0, sizeof(skinny_req));
-#endif
-
if (!(req = ast_calloc(1, SKINNY_MAX_PACKET)))
return NULL;
ast_mutex_lock(&s->lock);
- /* +8 to account for reserved and length fields
- memcpy(req, s->inbuf, skinny_header_size);
- memcpy(data, s->inbuf+skinny_header_size, letohl(*(int*)(s->inbuf))-4);
- */
memcpy(req, s->inbuf, skinny_header_size);
memcpy(&req->data, s->inbuf+skinny_header_size, letohl(*(int*)(s->inbuf))-4);
@@ -3955,14 +3898,6 @@
ast_log(LOG_WARNING, "Failed to set Skinny tcp connection to TCP_NODELAY mode: %s\n", strerror(errno));
}
}
-/*
- s = malloc(sizeof(struct skinnysession));
- if (!s) {
- ast_log(LOG_WARNING, "Failed to allocate Skinny session: %s\n", strerror(errno));
- continue;
- }
- memset(s, 0, sizeof(struct skinnysession));
-*/
if (!(s = ast_calloc(1, sizeof(struct skinnysession))))
continue;
@@ -4065,10 +4000,6 @@
}
if (option_verbose > 2) {
ast_verbose(VERBOSE_PREFIX_3 "skinny_request(%s)\n", tmp);
-#if 0
- ast_verbose(VERBOSE_PREFIX_3 "Skinny cw: %d, dnd: %d, so: %d, sno: %d\n",
- l->callwaiting, l->dnd, sub->owner ? 1 : 0, (sub->next && sub->next->owner) ? 1: 0);
-#endif
}
tmpc = skinny_new(l, AST_STATE_DOWN);
if (!tmpc) {
More information about the asterisk-commits
mailing list