more fixes regarding warnings for gcc-4 and first additions for the restart Information element, in the first step we initiate a restart with a CLI command

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@50335 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Christian Richter
2007-01-10 09:51:00 +00:00
parent ef53c893c3
commit f5507d2431
6 changed files with 87 additions and 35 deletions

View File

@@ -33,7 +33,7 @@
#define MISDN_IE_DEBG 0
/* support stuff */
static void strnncpy(unsigned char *dest, unsigned char *src, int len, int dst_len)
static void strnncpy(char *dest, char *src, int len, int dst_len)
{
if (len > dst_len-1)
len = dst_len-1;
@@ -310,7 +310,7 @@ void dec_ie_call_id(unsigned char *p, Q931_info_t *qi, char *callid, int *callid
{
p = NULL;
if (qi->QI_ELEMENT(call_id))
p = (unsigned char *)qi + sizeof(Q931_info_t) + qi->QI_ELEMENT(call_id) + 1;
p = (unsigned char*)qi + sizeof(Q931_info_t) + qi->QI_ELEMENT(call_id) + 1;
}
if (!p)
return;
@@ -393,7 +393,7 @@ void dec_ie_called_pn(unsigned char *p, Q931_info_t *qi, int *type, int *plan, c
*type = (p[1]&0x70) >> 4;
*plan = p[1] & 0xf;
strnncpy(number, p+2, p[0]-1, number_len);
strnncpy(number, (char*)p+2, p[0]-1, number_len);
if (MISDN_IE_DEBG) printf(" type=%d plan=%d number='%s'\n", *type, *plan, number);
}
@@ -488,10 +488,10 @@ void dec_ie_calling_pn(unsigned char *p, Q931_info_t *qi, int *type, int *plan,
}
*present = (p[2]&0x60) >> 5;
*screen = p[2] & 0x3;
strnncpy(number, p+3, p[0]-2, number_len);
strnncpy(number, (char*)p+3, p[0]-2, number_len);
} else
{
strnncpy(number, p+2, p[0]-1, number_len);
strnncpy(number, (char*)p+2, p[0]-1, number_len);
/* SPECIAL workarround for IBT software bug */
/* if (number[0]==0x80) */
/* strcpy((char *)number, (char *)number+1); */
@@ -590,10 +590,10 @@ void dec_ie_connected_pn(unsigned char *p, Q931_info_t *qi, int *type, int *plan
}
*present = (p[2]&0x60) >> 5;
*screen = p[2] & 0x3;
strnncpy(number, p+3, p[0]-2, number_len);
strnncpy(number, (char*)p+3, p[0]-2, number_len);
} else
{
strnncpy(number, p+2, p[0]-1, number_len);
strnncpy(number, (char*)p+2, p[0]-1, number_len);
}
if (MISDN_IE_DEBG) printf(" type=%d plan=%d present=%d screen=%d number='%s'\n", *type, *plan, *present, *screen, number);
@@ -760,7 +760,7 @@ void dec_ie_channel_id(unsigned char *p, Q931_info_t *qi, int *exclusive, int *c
{
p = NULL;
if (qi->QI_ELEMENT(channel_id))
p = (unsigned char *)qi + sizeof(Q931_info_t) + qi->QI_ELEMENT(channel_id) + 1;
p = (unsigned char*)qi + sizeof(Q931_info_t) + qi->QI_ELEMENT(channel_id) + 1;
}
if (!p)
return;
@@ -876,7 +876,7 @@ void enc_ie_date(unsigned char **ntmode, msg_t *msg, time_t ti, int nt, struct m
/* IE_DISPLAY */
void enc_ie_display(unsigned char **ntmode, msg_t *msg, unsigned char *display, int nt, struct misdn_bchannel *bc)
void enc_ie_display(unsigned char **ntmode, msg_t *msg, char *display, int nt, struct misdn_bchannel *bc)
{
unsigned char *p;
Q931_info_t *qi = (Q931_info_t *)(msg->data + mISDN_HEADER_LEN);
@@ -907,7 +907,7 @@ void enc_ie_display(unsigned char **ntmode, msg_t *msg, unsigned char *display,
strncpy((char *)p+2, (char *)display, strlen((char *)display));
}
void dec_ie_display(unsigned char *p, Q931_info_t *qi, unsigned char *display, int display_len, int nt, struct misdn_bchannel *bc)
void dec_ie_display(unsigned char *p, Q931_info_t *qi, char *display, int display_len, int nt, struct misdn_bchannel *bc)
{
*display = '\0';
@@ -925,7 +925,7 @@ void dec_ie_display(unsigned char *p, Q931_info_t *qi, unsigned char *display, i
return;
}
strnncpy(display, p+1, p[0], display_len);
strnncpy(display, (char*)p+1, p[0], display_len);
if (MISDN_IE_DEBG) printf(" display='%s'\n", display);
}
@@ -957,7 +957,7 @@ void enc_ie_keypad(unsigned char **ntmode, msg_t *msg, unsigned char *keypad, in
strncpy((char *)p+2, (char *)keypad, strlen((char *)keypad));
}
void dec_ie_keypad(unsigned char *p, Q931_info_t *qi, unsigned char *keypad, int keypad_len, int nt, struct misdn_bchannel *bc)
void dec_ie_keypad(unsigned char *p, Q931_info_t *qi, char *keypad, int keypad_len, int nt, struct misdn_bchannel *bc)
{
*keypad = '\0';
@@ -975,7 +975,7 @@ void dec_ie_keypad(unsigned char *p, Q931_info_t *qi, unsigned char *keypad, int
return;
}
strnncpy(keypad, p+1, p[0], keypad_len);
strnncpy(keypad, (char*)p+1, p[0], keypad_len);
if (MISDN_IE_DEBG) printf(" keypad='%s'\n", keypad);
}
@@ -1098,7 +1098,7 @@ void dec_ie_progress(unsigned char *p, Q931_info_t *qi, int *coding, int *locati
/* IE_REDIR_NR (redirecting = during MT_SETUP) */
void enc_ie_redir_nr(unsigned char **ntmode, msg_t *msg, int type, int plan, int present, int screen, int reason, unsigned char *number, int nt, struct misdn_bchannel *bc)
void enc_ie_redir_nr(unsigned char **ntmode, msg_t *msg, int type, int plan, int present, int screen, int reason, char *number, int nt, struct misdn_bchannel *bc)
{
unsigned char *p;
Q931_info_t *qi = (Q931_info_t *)(msg->data + mISDN_HEADER_LEN);
@@ -1172,7 +1172,7 @@ void enc_ie_redir_nr(unsigned char **ntmode, msg_t *msg, int type, int plan, int
}
}
void dec_ie_redir_nr(unsigned char *p, Q931_info_t *qi, int *type, int *plan, int *present, int *screen, int *reason, unsigned char *number, int number_len, int nt, struct misdn_bchannel *bc)
void dec_ie_redir_nr(unsigned char *p, Q931_info_t *qi, int *type, int *plan, int *present, int *screen, int *reason, char *number, int number_len, int nt, struct misdn_bchannel *bc)
{
*type = -1;
*plan = -1;
@@ -1204,14 +1204,14 @@ void dec_ie_redir_nr(unsigned char *p, Q931_info_t *qi, int *type, int *plan, in
if (!(p[2] & 0x80))
{
*reason = p[3] & 0x0f;
strnncpy(number, p+4, p[0]-3, number_len);
strnncpy(number,(char*)p+4, p[0]-3, number_len);
} else
{
strnncpy(number, p+3, p[0]-2, number_len);
strnncpy(number, (char*)p+3, p[0]-2, number_len);
}
} else
{
strnncpy(number, p+2, p[0]-1, number_len);
strnncpy(number, (char*)p+2, p[0]-1, number_len);
}
if (MISDN_IE_DEBG) printf(" type=%d plan=%d present=%d screen=%d reason=%d number='%s'\n", *type, *plan, *present, *screen, *reason, number);
@@ -1270,7 +1270,7 @@ void enc_ie_redir_dn(unsigned char **ntmode, msg_t *msg, int type, int plan, int
}
}
void dec_ie_redir_dn(unsigned char *p, Q931_info_t *qi, int *type, int *plan, int *present, unsigned char *number, int number_len, int nt, struct misdn_bchannel *bc)
void dec_ie_redir_dn(unsigned char *p, Q931_info_t *qi, int *type, int *plan, int *present, char *number, int number_len, int nt, struct misdn_bchannel *bc)
{
*type = -1;
*plan = -1;
@@ -1297,10 +1297,10 @@ void dec_ie_redir_dn(unsigned char *p, Q931_info_t *qi, int *type, int *plan, in
if (!(p[1] & 0x80))
{
*present = (p[2]&0x60) >> 5;
strnncpy(number, p+3, p[0]-2, number_len);
strnncpy(number, (char*)p+3, p[0]-2, number_len);
} else
{
strnncpy(number, p+2, p[0]-1, number_len);
strnncpy(number, (char*)p+2, p[0]-1, number_len);
}
if (MISDN_IE_DEBG) printf(" type=%d plan=%d present=%d number='%s'\n", *type, *plan, *present, number);
@@ -1349,7 +1349,7 @@ void enc_ie_useruser(unsigned char **ntmode, msg_t *msg, int protocol, unsigned
memcpy(p+3, user, user_len);
}
void dec_ie_useruser(unsigned char *p, Q931_info_t *qi, int *protocol, unsigned char *user, int *user_len, int nt, struct misdn_bchannel *bc)
void dec_ie_useruser(unsigned char *p, Q931_info_t *qi, int *protocol, char *user, int *user_len, int nt, struct misdn_bchannel *bc)
{
char debug[768];
int i;