From 80f6848ca3545bcced471ceafacb1a79c0ed834b Mon Sep 17 00:00:00 2001
From: Shaun Ruffell <sruffell@digium.com>
Date: Thu, 20 Jan 2011 19:58:54 +0000
Subject: [PATCH] Merged revisions 303107 via svnmerge from
 https://origsvn.digium.com/svn/asterisk/branches/1.8

................
  r303107 | sruffell | 2011-01-20 13:57:31 -0600 (Thu, 20 Jan 2011) | 23 lines

  Merged revisions 303106 via svnmerge from
  https://origsvn.digium.com/svn/asterisk/branches/1.6.2

  ........
    r303106 | sruffell | 2011-01-20 13:56:34 -0600 (Thu, 20 Jan 2011) | 15 lines

    main/features: Use POLLPRI when waiting for events on parked channels.

    This change resolves a regression in the 1.6.2 when converting from
    select to poll.  The DAHDI timers use POLLPRI to indicate that the timer
    fired, but features was not waiting for that flag.  The result was no
    audio for MOH when a call was parked and res_timing_dahdi was in use.

    This patch is slightly modified from the one on the mantis issue.  It does
    not set an exception on the channel if the POLLPRI flag is set.

    (closes issue #18262)
    Reported by: francesco_r
    Patches:
          patch_park_moh-trunk-2.txt uploaded by cjacobsen (license 1029)
          Tested by: francesco_r, rfrantik, one47
  ........
................


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@303108 65c4cc65-6c06-0410-ace0-fbb531ad65f3
---
 main/features.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/main/features.c b/main/features.c
index 0eecf8e512..9f10ea6648 100644
--- a/main/features.c
+++ b/main/features.c
@@ -4117,7 +4117,7 @@ int manage_parkinglot(struct ast_parkinglot *curlot, const struct pollfd *pfds,
 					continue;
 				}
 
-				if (!(pfds[y].revents & (POLLIN | POLLERR))) {
+				if (!(pfds[y].revents & (POLLIN | POLLERR | POLLPRI))) {
 					/* Next x */
 					continue;
 				}
@@ -4176,7 +4176,7 @@ std:			for (x = 0; x < AST_MAX_FDS; x++) {	/* mark fds for next round */
 						}
 						*new_pfds = tmp;
 						(*new_pfds)[*new_nfds].fd = chan->fds[x];
-						(*new_pfds)[*new_nfds].events = POLLIN | POLLERR;
+						(*new_pfds)[*new_nfds].events = POLLIN | POLLERR | POLLPRI;
 						(*new_pfds)[*new_nfds].revents = 0;
 						(*new_nfds)++;
 					}
-- 
GitLab