summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKevin Harwell <kharwell@digium.com>2013-11-08 14:58:13 +0000
committerKevin Harwell <kharwell@digium.com>2013-11-08 14:58:13 +0000
commit2564ed26f79d374fc92f5cf08ec6b5f32920be99 (patch)
treeb3472194ab228d510fb3647e6c8682c1b1581c3b
parent3c645e8520794b8ba7644897a07c2db4e238bf24 (diff)
app_dahdiras: Use waitpid instead of wait4.
Several places in the code were using wait4 while other places were using waitpid. This change makes all places use waitpid in order to make things more consistent and since the 'rusage' object passed in/out of wait4 was never used. (closes issue ASTERISK-22557) Reported by: YvesGael Patches: asterisk-11.5.1-wait4.patch uploaded by hurdman (license 6537) git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@402546 65c4cc65-6c06-0410-ace0-fbb531ad65f3
-rw-r--r--apps/app_dahdiras.c4
-rw-r--r--main/asterisk.c5
-rw-r--r--utils/extconf.c3
3 files changed, 5 insertions, 7 deletions
diff --git a/apps/app_dahdiras.c b/apps/app_dahdiras.c
index 3724f0375..6354ea71d 100644
--- a/apps/app_dahdiras.c
+++ b/apps/app_dahdiras.c
@@ -150,7 +150,7 @@ static void run_ras(struct ast_channel *chan, char *args)
ast_log(LOG_WARNING, "Failed to spawn RAS\n");
} else {
for (;;) {
- res = wait4(pid, &status, WNOHANG, NULL);
+ res = waitpid(pid, &status, WNOHANG);
if (!res) {
/* Check for hangup */
if (ast_check_hangup(chan) && !signalled) {
@@ -163,7 +163,7 @@ static void run_ras(struct ast_channel *chan, char *args)
continue;
}
if (res < 0) {
- ast_log(LOG_WARNING, "wait4 returned %d: %s\n", res, strerror(errno));
+ ast_log(LOG_WARNING, "waitpid returned %d: %s\n", res, strerror(errno));
}
if (WIFEXITED(status)) {
ast_verb(3, "RAS on %s terminated with status %d\n", ast_channel_name(chan), WEXITSTATUS(status));
diff --git a/main/asterisk.c b/main/asterisk.c
index 2e5ffa729..74e36986f 100644
--- a/main/asterisk.c
+++ b/main/asterisk.c
@@ -1233,7 +1233,6 @@ int ast_safe_system(const char *s)
{
pid_t pid;
int res;
- struct rusage rusage;
int status;
#if defined(HAVE_WORKING_FORK) || defined(HAVE_WORKING_VFORK)
@@ -1265,7 +1264,7 @@ int ast_safe_system(const char *s)
_exit(1);
} else if (pid > 0) {
for (;;) {
- res = wait4(pid, &status, 0, &rusage);
+ res = waitpid(pid, &status, 0);
if (res > -1) {
res = WIFEXITED(status) ? WEXITSTATUS(status) : -1;
break;
@@ -1751,7 +1750,7 @@ static void _child_handler(int sig)
/*
* Reap all dead children -- not just one
*/
- for (n = 0; wait4(-1, &status, WNOHANG, NULL) > 0; n++)
+ for (n = 0; waitpid(-1, &status, WNOHANG) > 0; n++)
;
if (n == 0 && option_debug)
printf("Huh? Child handler, but nobody there?\n");
diff --git a/utils/extconf.c b/utils/extconf.c
index a31fe283a..80491c016 100644
--- a/utils/extconf.c
+++ b/utils/extconf.c
@@ -1330,7 +1330,6 @@ int ast_safe_system(const char *s)
int x;
#endif
int res;
- struct rusage rusage;
int status;
#if defined(HAVE_WORKING_FORK) || defined(HAVE_WORKING_VFORK)
@@ -1352,7 +1351,7 @@ int ast_safe_system(const char *s)
_exit(1);
} else if (pid > 0) {
for(;;) {
- res = wait4(pid, &status, 0, &rusage);
+ res = waitpid(pid, &status, 0);
if (res > -1) {
res = WIFEXITED(status) ? WEXITSTATUS(status) : -1;
break;