mirror of
https://github.com/asterisk/asterisk.git
synced 2025-11-02 20:08:17 +00:00
- revert change to ast_queue_hangup and create ast_queue_hangup_with_cause
- make data member of the ast_frame struct a named union instead of a void Recently the ast_queue_hangup function got a new parameter, the hangupcause Feedback came in that this is no good and that instead a new function should be created. This I did. The hangupcause was stored in the seqno member of the ast_frame struct. This is not very elegant, and since there's already a data member that one should be used. Problem is, this member was a void *. Now it's a named union so it can hold a pointer, an uint32 and there's a padding in case someone wants to store another type in there in the future. This commit is so massive, because all ast_frame.data uses have to be altered to ast_frame.data.data Thanks russellb and kpfleming for the feedback. (closes issue #12674) Reported by: mvanbaak git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@117802 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -357,7 +357,7 @@ static int udptl_rx_packet(struct ast_udptl *s, uint8_t *buf, int len)
|
||||
s->f[ifp_no].mallocd = 0;
|
||||
s->f[ifp_no].seqno = seq_no - i;
|
||||
s->f[ifp_no].datalen = lengths[i - 1];
|
||||
s->f[ifp_no].data = (uint8_t *) bufs[i - 1];
|
||||
s->f[ifp_no].data.ptr = (uint8_t *) bufs[i - 1];
|
||||
s->f[ifp_no].offset = 0;
|
||||
s->f[ifp_no].src = "UDPTL";
|
||||
if (ifp_no > 0)
|
||||
@@ -459,7 +459,7 @@ static int udptl_rx_packet(struct ast_udptl *s, uint8_t *buf, int len)
|
||||
s->f[ifp_no].mallocd = 0;
|
||||
s->f[ifp_no].seqno = j;
|
||||
s->f[ifp_no].datalen = s->rx[l].buf_len;
|
||||
s->f[ifp_no].data = s->rx[l].buf;
|
||||
s->f[ifp_no].data.ptr = s->rx[l].buf;
|
||||
s->f[ifp_no].offset = 0;
|
||||
s->f[ifp_no].src = "UDPTL";
|
||||
if (ifp_no > 0)
|
||||
@@ -480,7 +480,7 @@ static int udptl_rx_packet(struct ast_udptl *s, uint8_t *buf, int len)
|
||||
s->f[ifp_no].mallocd = 0;
|
||||
s->f[ifp_no].seqno = seq_no;
|
||||
s->f[ifp_no].datalen = ifp_len;
|
||||
s->f[ifp_no].data = (uint8_t *) ifp;
|
||||
s->f[ifp_no].data.ptr = (uint8_t *) ifp;
|
||||
s->f[ifp_no].offset = 0;
|
||||
s->f[ifp_no].src = "UDPTL";
|
||||
if (ifp_no > 0)
|
||||
@@ -909,7 +909,7 @@ int ast_udptl_write(struct ast_udptl *s, struct ast_frame *f)
|
||||
seq = s->tx_seq_no & 0xFFFF;
|
||||
|
||||
/* Cook up the UDPTL packet, with the relevant EC info. */
|
||||
len = udptl_build_packet(s, buf, f->data, f->datalen);
|
||||
len = udptl_build_packet(s, buf, f->data.ptr, f->datalen);
|
||||
|
||||
if (len > 0 && s->them.sin_port && s->them.sin_addr.s_addr) {
|
||||
if ((res = sendto(s->fd, buf, len, 0, (struct sockaddr *) &s->them, sizeof(s->them))) < 0)
|
||||
|
||||
Reference in New Issue
Block a user