frontRegUserTableBuffer = shm_malloc(sizeof(interprocessBuffer_t));
endRegUserTableBuffer = shm_malloc(sizeof(interprocessBuffer_t));
- if(frontRegUserTableBuffer == NULL || endRegUserTableBuffer == NULL)
- {
- LM_ERR("no more shared memory\n");
- return -1;
- }
+ if(frontRegUserTableBuffer == NULL || endRegUserTableBuffer == NULL)
+ {
+ LM_ERR("no more shared memory\n");
+ return -1;
+ }
memset(frontRegUserTableBuffer, 0x00, sizeof(interprocessBuffer_t));
memset(endRegUserTableBuffer, 0x00, sizeof(interprocessBuffer_t));
interprocessCBLock = lock_alloc();
if(interprocessCBLock==NULL)
{
- LM_ERR("cannot allocate the lock\n");
- shm_free(frontRegUserTableBuffer);
- frontRegUserTableBuffer = NULL;
- shm_free(endRegUserTableBuffer);
- endRegUserTableBuffer = NULL;
- return -1;
+ LM_ERR("cannot allocate the lock\n");
+ shm_free(frontRegUserTableBuffer);
+ frontRegUserTableBuffer = NULL;
+ shm_free(endRegUserTableBuffer);
+ endRegUserTableBuffer = NULL;
+ return -1;
}
lock_init(interprocessCBLock);
hashTable = createHashTable(HASH_SIZE);
- if(hashTable == NULL)
- {
- LM_ERR("no more shared memory\n");
+ if(hashTable == NULL)
+ {
+ LM_ERR("no more shared memory\n");
lock_destroy(interprocessCBLock);
lock_dealloc(interprocessCBLock);
- shm_free(frontRegUserTableBuffer);
- frontRegUserTableBuffer = NULL;
- shm_free(endRegUserTableBuffer);
- endRegUserTableBuffer = NULL;
- return -1;
- }
+ shm_free(frontRegUserTableBuffer);
+ frontRegUserTableBuffer = NULL;
+ shm_free(endRegUserTableBuffer);
+ endRegUserTableBuffer = NULL;
+ return -1;
+ }
return 1;
}
/* This is the first element to be added. */
if (frontRegUserTableBuffer->next == NULL) {
- frontRegUserTableBuffer->next = currentBufferElement;
+ frontRegUserTableBuffer->next = currentBufferElement;
} else {
endRegUserTableBuffer->next->next = currentBufferElement;
}
void freeInterprocessBuffer(void)
{
- interprocessBuffer_t *currentBuffer, *previousBuffer;
+ interprocessBuffer_t *currentBuffer, *previousBuffer;
if (frontRegUserTableBuffer==NULL
|| frontRegUserTableBuffer->next == NULL
|| endRegUserTableBuffer==NULL) {
- LM_DBG("Nothing to clean\n");
+ LM_DBG("Nothing to clean\n");
return;
}
while (currentBuffer != NULL) {
- previousBuffer = currentBuffer;
- currentBuffer = currentBuffer->next;
- shm_free(previousBuffer->stringName);
- shm_free(previousBuffer->stringContact);
- shm_free(previousBuffer);
+ previousBuffer = currentBuffer;
+ currentBuffer = currentBuffer->next;
+ shm_free(previousBuffer->stringName);
+ shm_free(previousBuffer->stringContact);
+ shm_free(previousBuffer);
}
- if(frontRegUserTableBuffer)
- shm_free(frontRegUserTableBuffer);
+ if(frontRegUserTableBuffer)
+ shm_free(frontRegUserTableBuffer);
- if(endRegUserTableBuffer)
- shm_free(endRegUserTableBuffer);
+ if(endRegUserTableBuffer)
+ shm_free(endRegUserTableBuffer);
}
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
* USA
*
- * History:
- * --------
- * 2006-11-23 initial version (jmagder)
- *
* Note: this file originally auto-generated by mib2c using
* mib2c.array-user.conf
*
* the interprocess buffer with consumeInterprocessBuffer(). The function
* will add/delete rows to the tables, and then service the SNMP request.
*
+ * 4) If the SNMP request is not received, the InterProcessBuffer keeps growing
+ * until end of time. This is not good. A timer callback or something else is
+ * needed to process it.
+ *
* Notes:
*
* - The interprocess buffer was necessary, because NetSNMP's containers can be