diff --git a/index.php b/index.php --- a/index.php +++ b/index.php @@ -39,6 +39,8 @@ if (isset($_REQUEST['_DEBUG_'])) { $_debug = 0; } +//$stderr = fopen('php://stderr', 'w'); + // file_put_contents('/tmp/xxxxxxx', 'check'); // system('touch /tmp/xxxxxx1'); @@ -188,6 +190,7 @@ if ($_debug) { echo (''."\n"); } +$vacation_msg_in_file = sprintf('%s/%s', $home, $VACATION_MSG_IN_FILE); $vacation_msg_file = sprintf('%s/%s', $home, $VACATION_MSG_FILE); $vacation_db_file = sprintf('%s/%s', $home, $VACATION_DB_FILE); $forward_file = sprintf('%s/%s', $home, $FORWARD_FILE); @@ -219,7 +222,7 @@ if ($forward_active) $vacation_setup_raw = isset($_REQUEST["raw"]); $vacation_clear = isset($_REQUEST['clear']); -if ($vacation_clear || !test_readable($vacation_msg_file, $user)) { +if ($vacation_clear || !test_readable($vacation_msg_in_file, $user)) { // Reset to default $vacation_msg = get_text('vacation'); $vacation_parts = vacation_split($vacation_msg, False); @@ -228,7 +231,7 @@ if ($vacation_clear || !test_readable($v $vacation_msg = vacation_join($vacation_subject, $vacation_body); $vacation_setup_raw = False; } else { - $vacation_msg = cat_file($vacation_msg_file, $user); + $vacation_msg = cat_file($vacation_msg_in_file, $user); } $message_parts = message_split($vacation_msg); @@ -312,13 +315,17 @@ if ($vacation_setup || $vacation_setup_r while (True) { if ($vacation_del_log) { - system(sprintf( - '%s -u %s %s %s %s', - $SUDO_CMD, $user, $SUDO_OPT_H, $VACATION_CMD, $VACATION_INIT_OPTS)); - $vacation_excl_pipe = popen(sprintf( - '%s -u %s %s %s %s', - $SUDO_CMD, $user, $SUDO_OPT_H, $VACATION_CMD, $VACATION_EXLCUDE_OPTS), - 'w'); + $cmd = sprintf( + '%s -u %s %s %s %s', + $SUDO_CMD, $user, $SUDO_OPT_H, $VACATION_CMD, $VACATION_INIT_OPTS); + // fprintf($stderr, "\$cmd: %s
\n", $cmd); + system($cmd); + + $pipe_cmd = sprintf( + '%s -u %s %s %s %s', + $SUDO_CMD, $user, $SUDO_OPT_H, $VACATION_CMD, $VACATION_EXLCUDE_OPTS); + // fprintf($stderr, "\$pipe_cmd: %s
\n", $pipe_cmd); + $vacation_excl_pipe = popen($pipe_cmd, 'w'); fwrite($vacation_excl_pipe, sprintf("%s%s\n", $user, $DOMAIN_SUFFIX)); if (!empty($user_alias)) { fwrite($vacation_excl_pipe, sprintf("%s%s\n", $user_alias, $DOMAIN_SUFFIX)); @@ -351,22 +358,42 @@ if ($vacation_setup || $vacation_setup_r } else { $vacation_msg = vacation_join($vacation_subject, $vacation_body, $vacation_headers); } - $vacation_msg_pipe = popen(sprintf( - '%s -u %s %s %s %s', - $SUDO_CMD, $user, $SUDO_OPT_H, $WRITE_TO_CMD, $vacation_msg_file), - 'w'); + $pipe_cmd = sprintf( + '%s -u %s %s %s %s', + $SUDO_CMD, $user, $SUDO_OPT_H, $WRITE_TO_CMD, $vacation_msg_in_file); + // fprintf($stderr, "\$pipe_cmd: %s
\n", $pipe_cmd); + + $vacation_msg_pipe = popen($pipe_cmd, 'w'); fwrite($vacation_msg_pipe, $vacation_msg); pclose($vacation_msg_pipe); + $pipe_cmd = sprintf( + '%s -u %s %s %s %s', + $SUDO_CMD, $user, $SUDO_OPT_H, $WRITE_TO_CMD, $vacation_msg_file); + // fprintf($stderr, "\$pipe_cmd: %s
\n", $pipe_cmd); + + $vacation_msg_pipe = popen($pipe_cmd, 'w'); + if (!$FOOTER || $vacation_setup_raw || $x_wsv_raw) { + $full_msg = $vacation_msg; + } else { + $full_msg = rtrim(rtrim($vacation_msg)."\n".$FOOTER)."\n"; + } + fwrite($vacation_msg_pipe, $full_msg); + pclose($vacation_msg_pipe); + // Initialize vacation(1) if necessary. if (!test_readable($vacation_db_file, $user)) { - system(sprintf( - '%s -u %s %s %s %s', - $SUDO_CMD, $user, $SUDO_OPT_H, $VACATION_CMD, $VACATION_INIT_OPTS)); - $vacation_excl_pipe = popen(sprintf( - '%s -u %s %s %s %s', - $SUDO_CMD, $user, $SUDO_OPT_H, $VACATION_CMD, $VACATION_EXLCUDE_OPTS), - 'w'); + $cmd = sprintf( + '%s -u %s %s %s %s', + $SUDO_CMD, $user, $SUDO_OPT_H, $VACATION_CMD, $VACATION_INIT_OPTS); + // fprintf($stderr, "\$cmd: %s
\n", $cmd); + system($cmd); + + $pipe_cmd = sprintf( + '%s -u %s %s %s %s', + $SUDO_CMD, $user, $SUDO_OPT_H, $VACATION_CMD, $VACATION_EXLCUDE_OPTS); + // fprintf($stderr, "\$pipe_cmd: %s
\n", $pipe_cmd); + $vacation_excl_pipe = popen($pipe_cmd, 'w'); fwrite($vacation_excl_pipe, sprintf("%s%s\n", $user, $DOMAIN_SUFFIX)); if (!empty($user_alias)) { fwrite($vacation_excl_pipe, sprintf("%s%s\n", $user_alias, $DOMAIN_SUFFIX)); @@ -387,31 +414,37 @@ if ($vacation_setup || $vacation_setup_r } $use_fs[] = $fs; } - $forward_file_pipe = popen(sprintf( - '%s -u %s %s %s %s', - $SUDO_CMD, $user, $SUDO_OPT_H, $WRITE_TO_CMD, $forward_file), - 'w'); + $pipe_cmd = sprintf( + '%s -u %s %s %s %s', + $SUDO_CMD, $user, $SUDO_OPT_H, $WRITE_TO_CMD, $forward_file); + // fprintf($stderr, "\$pipe_cmd: %s
\n", $pipe_cmd); + $forward_file_pipe = popen($pipe_cmd, 'w'); fwrite($forward_file_pipe, implode(", ", $use_fs)."\n"); pclose($forward_file_pipe); if (!empty($VACATION_FORWARD_EXT_ENTRY)) { foreach ($FORWARD_EXTENSIONS as $fe) { - $cmd = sprintf( + $pipe_cmd = sprintf( '%s -u %s %s %s %s%s', $SUDO_CMD, $user, $SUDO_OPT_H, $WRITE_TO_CMD, $forward_file, $fe); - $forward_file_pipe = popen($cmd, 'w'); + // fprintf($stderr, "\$pipe_cmd: %s
\n", $pipe_cmd); + $forward_file_pipe = popen($pipe_cmd, 'w'); fwrite($forward_file_pipe, $VACATION_FORWARD_EXT_ENTRY."\n"); pclose($forward_file_pipe); } } } else { - system(sprintf( - '%s -u %s %s %s %s', - $SUDO_CMD, $user, $SUDO_OPT_H, $RM_CMD, $forward_file)); + $cmd = sprintf( + '%s -u %s %s %s %s', + $SUDO_CMD, $user, $SUDO_OPT_H, $RM_CMD, $forward_file); + // fprintf($stderr, "\$cmd: %s
\n", $cmd); + system($cmd); if (!empty($VACATION_FORWARD_EXT_ENTRY)) { foreach ($FORWARD_EXTENSIONS as $fe) { - system(sprintf( - '%s -u %s %s %s %s%s', - $SUDO_CMD, $user, $SUDO_OPT_H, $RM_CMD, $forward_file, $fe)); + $cmd = sprintf( + '%s -u %s %s %s %s%s', + $SUDO_CMD, $user, $SUDO_OPT_H, $RM_CMD, $forward_file, $fe); + // fprintf($stderr, "\$cmd: %s
\n", $cmd); + system($cmd); } } } @@ -584,6 +617,7 @@ if ($x_wsv_raw || $EXPERT_ENABLED) // echo ('
'."\n");
 // echo ($vacation_list_cmd);
 // echo ('
'."\n"); +// fprintf($stderr, "\$vacation_list_cmd: %s
\n", $vacation_list_cmd); $vacation_ausgabe = popen ($vacation_list_cmd, 'r'); $vacation_list = stream_get_contents($vacation_ausgabe); pclose($vacation_ausgabe);