diff options
author | Michiel van Baak <michiel@vanbaak.info> | 2008-05-22 16:29:54 +0000 |
---|---|---|
committer | Michiel van Baak <michiel@vanbaak.info> | 2008-05-22 16:29:54 +0000 |
commit | f1e9371da8b502999b9aec1db7f68635395a7b6a (patch) | |
tree | bcbbf4eda53cdb8257bbc7add4616e01e31b1ae2 /main/udptl.c | |
parent | 2c7760e6262c97afc19037890242299421d62157 (diff) |
- 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
Diffstat (limited to 'main/udptl.c')
-rw-r--r-- | main/udptl.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/main/udptl.c b/main/udptl.c index ea78f094a..8d6d62c1a 100644 --- a/main/udptl.c +++ b/main/udptl.c @@ -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) |