diff options
author | russell <russell@f38db490-d61c-443f-a65b-d21fe96a405b> | 2006-01-21 23:05:19 +0000 |
---|---|---|
committer | russell <russell@f38db490-d61c-443f-a65b-d21fe96a405b> | 2006-01-21 23:05:19 +0000 |
commit | 8234cfd106a17542d7b1de21dff30544974d74bb (patch) | |
tree | 8dfd55b2f9f354bccbb96d29ba1c742caa4eb4b5 /pbx.c | |
parent | 1e6b875c67de180e41374795555dde2859e23783 (diff) |
const-ify some fields in the ast_exten and ast_include structures (issue #6270)
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@8411 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'pbx.c')
-rw-r--r-- | pbx.c | 51 |
1 files changed, 26 insertions, 25 deletions
@@ -112,11 +112,11 @@ struct ast_context; struct ast_exten { char *exten; /*!< Extension name */ int matchcid; /*!< Match caller id ? */ - char *cidmatch; /*!< Caller id to match for this extension */ + const char *cidmatch; /*!< Caller id to match for this extension */ int priority; /*!< Priority */ - char *label; /*!< Label */ + const char *label; /*!< Label */ struct ast_context *parent; /*!< The context this extension belongs to */ - char *app; /*!< Application to execute */ + const char *app; /*!< Application to execute */ void *data; /*!< Data to use (arguments) */ void (*datad)(void *); /*!< Data destructor */ struct ast_exten *peer; /*!< Next higher priority with our extension */ @@ -127,8 +127,8 @@ struct ast_exten { /*! \brief ast_include: include= support in extensions.conf */ struct ast_include { - char *name; - char *rname; /*!< Context to include */ + const char *name; + const char *rname; /*!< Context to include */ const char *registrar; /*!< Registrar */ int hastime; /*!< If time construct exists */ struct ast_timing timing; /*!< time construct */ @@ -151,7 +151,7 @@ struct ast_sw { struct ast_ignorepat { const char *registrar; struct ast_ignorepat *next; - char pattern[0]; + const char pattern[0]; }; /*! \brief ast_context: An extension context */ @@ -3881,21 +3881,19 @@ int ast_context_add_include2(struct ast_context *con, const char *value, return -1; } - /* ... fill in this structure ... */ + /* Fill in this structure. Use 'p' for assignments, as the fields + * in the structure are 'const char *' + */ p = new_include->stuff; new_include->name = p; - strcpy(new_include->name, value); + strcpy(p, value); p += strlen(value) + 1; new_include->rname = p; - strcpy(new_include->rname, value); - c = new_include->rname; - /* Strip off timing info */ - while(*c && (*c != '|')) - c++; - /* Process if it's there */ - if (*c) { - new_include->hastime = ast_build_timing(&(new_include->timing), c+1); - *c = '\0'; + strcpy(p, value); + /* Strip off timing info, and process if it is there */ + if ( (c = strchr(p, '|')) ) { + *c++ = '\0'; + new_include->hastime = ast_build_timing(&(new_include->timing), c); } new_include->next = NULL; new_include->registrar = registrar; @@ -4137,7 +4135,10 @@ int ast_context_add_ignorepat2(struct ast_context *con, const char *value, const errno = ENOMEM; return -1; } - strcpy(ignorepat->pattern, value); + /* The cast to char * is because we need to write the initial value. + * The field is not supposed to be modified otherwise + */ + strcpy((char *)ignorepat->pattern, value); ignorepat->next = NULL; ignorepat->registrar = registrar; ast_mutex_lock(&con->lock); @@ -4371,26 +4372,26 @@ int ast_add_extension2(struct ast_context *con, datad = null_datad; tmp = calloc(1, length); if (tmp) { + /* use p as dst in assignments, as the fields are const char * */ p = tmp->stuff; if (label) { tmp->label = p; - strcpy(tmp->label, label); + strcpy(p, label); p += strlen(label) + 1; } tmp->exten = p; - p += ext_strncpy(tmp->exten, extension, strlen(extension) + 1) + 1; + p += ext_strncpy(p, extension, strlen(extension) + 1) + 1; tmp->priority = priority; - tmp->cidmatch = p; + tmp->cidmatch = p; /* but use p for assignments below */ if (callerid) { - p += ext_strncpy(tmp->cidmatch, callerid, strlen(callerid) + 1) + 1; + p += ext_strncpy(p, callerid, strlen(callerid) + 1) + 1; tmp->matchcid = 1; } else { - tmp->cidmatch[0] = '\0'; + *p++ = '\0'; tmp->matchcid = 0; - p++; } tmp->app = p; - strcpy(tmp->app, application); + strcpy(p, application); tmp->parent = con; tmp->data = data; tmp->datad = datad; |