ast_free(peer);
}
-static int oh323_simulate_dtmf_end(void *data)
+static int oh323_simulate_dtmf_end(const void *data)
{
- struct oh323_pvt *pvt = data;
+ struct oh323_pvt *pvt = (struct oh323_pvt *)data;
if (pvt) {
ast_mutex_lock(&pvt->lock);
enum iax2_thread_type type;
enum iax2_thread_iostate iostate;
#ifdef SCHED_MULTITHREADED
- void (*schedfunc)(void *);
- void *scheddata;
+ void (*schedfunc)(const void *);
+ const void *scheddata;
#endif
#ifdef DEBUG_SCHED_MULTITHREAD
char curfunc[80];
static struct timeval lastused[IAX_MAX_CALLS];
static enum ast_bridge_result iax2_bridge(struct ast_channel *c0, struct ast_channel *c1, int flags, struct ast_frame **fo, struct ast_channel **rc, int timeoutms);
-static int expire_registry(void *data);
+static int expire_registry(const void *data);
static int iax2_answer(struct ast_channel *c);
static int iax2_call(struct ast_channel *c, char *dest, int timeout);
static int iax2_devicestate(void *data);
}
#ifdef SCHED_MULTITHREADED
-static int __schedule_action(void (*func)(void *data), void *data, const char *funcname)
+static int __schedule_action(void (*func)(const void *data), const void *data, const char *funcname)
{
struct iax2_thread *thread = NULL;
static time_t lasterror;
#define schedule_action(func, data) __schedule_action(func, data, __PRETTY_FUNCTION__)
#endif
-static int iax2_sched_replace(int old_id, struct sched_context *con, int when, ast_sched_cb callback, void *data)
+static int iax2_sched_replace(int old_id, struct sched_context *con, int when, ast_sched_cb callback, const void *data)
{
int res;
return res;
}
-static int iax2_sched_add(struct sched_context *con, int when, ast_sched_cb callback, void *data)
+static int iax2_sched_add(struct sched_context *con, int when, ast_sched_cb callback, const void *data)
{
int res;
return res;
}
-static int send_ping(void *data);
+static int send_ping(const void *data);
-static void __send_ping(void *data)
+static void __send_ping(const void *data)
{
int callno = (long)data;
ast_mutex_lock(&iaxsl[callno]);
ast_mutex_unlock(&iaxsl[callno]);
}
-static int send_ping(void *data)
+static int send_ping(const void *data)
{
#ifdef SCHED_MULTITHREADED
if (schedule_action(__send_ping, data))
return e;
}
-static int send_lagrq(void *data);
+static int send_lagrq(const void *data);
-static void __send_lagrq(void *data)
+static void __send_lagrq(const void *data)
{
int callno = (long)data;
/* Ping only if it's real not if it's bridged */
ast_mutex_unlock(&iaxsl[callno]);
}
-static int send_lagrq(void *data)
+static int send_lagrq(const void *data)
{
#ifdef SCHED_MULTITHREADED
if (schedule_action(__send_lagrq, data))
return 0;
}
-static int attempt_transmit(void *data);
-static void __attempt_transmit(void *data)
+static int attempt_transmit(const void *data);
+static void __attempt_transmit(const void *data)
{
/* Attempt to transmit the frame to the remote peer...
Called without iaxsl held. */
- struct iax_frame *f = data;
+ struct iax_frame *f = (struct iax_frame *)data;
int freeme = 0;
int callno = f->callno;
/* Make sure this call is still active */
}
}
-static int attempt_transmit(void *data)
+static int attempt_transmit(const void *data)
{
#ifdef SCHED_MULTITHREADED
if (schedule_action(__attempt_transmit, data))
} else if ((peer = find_peer(argv[3], 0))) {
if(ast_test_flag(peer, IAX_RTCACHEFRIENDS)) {
ast_set_flag(peer, IAX_RTAUTOCLEAR);
- expire_registry((void *)peer->name);
+ expire_registry((const void *)peer->name);
ast_cli(fd, "OK peer %s was removed from the cache.\n", argv[3]);
} else {
ast_cli(fd, "SORRY peer %s is not eligible for this operation.\n", argv[3]);
}
}
-static int get_from_jb(void *p);
+static int get_from_jb(const void *p);
static void update_jbsched(struct chan_iax2_pvt *pvt)
{
CALLNO_TO_PTR(pvt->callno));
}
-static void __get_from_jb(void *p)
+static void __get_from_jb(const void *p)
{
int callno = PTR_TO_CALLNO(p);
struct chan_iax2_pvt *pvt = NULL;
ast_mutex_unlock(&iaxsl[callno]);
}
-static int get_from_jb(void *data)
+static int get_from_jb(const void *data)
{
#ifdef SCHED_MULTITHREADED
if (schedule_action(__get_from_jb, data))
ast_copy_flags(peer, &globalflags, IAX_RTAUTOCLEAR|IAX_RTCACHEFRIENDS);
if (ast_test_flag(peer, IAX_RTAUTOCLEAR)) {
peer->expire = iax2_sched_replace(peer->expire, sched,
- (global_rtautoclear) * 1000, expire_registry, (void *) peer->name);
+ (global_rtautoclear) * 1000, expire_registry, (const void *)peer->name);
}
ao2_link(peers, peer_ref(peer));
if (ast_test_flag(peer, IAX_DYNAMIC))
return res;
}
-static void __auto_congest(void *nothing)
+static void __auto_congest(const void *nothing)
{
int callno = PTR_TO_CALLNO(nothing);
struct ast_frame f = { AST_FRAME_CONTROL, AST_CONTROL_CONGESTION };
ast_mutex_unlock(&iaxsl[callno]);
}
-static int auto_congest(void *data)
+static int auto_congest(const void *data)
{
#ifdef SCHED_MULTITHREADED
if (schedule_action(__auto_congest, data))
static int iax2_do_register(struct iax2_registry *reg);
-static void __iax2_do_register_s(void *data)
+static void __iax2_do_register_s(const void *data)
{
- struct iax2_registry *reg = data;
+ struct iax2_registry *reg = (struct iax2_registry *)data;
reg->expire = -1;
iax2_do_register(reg);
}
-static int iax2_do_register_s(void *data)
+static int iax2_do_register_s(const void *data)
{
#ifdef SCHED_MULTITHREADED
if (schedule_action(__iax2_do_register_s, data))
}
static void prune_peers(void);
-static void __expire_registry(void *data)
+static void __expire_registry(const void *data)
{
- char *name = data;
+ const char *name = data;
struct iax2_peer *peer = NULL;
struct iax2_peer tmp_peer = {
.name = name,
peer_unref(peer);
}
-static int expire_registry(void *data)
+static int expire_registry(const void *data)
{
#ifdef SCHED_MULTITHREADED
if (schedule_action(__expire_registry, data))
p->addr.sin_port = htons(atoi(c));
ast_device_state_changed("IAX2/%s", p->name); /* Activate notification */
p->expire = iax2_sched_replace(p->expire, sched,
- (p->expiry + 10) * 1000, expire_registry, (void *) p->name);
+ (p->expiry + 10) * 1000, expire_registry, (const void *)p->name);
if (iax2_regfunk)
iax2_regfunk(p->name, 1);
register_peer_exten(p, 1);
p->expiry = refresh;
}
if (p->expiry && sin->sin_addr.s_addr)
- p->expire = iax2_sched_add(sched, (p->expiry + 10) * 1000, expire_registry, (void *)p->name);
+ p->expire = iax2_sched_add(sched, (p->expiry + 10) * 1000, expire_registry, (const void *)p->name);
iax_ie_append_str(&ied, IAX_IE_USERNAME, p->name);
iax_ie_append_int(&ied, IAX_IE_DATETIME, iax2_datetime(p->zonetag));
if (sin->sin_addr.s_addr) {
iax2_destroy_helper(iaxs[callno]);
}
-static void __auth_reject(void *nothing)
+static void __auth_reject(const void *nothing)
{
/* Called from IAX thread only, without iaxs lock */
int callno = (int)(long)(nothing);
ast_mutex_unlock(&iaxsl[callno]);
}
-static int auth_reject(void *data)
+static int auth_reject(const void *data)
{
int callno = (int)(long)(data);
ast_mutex_lock(&iaxsl[callno]);
return 0;
}
-static void __auto_hangup(void *nothing)
+static void __auto_hangup(const void *nothing)
{
/* Called from IAX thread only, without iaxs lock */
int callno = (int)(long)(nothing);
ast_mutex_unlock(&iaxsl[callno]);
}
-static int auto_hangup(void *data)
+static int auto_hangup(const void *data)
{
int callno = (int)(long)(data);
ast_mutex_lock(&iaxsl[callno]);
AST_LIST_UNLOCK(&frame_queue);
}
-static void __iax2_poke_peer_s(void *data)
+static void __iax2_poke_peer_s(const void *data)
{
- struct iax2_peer *peer = data;
+ struct iax2_peer *peer = (struct iax2_peer *)data;
iax2_poke_peer(peer, 0);
}
-static int iax2_poke_peer_s(void *data)
+static int iax2_poke_peer_s(const void *data)
{
- struct iax2_peer *peer = data;
+ struct iax2_peer *peer = (struct iax2_peer *)data;
peer->pokeexpire = -1;
#ifdef SCHED_MULTITHREADED
if (schedule_action(__iax2_poke_peer_s, data))
return RESULT_SUCCESS;
}
-static void __iax2_poke_noanswer(void *data)
+static void __iax2_poke_noanswer(const void *data)
{
- struct iax2_peer *peer = data;
+ struct iax2_peer *peer = (struct iax2_peer *)data;
if (peer->lastms > -1) {
ast_log(LOG_NOTICE, "Peer '%s' is now UNREACHABLE! Time: %d\n", peer->name, peer->lastms);
manager_event(EVENT_FLAG_SYSTEM, "PeerStatus", "Peer: IAX2/%s\r\nPeerStatus: Unreachable\r\nTime: %d\r\n", peer->name, peer->lastms);
peer->pokeexpire = iax2_sched_add(sched, peer->pokefreqnotok, iax2_poke_peer_s, peer);
}
-static int iax2_poke_noanswer(void *data)
+static int iax2_poke_noanswer(const void *data)
{
- struct iax2_peer *peer = data;
+ struct iax2_peer *peer = (struct iax2_peer *)data;
peer->pokeexpire = -1;
#ifdef SCHED_MULTITHREADED
if (schedule_action(__iax2_poke_noanswer, data))
return mgcp_queue_frame(sub, &f);
}
-static int retrans_pkt(void *data)
+static int retrans_pkt(const void *data)
{
struct mgcp_gateway *gw = (struct mgcp_gateway *)data;
struct mgcp_message *cur, *exq = NULL, *w, *prev;
pthread_kill(misdn_tasks_thread, SIGUSR1);
}
-static inline int _misdn_tasks_add_variable (int timeout, ast_sched_cb callback, void *data, int variable)
+static inline int _misdn_tasks_add_variable (int timeout, ast_sched_cb callback, const void *data, int variable)
{
int task_id;
return task_id;
}
-static int misdn_tasks_add (int timeout, ast_sched_cb callback, void *data)
+static int misdn_tasks_add (int timeout, ast_sched_cb callback, const void *data)
{
return _misdn_tasks_add_variable(timeout, callback, data, 0);
}
-static int misdn_tasks_add_variable (int timeout, ast_sched_cb callback, void *data)
+static int misdn_tasks_add_variable (int timeout, ast_sched_cb callback, const void *data)
{
return _misdn_tasks_add_variable(timeout, callback, data, 1);
}
ast_sched_del(misdn_tasks, task_id);
}
-static int misdn_l1_task (void *data)
+static int misdn_l1_task (const void *data)
{
misdn_lib_isdn_l1watcher(*(int *)data);
chan_misdn_log(5, *(int *)data, "L1watcher timeout\n");
return 1;
}
-static int misdn_overlap_dial_task (void *data)
+static int misdn_overlap_dial_task (const void *data)
{
struct timeval tv_end, tv_now;
int diff;
static int __sip_xmit(struct sip_pvt *p, char *data, int len);
static int __sip_reliable_xmit(struct sip_pvt *p, int seqno, int resp, char *data, int len, int fatal, int sipmethod);
static int __transmit_response(struct sip_pvt *p, const char *msg, const struct sip_request *req, enum xmittype reliable);
-static int retrans_pkt(void *data);
+static int retrans_pkt(const void *data);
static int transmit_sip_request(struct sip_pvt *p, struct sip_request *req);
static int transmit_response_using_temp(ast_string_field callid, struct sockaddr_in *sin, int useglobal_nat, const int intended_method, const struct sip_request *req, const char *msg);
static int transmit_response(struct sip_pvt *p, const char *msg, const struct sip_request *req);
/*--- Dialog management */
static struct sip_pvt *sip_alloc(ast_string_field callid, struct sockaddr_in *sin,
int useglobal_nat, const int intended_method);
-static int __sip_autodestruct(void *data);
+static int __sip_autodestruct(const void *data);
static void sip_scheddestroy(struct sip_pvt *p, int ms);
static void sip_cancel_destroy(struct sip_pvt *p);
static struct sip_pvt *sip_destroy(struct sip_pvt *p);
static void __sip_ack(struct sip_pvt *p, int seqno, int resp, int sipmethod);
static void __sip_pretend_ack(struct sip_pvt *p);
static int __sip_semi_ack(struct sip_pvt *p, int seqno, int resp, int sipmethod);
-static int auto_congest(void *arg);
+static int auto_congest(const void *arg);
static int update_call_counter(struct sip_pvt *fup, int event);
static int hangup_sip2cause(int cause);
static const char *hangup_cause2sip(int cause);
/*--- Misc functions */
static int sip_do_reload(enum channelreloadreason reason);
static int reload_config(enum channelreloadreason reason);
-static int expire_register(void *data);
+static int expire_register(const void *data);
static void *do_monitor(void *data);
static int restart_monitor(void);
static int sip_addrcmp(char *name, struct sockaddr_in *sin); /* Support for peer matching */
/*--- Device monitoring and Device/extension state/event handling */
static int cb_extensionstate(char *context, char* exten, int state, void *data);
static int sip_devicestate(void *data);
-static int sip_poke_noanswer(void *data);
+static int sip_poke_noanswer(const void *data);
static int sip_poke_peer(struct sip_peer *peer);
static void sip_poke_all_peers(void);
static void sip_peer_hold(struct sip_pvt *p, int hold);
static void register_peer_exten(struct sip_peer *peer, int onoff);
static struct sip_peer *find_peer(const char *peer, struct sockaddr_in *sin, int realtime);
static struct sip_user *find_user(const char *name, int realtime);
-static int sip_poke_peer_s(void *data);
+static int sip_poke_peer_s(const void *data);
static enum parse_register_result parse_register_contact(struct sip_pvt *pvt, struct sip_peer *p, struct sip_request *req);
static void reg_source_db(struct sip_peer *peer);
static void destroy_association(struct sip_peer *peer);
static void sip_registry_destroy(struct sip_registry *reg);
static int sip_register(char *value, int lineno);
static const char *regstate2str(enum sipregistrystate regstate) attribute_const;
-static int sip_reregister(void *data);
+static int sip_reregister(const void *data);
static int __sip_do_register(struct sip_registry *r);
-static int sip_reg_timeout(void *data);
+static int sip_reg_timeout(const void *data);
static void sip_send_all_registers(void);
/*--- Parsing SIP requests and responses */
}
/*! \brief Retransmit SIP message if no answer (Called from scheduler) */
-static int retrans_pkt(void *data)
+static int retrans_pkt(const void *data)
{
- struct sip_pkt *pkt = data, *prev, *cur = NULL;
+ struct sip_pkt *pkt = (struct sip_pkt *)data, *prev, *cur = NULL;
int reschedule = DEFAULT_RETRANS;
int xmitres = 0;
* and we are called using that reference. So if the event is not
* rescheduled, we need to call dialog_unref().
*/
-static int __sip_autodestruct(void *data)
+static int __sip_autodestruct(const void *data)
{
- struct sip_pvt *p = data;
+ struct sip_pvt *p = (struct sip_pvt *)data;
/* If this is a subscription, tell the phone that we got a timeout */
if (p->subscribed) {
/*! \brief Scheduled congestion on a call.
* Only called by the scheduler, must return the reference when done.
*/
-static int auto_congest(void *arg)
+static int auto_congest(const void *arg)
{
- struct sip_pvt *p = arg;
+ struct sip_pvt *p = (struct sip_pvt *)arg;
sip_pvt_lock(p);
p->initid = -1; /* event gone, will not be rescheduled */
* We assume the reference so the sip_registry is valid, since it
* is stored in the scheduled event anyways.
*/
-static int sip_reregister(void *data)
+static int sip_reregister(const void *data)
{
/* if we are here, we know that we need to reregister. */
struct sip_registry *r= registry_addref((struct sip_registry *) data);
* This is called by the scheduler so the event is not pending anymore when
* we are called.
*/
-static int sip_reg_timeout(void *data)
+static int sip_reg_timeout(const void *data)
{
/* if we are here, our registration timed out, so we'll just do it over */
}
/*! \brief Expire registration of SIP peer */
-static int expire_register(void *data)
+static int expire_register(const void *data)
{
- struct sip_peer *peer = data;
+ struct sip_peer *peer = (struct sip_peer *)data;
if (!peer) /* Hmmm. We have no peer. Weird. */
return 0;
}
/*! \brief Poke peer (send qualify to check if peer is alive and well) */
-static int sip_poke_peer_s(void *data)
+static int sip_poke_peer_s(const void *data)
{
- struct sip_peer *peer = data;
+ struct sip_peer *peer = (struct sip_peer *)data;
peer->pokeexpire = -1;
sip_poke_peer(peer);
}
/*! \brief React to lack of answer to Qualify poke */
-static int sip_poke_noanswer(void *data)
+static int sip_poke_noanswer(const void *data)
{
- struct sip_peer *peer = data;
+ struct sip_peer *peer = (struct sip_peer *)data;
peer->pokeexpire = -1;
if (peer->lastms > -1) {
misdn_cfg_get(0, MISDN_GEN_MISDN_INIT, &misdn_init, sizeof(misdn_init));
- if (misdn_init) {
+ if (!ast_strlen_zero(misdn_init)) {
fp = fopen(misdn_init, "r");
if (fp) {
while(fgets(line, sizeof(line), fp)) {
int oldwriteformat; /*!< Original writer format */
int timingfd; /*!< Timing fd */
- int (*timingfunc)(void *data);
+ int (*timingfunc)(const void *data);
void *timingdata;
enum ast_channel_state _state; /*!< State of line -- Don't write directly, use ast_setstate() */
/* If built with zaptel optimizations, force a scheduled expiration on the
timer fd, at which point we call the callback function / data */
-int ast_settimeout(struct ast_channel *c, int samples, int (*func)(void *data), void *data);
+int ast_settimeout(struct ast_channel *c, int samples, int (*func)(const void *data), void *data);
/*! \brief Transfer a channel (if supported). Returns -1 on error, 0 if not supported
and 1 if supported and requested
* \return returns a 0 if it should not be run again, or non-zero if it should be
* rescheduled to run again
*/
-typedef int (*ast_sched_cb)(void *data);
+typedef int (*ast_sched_cb)(const void *data);
#define AST_SCHED_CB(a) ((ast_sched_cb)(a))
/*! \brief Adds a scheduled event
* \param data data to pass to the callback
* \return Returns a schedule item ID on success, -1 on failure
*/
-int ast_sched_add(struct sched_context *con, int when, ast_sched_cb callback, void *data);
+int ast_sched_add(struct sched_context *con, int when, ast_sched_cb callback, const void *data);
/*!
* \brief replace a scheduler entry
* \retval -1 failure
* \retval otherwise, returns scheduled item ID
*/
-int ast_sched_replace(int old_id, struct sched_context *con, int when, ast_sched_cb callback, void *data);
+int ast_sched_replace(int old_id, struct sched_context *con, int when, ast_sched_cb callback, const void *data);
/*!Adds a scheduled event with rescheduling support
* \param con Scheduler context to add
* If callback returns 0, no further events will be re-scheduled
* \return Returns a schedule item ID on success, -1 on failure
*/
-int ast_sched_add_variable(struct sched_context *con, int when, ast_sched_cb callback, void *data, int variable);
+int ast_sched_add_variable(struct sched_context *con, int when, ast_sched_cb callback, const void *data, int variable);
/*!
* \brief replace a scheduler entry
* \retval -1 failure
* \retval otherwise, returns scheduled item ID
*/
-int ast_sched_replace_variable(int old_id, struct sched_context *con, int when, ast_sched_cb callback, void *data, int variable);
+int ast_sched_replace_variable(int old_id, struct sched_context *con, int when, ast_sched_cb callback, const void *data, int variable);
/*! \brief Deletes a scheduled event
* Remove this event from being run. A procedure should not remove its
void ast_yyset_column(int column_no, yyscan_t yyscanner);
int ast_yyget_column(yyscan_t yyscanner);
static int curlycount = 0;
-static char *expr2_token_subst(char *mess);
+static char *expr2_token_subst(const char *mess);
%}
%option prefix="ast_yy"
};
-static char *expr2_token_subst(char *mess)
+static char *expr2_token_subst(const char *mess)
{
/* calc a length, malloc, fill, and return; yyerror had better free it! */
int len=0,i;
- char *p;
+ const char *p;
char *res, *s,*t;
int expr2_token_equivs_entries = sizeof(expr2_token_equivs1)/sizeof(char*);
char spacebuf[8000]; /* best safe than sorry */
char spacebuf2[8000]; /* best safe than sorry */
int i=0;
- char *s2 = expr2_token_subst((char *)s);
+ char *s2 = expr2_token_subst(s);
spacebuf[0] = 0;
for(i=0;i< (int)(yytext - YY_CURRENT_BUFFER_LVALUE->yy_ch_buf);i++) spacebuf2[i] = ' '; /* uh... assuming yyg is defined, then I can use the yycolumn macro,
void ast_yyset_column(int column_no, yyscan_t yyscanner);
int ast_yyget_column(yyscan_t yyscanner);
static int curlycount = 0;
-static char *expr2_token_subst(char *mess);
+static char *expr2_token_subst(const char *mess);
#line 1488 "ast_expr2f.c"
};
-static char *expr2_token_subst(char *mess)
+static char *expr2_token_subst(const char *mess)
{
/* calc a length, malloc, fill, and return; yyerror had better free it! */
int len=0,i;
- char *p;
+ const char *p;
char *res, *s,*t;
int expr2_token_equivs_entries = sizeof(expr2_token_equivs1)/sizeof(char*);
char spacebuf[8000]; /* best safe than sorry */
char spacebuf2[8000]; /* best safe than sorry */
int i=0;
- char *s2 = expr2_token_subst((char *)s);
+ char *s2 = expr2_token_subst(s);
spacebuf[0] = 0;
for(i=0;i< (int)(yytext - YY_CURRENT_BUFFER_LVALUE->yy_ch_buf);i++) spacebuf2[i] = ' '; /* uh... assuming yyg is defined, then I can use the yycolumn macro,
}
}
-static int submit_scheduled_batch(void *data)
+static int submit_scheduled_batch(const void *data)
{
ast_cdr_submit_batch(0);
/* manually reschedule from this point in time */
ast_channel_unlock(chan);
}
-static int generator_force(void *data)
+static int generator_force(const void *data)
{
/* Called if generator doesn't have data */
void *tmp;
int res;
int (*generate)(struct ast_channel *chan, void *tmp, int datalen, int samples);
- struct ast_channel *chan = data;
+ struct ast_channel *chan = (struct ast_channel *)data;
tmp = chan->generatordata;
chan->generatordata = NULL;
generate = chan->generator->generate;
return ast_waitfordigit_full(c, ms, -1, -1);
}
-int ast_settimeout(struct ast_channel *c, int samples, int (*func)(void *data), void *data)
+int ast_settimeout(struct ast_channel *c, int samples, int (*func)(const void *data), void *data)
{
int res = -1;
#ifdef HAVE_ZAPTEL
ioctl(chan->timingfd, ZT_TIMERACK, &blah);
if (chan->timingfunc) {
/* save a copy of func/data before unlocking the channel */
- int (*func)(void *) = chan->timingfunc;
+ int (*func)(const void *) = chan->timingfunc;
void *data = chan->timingdata;
ast_channel_unlock(chan);
func(data);
static int hash_seq __P((const DB *, DBT *, DBT *, u_int32_t));
static int hash_sync __P((const DB *, u_int32_t));
static int hdestroy __P((HTAB *));
-static HTAB *init_hash __P((HTAB *, const char *, HASHINFO *));
+static HTAB *init_hash __P((HTAB *, const char *, const HASHINFO *));
static int init_htab __P((HTAB *, int));
#if BYTE_ORDER == LITTLE_ENDIAN
static void swap_header __P((HTAB *));
(void)fcntl(hashp->fp, F_SETFD, 1);
}
if (new_table) {
- if (!(hashp = init_hash(hashp, file, (HASHINFO *)info)))
+ if (!(hashp = init_hash(hashp, file, info)))
RETURN_ERROR(errno, error1);
} else {
/* Table already exists */
init_hash(hashp, file, info)
HTAB *hashp;
const char *file;
- HASHINFO *info;
+ const HASHINFO *info;
{
#ifdef _STATBUF_ST_BLKSIZE
struct stat statbuf;
return NULL;
}
-static int refresh_list(void *data)
+static int refresh_list(const void *data)
{
- struct refresh_info *info = data;
+ struct refresh_info *info = (struct refresh_info *)data;
struct ast_dnsmgr_entry *entry;
/* if a refresh or reload is already in progress, exit now */
FSREAD_SUCCESS_NOSCHED,
};
-static int ast_fsread_audio(void *data);
+static int ast_fsread_audio(const void *data);
static enum fsread_res ast_readaudio_callback(struct ast_filestream *s)
{
return FSREAD_FAILURE;
}
-static int ast_fsread_audio(void *data)
+static int ast_fsread_audio(const void *data)
{
- struct ast_filestream *fs = data;
+ struct ast_filestream *fs = (struct ast_filestream *)data;
enum fsread_res res;
res = ast_readaudio_callback(fs);
return 0;
}
-static int ast_fsread_video(void *data);
+static int ast_fsread_video(const void *data);
static enum fsread_res ast_readvideo_callback(struct ast_filestream *s)
{
return FSREAD_SUCCESS_SCHED;
}
-static int ast_fsread_video(void *data)
+static int ast_fsread_video(const void *data)
{
- struct ast_filestream *fs = data;
+ struct ast_filestream *fs = (struct ast_filestream *)data;
enum fsread_res res;
res = ast_readvideo_callback(fs);
};
/* Forward declarations */
-static int ast_rtcp_write(void *data);
+static int ast_rtcp_write(const void *data);
static void timeval2ntp(struct timeval tv, unsigned int *msw, unsigned int *lsw);
-static int ast_rtcp_write_sr(void *data);
-static int ast_rtcp_write_rr(void *data);
+static int ast_rtcp_write_sr(const void *data);
+static int ast_rtcp_write_rr(const void *data);
static unsigned int ast_rtcp_calc_interval(struct ast_rtp *rtp);
static int ast_rtp_senddigit_continuation(struct ast_rtp *rtp);
int ast_rtp_senddigit_end(struct ast_rtp *rtp, char digit);
}
/*! \brief Send RTCP sender's report */
-static int ast_rtcp_write_sr(void *data)
+static int ast_rtcp_write_sr(const void *data)
{
- struct ast_rtp *rtp = data;
+ struct ast_rtp *rtp = (struct ast_rtp *)data;
int res;
int len = 0;
struct timeval now;
}
/*! \brief Send RTCP recipient's report */
-static int ast_rtcp_write_rr(void *data)
+static int ast_rtcp_write_rr(const void *data)
{
- struct ast_rtp *rtp = data;
+ struct ast_rtp *rtp = (struct ast_rtp *)data;
int res;
int len = 32;
unsigned int lost;
/*! \brief Write and RTCP packet to the far end
* \note Decide if we are going to send an SR (with Reception Block) or RR
* RR is sent if we have not sent any rtp packets in the previous interval */
-static int ast_rtcp_write(void *data)
+static int ast_rtcp_write(const void *data)
{
- struct ast_rtp *rtp = data;
+ struct ast_rtp *rtp = (struct ast_rtp *)data;
int res;
if (!rtp || !rtp->rtcp)
struct timeval when; /*!< Absolute time event should take place */
int resched; /*!< When to reschedule */
int variable; /*!< Use return value from callback to reschedule */
- void *data; /*!< Data */
+ const void *data; /*!< Data */
ast_sched_cb callback; /*!< Callback */
};
return 0;
}
-int ast_sched_replace_variable(int old_id, struct sched_context *con, int when, ast_sched_cb callback, void *data, int variable)
+int ast_sched_replace_variable(int old_id, struct sched_context *con, int when, ast_sched_cb callback, const void *data, int variable)
{
/* 0 means the schedule item is new; do not delete */
if (old_id > 0)
/*! \brief
* Schedule callback(data) to happen when ms into the future
*/
-int ast_sched_add_variable(struct sched_context *con, int when, ast_sched_cb callback, void *data, int variable)
+int ast_sched_add_variable(struct sched_context *con, int when, ast_sched_cb callback, const void *data, int variable)
{
struct sched *tmp;
int res = -1;
return res;
}
-int ast_sched_replace(int old_id, struct sched_context *con, int when, ast_sched_cb callback, void *data)
+int ast_sched_replace(int old_id, struct sched_context *con, int when, ast_sched_cb callback, const void *data)
{
if (old_id > -1)
ast_sched_del(con, old_id);
return ast_sched_add(con, when, callback, data);
}
-int ast_sched_add(struct sched_context *con, int when, ast_sched_cb callback, void *data)
+int ast_sched_add(struct sched_context *con, int when, ast_sched_cb callback, const void *data)
{
return ast_sched_add_variable(con, when, callback, data, 0);
}
}
/*! \note Called with the peers list already locked */
-static int do_register_expire(void *data)
+static int do_register_expire(const void *data)
{
- struct dundi_peer *peer = data;
+ struct dundi_peer *peer = (struct dundi_peer *)data;
char eid_str[20];
if (option_debug)
ast_log(LOG_DEBUG, "Register expired for '%s'\n", dundi_eid_to_str(eid_str, sizeof(eid_str), &peer->eid));
free(trans);
}
-static int dundi_rexmit(void *data)
+static int dundi_rexmit(const void *data)
{
- struct dundi_packet *pack;
+ struct dundi_packet *pack = (struct dundi_packet *)data;
int res;
AST_LIST_LOCK(&peers);
- pack = data;
if (pack->retrans < 1) {
pack->retransid = -1;
if (!ast_test_flag(pack->parent, FLAG_ISQUAL))
return -1;
}
-static int do_autokill(void *data)
+static int do_autokill(const void *data)
{
- struct dundi_transaction *trans = data;
+ struct dundi_transaction *trans = (struct dundi_transaction *)data;
char eid_str[20];
ast_log(LOG_NOTICE, "Transaction to '%s' took too long to ACK, destroying\n",
dundi_eid_to_str(eid_str, sizeof(eid_str), &trans->them_eid));
}
/* \note Called with the peers list already locked */
-static int do_register(void *data)
+static int do_register(const void *data)
{
struct dundi_ie_data ied;
- struct dundi_peer *peer = data;
+ struct dundi_peer *peer = (struct dundi_peer *)data;
char eid_str[20];
char eid_str2[20];
if (option_debug)
return 0;
}
-static int do_qualify(void *data)
+static int do_qualify(const void *data)
{
- struct dundi_peer *peer;
- peer = data;
+ struct dundi_peer *peer = (struct dundi_peer *)data;
peer->qualifyid = -1;
qualify_peer(peer, 0);
return 0;
dbport = atoi(s);
}
- if (dbhost && !(s = ast_variable_retrieve(config, "general", "dbsock"))) {
+ if (!ast_strlen_zero(dbhost) && !(s = ast_variable_retrieve(config, "general", "dbsock"))) {
ast_log(LOG_WARNING,
"Postgresql RealTime: No database socket found, using '/tmp/pgsql.sock' as default.\n");
strcpy(dbsock, "/tmp/pgsql.sock");
ast_config_destroy(config);
if (option_debug) {
- if (dbhost) {
+ if (!ast_strlen_zero(dbhost)) {
ast_debug(1, "Postgresql RealTime Host: %s\n", dbhost);
ast_debug(1, "Postgresql RealTime Port: %i\n", dbport);
} else {
pgsqlConn = NULL;
}
- if ((!pgsqlConn) && (dbhost || dbsock) && dbuser && dbpass && my_database) {
+ if ((!pgsqlConn) && (!ast_strlen_zero(dbhost) || !ast_strlen_zero(dbsock)) && !ast_strlen_zero(dbuser) && !ast_strlen_zero(dbpass) && !ast_strlen_zero(my_database)) {
char *connInfo = NULL;
unsigned int size = 100 + strlen(dbhost)
+ strlen(dbuser)
int ctime = time(NULL) - connect_time;
if (pgsqlConn && PQstatus(pgsqlConn) == CONNECTION_OK) {
- if (dbhost) {
+ if (!ast_strlen_zero(dbhost)) {
snprintf(status, 255, "Connected to %s@%s, port %d", dbname, dbhost, dbport);
- } else if (dbsock) {
+ } else if (!ast_strlen_zero(dbsock)) {
snprintf(status, 255, "Connected to %s on socket file %s", dbname, dbsock);
} else {
snprintf(status, 255, "Connected to %s@%s", dbname, dbhost);
}
- if (dbuser && *dbuser) {
+ if (!ast_strlen_zero(dbuser)) {
snprintf(status2, 99, " with username %s", dbuser);
}
}
}
-struct namelist *create_name(char *name);
-struct namelist *create_name(char *name)
+struct namelist *create_name(const char *name);
+struct namelist *create_name(const char *name)
{
struct namelist *x = calloc(1, sizeof(*x));
if (!x)
void pbx_builtin_setvar(void *chan, void *data)
{
- struct namelist *x = create_name((char*)data);
+ struct namelist *x = create_name(data);
if(!no_comp)
printf("Executed pbx_builtin_setvar(chan, data=%s);\n", (char*)data);
if( dump_extensions ) {
- x = create_name((char*)data);
+ x = create_name(data);
ADD_LAST(globalvars,x);
}
}
printf("Executed ast_context_add_ignorepat2(con, value=%s, registrar=%s);\n", value, registrar);
if( dump_extensions ) {
struct namelist *x;
- x = create_name((char*)value);
+ x = create_name(value);
ADD_LAST(con->ignorepats,x);
}
}