960) { posix_kill($pid, 9); unlink($lockfile); print "Killing and restarting Send...\n"; file_put_contents($lockfile, getmypid()); // create lockfile } else { print "Send currently running\n"; exit; } } $ns=nntp2_open($CONFIG['remote_server'], $CONFIG['remote_port']); if($ns == false) { file_put_contents($logfile, "\n".format_log_date()." ".$config_name." Failed to connect to ".$CONFIG['remote_server'].":".$CONFIG['remote_port'], FILE_APPEND); exit(); } echo "\nPosting articles\r\n"; post_articles($ns, $spooldir); nntp_close($ns); unlink($lockfile); echo "\nSend Done\r\n"; function post_articles($ns, $spooldir) { global $logfile,$config_name; if(!is_dir($spooldir."/".$config_name."/outgoing/")) { return "No messages to send\r\n"; } $outgoing_dir = $spooldir."/".$config_name."/outgoing/"; $messages = scandir($outgoing_dir); foreach($messages as $message) { if(!is_file($outgoing_dir.$message)) { continue; } echo "Sending: ".$outgoing_dir.$message."\r\n"; fputs($ns, "MODE READER\r\n"); $response = line_read($ns); if (strcmp(substr($response,0,3),"200") != 0) { file_put_contents($logfile, "\n".format_log_date()." ".$config_name." Unexpected response to MODE command: ".$response, FILE_APPEND); return $response; } fputs($ns, "POST\r\n"); $response = line_read($ns); if (strcmp(substr($response,0,3),"340") != 0) { file_put_contents($logfile, "\n".format_log_date()." ".$config_name." Unexpected response to POST command: ".$response, FILE_APPEND); return $response; } $message_fp = fopen($outgoing_dir.$message, "rb"); while (($msgline = fgets($message_fp, 4096)) !== false) { fputs($ns, $msgline); } fputs($ns, ".\r\n"); fclose($message_fp); $response = line_read($ns); if (strcmp(substr($response,0,3),"240") == 0) { unlink($outgoing_dir.$message); file_put_contents($logfile, "\n".format_log_date()." ".$config_name." Posted: ".$message.": ".$response, FILE_APPEND); } else { file_put_contents($logfile, "\n".format_log_date()." ".$config_name." Failed to POST: ".$message.": ".$response, FILE_APPEND); continue; } } return "Messages sent\r\n"; } ?>