Add "LOW_MEMORY" option and increase some buffer sizes (bug #1827)
authorMark Spencer <markster@digium.com>
Sat, 12 Jun 2004 14:34:15 +0000 (14:34 +0000)
committerMark Spencer <markster@digium.com>
Sat, 12 Jun 2004 14:34:15 +0000 (14:34 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@3193 65c4cc65-6c06-0410-ace0-fbb531ad65f3

Makefile
config.c
pbx.c

index 19f28da..0e65415 100755 (executable)
--- a/Makefile
+++ b/Makefile
@@ -56,6 +56,10 @@ DEBUG=-g #-pg
 # will be received more reliably
 #OPTIONS += -DRADIO_RELAX
 
+# If you don't have a lot of memory (e.g. embedded Asterisk), uncomment the
+# following to reduce the size of certain static buffers
+#OPTIONS += -DLOW_MEMORY
+
 # Optional debugging parameters
 DEBUG_THREADS = #-DDEBUG_THREADS #-DDO_CRASH 
 
index cb4ae06..865fb60 100755 (executable)
--- a/config.c
+++ b/config.c
@@ -529,7 +529,7 @@ static int cfg_process(struct ast_config *tmp, struct ast_category **_tmpc, stru
                                        
                                        if((c = strchr(cur,':'))) {
                                                *c = '\0';
-                                               *c++;
+                                               c++;
                                                arg = c;
                                        }
                                        
@@ -728,7 +728,7 @@ static struct ast_config *__ast_load(char *configfile, struct ast_config *tmp, s
 )
 {
        char fn[256];
-       char buf[512];
+       char buf[8192];
        FILE *f;
        int lineno=0;
        int master=0;
diff --git a/pbx.c b/pbx.c
index 02c006b..2c79751 100755 (executable)
--- a/pbx.c
+++ b/pbx.c
  *
  */
 
+#ifdef LOW_MEMORY
+#define EXT_DATA_SIZE 256
+#else
+#define EXT_DATA_SIZE 8192
+#endif
 
 struct ast_context;
 
@@ -1159,11 +1164,11 @@ static int pbx_extension_helper(struct ast_channel *c, char *context, char *exte
        int res;
        int status = 0;
        char *incstack[AST_PBX_MAX_STACK];
-       char passdata[256];
+       char passdata[EXT_DATA_SIZE];
        int stacklen = 0;
        char tmp[80];
        char tmp2[80];
-       char tmp3[256];
+       char tmp3[EXT_DATA_SIZE];
        if (ast_mutex_lock(&conlock)) {
                ast_log(LOG_WARNING, "Unable to obtain lock\n");
                if ((action == HELPER_EXISTS) || (action == HELPER_CANMATCH) || (action == HELPER_MATCHMORE))