Index: pbx/dundi-parser.h =================================================================== --- pbx/dundi-parser.h (revision 130440) +++ pbx/dundi-parser.h (working copy) @@ -70,7 +70,7 @@ extern int dundi_ie_append_short(struct dundi_ie_data *ied, unsigned char ie, unsigned short value); extern int dundi_ie_append_str(struct dundi_ie_data *ied, unsigned char ie, char *str); extern int dundi_ie_append_eid(struct dundi_ie_data *ied, unsigned char ie, dundi_eid *eid); -extern int dundi_ie_append_cause(struct dundi_ie_data *ied, unsigned char ie, unsigned char cause, char *desc); +extern int dundi_ie_append_cause(struct dundi_ie_data *ied, unsigned char ie, unsigned char cause, const char *desc); extern int dundi_ie_append_hint(struct dundi_ie_data *ied, unsigned char ie, unsigned short flags, char *data); extern int dundi_ie_append_answer(struct dundi_ie_data *ied, unsigned char ie, dundi_eid *eid, unsigned char protocol, unsigned short flags, unsigned short weight, char *desc); extern int dundi_ie_append_encdata(struct dundi_ie_data *ied, unsigned char ie, unsigned char *iv, void *data, int datalen); Index: pbx/pbx_dundi.c =================================================================== --- pbx/pbx_dundi.c (revision 130440) +++ pbx/pbx_dundi.c (working copy) @@ -290,7 +290,7 @@ return res; } -static char *tech2str(int tech) +static const char *tech2str(int tech) { switch(tech) { case DUNDI_PROTO_NONE: @@ -1253,7 +1253,7 @@ ast_log(LOG_NOTICE, "Whoa, got a weird encrypt size (%d != %d)!\n", res, 128); return -1; } - if ((res = ast_sign_bin(skey, (char *)peer->txenckey, 128, peer->txenckey + 128))) { + if ((res = ast_sign_bin(skey, (const char *)peer->txenckey, 128, peer->txenckey + 128))) { ast_log(LOG_NOTICE, "Failed to sign key (%d)!\n", res); return -1; } @@ -2283,7 +2283,7 @@ return CLI_SUCCESS; } -static char *model2str(int model) +static const char *model2str(int model) { switch(model) { case DUNDI_MODEL_INBOUND: @@ -2481,7 +2481,6 @@ { struct dundi_peer *peer; struct permission *p; - char *order; char eid_str[20]; int x, cnt; switch (cmd) { @@ -2502,22 +2501,6 @@ break; } if (peer) { - switch(peer->order) { - case 0: - order = "Primary"; - break; - case 1: - order = "Secondary"; - break; - case 2: - order = "Tertiary"; - break; - case 3: - order = "Quartiary"; - break; - default: - order = "Unknown"; - } ast_cli(a->fd, "Peer: %s\n", ast_eid_to_str(eid_str, sizeof(eid_str), &peer->eid)); ast_cli(a->fd, "Model: %s\n", model2str(peer->model)); ast_cli(a->fd, "Host: %s\n", peer->addr.sin_addr.s_addr ? ast_inet_ntoa(peer->addr.sin_addr) : ""); @@ -4569,7 +4552,7 @@ matchmore: dundi_matchmore, }; -static int set_config(char *config_file, struct sockaddr_in* sin, int reload) +static int set_config(const char *config_file, struct sockaddr_in* sin, int reload) { struct ast_config *cfg; struct ast_variable *v; Index: pbx/dundi-parser.c =================================================================== --- pbx/dundi-parser.c (revision 130440) +++ pbx/dundi-parser.c (working copy) @@ -155,7 +155,7 @@ static void dump_cause(char *output, int maxlen, void *value, int len) { - static char *causes[] = { + static const char *causes[] = { "SUCCESS", "GENERAL", "DYNAMIC", @@ -337,7 +337,7 @@ static struct dundi_ie { int ie; - char *name; + const char *name; void (*dump)(char *output, int maxlen, void *value, int len); } ies[] = { { DUNDI_IE_EID, "ENTITY IDENT", dump_eid }, @@ -367,7 +367,7 @@ { DUNDI_IE_CACHEBYPASS, "CBYPASS", dump_cbypass }, }; -const char *dundi_ie2str(int ie) +const const char *dundi_ie2str(int ie) { int x; for (x=0;x<(int)sizeof(ies) / (int)sizeof(ies[0]); x++) { @@ -428,12 +428,12 @@ void dundi_showframe(struct dundi_hdr *fhi, int rx, struct sockaddr_in *sin, int datalen) { - char *pref[] = { + static const char *pref[] = { "Tx", "Rx", " ETx", " Erx" }; - char *commands[] = { + static const char *commands[] = { "ACK ", "DPDISCOVER ", "DPRESPONSE ", @@ -450,7 +450,7 @@ "ENCRYPT ", "ENCREJ " }; char class2[20]; - char *class; + const char *class; char subclass2[20]; char *subclass; char tmp[256]; @@ -500,7 +500,7 @@ return 0; } -int dundi_ie_append_cause(struct dundi_ie_data *ied, unsigned char ie, unsigned char cause, char *data) +int dundi_ie_append_cause(struct dundi_ie_data *ied, unsigned char ie, unsigned char cause, const char *data) { char tmp[256]; int datalen = data ? strlen(data) + 1 : 1; Index: channels/chan_sip.c =================================================================== --- channels/chan_sip.c (revision 130440) +++ channels/chan_sip.c (working copy) @@ -529,7 +529,7 @@ static const struct cfsip_methods { enum sipmethod id; int need_rtp; /*!< when this is the 'primary' use for a pvt structure, does it need RTP? */ - char * const text; + const char * const text; enum can_create_dialog can_create; } sip_methods[] = { { SIP_UNKNOWN, RTP, "-UNKNOWN-", CAN_CREATE_DIALOG }, @@ -593,7 +593,7 @@ static const struct cfsip_options { int id; /*!< Bitmap ID */ int supported; /*!< Supported by Asterisk ? */ - char * const text; /*!< Text id, as in standard */ + const char * const text; /*!< Text id, as in standard */ } sip_options[] = { /* XXX used in 3 places */ /* RFC3262: PRACK 100% reliability */ { SIP_OPT_100REL, NOT_SUPPORTED, "100rel" }, @@ -1950,7 +1950,7 @@ static int attempt_transfer(struct sip_dual *transferer, struct sip_dual *target); /*--- Device monitoring and Device/extension state/event handling */ -static int cb_extensionstate(char *context, char* exten, int state, void *data); +static int cb_extensionstate(const char *context, const char *exten, int state, void *data); static int sip_devicestate(void *data); static int sip_poke_noanswer(const void *data); static int sip_poke_peer(struct sip_peer *peer, int force); @@ -10674,7 +10674,7 @@ /*! \brief Callback for the devicestate notification (SUBSCRIBE) support subsystem \note If you add an "hint" priority to the extension in the dial plan, you will get notifications on device state changes */ -static int cb_extensionstate(char *context, char* exten, int state, void *data) +static int cb_extensionstate(const char *context, const char *exten, int state, void *data) { struct sip_pvt *p = data; @@ -15442,7 +15442,7 @@ if (ast_test_flag(&p->flags[1], SIP_PAGE2_STATECHANGEQUEUE)) { /* Ready to send the next state we have on queue */ ast_clear_flag(&p->flags[1], SIP_PAGE2_STATECHANGEQUEUE); - cb_extensionstate((char *)p->context, (char *)p->exten, p->laststate, (void *) p); + cb_extensionstate(p->context, p->exten, p->laststate, (void *) p); } } break; @@ -16051,7 +16051,7 @@ if (ast_test_flag(&p->flags[1], SIP_PAGE2_STATECHANGEQUEUE)) { /* Ready to send the next state we have on queue */ ast_clear_flag(&p->flags[1], SIP_PAGE2_STATECHANGEQUEUE); - cb_extensionstate((char *)p->context, (char *)p->exten, p->laststate, (void *) p); + cb_extensionstate(p->context, p->exten, p->laststate, (void *) p); } } } else if (sipmethod == SIP_BYE) Index: channels/chan_agent.c =================================================================== --- channels/chan_agent.c (revision 130440) +++ channels/chan_agent.c (working copy) @@ -221,7 +221,7 @@ /*--- Forward declarations */ static struct ast_channel *agent_request(const char *type, int format, void *data, int *cause); static int agent_devicestate(void *data); -static void agent_logoff_maintenance(struct agent_pvt *p, char *loginchan, long logintime, const char *uniqueid, char *logcommand); +static void agent_logoff_maintenance(struct agent_pvt *p, char *loginchan, long logintime, const char *uniqueid, const char *logcommand); static int agent_digit_begin(struct ast_channel *ast, char digit); static int agent_digit_end(struct ast_channel *ast, char digit, unsigned int duration); static int agent_call(struct ast_channel *ast, char *dest, int timeout); @@ -1465,11 +1465,11 @@ char idText[256] = ""; char chanbuf[256]; struct agent_pvt *p; - char *username = NULL; - char *loginChan = NULL; - char *talkingto = NULL; - char *talkingtoChan = NULL; - char *status = NULL; + const char *username = NULL; + const char *loginChan = NULL; + const char *talkingto = NULL; + const char *talkingtoChan = NULL; + const char *status = NULL; if (!ast_strlen_zero(id)) snprintf(idText, sizeof(idText) ,"ActionID: %s\r\n", id); @@ -1539,9 +1539,9 @@ return 0; } -static void agent_logoff_maintenance(struct agent_pvt *p, char *loginchan, long logintime, const char *uniqueid, char *logcommand) +static void agent_logoff_maintenance(struct agent_pvt *p, char *loginchan, long logintime, const char *uniqueid, const char *logcommand) { - char *tmp = NULL; + const char *tmp = NULL; char agent[AST_MAX_AGENT]; if (!ast_strlen_zero(logcommand)) @@ -1888,7 +1888,7 @@ char pass[AST_MAX_AGENT]; char agent[AST_MAX_AGENT] = ""; char xpass[AST_MAX_AGENT] = ""; - char *errmsg; + const char *errmsg; char *parse; AST_DECLARE_APP_ARGS(args, AST_APP_ARG(agent_id); @@ -1899,7 +1899,7 @@ int play_announcement = 1; char agent_goodbye[AST_MAX_FILENAME_LEN]; int update_cdr = updatecdr; - char *filename = "agent-loginok"; + const char *filename = "agent-loginok"; u = ast_module_user_add(chan); @@ -2413,7 +2413,7 @@ } if (!strcasecmp(args.item, "status")) { - char *status = "LOGGEDOUT"; + const char *status = "LOGGEDOUT"; if (agent->chan || !ast_strlen_zero(agent->loginchan)) status = "LOGGEDIN"; ast_copy_string(buf, status, len); Index: channels/iax2-provision.c =================================================================== --- channels/iax2-provision.c (revision 130440) +++ channels/iax2-provision.c (working copy) @@ -65,7 +65,7 @@ } *templates; static struct iax_flag { - char *name; + const char *name; int value; } iax_flags[] = { { "register", PROV_FLAG_REGISTER }, @@ -78,7 +78,7 @@ { "disable3way", PROV_FLAG_DIS_THREEWAY }, }; -char *iax_provflags2str(char *buf, int buflen, unsigned int flags) +const char *iax_provflags2str(char *buf, int buflen, unsigned int flags) { int x; Index: channels/chan_iax2.c =================================================================== --- channels/chan_iax2.c (revision 130440) +++ channels/chan_iax2.c (working copy) @@ -2045,14 +2045,14 @@ unsigned int bytes; struct iax_firmware *cur; - if (ast_strlen_zero((char *)dev) || !bs) + if (ast_strlen_zero((const char *)dev) || !bs) return -1; start *= bs; AST_LIST_LOCK(&firmwares); AST_LIST_TRAVERSE(&firmwares, cur, list) { - if (strcmp((char *)dev, (char *)cur->fwh->devname)) + if (strcmp((const char *)dev, (const char *)cur->fwh->devname)) continue; iax_ie_append_int(ied, IAX_IE_FWBLOCKDESC, desc); if (start < ntohl(cur->fwh->datalen)) { @@ -3075,7 +3075,7 @@ { return send_command_locked(PTR_TO_CALLNO(c->tech_pvt), AST_FRAME_TEXT, - 0, 0, (unsigned char *)text, strlen(text) + 1, -1); + 0, 0, (const unsigned char *)text, strlen(text) + 1, -1); } static int iax2_sendimage(struct ast_channel *c, struct ast_frame *img) @@ -3085,7 +3085,7 @@ static int iax2_sendhtml(struct ast_channel *c, int subclass, const char *data, int datalen) { - return send_command_locked(PTR_TO_CALLNO(c->tech_pvt), AST_FRAME_HTML, subclass, 0, (unsigned char *)data, datalen, -1); + return send_command_locked(PTR_TO_CALLNO(c->tech_pvt), AST_FRAME_HTML, subclass, 0, (const unsigned char *)data, datalen, -1); } static int iax2_fixup(struct ast_channel *oldchannel, struct ast_channel *newchan) @@ -4637,8 +4637,8 @@ stringp = tmppw; while ((tmppw = strsep(&stringp, ";"))) { MD5Init(&md5); - MD5Update(&md5, (unsigned char *)iaxs[callno]->challenge, strlen(iaxs[callno]->challenge)); - MD5Update(&md5, (unsigned char *)tmppw, strlen(tmppw)); + MD5Update(&md5, (const unsigned char *)iaxs[callno]->challenge, strlen(iaxs[callno]->challenge)); + MD5Update(&md5, (const unsigned char *)tmppw, strlen(tmppw)); MD5Final(digest, &md5); build_enc_keys(digest, &iaxs[callno]->ecx, &iaxs[callno]->dcx); res = decode_frame(&iaxs[callno]->dcx, fh, f, datalen); @@ -4855,7 +4855,7 @@ struct iax2_user *user = NULL; char auth[90]; - char *pstr = ""; + const char *pstr = ""; struct ao2_iterator i; switch (cmd) { @@ -4934,7 +4934,7 @@ struct iax2_peer *peer = NULL; char name[256]; int registeredonly=0; - char *term = manager ? "\r\n" : "\n"; + const char *term = manager ? "\r\n" : "\n"; char idtext[256] = ""; switch (argc) { case 6: @@ -5300,7 +5300,7 @@ } -static char *regstate2str(int regstate) +static const char *regstate2str(int regstate) { switch(regstate) { case REG_STATE_UNREGISTERED: @@ -6133,8 +6133,8 @@ stringp = tmppw; while((tmppw = strsep(&stringp, ";"))) { MD5Init(&md5); - MD5Update(&md5, (unsigned char *)p->challenge, strlen(p->challenge)); - MD5Update(&md5, (unsigned char *)tmppw, strlen(tmppw)); + MD5Update(&md5, (const unsigned char *)p->challenge, strlen(p->challenge)); + MD5Update(&md5, (const unsigned char *)tmppw, strlen(tmppw)); MD5Final(digest, &md5); /* If they support md5, authenticate with it. */ for (x=0;x<16;x++) @@ -6245,8 +6245,8 @@ stringp = tmppw; while((tmppw = strsep(&stringp, ";"))) { MD5Init(&md5); - MD5Update(&md5, (unsigned char *)iaxs[callno]->challenge, strlen(iaxs[callno]->challenge)); - MD5Update(&md5, (unsigned char *)tmppw, strlen(tmppw)); + MD5Update(&md5, (const unsigned char *)iaxs[callno]->challenge, strlen(iaxs[callno]->challenge)); + MD5Update(&md5, (const unsigned char *)tmppw, strlen(tmppw)); MD5Final(digest, &md5); for (x=0;x<16;x++) sprintf(requeststr + (x << 1), "%2.2x", digest[x]); /* safe */ @@ -6306,7 +6306,7 @@ if (!key) { ast_log(LOG_NOTICE, "Unable to find private key '%s'\n", keyn); } else { - if (ast_sign(key, (char*)challenge, sig)) { + if (ast_sign(key, challenge, sig)) { ast_log(LOG_NOTICE, "Unable to sign challenge with key\n"); res = -1; } else { @@ -6323,8 +6323,8 @@ unsigned char digest[16]; char digres[128]; MD5Init(&md5); - MD5Update(&md5, (unsigned char *)challenge, strlen(challenge)); - MD5Update(&md5, (unsigned char *)secret, strlen(secret)); + MD5Update(&md5, (const unsigned char *)challenge, strlen(challenge)); + MD5Update(&md5, (const unsigned char *)secret, strlen(secret)); MD5Final(digest, &md5); /* If they support md5, authenticate with it. */ for (x=0;x<16;x++) @@ -7983,7 +7983,7 @@ char host_pref_buf[128]; char caller_pref_buf[128]; struct ast_codec_pref pref; - char *using_prefs = "mine"; + const char *using_prefs = "mine"; /* allocate an iax_frame with 4096 bytes of data buffer */ fr = alloca(sizeof(*fr) + 4096); @@ -9802,9 +9802,9 @@ return 1; } -static char *papp = "IAX2Provision"; -static char *psyn = "Provision a calling IAXy with a given template"; -static char *pdescrip = +static const char *papp = "IAX2Provision"; +static const char *psyn = "Provision a calling IAXy with a given template"; +static const char *pdescrip = " IAX2Provision([template]): Provisions the calling IAXy (assuming\n" "the calling entity is in fact an IAXy) with the given template or\n" "default if one is not specified. Returns -1 on error or 0 on success.\n"; @@ -10900,7 +10900,7 @@ } /*! \brief Load configuration */ -static int set_config(char *config_file, int reload) +static int set_config(const char *config_file, int reload) { struct ast_config *cfg, *ucfg; int capability=iax2_capability; @@ -11304,10 +11304,9 @@ } static int reload_config(void) { - char *config = "iax.conf"; struct iax2_registry *reg; - if (set_config(config, 1) > 0) { + if (set_config("iax.conf", 1) > 0) { prune_peers(); prune_users(); trunk_timed = trunk_untimed = 0; @@ -11321,7 +11320,7 @@ /* Qualify hosts, too */ poke_all_peers(); } - + reload_firmware(0); iax_provision_reload(1); ast_unload_realtime("iaxpeers"); @@ -12123,7 +12122,6 @@ /*! \brief Load IAX2 module, load configuraiton ---*/ static int load_module(void) { - char *config = "iax.conf"; int x = 0; struct iax2_registry *reg = NULL; @@ -12193,7 +12191,7 @@ ast_manager_register( "IAXpeerlist", EVENT_FLAG_SYSTEM | EVENT_FLAG_REPORTING, manager_iax2_show_peer_list, "List IAX Peers" ); ast_manager_register( "IAXnetstats", EVENT_FLAG_SYSTEM | EVENT_FLAG_REPORTING, manager_iax2_show_netstats, "Show IAX Netstats" ); - if(set_config(config, 0) == -1) + if(set_config("iax.conf", 0) == -1) return AST_MODULE_LOAD_DECLINE; timingfd = ast_timer_open(); Index: channels/iax2-provision.h =================================================================== --- channels/iax2-provision.h (revision 130440) +++ channels/iax2-provision.h (working copy) @@ -45,7 +45,7 @@ #define PROV_FLAG_DIS_CIDCW (1 << 6) /* CID/CW Disabled */ #define PROV_FLAG_DIS_THREEWAY (1 << 7) /* Three-way calling, transfer disabled */ -char *iax_provflags2str(char *buf, int buflen, unsigned int flags); +const char *iax_provflags2str(char *buf, int buflen, unsigned int flags); int iax_provision_reload(int reload); int iax_provision_unload(void); int iax_provision_build(struct iax_ie_data *provdata, unsigned int *signature, const char *template, int force); Index: channels/chan_skinny.c =================================================================== --- channels/chan_skinny.c (revision 130440) +++ channels/chan_skinny.c (working copy) @@ -1295,7 +1295,7 @@ .bridge = ast_rtp_bridge, }; -static int skinny_extensionstate_cb(char *context, char* exten, int state, void *data); +static int skinny_extensionstate_cb(const char *context, const char *exten, int state, void *data); static int skinny_transfer(struct skinny_subchannel *sub); static void *get_button_template(struct skinnysession *s, struct button_definition_template *btn) @@ -2233,7 +2233,7 @@ transmit_response(s, req); } -static int skinny_extensionstate_cb(char *context, char *exten, int state, void *data) +static int skinny_extensionstate_cb(const char *context, const char *exten, int state, void *data) { struct skinny_speeddial *sd = data; struct skinny_device *d = sd->parent; Index: channels/iax2-parser.c =================================================================== --- channels/iax2-parser.c (revision 130440) +++ channels/iax2-parser.c (working copy) @@ -205,7 +205,7 @@ static struct iax2_ie { int ie; - char *name; + const char *name; void (*dump)(char *output, int maxlen, void *value, int len); } ies[] = { { IAX_IE_CALLED_NUMBER, "CALLED NUMBER", dump_string }, @@ -282,7 +282,7 @@ { PROV_IE_ALTSERVER, "ALTSERVERIP", dump_ipaddr }, }; -const char *iax_ie2str(int ie) +const const char *iax_ie2str(int ie) { int x; for (x=0;x<(int)sizeof(ies) / (int)sizeof(ies[0]); x++) { Index: apps/app_festival.c =================================================================== --- apps/app_festival.c (revision 130440) +++ apps/app_festival.c (working copy) @@ -390,7 +390,7 @@ /* Compute MD5 sum of string */ MD5Init(&md5ctx); - MD5Update(&md5ctx, (unsigned char *)args.text, strlen(args.text)); + MD5Update(&md5ctx, (const unsigned char *)args.text, strlen(args.text)); MD5Final(MD5Res, &md5ctx); MD5Hex[0] = '\0'; Index: include/asterisk/manager.h =================================================================== --- include/asterisk/manager.h (revision 130440) +++ include/asterisk/manager.h (working copy) @@ -148,7 +148,7 @@ /*! \brief Unregister a registred manager command \param action Name of registred Action: */ -int ast_manager_unregister( char *action ); +int ast_manager_unregister( const char *action ); /*! * \brief Verify a session's read permissions against a permission mask. @@ -184,22 +184,22 @@ const char *contents, ...); /*! \brief Get header from mananger transaction */ -const char *astman_get_header(const struct message *m, char *var); +const char *astman_get_header(const struct message *m, const char *var); /*! \brief Get a linked list of the Variable: headers */ struct ast_variable *astman_get_variables(const struct message *m); /*! \brief Send error in manager transaction */ -void astman_send_error(struct mansession *s, const struct message *m, char *error); +void astman_send_error(struct mansession *s, const struct message *m, const char *error); /*! \brief Send response in manager transaction */ -void astman_send_response(struct mansession *s, const struct message *m, char *resp, char *msg); +void astman_send_response(struct mansession *s, const struct message *m, const char *resp, const char *msg); /*! \brief Send ack in manager transaction */ -void astman_send_ack(struct mansession *s, const struct message *m, char *msg); +void astman_send_ack(struct mansession *s, const struct message *m, const char *msg); /*! \brief Send ack in manager list transaction */ -void astman_send_listack(struct mansession *s, const struct message *m, char *msg, char *listflag); +void astman_send_listack(struct mansession *s, const struct message *m, const char *msg, const char *listflag); void __attribute__ ((format (printf, 2, 3))) astman_append(struct mansession *s, const char *fmt, ...); Index: include/asterisk/astobj2.h =================================================================== --- include/asterisk/astobj2.h (revision 130440) +++ include/asterisk/astobj2.h (working copy) @@ -204,7 +204,7 @@ #ifdef REF_DEBUG #define dialog_ref(arg1,arg2) dialog_ref_debug((arg1),(arg2), __FILE__, __LINE__, __PRETTY_FUNCTION__) #define dialog_unref(arg1,arg2) dialog_unref_debug((arg1),(arg2), __FILE__, __LINE__, __PRETTY_FUNCTION__) -static struct sip_pvt *dialog_ref_debug(struct sip_pvt *p, char *tag, char *file, int line, const char *func) +static struct sip_pvt *dialog_ref_debug(struct sip_pvt *p, const char *tag, const char *file, int line, const char *func) { if (p) ao2_ref_debug(p, 1, tag, file, line, func); @@ -213,14 +213,14 @@ return p; } -static struct sip_pvt *dialog_unref_debug(struct sip_pvt *p, char *tag, char *file, int line, const char *func) +static struct sip_pvt *dialog_unref_debug(struct sip_pvt *p, const char *tag, const char *file, int line, const char *func) { if (p) ao2_ref_debug(p, -1, tag, file, line, func); return NULL; } #else -static struct sip_pvt *dialog_ref(struct sip_pvt *p, char *tag) +static struct sip_pvt *dialog_ref(struct sip_pvt *p, const char *tag) { if (p) ao2_ref(p, 1); @@ -229,7 +229,7 @@ return p; } -static struct sip_pvt *dialog_unref(struct sip_pvt *p, char *tag) +static struct sip_pvt *dialog_unref(struct sip_pvt *p, const char *tag) { if (p) ao2_ref(p, -1); @@ -409,7 +409,7 @@ #define ao2_alloc(arg1,arg2) _ao2_alloc((arg1), (arg2)) #endif -void *_ao2_alloc_debug(const size_t data_size, ao2_destructor_fn destructor_fn, char *tag, char *file, int line, const char *funcname); +void *_ao2_alloc_debug(const size_t data_size, ao2_destructor_fn destructor_fn, const char *tag, const char *file, int line, const char *funcname); void *_ao2_alloc(const size_t data_size, ao2_destructor_fn destructor_fn); @@ -441,7 +441,7 @@ #define ao2_t_ref(arg1,arg2,arg3) _ao2_ref((arg1), (arg2)) #define ao2_ref(arg1,arg2) _ao2_ref((arg1), (arg2)) #endif -int _ao2_ref_debug(void *o, int delta, char *tag, char *file, int line, const char *funcname); +int _ao2_ref_debug(void *o, int delta, const char *tag, const char *file, int line, const char *funcname); int _ao2_ref(void *o, int delta); /*! \brief @@ -662,7 +662,7 @@ ao2_hash_fn *hash_fn, ao2_callback_fn *cmp_fn); struct ao2_container *_ao2_container_alloc_debug(const uint n_buckets, ao2_hash_fn *hash_fn, ao2_callback_fn *cmp_fn, - char *tag, char *file, int line, const char *funcname); + const char *tag, const char *file, int line, const char *funcname); /*! \brief * Returns the number of elements in a container. @@ -702,7 +702,7 @@ #define ao2_t_link(arg1, arg2, arg3) _ao2_link((arg1), (arg2)) #define ao2_link(arg1, arg2) _ao2_link((arg1), (arg2)) #endif -void *_ao2_link_debug(struct ao2_container *c, void *new_obj, char *tag, char *file, int line, const char *funcname); +void *_ao2_link_debug(struct ao2_container *c, void *new_obj, const char *tag, const char *file, int line, const char *funcname); void *_ao2_link(struct ao2_container *c, void *newobj); /*! @@ -728,7 +728,7 @@ #define ao2_t_unlink(arg1, arg2, arg3) _ao2_unlink((arg1), (arg2)) #define ao2_unlink(arg1, arg2) _ao2_unlink((arg1), (arg2)) #endif -void *_ao2_unlink_debug(struct ao2_container *c, void *obj, char *tag, char *file, int line, const char *funcname); +void *_ao2_unlink_debug(struct ao2_container *c, void *obj, const char *tag, const char *file, int line, const char *funcname); void *_ao2_unlink(struct ao2_container *c, void *obj); @@ -824,8 +824,8 @@ #define ao2_callback(arg1,arg2,arg3,arg4) _ao2_callback((arg1), (arg2), (arg3), (arg4)) #endif void *_ao2_callback_debug(struct ao2_container *c, enum search_flags flags, - ao2_callback_fn *cb_fn, void *arg, char *tag, - char *file, int line, const char *funcname); + ao2_callback_fn *cb_fn, void *arg, const char *tag, + const char *file, int line, const char *funcname); void *_ao2_callback(struct ao2_container *c, enum search_flags flags, ao2_callback_fn *cb_fn, void *arg); @@ -840,7 +840,7 @@ #define ao2_t_find(arg1,arg2,arg3,arg4) _ao2_find((arg1), (arg2), (arg3)) #define ao2_find(arg1,arg2,arg3) _ao2_find((arg1), (arg2), (arg3)) #endif -void *_ao2_find_debug(struct ao2_container *c, void *arg, enum search_flags flags, char *tag, char *file, int line, const char *funcname); +void *_ao2_find_debug(struct ao2_container *c, void *arg, enum search_flags flags, const char *tag, const char *file, int line, const char *funcname); void *_ao2_find(struct ao2_container *c, void *arg, enum search_flags flags); /*! \brief @@ -946,7 +946,7 @@ #define ao2_t_iterator_next(arg1, arg2) _ao2_iterator_next((arg1)) #define ao2_iterator_next(arg1) _ao2_iterator_next((arg1)) #endif -void *_ao2_iterator_next_debug(struct ao2_iterator *a, char *tag, char *file, int line, const char *funcname); +void *_ao2_iterator_next_debug(struct ao2_iterator *a, const char *tag, const char *file, int line, const char *funcname); void *_ao2_iterator_next(struct ao2_iterator *a); /* extra functions */ Index: include/asterisk/pbx.h =================================================================== --- include/asterisk/pbx.h (revision 130440) +++ include/asterisk/pbx.h (working copy) @@ -70,7 +70,7 @@ struct ast_sw; /*! \brief Typedef for devicestate and hint callbacks */ -typedef int (*ast_state_cb_type)(char *context, char* id, enum ast_extension_states state, void *data); +typedef int (*ast_state_cb_type)(const char *context, const char* id, enum ast_extension_states state, void *data); /*! \brief Data structure associated with a custom dialplan function */ struct ast_custom_function { Index: include/asterisk/crypto.h =================================================================== --- include/asterisk/crypto.h (revision 130440) +++ include/asterisk/crypto.h (working copy) @@ -77,7 +77,7 @@ * \retval -1 on failure. * */ -int (*ast_sign)(struct ast_key *key, char *msg, char *sig); +int (*ast_sign)(struct ast_key *key, const char *msg, char *sig); /*! * \brief Sign a message signature using a given private key Index: main/manager.c =================================================================== --- main/manager.c (revision 130440) +++ main/manager.c (working copy) @@ -141,7 +141,7 @@ */ #define MAX_BLACKLIST_CMD_LEN 2 static struct { - char *words[AST_MAX_CMD_LEN]; + const char *words[AST_MAX_CMD_LEN]; } command_blacklist[] = { {{ "module", "load", NULL }}, {{ "module", "unload", NULL }}, @@ -319,7 +319,7 @@ */ static struct permalias { int num; - char *label; + const char *label; } perms[] = { { EVENT_FLAG_SYSTEM, "system" }, { EVENT_FLAG_CALL, "call" }, @@ -811,7 +811,7 @@ #define GET_HEADER_FIRST_MATCH 0 #define GET_HEADER_LAST_MATCH 1 #define GET_HEADER_SKIP_EMPTY 2 -static const char *__astman_get_header(const struct message *m, char *var, int mode) +static const char *__astman_get_header(const struct message *m, const char *var, int mode) { int x, l = strlen(var); const char *result = ""; @@ -838,7 +838,7 @@ * This is the legacy function and is implemented in therms of * __astman_get_header(). */ -const char *astman_get_header(const struct message *m, char *var) +const char *astman_get_header(const struct message *m, const char *var) { return __astman_get_header(m, var, GET_HEADER_FIRST_MATCH); } @@ -885,10 +885,10 @@ * helper function to send a string to the socket. * Return -1 on error (e.g. buffer full). */ -static int send_string(struct mansession *s, char *string) +static int send_string(struct mansession *s, const char *string) { int len = strlen(string); /* residual length */ - char *src = string; + const char *src = string; struct timeval start = ast_tvnow(); int n = 0; @@ -961,8 +961,8 @@ * Use the explicit constant MSG_MOREDATA to remove the empty line. * XXX MSG_MOREDATA should go to a header file. */ -#define MSG_MOREDATA ((char *)astman_send_response) -static void astman_send_response_full(struct mansession *s, const struct message *m, char *resp, char *msg, char *listflag) +#define MSG_MOREDATA ((const char *)astman_send_response) +static void astman_send_response_full(struct mansession *s, const struct message *m, const char *resp, const char *msg, const char *listflag) { const char *id = astman_get_header(m, "ActionID"); @@ -979,17 +979,17 @@ astman_append(s, "\r\n"); } -void astman_send_response(struct mansession *s, const struct message *m, char *resp, char *msg) +void astman_send_response(struct mansession *s, const struct message *m, const char *resp, const char *msg) { astman_send_response_full(s, m, resp, msg, NULL); } -void astman_send_error(struct mansession *s, const struct message *m, char *error) +void astman_send_error(struct mansession *s, const struct message *m, const char *error) { astman_send_response_full(s, m, "Error", error, NULL); } -void astman_send_ack(struct mansession *s, const struct message *m, char *msg) +void astman_send_ack(struct mansession *s, const struct message *m, const char *msg) { astman_send_response_full(s, m, "Success", msg, NULL); } @@ -999,7 +999,7 @@ astman_send_response_full(s, m, "Success", MSG_MOREDATA, NULL); } -void astman_send_listack(struct mansession *s, const struct message *m, char *msg, char *listflag) +void astman_send_listack(struct mansession *s, const struct message *m, const char *msg, const char *listflag) { astman_send_response_full(s, m, "Success", msg, listflag); } @@ -1055,8 +1055,8 @@ unsigned char digest[16]; MD5Init(&md5); - MD5Update(&md5, (unsigned char *) s->challenge, strlen(s->challenge)); - MD5Update(&md5, (unsigned char *) user->secret, strlen(user->secret)); + MD5Update(&md5, (const unsigned char *) s->challenge, strlen(s->challenge)); + MD5Update(&md5, (const unsigned char *) user->secret, strlen(user->secret)); MD5Final(digest, &md5); for (x = 0; x < 16; x++) len += sprintf(md5key + len, "%2.2x", digest[x]); @@ -3224,7 +3224,7 @@ /* * support functions to register/unregister AMI action handlers, */ -int ast_manager_unregister(char *action) +int ast_manager_unregister(const char *action) { struct manager_action *cur; @@ -3243,7 +3243,7 @@ return 0; } -static int manager_state_cb(char *context, char *exten, int state, void *data) +static int manager_state_cb(const char *context, const char *exten, int state, void *data) { /* Notify managers of change */ char hint[512]; @@ -3323,7 +3323,7 @@ FORMAT_XML, }; -static char *contenttype[] = { +static const char *contenttype[] = { [FORMAT_RAW] = "plain", [FORMAT_HTML] = "html", [FORMAT_XML] = "xml", Index: main/hashtab.c =================================================================== --- main/hashtab.c (revision 130440) +++ main/hashtab.c (working copy) @@ -55,8 +55,8 @@ int ast_hashtab_compare_ints(const void *a, const void *b) { - int ai = *((int *) a); - int bi = *((int *) b); + int ai = *((const int *) a); + int bi = *((const int *) b); if (ai < bi) return -1; @@ -66,8 +66,8 @@ int ast_hashtab_compare_shorts(const void *a, const void *b) { - short as = *((short *) a); - short bs = *((short *) b); + short as = *((const short *) a); + short bs = *((const short *) b); if (as < bs) return -1; @@ -147,7 +147,7 @@ unsigned int ast_hashtab_hash_string(const void *obj) { - unsigned char *str = (unsigned char *) obj; + const unsigned char *str = (const unsigned char *) obj; unsigned int total; for (total = 0; *str; str++) Index: main/astobj2.c =================================================================== --- main/astobj2.c (revision 130440) +++ main/astobj2.c (working copy) @@ -136,7 +136,7 @@ static struct bucket_list *__ao2_link(struct ao2_container *c, void *user_data); static void *__ao2_callback(struct ao2_container *c, const enum search_flags flags, ao2_callback_fn *cb_fn, void *arg, - char *tag, char *file, int line, const char *funcname); + const char *tag, const char *file, int line, const char *funcname); static void * __ao2_iterator_next(struct ao2_iterator *a, struct bucket_list **q); int ao2_lock(void *user_data) @@ -197,7 +197,7 @@ */ -int _ao2_ref_debug(void *user_data, const int delta, char *tag, char *file, int line, const char *funcname) +int _ao2_ref_debug(void *user_data, const int delta, const char *tag, const char *file, int line, const char *funcname) { struct astobj2 *obj = INTERNAL_OBJ(user_data); @@ -302,7 +302,7 @@ return EXTERNAL_OBJ(obj); } -void *_ao2_alloc_debug(size_t data_size, ao2_destructor_fn destructor_fn, char *tag, char *file, int line, const char *funcname) +void *_ao2_alloc_debug(size_t data_size, ao2_destructor_fn destructor_fn, const char *tag, const char *file, int line, const char *funcname) { /* allocation */ void *obj; @@ -410,7 +410,7 @@ } struct ao2_container *_ao2_container_alloc_debug(const uint n_buckets, ao2_hash_fn *hash_fn, - ao2_callback_fn *cmp_fn, char *tag, char *file, int line, const char *funcname) + ao2_callback_fn *cmp_fn, const char *tag, const char *file, int line, const char *funcname) { /* XXX maybe consistency check on arguments ? */ /* compute the container size */ @@ -486,7 +486,7 @@ return p; } -void *_ao2_link_debug(struct ao2_container *c, void *user_data, char *tag, char *file, int line, const char *funcname) +void *_ao2_link_debug(struct ao2_container *c, void *user_data, const char *tag, const char *file, int line, const char *funcname) { struct bucket_list *p = __ao2_link(c, user_data); @@ -520,8 +520,8 @@ * Unlink an object from the container * and destroy the associated * ao2_bucket_list structure. */ -void *_ao2_unlink_debug(struct ao2_container *c, void *user_data, char *tag, - char *file, int line, const char *funcname) +void *_ao2_unlink_debug(struct ao2_container *c, void *user_data, const char *tag, + const char *file, int line, const char *funcname) { if (INTERNAL_OBJ(user_data) == NULL) /* safety check on the argument */ return NULL; @@ -560,7 +560,7 @@ */ static void *__ao2_callback(struct ao2_container *c, const enum search_flags flags, ao2_callback_fn *cb_fn, void *arg, - char *tag, char *file, int line, const char *funcname) + const char *tag, const char *file, int line, const char *funcname) { int i, last; /* search boundaries */ void *ret = NULL; @@ -659,7 +659,7 @@ void *_ao2_callback_debug(struct ao2_container *c, const enum search_flags flags, ao2_callback_fn *cb_fn, void *arg, - char *tag, char *file, int line, const char *funcname) + const char *tag, const char *file, int line, const char *funcname) { return __ao2_callback(c,flags, cb_fn, arg, tag, file, line, funcname); } @@ -673,7 +673,7 @@ /*! * the find function just invokes the default callback with some reasonable flags. */ -void *_ao2_find_debug(struct ao2_container *c, void *arg, enum search_flags flags, char *tag, char *file, int line, const char *funcname) +void *_ao2_find_debug(struct ao2_container *c, void *arg, enum search_flags flags, const char *tag, const char *file, int line, const char *funcname) { return _ao2_callback_debug(c, flags, c->cmp_fn, arg, tag, file, line, funcname); } @@ -754,7 +754,7 @@ return ret; } -void * _ao2_iterator_next_debug(struct ao2_iterator *a, char *tag, char *file, int line, const char *funcname) +void * _ao2_iterator_next_debug(struct ao2_iterator *a, const char *tag, const char *file, int line, const char *funcname) { struct bucket_list *p; void *ret = NULL; Index: main/cryptostub.c =================================================================== --- main/cryptostub.c (revision 130440) +++ main/cryptostub.c (working copy) @@ -61,7 +61,7 @@ build_stub(ast_check_signature, struct ast_key *key, const char *msg, const char *sig); build_stub(ast_check_signature_bin, struct ast_key *key, const char *msg, int msglen, const unsigned char *sig); -build_stub(ast_sign, struct ast_key *key, char *msg, char *sig); +build_stub(ast_sign, struct ast_key *key, const char *msg, char *sig); build_stub(ast_sign_bin, struct ast_key *key, const char *msg, int msglen, unsigned char *sig); build_stub(ast_encrypt_bin, unsigned char *dst, const unsigned char *src, int srclen, struct ast_key *key); build_stub(ast_decrypt_bin, unsigned char *dst, const unsigned char *src, int srclen, struct ast_key *key); Index: res/res_crypto.c =================================================================== --- res/res_crypto.c (revision 130440) +++ res/res_crypto.c (working copy) @@ -179,7 +179,7 @@ char buf[256] = ""; fgets(buf, sizeof(buf), f); if (!feof(f)) - MD5Update(&md5, (unsigned char *) buf, strlen(buf)); + MD5Update(&md5, (const unsigned char *) buf, strlen(buf)); } MD5Final(digest, &md5); @@ -367,7 +367,7 @@ * \brief wrapper for __ast_sign_bin then base64 encode it * \see ast_sign */ -static int __ast_sign(struct ast_key *key, char *msg, char *sig) +static int __ast_sign(struct ast_key *key, const char *msg, char *sig) { unsigned char dsig[128]; int siglen = sizeof(dsig), res; Index: utils/extconf.c =================================================================== --- utils/extconf.c (revision 130440) +++ utils/extconf.c (working copy) @@ -2825,7 +2825,7 @@ char stuff[0]; }; /* from pbx.h */ -typedef int (*ast_state_cb_type)(char *context, char* id, enum ast_extension_states state, void *data); +typedef int (*ast_state_cb_type)(const char *context, const char* id, enum ast_extension_states state, void *data); struct ast_timing { int hastime; /*!< If time construct exists */ unsigned int monthmask; /*!< Mask for month */ Index: utils/astman.c =================================================================== --- utils/astman.c (revision 130440) +++ utils/astman.c (working copy) @@ -707,8 +707,8 @@ struct MD5Context md5; unsigned char digest[16]; MD5Init(&md5); - MD5Update(&md5, (unsigned char *)challenge, strlen(challenge)); - MD5Update(&md5, (unsigned char *)pass, strlen(pass)); + MD5Update(&md5, (const unsigned char *)challenge, strlen(challenge)); + MD5Update(&md5, (const unsigned char *)pass, strlen(pass)); MD5Final(digest, &md5); for (x=0; x<16; x++) len += sprintf(md5key + len, "%2.2x", digest[x]);