]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Fix no MOH and frame queueing problem for parked calls.
authorJeff Peeler <jpeeler@digium.com>
Thu, 3 Feb 2011 20:43:59 +0000 (20:43 +0000)
committerJeff Peeler <jpeeler@digium.com>
Thu, 3 Feb 2011 20:43:59 +0000 (20:43 +0000)
This was a regression introduced when select was changed to poll and was
just a conversion error: POLLPRI detects OOB data, not POLLERR.

(closes issue #18637)
Reported by: jvandal

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@306120 65c4cc65-6c06-0410-ace0-fbb531ad65f3

res/res_features.c

index e04ac7c26e64721602ba55e03b42c532888c4866..76fcec2afa9544b19a0db2ca1ddf05bbe58a429d 100644 (file)
@@ -2764,12 +2764,12 @@ static void *do_parking_thread(void *ignore)
                                                continue;
                                        }
 
-                                       if (!(fds[y].revents & (POLLIN | POLLERR))) {
+                                       if (!(fds[y].revents & (POLLIN | POLLERR | POLLPRI))) {
                                                /* Next x */
                                                continue;
                                        }
 
-                                       if (fds[y].revents & POLLERR) {
+                                       if (fds[y].revents & POLLPRI) {
                                                ast_set_flag(chan, AST_FLAG_EXCEPTION);
                                        } else {
                                                ast_clear_flag(chan, AST_FLAG_EXCEPTION);
@@ -2835,7 +2835,7 @@ std:                              for (x = 0; x < AST_MAX_FDS; x++) {     /* mark fds for next round */
                                                        }
                                                        new_fds = tmp;
                                                        new_fds[new_nfds].fd = chan->fds[x];
-                                                       new_fds[new_nfds].events = POLLIN | POLLERR;
+                                                       new_fds[new_nfds].events = POLLIN | POLLERR | POLLPRI;
                                                        new_fds[new_nfds].revents = 0;
                                                        new_nfds++;
                                                }