Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- $settings = [
- "target_url" => "https://ci.starbeamrainbowlabs.com/hooks/laminar-git-repo",
- "response_message" => "Processing laminar job proxy request.",
- "retries" => 3,
- "attempt_timeout" => 2 // in seconds, for a single attempt
- ];
- $headers = "host: ci.starbeamrainbowlabs.com\r\n";
- foreach(getallheaders() as $key => $value) {
- if(strtolower($key) == "host") continue;
- $headers .= "$key: $value\r\n";
- }
- $headers .= "\r\n";
- $request_content = file_get_contents("php://input");
- // --------------------------------------------
- http_response_code(202);
- header("content-type: text/plain");
- header("content-length: " . strlen($settings["response_message"]));
- echo($settings["response_message"]);
- fastcgi_finish_request();
- // --------------------------------------------
- function log_message($msg) {
- file_put_contents("ci-requests.log", $msg, FILE_APPEND);
- }
- for($i = 0; $i < $settings["retries"]; $i++) {
- $start = microtime(true);
- $context = stream_context_create([
- "http" => [
- "header" => $headers,
- "method" => "POST",
- "content" => $request_content,
- "timeout" => $settings["attempt_timeout"]
- ]
- ]);
- $result = file_get_contents($settings["target_url"], false, $context);
- if($result !== false) {
- log_message("[" . date("r") . "] Queued laminar job in " . (microtime(true) - $start_time)*1000 . "ms");
- break;
- }
- log_message("[" . date("r") . "] Failed to laminar job after " . (microtime(true) - $start_time)*1000 . "ms.");
- }
Advertisement
Add Comment
Please, Sign In to add comment