Login
Log in using an SSO provider:
Fedora Account System
Red Hat Associate
Red Hat Customer
Login using a Red Hat Bugzilla account
Forgot Password
Create an Account
Red Hat Bugzilla – Attachment 1158338 Details for
Bug 1313805
Uploading results while running 'foreman_scap_client policy_id' fails on the client
Home
New
Search
Simple Search
Advanced Search
My Links
Browse
Requests
Reports
Current State
Search
Tabular reports
Graphical reports
Duplicates
Other Reports
User Changes
Plotly Reports
Bug Status
Bug Severity
Non-Defaults
Product Dashboard
Help
Page Help!
Bug Writing Guidelines
What's new
Browser Support Policy
5.0.4.rh92 Release notes
FAQ
Guides index
User guide
Web Services
Contact
Legal
[?]
This site requires JavaScript to be enabled to function correctly, please enable it.
unable to upload reports
scap_client.log (text/plain), 228.05 KB, created by
Kedar Bidarkar
on 2016-05-17 14:50:19 UTC
(
hide
)
Description:
unable to upload reports
Filename:
MIME Type:
Creator:
Kedar Bidarkar
Created:
2016-05-17 14:50:19 UTC
Size:
228.05 KB
patch
obsolete
>DEBUG: running: oscap xccdf eval --profile xccdf_org.ssgproject.content_profile_C2S --results-arf /tmp/d20160517-14021-cdctyw/results.xml /var/lib/openscap/content/6298742afc45309f86ac467c0c9a3e433ff505dd3d237dd8cbf72be1a02937bb.xml >DEBUG: running: /usr/bin/bzip2 /tmp/d20160517-14021-cdctyw/results.xml >Uploading results to https://qe-sat6-feature-rhel6.satqe.lab.eng.rdu2.redhat.com:9090/compliance/arf/2 ><!DOCTYPE html> ><html> ><head> > <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> > <title>TypeError at /compliance/arf/2</title> > > <script type="text/javascript"> > //<!-- > function toggle(id) { > var pre = document.getElementById("pre-" + id); > var post = document.getElementById("post-" + id); > var context = document.getElementById("context-" + id); > > if (pre.style.display == 'block') { > pre.style.display = 'none'; > post.style.display = 'none'; > context.style.background = "none"; > } else { > pre.style.display = 'block'; > post.style.display = 'block'; > context.style.background = "#fffed9"; > } > } > > function toggleBacktrace(){ > var bt = document.getElementById("backtrace"); > var toggler = document.getElementById("expando"); > > if (bt.className == 'condensed') { > bt.className = 'expanded'; > toggler.innerHTML = "(condense)"; > } else { > bt.className = 'condensed'; > toggler.innerHTML = "(expand)"; > } > } > //--> > </script> > ><style type="text/css" media="screen"> > * {margin: 0; padding: 0; border: 0; outline: 0;} > div.clear {clear: both;} > body {background: #EEEEEE; margin: 0; padding: 0; > font-family: 'Lucida Grande', 'Lucida Sans Unicode', > 'Garuda';} > code {font-family: 'Lucida Console', monospace; > font-size: 12px;} > li {height: 18px;} > ul {list-style: none; margin: 0; padding: 0;} > ol:hover {cursor: pointer;} > ol li {white-space: pre;} > #explanation {font-size: 12px; color: #666666; > margin: 20px 0 0 100px;} >/* WRAP */ > #wrap {width: 1000px; background: #FFFFFF; margin: 0 auto; > padding: 30px 50px 20px 50px; > border-left: 1px solid #DDDDDD; > border-right: 1px solid #DDDDDD;} >/* HEADER */ > #header {margin: 0 auto 25px auto;} > #header img {float: left;} > #header #summary {float: left; margin: 12px 0 0 20px; width:660px; > font-family: 'Lucida Grande', 'Lucida Sans Unicode';} > h1 {margin: 0; font-size: 36px; color: #981919;} > h2 {margin: 0; font-size: 22px; color: #333333;} > #header ul {margin: 0; font-size: 12px; color: #666666;} > #header ul li strong{color: #444444;} > #header ul li {display: inline; padding: 0 10px;} > #header ul li.first {padding-left: 0;} > #header ul li.last {border: 0; padding-right: 0;} >/* BODY */ > #backtrace, > #get, > #post, > #cookies, > #rack {width: 980px; margin: 0 auto 10px auto;} > p#nav {float: right; font-size: 14px;} >/* BACKTRACE */ > a#expando {float: left; padding-left: 5px; color: #666666; > font-size: 14px; text-decoration: none; cursor: pointer;} > a#expando:hover {text-decoration: underline;} > h3 {float: left; width: 100px; margin-bottom: 10px; > color: #981919; font-size: 14px; font-weight: bold;} > #nav a {color: #666666; text-decoration: none; padding: 0 5px;} > #backtrace li.frame-info {background: #f7f7f7; padding-left: 10px; > font-size: 12px; color: #333333;} > #backtrace ul {list-style-position: outside; border: 1px solid #E9E9E9; > border-bottom: 0;} > #backtrace ol {width: 920px; margin-left: 50px; > font: 10px 'Lucida Console', monospace; color: #666666;} > #backtrace ol li {border: 0; border-left: 1px solid #E9E9E9; > padding: 2px 0;} > #backtrace ol code {font-size: 10px; color: #555555; padding-left: 5px;} > #backtrace-ul li {border-bottom: 1px solid #E9E9E9; height: auto; > padding: 3px 0;} > #backtrace-ul .code {padding: 6px 0 4px 0;} > #backtrace.condensed .system, > #backtrace.condensed .framework {display:none;} >/* REQUEST DATA */ > p.no-data {padding-top: 2px; font-size: 12px; color: #666666;} > table.req {width: 980px; text-align: left; font-size: 12px; > color: #666666; padding: 0; border-spacing: 0; > border: 1px solid #EEEEEE; border-bottom: 0; > border-left: 0; > clear:both} > table.req tr th {padding: 2px 10px; font-weight: bold; > background: #F7F7F7; border-bottom: 1px solid #EEEEEE; > border-left: 1px solid #EEEEEE;} > table.req tr td {padding: 2px 20px 2px 10px; > border-bottom: 1px solid #EEEEEE; > border-left: 1px solid #EEEEEE;} >/* HIDE PRE/POST CODE AT START */ > .pre-context, > .post-context {display: none;} > > table td.code {width:750px} > table td.code div {width:750px;overflow:hidden} ></style> ></head> ><body> > <div id="wrap"> > <div id="header"> > <img src="/compliance/__sinatra__/500.png" alt="application error" height="161" width="313" /> > <div id="summary"> > <h1><strong>TypeError</strong> at <strong>/compliance/arf/2 > </strong></h1> > <h2>can't convert Symbol into String</h2> > <ul> > <li class="first"><strong>file:</strong> <code> > openscap_report_parser.rb</code></li> > <li><strong>location:</strong> <code>conv > </code></li> > <li class="last"><strong>line: > </strong> 92</li> > </ul> > </div> > <div class="clear"></div> > </div> > > <div id="backtrace" class='condensed'> > <h3>BACKTRACE</h3> > <p><a href="#" id="expando" > onclick="toggleBacktrace(); return false">(expand)</a></p> > <p id="nav"><strong>JUMP TO:</strong> > <a href="#get-info">GET</a> > <a href="#post-info">POST</a> > <a href="#cookie-info">COOKIES</a> > <a href="#env-info">ENV</a> > </p> > <div class="clear"></div> > > <ul id="backtrace-ul"> > > > > > > <li class="frame-info system"> > <code>/usr/lib/ruby/gems/1.8/gems/smart_proxy_openscap-0.5.3.4/lib/smart_proxy_openscap/openscap_report_parser.rb</code> in > <code><strong>conv</strong></code> > </li> > > <li class="code system"> > > <ol start="85" > class="pre-context" id="pre-1" > onclick="toggle(1);"> > > <li class="pre-context-line"><code> def ascii8bit_to_utf8(string) ></code></li> > > <li class="pre-context-line"><code> return ascii8bit_to_utf8_legacy(string) if RUBY_VERSION.start_with? '1.8' ></code></li> > > <li class="pre-context-line"><code> string.to_s.encode('utf-8', :invalid => :replace, :undef => :replace, :replace => '_') ></code></li> > > <li class="pre-context-line"><code> end ></code></li> > > <li class="pre-context-line"><code> ></code></li> > > <li class="pre-context-line"><code> # String#encode appeared first in 1.9, so we need a workaround for 1.8 ></code></li> > > <li class="pre-context-line"><code> def ascii8bit_to_utf8_legacy(string) ></code></li> > > </ol> > > > <ol start="92" class="context" id="1" > onclick="toggle(1);"> > <li class="context-line" id="context-1"><code> Iconv.conv('UTF-8//IGNORE', 'UTF-8', string)</code></li> > </ol> > > > <ol start="93" class="post-context" > id="post-1" onclick="toggle(1);"> > > <li class="post-context-line"><code> end ></code></li> > > <li class="post-context-line"><code> ></code></li> > > <li class="post-context-line"><code> def hash_a8b(ary) ></code></li> > > <li class="post-context-line"><code> ary.map do |hash| ></code></li> > > <li class="post-context-line"><code> Hash[hash.map { |key, value| [ascii8bit_to_utf8(key), ascii8bit_to_utf8(value)] }] ></code></li> > > <li class="post-context-line"><code> end ></code></li> > > <li class="post-context-line"><code> end ></code></li> > > </ol> > > <div class="clear"></div> > </li> > > > > > > > > <li class="frame-info system"> > <code>/usr/lib/ruby/gems/1.8/gems/smart_proxy_openscap-0.5.3.4/lib/smart_proxy_openscap/openscap_report_parser.rb</code> in > <code><strong>ascii8bit_to_utf8_legacy</strong></code> > </li> > > <li class="code system"> > > <ol start="85" > class="pre-context" id="pre-2" > onclick="toggle(2);"> > > <li class="pre-context-line"><code> def ascii8bit_to_utf8(string) ></code></li> > > <li class="pre-context-line"><code> return ascii8bit_to_utf8_legacy(string) if RUBY_VERSION.start_with? '1.8' ></code></li> > > <li class="pre-context-line"><code> string.to_s.encode('utf-8', :invalid => :replace, :undef => :replace, :replace => '_') ></code></li> > > <li class="pre-context-line"><code> end ></code></li> > > <li class="pre-context-line"><code> ></code></li> > > <li class="pre-context-line"><code> # String#encode appeared first in 1.9, so we need a workaround for 1.8 ></code></li> > > <li class="pre-context-line"><code> def ascii8bit_to_utf8_legacy(string) ></code></li> > > </ol> > > > <ol start="92" class="context" id="2" > onclick="toggle(2);"> > <li class="context-line" id="context-2"><code> Iconv.conv('UTF-8//IGNORE', 'UTF-8', string)</code></li> > </ol> > > > <ol start="93" class="post-context" > id="post-2" onclick="toggle(2);"> > > <li class="post-context-line"><code> end ></code></li> > > <li class="post-context-line"><code> ></code></li> > > <li class="post-context-line"><code> def hash_a8b(ary) ></code></li> > > <li class="post-context-line"><code> ary.map do |hash| ></code></li> > > <li class="post-context-line"><code> Hash[hash.map { |key, value| [ascii8bit_to_utf8(key), ascii8bit_to_utf8(value)] }] ></code></li> > > <li class="post-context-line"><code> end ></code></li> > > <li class="post-context-line"><code> end ></code></li> > > </ol> > > <div class="clear"></div> > </li> > > > > > > > > <li class="frame-info system"> > <code>/usr/lib/ruby/gems/1.8/gems/smart_proxy_openscap-0.5.3.4/lib/smart_proxy_openscap/openscap_report_parser.rb</code> in > <code><strong>ascii8bit_to_utf8</strong></code> > </li> > > <li class="code system"> > > <ol start="79" > class="pre-context" id="pre-3" > onclick="toggle(3);"> > > <li class="pre-context-line"><code> # If the value is undefined, #encode replaces characters which are ></code></li> > > <li class="pre-context-line"><code> # undefined in the destination encoding with the replacement character. ></code></li> > > <li class="pre-context-line"><code> # The default is to raise the Encoding::UndefinedConversionError. ></code></li> > > <li class="pre-context-line"><code> # :replace :: ></code></li> > > <li class="pre-context-line"><code> # Sets the replacement string to the given value. The default replacement ></code></li> > > <li class="pre-context-line"><code> # string is "\uFFFD" for Unicode encoding forms, and "?" otherwise. ></code></li> > > <li class="pre-context-line"><code> def ascii8bit_to_utf8(string) ></code></li> > > </ol> > > > <ol start="86" class="context" id="3" > onclick="toggle(3);"> > <li class="context-line" id="context-3"><code> return ascii8bit_to_utf8_legacy(string) if RUBY_VERSION.start_with? '1.8'</code></li> > </ol> > > > <ol start="87" class="post-context" > id="post-3" onclick="toggle(3);"> > > <li class="post-context-line"><code> string.to_s.encode('utf-8', :invalid => :replace, :undef => :replace, :replace => '_') ></code></li> > > <li class="post-context-line"><code> end ></code></li> > > <li class="post-context-line"><code> ></code></li> > > <li class="post-context-line"><code> # String#encode appeared first in 1.9, so we need a workaround for 1.8 ></code></li> > > <li class="post-context-line"><code> def ascii8bit_to_utf8_legacy(string) ></code></li> > > <li class="post-context-line"><code> Iconv.conv('UTF-8//IGNORE', 'UTF-8', string) ></code></li> > > <li class="post-context-line"><code> end ></code></li> > > </ol> > > <div class="clear"></div> > </li> > > > > > > > > <li class="frame-info system"> > <code>/usr/lib/ruby/gems/1.8/gems/smart_proxy_openscap-0.5.3.4/lib/smart_proxy_openscap/openscap_report_parser.rb</code> in > <code><strong>hash_a8b</strong></code> > </li> > > <li class="code system"> > > <ol start="90" > class="pre-context" id="pre-4" > onclick="toggle(4);"> > > <li class="pre-context-line"><code> # String#encode appeared first in 1.9, so we need a workaround for 1.8 ></code></li> > > <li class="pre-context-line"><code> def ascii8bit_to_utf8_legacy(string) ></code></li> > > <li class="pre-context-line"><code> Iconv.conv('UTF-8//IGNORE', 'UTF-8', string) ></code></li> > > <li class="pre-context-line"><code> end ></code></li> > > <li class="pre-context-line"><code> ></code></li> > > <li class="pre-context-line"><code> def hash_a8b(ary) ></code></li> > > <li class="pre-context-line"><code> ary.map do |hash| ></code></li> > > </ol> > > > <ol start="97" class="context" id="4" > onclick="toggle(4);"> > <li class="context-line" id="context-4"><code> Hash[hash.map { |key, value| [ascii8bit_to_utf8(key), ascii8bit_to_utf8(value)] }]</code></li> > </ol> > > > <ol start="98" class="post-context" > id="post-4" onclick="toggle(4);"> > > <li class="post-context-line"><code> end ></code></li> > > <li class="post-context-line"><code> end ></code></li> > > <li class="post-context-line"><code> end ></code></li> > > <li class="post-context-line"><code>end ></code></li> > > </ol> > > <div class="clear"></div> > </li> > > > > > > > > <li class="frame-info app"> > <code>/usr/lib/ruby/1.8/erb.rb</code> in > <code><strong>map</strong></code> > </li> > > <li class="code app"> > > <ol start="712" > class="pre-context" id="pre-5" > onclick="toggle(5);"> > > <li class="pre-context-line"><code> def result(b=TOPLEVEL_BINDING) ></code></li> > > <li class="pre-context-line"><code> if @safe_level ></code></li> > > <li class="pre-context-line"><code> proc { ></code></li> > > <li class="pre-context-line"><code> $SAFE = @safe_level ></code></li> > > <li class="pre-context-line"><code> eval(@src, b, (@filename || '(erb)'), 1) ></code></li> > > <li class="pre-context-line"><code> }.call ></code></li> > > <li class="pre-context-line"><code> else ></code></li> > > </ol> > > > <ol start="719" class="context" id="5" > onclick="toggle(5);"> > <li class="context-line" id="context-5"><code> eval(@src, b, (@filename || '(erb)'), 1)</code></li> > </ol> > > > <ol start="720" class="post-context" > id="post-5" onclick="toggle(5);"> > > <li class="post-context-line"><code> end ></code></li> > > <li class="post-context-line"><code> end ></code></li> > > <li class="post-context-line"><code> ></code></li> > > <li class="post-context-line"><code> # Define _methodname_ as instance method of _mod_ from compiled ruby source. ></code></li> > > <li class="post-context-line"><code> # ></code></li> > > <li class="post-context-line"><code> # example: ></code></li> > > <li class="post-context-line"><code> # filename = 'example.rhtml' # 'arg1' and 'arg2' are used in example.rhtml ></code></li> > > </ol> > > <div class="clear"></div> > </li> > > > > > > > > <li class="frame-info system"> > <code>/usr/lib/ruby/gems/1.8/gems/smart_proxy_openscap-0.5.3.4/lib/smart_proxy_openscap/openscap_report_parser.rb</code> in > <code><strong>each</strong></code> > </li> > > <li class="code system"> > > <ol start="90" > class="pre-context" id="pre-6" > onclick="toggle(6);"> > > <li class="pre-context-line"><code> # String#encode appeared first in 1.9, so we need a workaround for 1.8 ></code></li> > > <li class="pre-context-line"><code> def ascii8bit_to_utf8_legacy(string) ></code></li> > > <li class="pre-context-line"><code> Iconv.conv('UTF-8//IGNORE', 'UTF-8', string) ></code></li> > > <li class="pre-context-line"><code> end ></code></li> > > <li class="pre-context-line"><code> ></code></li> > > <li class="pre-context-line"><code> def hash_a8b(ary) ></code></li> > > <li class="pre-context-line"><code> ary.map do |hash| ></code></li> > > </ol> > > > <ol start="97" class="context" id="6" > onclick="toggle(6);"> > <li class="context-line" id="context-6"><code> Hash[hash.map { |key, value| [ascii8bit_to_utf8(key), ascii8bit_to_utf8(value)] }]</code></li> > </ol> > > > <ol start="98" class="post-context" > id="post-6" onclick="toggle(6);"> > > <li class="post-context-line"><code> end ></code></li> > > <li class="post-context-line"><code> end ></code></li> > > <li class="post-context-line"><code> end ></code></li> > > <li class="post-context-line"><code>end ></code></li> > > </ol> > > <div class="clear"></div> > </li> > > > > > > > > <li class="frame-info system"> > <code>/usr/lib/ruby/gems/1.8/gems/smart_proxy_openscap-0.5.3.4/lib/smart_proxy_openscap/openscap_report_parser.rb</code> in > <code><strong>map</strong></code> > </li> > > <li class="code system"> > > <ol start="90" > class="pre-context" id="pre-7" > onclick="toggle(7);"> > > <li class="pre-context-line"><code> # String#encode appeared first in 1.9, so we need a workaround for 1.8 ></code></li> > > <li class="pre-context-line"><code> def ascii8bit_to_utf8_legacy(string) ></code></li> > > <li class="pre-context-line"><code> Iconv.conv('UTF-8//IGNORE', 'UTF-8', string) ></code></li> > > <li class="pre-context-line"><code> end ></code></li> > > <li class="pre-context-line"><code> ></code></li> > > <li class="pre-context-line"><code> def hash_a8b(ary) ></code></li> > > <li class="pre-context-line"><code> ary.map do |hash| ></code></li> > > </ol> > > > <ol start="97" class="context" id="7" > onclick="toggle(7);"> > <li class="context-line" id="context-7"><code> Hash[hash.map { |key, value| [ascii8bit_to_utf8(key), ascii8bit_to_utf8(value)] }]</code></li> > </ol> > > > <ol start="98" class="post-context" > id="post-7" onclick="toggle(7);"> > > <li class="post-context-line"><code> end ></code></li> > > <li class="post-context-line"><code> end ></code></li> > > <li class="post-context-line"><code> end ></code></li> > > <li class="post-context-line"><code>end ></code></li> > > </ol> > > <div class="clear"></div> > </li> > > > > > > > > <li class="frame-info system"> > <code>/usr/lib/ruby/gems/1.8/gems/smart_proxy_openscap-0.5.3.4/lib/smart_proxy_openscap/openscap_report_parser.rb</code> in > <code><strong>hash_a8b</strong></code> > </li> > > <li class="code system"> > > <ol start="90" > class="pre-context" id="pre-8" > onclick="toggle(8);"> > > <li class="pre-context-line"><code> # String#encode appeared first in 1.9, so we need a workaround for 1.8 ></code></li> > > <li class="pre-context-line"><code> def ascii8bit_to_utf8_legacy(string) ></code></li> > > <li class="pre-context-line"><code> Iconv.conv('UTF-8//IGNORE', 'UTF-8', string) ></code></li> > > <li class="pre-context-line"><code> end ></code></li> > > <li class="pre-context-line"><code> ></code></li> > > <li class="pre-context-line"><code> def hash_a8b(ary) ></code></li> > > <li class="pre-context-line"><code> ary.map do |hash| ></code></li> > > </ol> > > > <ol start="97" class="context" id="8" > onclick="toggle(8);"> > <li class="context-line" id="context-8"><code> Hash[hash.map { |key, value| [ascii8bit_to_utf8(key), ascii8bit_to_utf8(value)] }]</code></li> > </ol> > > > <ol start="98" class="post-context" > id="post-8" onclick="toggle(8);"> > > <li class="post-context-line"><code> end ></code></li> > > <li class="post-context-line"><code> end ></code></li> > > <li class="post-context-line"><code> end ></code></li> > > <li class="post-context-line"><code>end ></code></li> > > </ol> > > <div class="clear"></div> > </li> > > > > > > > > <li class="frame-info system"> > <code>/usr/lib/ruby/gems/1.8/gems/smart_proxy_openscap-0.5.3.4/lib/smart_proxy_openscap/openscap_report_parser.rb</code> in > <code><strong>map</strong></code> > </li> > > <li class="code system"> > > <ol start="89" > class="pre-context" id="pre-9" > onclick="toggle(9);"> > > <li class="pre-context-line"><code> ></code></li> > > <li class="pre-context-line"><code> # String#encode appeared first in 1.9, so we need a workaround for 1.8 ></code></li> > > <li class="pre-context-line"><code> def ascii8bit_to_utf8_legacy(string) ></code></li> > > <li class="pre-context-line"><code> Iconv.conv('UTF-8//IGNORE', 'UTF-8', string) ></code></li> > > <li class="pre-context-line"><code> end ></code></li> > > <li class="pre-context-line"><code> ></code></li> > > <li class="pre-context-line"><code> def hash_a8b(ary) ></code></li> > > </ol> > > > <ol start="96" class="context" id="9" > onclick="toggle(9);"> > <li class="context-line" id="context-9"><code> ary.map do |hash|</code></li> > </ol> > > > <ol start="97" class="post-context" > id="post-9" onclick="toggle(9);"> > > <li class="post-context-line"><code> Hash[hash.map { |key, value| [ascii8bit_to_utf8(key), ascii8bit_to_utf8(value)] }] ></code></li> > > <li class="post-context-line"><code> end ></code></li> > > <li class="post-context-line"><code> end ></code></li> > > <li class="post-context-line"><code> end ></code></li> > > <li class="post-context-line"><code>end ></code></li> > > </ol> > > <div class="clear"></div> > </li> > > > > > > > > <li class="frame-info system"> > <code>/usr/lib/ruby/gems/1.8/gems/smart_proxy_openscap-0.5.3.4/lib/smart_proxy_openscap/openscap_report_parser.rb</code> in > <code><strong>hash_a8b</strong></code> > </li> > > <li class="code system"> > > <ol start="89" > class="pre-context" id="pre-10" > onclick="toggle(10);"> > > <li class="pre-context-line"><code> ></code></li> > > <li class="pre-context-line"><code> # String#encode appeared first in 1.9, so we need a workaround for 1.8 ></code></li> > > <li class="pre-context-line"><code> def ascii8bit_to_utf8_legacy(string) ></code></li> > > <li class="pre-context-line"><code> Iconv.conv('UTF-8//IGNORE', 'UTF-8', string) ></code></li> > > <li class="pre-context-line"><code> end ></code></li> > > <li class="pre-context-line"><code> ></code></li> > > <li class="pre-context-line"><code> def hash_a8b(ary) ></code></li> > > </ol> > > > <ol start="96" class="context" id="10" > onclick="toggle(10);"> > <li class="context-line" id="context-10"><code> ary.map do |hash|</code></li> > </ol> > > > <ol start="97" class="post-context" > id="post-10" onclick="toggle(10);"> > > <li class="post-context-line"><code> Hash[hash.map { |key, value| [ascii8bit_to_utf8(key), ascii8bit_to_utf8(value)] }] ></code></li> > > <li class="post-context-line"><code> end ></code></li> > > <li class="post-context-line"><code> end ></code></li> > > <li class="post-context-line"><code> end ></code></li> > > <li class="post-context-line"><code>end ></code></li> > > </ol> > > <div class="clear"></div> > </li> > > > > > > > > <li class="frame-info system"> > <code>/usr/lib/ruby/gems/1.8/gems/smart_proxy_openscap-0.5.3.4/lib/smart_proxy_openscap/openscap_report_parser.rb</code> in > <code><strong>populate_result_data</strong></code> > </li> > > <li class="code system"> > > <ol start="58" > class="pre-context" id="pre-11" > onclick="toggle(11);"> > > <li class="pre-context-line"><code> def populate_result_data(result_id, rule_result, rule_data) ></code></li> > > <li class="pre-context-line"><code> log = {} ></code></li> > > <li class="pre-context-line"><code> log[:source] = ascii8bit_to_utf8(result_id) ></code></li> > > <li class="pre-context-line"><code> log[:result] = ascii8bit_to_utf8(rule_result) ></code></li> > > <li class="pre-context-line"><code> log[:title] = ascii8bit_to_utf8(rule_data.title) ></code></li> > > <li class="pre-context-line"><code> log[:description] = ascii8bit_to_utf8(rule_data.description) ></code></li> > > <li class="pre-context-line"><code> log[:rationale] = ascii8bit_to_utf8(rule_data.rationale) ></code></li> > > </ol> > > > <ol start="65" class="context" id="11" > onclick="toggle(11);"> > <li class="context-line" id="context-11"><code> log[:references] = hash_a8b(rule_data.references.map(&:to_hash))</code></li> > </ol> > > > <ol start="66" class="post-context" > id="post-11" onclick="toggle(11);"> > > <li class="post-context-line"><code> log[:fixes] = hash_a8b(rule_data.fixes.map(&:to_hash)) ></code></li> > > <li class="post-context-line"><code> log[:severity] = ascii8bit_to_utf8(rule_data.severity) ></code></li> > > <li class="post-context-line"><code> log ></code></li> > > <li class="post-context-line"><code> end ></code></li> > > <li class="post-context-line"><code> ></code></li> > > <li class="post-context-line"><code> # Unfortunately openscap in ruby 1.9.3 outputs data in Ascii-8bit. ></code></li> > > <li class="post-context-line"><code> # We transform it to UTF-8 for easier json integration. ></code></li> > > </ol> > > <div class="clear"></div> > </li> > > > > > > > > <li class="frame-info system"> > <code>/usr/lib/ruby/gems/1.8/gems/smart_proxy_openscap-0.5.3.4/lib/smart_proxy_openscap/openscap_report_parser.rb</code> in > <code><strong>parse_report</strong></code> > </li> > > <li class="code system"> > > <ol start="35" > class="pre-context" id="pre-12" > onclick="toggle(12);"> > > <li class="pre-context-line"><code> passed = 0 ></code></li> > > <li class="pre-context-line"><code> failed = 0 ></code></li> > > <li class="pre-context-line"><code> othered = 0 ></code></li> > > <li class="pre-context-line"><code> @results.each do |rr_id, result| ></code></li> > > <li class="pre-context-line"><code> next if result.result == 'notapplicable' || result.result == 'notselected' ></code></li> > > <li class="pre-context-line"><code> # get rules and their results ></code></li> > > <li class="pre-context-line"><code> rule_data = @items[rr_id] ></code></li> > > </ol> > > > <ol start="42" class="context" id="12" > onclick="toggle(12);"> > <li class="context-line" id="context-12"><code> report[:logs] << populate_result_data(rr_id, result.result, rule_data)</code></li> > </ol> > > > <ol start="43" class="post-context" > id="post-12" onclick="toggle(12);"> > > <li class="post-context-line"><code> # create metrics for the results ></code></li> > > <li class="post-context-line"><code> case result.result ></code></li> > > <li class="post-context-line"><code> when 'pass', 'fixed' ></code></li> > > <li class="post-context-line"><code> passed += 1 ></code></li> > > <li class="post-context-line"><code> when 'fail' ></code></li> > > <li class="post-context-line"><code> failed += 1 ></code></li> > > <li class="post-context-line"><code> else ></code></li> > > </ol> > > <div class="clear"></div> > </li> > > > > > > > > <li class="frame-info system"> > <code>/usr/lib/ruby/gems/1.8/gems/smart_proxy_openscap-0.5.3.4/lib/smart_proxy_openscap/openscap_report_parser.rb</code> in > <code><strong>each</strong></code> > </li> > > <li class="code system"> > > <ol start="31" > class="pre-context" id="pre-13" > onclick="toggle(13);"> > > <li class="pre-context-line"><code> ></code></li> > > <li class="pre-context-line"><code> def parse_report ></code></li> > > <li class="pre-context-line"><code> report = {} ></code></li> > > <li class="pre-context-line"><code> report[:logs] = [] ></code></li> > > <li class="pre-context-line"><code> passed = 0 ></code></li> > > <li class="pre-context-line"><code> failed = 0 ></code></li> > > <li class="pre-context-line"><code> othered = 0 ></code></li> > > </ol> > > > <ol start="38" class="context" id="13" > onclick="toggle(13);"> > <li class="context-line" id="context-13"><code> @results.each do |rr_id, result|</code></li> > </ol> > > > <ol start="39" class="post-context" > id="post-13" onclick="toggle(13);"> > > <li class="post-context-line"><code> next if result.result == 'notapplicable' || result.result == 'notselected' ></code></li> > > <li class="post-context-line"><code> # get rules and their results ></code></li> > > <li class="post-context-line"><code> rule_data = @items[rr_id] ></code></li> > > <li class="post-context-line"><code> report[:logs] << populate_result_data(rr_id, result.result, rule_data) ></code></li> > > <li class="post-context-line"><code> # create metrics for the results ></code></li> > > <li class="post-context-line"><code> case result.result ></code></li> > > <li class="post-context-line"><code> when 'pass', 'fixed' ></code></li> > > </ol> > > <div class="clear"></div> > </li> > > > > > > > > <li class="frame-info system"> > <code>/usr/lib/ruby/gems/1.8/gems/smart_proxy_openscap-0.5.3.4/lib/smart_proxy_openscap/openscap_report_parser.rb</code> in > <code><strong>parse_report</strong></code> > </li> > > <li class="code system"> > > <ol start="31" > class="pre-context" id="pre-14" > onclick="toggle(14);"> > > <li class="pre-context-line"><code> ></code></li> > > <li class="pre-context-line"><code> def parse_report ></code></li> > > <li class="pre-context-line"><code> report = {} ></code></li> > > <li class="pre-context-line"><code> report[:logs] = [] ></code></li> > > <li class="pre-context-line"><code> passed = 0 ></code></li> > > <li class="pre-context-line"><code> failed = 0 ></code></li> > > <li class="pre-context-line"><code> othered = 0 ></code></li> > > </ol> > > > <ol start="38" class="context" id="14" > onclick="toggle(14);"> > <li class="context-line" id="context-14"><code> @results.each do |rr_id, result|</code></li> > </ol> > > > <ol start="39" class="post-context" > id="post-14" onclick="toggle(14);"> > > <li class="post-context-line"><code> next if result.result == 'notapplicable' || result.result == 'notselected' ></code></li> > > <li class="post-context-line"><code> # get rules and their results ></code></li> > > <li class="post-context-line"><code> rule_data = @items[rr_id] ></code></li> > > <li class="post-context-line"><code> report[:logs] << populate_result_data(rr_id, result.result, rule_data) ></code></li> > > <li class="post-context-line"><code> # create metrics for the results ></code></li> > > <li class="post-context-line"><code> case result.result ></code></li> > > <li class="post-context-line"><code> when 'pass', 'fixed' ></code></li> > > </ol> > > <div class="clear"></div> > </li> > > > > > > > > <li class="frame-info system"> > <code>/usr/lib/ruby/gems/1.8/gems/smart_proxy_openscap-0.5.3.4/lib/smart_proxy_openscap/openscap_report_parser.rb</code> in > <code><strong>as_json</strong></code> > </li> > > <li class="code system"> > > <ol start="20" > class="pre-context" id="pre-15" > onclick="toggle(15);"> > > <li class="pre-context-line"><code> sds = @arf.report_request ></code></li> > > <li class="pre-context-line"><code> bench_source = sds.select_checklist! ></code></li> > > <li class="pre-context-line"><code> @bench = OpenSCAP::Xccdf::Benchmark.new(bench_source) ></code></li> > > <li class="pre-context-line"><code> @items = @bench.items ></code></li> > > <li class="pre-context-line"><code> end ></code></li> > > <li class="pre-context-line"><code> ></code></li> > > <li class="pre-context-line"><code> def as_json ></code></li> > > </ol> > > > <ol start="27" class="context" id="15" > onclick="toggle(15);"> > <li class="context-line" id="context-15"><code> parse_report.to_json</code></li> > </ol> > > > <ol start="28" class="post-context" > id="post-15" onclick="toggle(15);"> > > <li class="post-context-line"><code> end ></code></li> > > <li class="post-context-line"><code> ></code></li> > > <li class="post-context-line"><code> private ></code></li> > > <li class="post-context-line"><code> ></code></li> > > <li class="post-context-line"><code> def parse_report ></code></li> > > <li class="post-context-line"><code> report = {} ></code></li> > > <li class="post-context-line"><code> report[:logs] = [] ></code></li> > > </ol> > > <div class="clear"></div> > </li> > > > > > > > > <li class="frame-info system"> > <code>/usr/lib/ruby/gems/1.8/gems/smart_proxy_openscap-0.5.3.4/lib/smart_proxy_openscap/foreman_forwarder.rb</code> in > <code><strong>post_arf_report</strong></code> > </li> > > <li class="code system"> > > <ol start="1" > class="pre-context" id="pre-16" > onclick="toggle(16);"> > > <li class="pre-context-line"><code>module Proxy::OpenSCAP ></code></li> > > <li class="pre-context-line"><code> class ForemanForwarder < Proxy::HttpRequest::ForemanRequest ></code></li> > > <li class="pre-context-line"><code> include ::Proxy::Log ></code></li> > > <li class="pre-context-line"><code> ></code></li> > > <li class="pre-context-line"><code> def post_arf_report(cname, policy_id, date, data) ></code></li> > > <li class="pre-context-line"><code> begin ></code></li> > > </ol> > > > <ol start="7" class="context" id="16" > onclick="toggle(16);"> > <li class="context-line" id="context-16"><code> json_data = Proxy::OpenSCAP::Parse.new(data).as_json</code></li> > </ol> > > > <ol start="8" class="post-context" > id="post-16" onclick="toggle(16);"> > > <li class="post-context-line"><code> foreman_api_path = upload_path(cname, policy_id, date) ></code></li> > > <li class="post-context-line"><code> response = send_request(foreman_api_path, json_data) ></code></li> > > <li class="post-context-line"><code> # Raise an HTTP error if the response is not 2xx (success). ></code></li> > > <li class="post-context-line"><code> response.value ></code></li> > > <li class="post-context-line"><code> res = JSON.parse(response.body) ></code></li> > > <li class="post-context-line"><code> raise StandardError, "Received response: #{response.code} #{response.msg}" unless res['result'] == 'OK' ></code></li> > > <li class="post-context-line"><code> rescue StandardError => e ></code></li> > > </ol> > > <div class="clear"></div> > </li> > > > > > > > > <li class="frame-info system"> > <code>/usr/lib/ruby/gems/1.8/gems/smart_proxy_openscap-0.5.3.4/lib/smart_proxy_openscap/openscap_api.rb</code> in > <code><strong>POST /arf/:policy</strong></code> > </li> > > <li class="code system"> > > <ol start="32" > class="pre-context" id="pre-17" > onclick="toggle(17);"> > > <li class="pre-context-line"><code> rescue Proxy::Error::Unauthorized => e ></code></li> > > <li class="pre-context-line"><code> log_halt 403, "Client authentication failed: #{e.message}" ></code></li> > > <li class="pre-context-line"><code> end ></code></li> > > <li class="pre-context-line"><code> date = Time.now.to_i ></code></li> > > <li class="pre-context-line"><code> policy = params[:policy] ></code></li> > > <li class="pre-context-line"><code> ></code></li> > > <li class="pre-context-line"><code> begin ></code></li> > > </ol> > > > <ol start="39" class="context" id="17" > onclick="toggle(17);"> > <li class="context-line" id="context-17"><code> post_to_foreman = ForemanForwarder.new.post_arf_report(cn, policy, date, request.body.string)</code></li> > </ol> > > > <ol start="40" class="post-context" > id="post-17" onclick="toggle(17);"> > > <li class="post-context-line"><code> Proxy::OpenSCAP::StorageFS.new(Proxy::OpenSCAP::Plugin.settings.reportsdir, cn, post_to_foreman['id'], date).store_archive(request.body.string) ></code></li> > > <li class="post-context-line"><code> rescue Proxy::OpenSCAP::StoreReportError => e ></code></li> > > <li class="post-context-line"><code> Proxy::OpenSCAP::StorageFS.new(Proxy::OpenSCAP::Plugin.settings.failed_dir, cn, post_to_foreman['id'], date).store_failed(request.body.string) ></code></li> > > <li class="post-context-line"><code> logger.error "Failed to save Report in reports directory (#{Proxy::OpenSCAP::Plugin.settings.reportsdir}). Failed with: #{e.message}. ></code></li> > > <li class="post-context-line"><code> Saving file in #{Proxy::OpenSCAP::Plugin.settings.failed_dir}. Please copy manually to #{Proxy::OpenSCAP::Plugin.settings.reportsdir}" ></code></li> > > <li class="post-context-line"><code> rescue *HTTP_ERRORS => e ></code></li> > > <li class="post-context-line"><code> ### If the upload to foreman fails then store it in the spooldir ></code></li> > > </ol> > > <div class="clear"></div> > </li> > > > > > > > > <li class="frame-info framework"> > <code>/usr/lib/ruby/gems/1.8/gems/sinatra-1.3.6/lib/sinatra/base.rb</code> in > <code><strong>call</strong></code> > </li> > > <li class="code framework"> > > <ol start="1285" > class="pre-context" id="pre-18" > onclick="toggle(18);"> > > <li class="pre-context-line"><code> options.each_pair { |option, args| send(option, *args) } ></code></li> > > <li class="pre-context-line"><code> method_name = "#{verb} #{path}" ></code></li> > > <li class="pre-context-line"><code> unbound_method = generate_method(method_name, &block) ></code></li> > > <li class="pre-context-line"><code> pattern, keys = compile path ></code></li> > > <li class="pre-context-line"><code> conditions, @conditions = @conditions, [] ></code></li> > > <li class="pre-context-line"><code> ></code></li> > > <li class="pre-context-line"><code> [ pattern, keys, conditions, block.arity != 0 ? ></code></li> > > </ol> > > > <ol start="1292" class="context" id="18" > onclick="toggle(18);"> > <li class="context-line" id="context-18"><code> proc { |a,p| unbound_method.bind(a).call(*p) } :</code></li> > </ol> > > > <ol start="1293" class="post-context" > id="post-18" onclick="toggle(18);"> > > <li class="post-context-line"><code> proc { |a,p| unbound_method.bind(a).call } ] ></code></li> > > <li class="post-context-line"><code> end ></code></li> > > <li class="post-context-line"><code> ></code></li> > > <li class="post-context-line"><code> def compile(path) ></code></li> > > <li class="post-context-line"><code> keys = [] ></code></li> > > <li class="post-context-line"><code> if path.respond_to? :to_str ></code></li> > > <li class="post-context-line"><code> pattern = path.to_str.gsub(/[^\?\%\\\/\:\*\w]/) { |c| encoded(c) } ></code></li> > > </ol> > > <div class="clear"></div> > </li> > > > > > > > > <li class="frame-info framework"> > <code>/usr/lib/ruby/gems/1.8/gems/sinatra-1.3.6/lib/sinatra/base.rb</code> in > <code><strong>compile!</strong></code> > </li> > > <li class="code framework"> > > <ol start="1285" > class="pre-context" id="pre-19" > onclick="toggle(19);"> > > <li class="pre-context-line"><code> options.each_pair { |option, args| send(option, *args) } ></code></li> > > <li class="pre-context-line"><code> method_name = "#{verb} #{path}" ></code></li> > > <li class="pre-context-line"><code> unbound_method = generate_method(method_name, &block) ></code></li> > > <li class="pre-context-line"><code> pattern, keys = compile path ></code></li> > > <li class="pre-context-line"><code> conditions, @conditions = @conditions, [] ></code></li> > > <li class="pre-context-line"><code> ></code></li> > > <li class="pre-context-line"><code> [ pattern, keys, conditions, block.arity != 0 ? ></code></li> > > </ol> > > > <ol start="1292" class="context" id="19" > onclick="toggle(19);"> > <li class="context-line" id="context-19"><code> proc { |a,p| unbound_method.bind(a).call(*p) } :</code></li> > </ol> > > > <ol start="1293" class="post-context" > id="post-19" onclick="toggle(19);"> > > <li class="post-context-line"><code> proc { |a,p| unbound_method.bind(a).call } ] ></code></li> > > <li class="post-context-line"><code> end ></code></li> > > <li class="post-context-line"><code> ></code></li> > > <li class="post-context-line"><code> def compile(path) ></code></li> > > <li class="post-context-line"><code> keys = [] ></code></li> > > <li class="post-context-line"><code> if path.respond_to? :to_str ></code></li> > > <li class="post-context-line"><code> pattern = path.to_str.gsub(/[^\?\%\\\/\:\*\w]/) { |c| encoded(c) } ></code></li> > > </ol> > > <div class="clear"></div> > </li> > > > > > > > > <li class="frame-info framework"> > <code>/usr/lib/ruby/gems/1.8/gems/sinatra-1.3.6/lib/sinatra/base.rb</code> in > <code><strong>[]</strong></code> > </li> > > <li class="code framework"> > > <ol start="853" > class="pre-context" id="pre-20" > onclick="toggle(20);"> > > <li class="pre-context-line"><code> end ></code></li> > > <li class="pre-context-line"><code> ></code></li> > > <li class="pre-context-line"><code> # Run routes defined on the class and all superclasses. ></code></li> > > <li class="pre-context-line"><code> def route!(base = settings, pass_block=nil) ></code></li> > > <li class="pre-context-line"><code> if routes = base.routes[@request.request_method] ></code></li> > > <li class="pre-context-line"><code> routes.each do |pattern, keys, conditions, block| ></code></li> > > <li class="pre-context-line"><code> pass_block = process_route(pattern, keys, conditions) do |*args| ></code></li> > > </ol> > > > <ol start="860" class="context" id="20" > onclick="toggle(20);"> > <li class="context-line" id="context-20"><code> route_eval { block[*args] }</code></li> > </ol> > > > <ol start="861" class="post-context" > id="post-20" onclick="toggle(20);"> > > <li class="post-context-line"><code> end ></code></li> > > <li class="post-context-line"><code> end ></code></li> > > <li class="post-context-line"><code> end ></code></li> > > <li class="post-context-line"><code> ></code></li> > > <li class="post-context-line"><code> # Run routes defined in superclass. ></code></li> > > <li class="post-context-line"><code> if base.superclass.respond_to?(:routes) ></code></li> > > <li class="post-context-line"><code> return route!(base.superclass, pass_block) ></code></li> > > </ol> > > <div class="clear"></div> > </li> > > > > > > > > <li class="frame-info framework"> > <code>/usr/lib/ruby/gems/1.8/gems/sinatra-1.3.6/lib/sinatra/base.rb</code> in > <code><strong>route!</strong></code> > </li> > > <li class="code framework"> > > <ol start="853" > class="pre-context" id="pre-21" > onclick="toggle(21);"> > > <li class="pre-context-line"><code> end ></code></li> > > <li class="pre-context-line"><code> ></code></li> > > <li class="pre-context-line"><code> # Run routes defined on the class and all superclasses. ></code></li> > > <li class="pre-context-line"><code> def route!(base = settings, pass_block=nil) ></code></li> > > <li class="pre-context-line"><code> if routes = base.routes[@request.request_method] ></code></li> > > <li class="pre-context-line"><code> routes.each do |pattern, keys, conditions, block| ></code></li> > > <li class="pre-context-line"><code> pass_block = process_route(pattern, keys, conditions) do |*args| ></code></li> > > </ol> > > > <ol start="860" class="context" id="21" > onclick="toggle(21);"> > <li class="context-line" id="context-21"><code> route_eval { block[*args] }</code></li> > </ol> > > > <ol start="861" class="post-context" > id="post-21" onclick="toggle(21);"> > > <li class="post-context-line"><code> end ></code></li> > > <li class="post-context-line"><code> end ></code></li> > > <li class="post-context-line"><code> end ></code></li> > > <li class="post-context-line"><code> ></code></li> > > <li class="post-context-line"><code> # Run routes defined in superclass. ></code></li> > > <li class="post-context-line"><code> if base.superclass.respond_to?(:routes) ></code></li> > > <li class="post-context-line"><code> return route!(base.superclass, pass_block) ></code></li> > > </ol> > > <div class="clear"></div> > </li> > > > > > > > > <li class="frame-info framework"> > <code>/usr/lib/ruby/gems/1.8/gems/sinatra-1.3.6/lib/sinatra/base.rb</code> in > <code><strong>route_eval</strong></code> > </li> > > <li class="code framework"> > > <ol start="869" > class="pre-context" id="pre-22" > onclick="toggle(22);"> > > <li class="pre-context-line"><code> ></code></li> > > <li class="pre-context-line"><code> route_eval(&pass_block) if pass_block ></code></li> > > <li class="pre-context-line"><code> route_missing ></code></li> > > <li class="pre-context-line"><code> end ></code></li> > > <li class="pre-context-line"><code> ></code></li> > > <li class="pre-context-line"><code> # Run a route block and throw :halt with the result. ></code></li> > > <li class="pre-context-line"><code> def route_eval ></code></li> > > </ol> > > > <ol start="876" class="context" id="22" > onclick="toggle(22);"> > <li class="context-line" id="context-22"><code> throw :halt, yield</code></li> > </ol> > > > <ol start="877" class="post-context" > id="post-22" onclick="toggle(22);"> > > <li class="post-context-line"><code> end ></code></li> > > <li class="post-context-line"><code> ></code></li> > > <li class="post-context-line"><code> # If the current request matches pattern and conditions, fill params ></code></li> > > <li class="post-context-line"><code> # with keys and call the given block. ></code></li> > > <li class="post-context-line"><code> # Revert params afterwards. ></code></li> > > <li class="post-context-line"><code> # ></code></li> > > <li class="post-context-line"><code> # Returns pass block. ></code></li> > > </ol> > > <div class="clear"></div> > </li> > > > > > > > > <li class="frame-info framework"> > <code>/usr/lib/ruby/gems/1.8/gems/sinatra-1.3.6/lib/sinatra/base.rb</code> in > <code><strong>route!</strong></code> > </li> > > <li class="code framework"> > > <ol start="853" > class="pre-context" id="pre-23" > onclick="toggle(23);"> > > <li class="pre-context-line"><code> end ></code></li> > > <li class="pre-context-line"><code> ></code></li> > > <li class="pre-context-line"><code> # Run routes defined on the class and all superclasses. ></code></li> > > <li class="pre-context-line"><code> def route!(base = settings, pass_block=nil) ></code></li> > > <li class="pre-context-line"><code> if routes = base.routes[@request.request_method] ></code></li> > > <li class="pre-context-line"><code> routes.each do |pattern, keys, conditions, block| ></code></li> > > <li class="pre-context-line"><code> pass_block = process_route(pattern, keys, conditions) do |*args| ></code></li> > > </ol> > > > <ol start="860" class="context" id="23" > onclick="toggle(23);"> > <li class="context-line" id="context-23"><code> route_eval { block[*args] }</code></li> > </ol> > > > <ol start="861" class="post-context" > id="post-23" onclick="toggle(23);"> > > <li class="post-context-line"><code> end ></code></li> > > <li class="post-context-line"><code> end ></code></li> > > <li class="post-context-line"><code> end ></code></li> > > <li class="post-context-line"><code> ></code></li> > > <li class="post-context-line"><code> # Run routes defined in superclass. ></code></li> > > <li class="post-context-line"><code> if base.superclass.respond_to?(:routes) ></code></li> > > <li class="post-context-line"><code> return route!(base.superclass, pass_block) ></code></li> > > </ol> > > <div class="clear"></div> > </li> > > > > > > > > <li class="frame-info framework"> > <code>/usr/lib/ruby/gems/1.8/gems/sinatra-1.3.6/lib/sinatra/base.rb</code> in > <code><strong>process_route</strong></code> > </li> > > <li class="code framework"> > > <ol start="890" > class="pre-context" id="pre-24" > onclick="toggle(24);"> > > <li class="pre-context-line"><code> if values.any? ></code></li> > > <li class="pre-context-line"><code> original, @params = params, params.merge('splat' => [], 'captures' => values) ></code></li> > > <li class="pre-context-line"><code> keys.zip(values) { |k,v| Array === @params[k] ? @params[k] << v : @params[k] = v if v } ></code></li> > > <li class="pre-context-line"><code> end ></code></li> > > <li class="pre-context-line"><code> ></code></li> > > <li class="pre-context-line"><code> catch(:pass) do ></code></li> > > <li class="pre-context-line"><code> conditions.each { |c| throw :pass if c.bind(self).call == false } ></code></li> > > </ol> > > > <ol start="897" class="context" id="24" > onclick="toggle(24);"> > <li class="context-line" id="context-24"><code> block ? block[self, values] : yield(self, values)</code></li> > </ol> > > > <ol start="898" class="post-context" > id="post-24" onclick="toggle(24);"> > > <li class="post-context-line"><code> end ></code></li> > > <li class="post-context-line"><code> ensure ></code></li> > > <li class="post-context-line"><code> @params = original if original ></code></li> > > <li class="post-context-line"><code> end ></code></li> > > <li class="post-context-line"><code> ></code></li> > > <li class="post-context-line"><code> # No matching route was found or all routes passed. The default ></code></li> > > <li class="post-context-line"><code> # implementation is to forward the request downstream when running ></code></li> > > </ol> > > <div class="clear"></div> > </li> > > > > > > > > <li class="frame-info framework"> > <code>/usr/lib/ruby/gems/1.8/gems/sinatra-1.3.6/lib/sinatra/base.rb</code> in > <code><strong>catch</strong></code> > </li> > > <li class="code framework"> > > <ol start="888" > class="pre-context" id="pre-25" > onclick="toggle(25);"> > > <li class="pre-context-line"><code> values += match.captures.to_a.map { |v| force_encoding URI.decode_www_form_component(v) if v } ></code></li> > > <li class="pre-context-line"><code> ></code></li> > > <li class="pre-context-line"><code> if values.any? ></code></li> > > <li class="pre-context-line"><code> original, @params = params, params.merge('splat' => [], 'captures' => values) ></code></li> > > <li class="pre-context-line"><code> keys.zip(values) { |k,v| Array === @params[k] ? @params[k] << v : @params[k] = v if v } ></code></li> > > <li class="pre-context-line"><code> end ></code></li> > > <li class="pre-context-line"><code> ></code></li> > > </ol> > > > <ol start="895" class="context" id="25" > onclick="toggle(25);"> > <li class="context-line" id="context-25"><code> catch(:pass) do</code></li> > </ol> > > > <ol start="896" class="post-context" > id="post-25" onclick="toggle(25);"> > > <li class="post-context-line"><code> conditions.each { |c| throw :pass if c.bind(self).call == false } ></code></li> > > <li class="post-context-line"><code> block ? block[self, values] : yield(self, values) ></code></li> > > <li class="post-context-line"><code> end ></code></li> > > <li class="post-context-line"><code> ensure ></code></li> > > <li class="post-context-line"><code> @params = original if original ></code></li> > > <li class="post-context-line"><code> end ></code></li> > > <li class="post-context-line"><code> ></code></li> > > </ol> > > <div class="clear"></div> > </li> > > > > > > > > <li class="frame-info framework"> > <code>/usr/lib/ruby/gems/1.8/gems/sinatra-1.3.6/lib/sinatra/base.rb</code> in > <code><strong>process_route</strong></code> > </li> > > <li class="code framework"> > > <ol start="888" > class="pre-context" id="pre-26" > onclick="toggle(26);"> > > <li class="pre-context-line"><code> values += match.captures.to_a.map { |v| force_encoding URI.decode_www_form_component(v) if v } ></code></li> > > <li class="pre-context-line"><code> ></code></li> > > <li class="pre-context-line"><code> if values.any? ></code></li> > > <li class="pre-context-line"><code> original, @params = params, params.merge('splat' => [], 'captures' => values) ></code></li> > > <li class="pre-context-line"><code> keys.zip(values) { |k,v| Array === @params[k] ? @params[k] << v : @params[k] = v if v } ></code></li> > > <li class="pre-context-line"><code> end ></code></li> > > <li class="pre-context-line"><code> ></code></li> > > </ol> > > > <ol start="895" class="context" id="26" > onclick="toggle(26);"> > <li class="context-line" id="context-26"><code> catch(:pass) do</code></li> > </ol> > > > <ol start="896" class="post-context" > id="post-26" onclick="toggle(26);"> > > <li class="post-context-line"><code> conditions.each { |c| throw :pass if c.bind(self).call == false } ></code></li> > > <li class="post-context-line"><code> block ? block[self, values] : yield(self, values) ></code></li> > > <li class="post-context-line"><code> end ></code></li> > > <li class="post-context-line"><code> ensure ></code></li> > > <li class="post-context-line"><code> @params = original if original ></code></li> > > <li class="post-context-line"><code> end ></code></li> > > <li class="post-context-line"><code> ></code></li> > > </ol> > > <div class="clear"></div> > </li> > > > > > > > > <li class="frame-info framework"> > <code>/usr/lib/ruby/gems/1.8/gems/sinatra-1.3.6/lib/sinatra/base.rb</code> in > <code><strong>route!</strong></code> > </li> > > <li class="code framework"> > > <ol start="852" > class="pre-context" id="pre-27" > onclick="toggle(27);"> > > <li class="pre-context-line"><code> base.filters[type].each { |args| process_route(*args) } ></code></li> > > <li class="pre-context-line"><code> end ></code></li> > > <li class="pre-context-line"><code> ></code></li> > > <li class="pre-context-line"><code> # Run routes defined on the class and all superclasses. ></code></li> > > <li class="pre-context-line"><code> def route!(base = settings, pass_block=nil) ></code></li> > > <li class="pre-context-line"><code> if routes = base.routes[@request.request_method] ></code></li> > > <li class="pre-context-line"><code> routes.each do |pattern, keys, conditions, block| ></code></li> > > </ol> > > > <ol start="859" class="context" id="27" > onclick="toggle(27);"> > <li class="context-line" id="context-27"><code> pass_block = process_route(pattern, keys, conditions) do |*args|</code></li> > </ol> > > > <ol start="860" class="post-context" > id="post-27" onclick="toggle(27);"> > > <li class="post-context-line"><code> route_eval { block[*args] } ></code></li> > > <li class="post-context-line"><code> end ></code></li> > > <li class="post-context-line"><code> end ></code></li> > > <li class="post-context-line"><code> end ></code></li> > > <li class="post-context-line"><code> ></code></li> > > <li class="post-context-line"><code> # Run routes defined in superclass. ></code></li> > > <li class="post-context-line"><code> if base.superclass.respond_to?(:routes) ></code></li> > > </ol> > > <div class="clear"></div> > </li> > > > > > > > > <li class="frame-info framework"> > <code>/usr/lib/ruby/gems/1.8/gems/sinatra-1.3.6/lib/sinatra/base.rb</code> in > <code><strong>each</strong></code> > </li> > > <li class="code framework"> > > <ol start="851" > class="pre-context" id="pre-28" > onclick="toggle(28);"> > > <li class="pre-context-line"><code> filter! type, base.superclass if base.superclass.respond_to?(:filters) ></code></li> > > <li class="pre-context-line"><code> base.filters[type].each { |args| process_route(*args) } ></code></li> > > <li class="pre-context-line"><code> end ></code></li> > > <li class="pre-context-line"><code> ></code></li> > > <li class="pre-context-line"><code> # Run routes defined on the class and all superclasses. ></code></li> > > <li class="pre-context-line"><code> def route!(base = settings, pass_block=nil) ></code></li> > > <li class="pre-context-line"><code> if routes = base.routes[@request.request_method] ></code></li> > > </ol> > > > <ol start="858" class="context" id="28" > onclick="toggle(28);"> > <li class="context-line" id="context-28"><code> routes.each do |pattern, keys, conditions, block|</code></li> > </ol> > > > <ol start="859" class="post-context" > id="post-28" onclick="toggle(28);"> > > <li class="post-context-line"><code> pass_block = process_route(pattern, keys, conditions) do |*args| ></code></li> > > <li class="post-context-line"><code> route_eval { block[*args] } ></code></li> > > <li class="post-context-line"><code> end ></code></li> > > <li class="post-context-line"><code> end ></code></li> > > <li class="post-context-line"><code> end ></code></li> > > <li class="post-context-line"><code> ></code></li> > > <li class="post-context-line"><code> # Run routes defined in superclass. ></code></li> > > </ol> > > <div class="clear"></div> > </li> > > > > > > > > <li class="frame-info framework"> > <code>/usr/lib/ruby/gems/1.8/gems/sinatra-1.3.6/lib/sinatra/base.rb</code> in > <code><strong>route!</strong></code> > </li> > > <li class="code framework"> > > <ol start="851" > class="pre-context" id="pre-29" > onclick="toggle(29);"> > > <li class="pre-context-line"><code> filter! type, base.superclass if base.superclass.respond_to?(:filters) ></code></li> > > <li class="pre-context-line"><code> base.filters[type].each { |args| process_route(*args) } ></code></li> > > <li class="pre-context-line"><code> end ></code></li> > > <li class="pre-context-line"><code> ></code></li> > > <li class="pre-context-line"><code> # Run routes defined on the class and all superclasses. ></code></li> > > <li class="pre-context-line"><code> def route!(base = settings, pass_block=nil) ></code></li> > > <li class="pre-context-line"><code> if routes = base.routes[@request.request_method] ></code></li> > > </ol> > > > <ol start="858" class="context" id="29" > onclick="toggle(29);"> > <li class="context-line" id="context-29"><code> routes.each do |pattern, keys, conditions, block|</code></li> > </ol> > > > <ol start="859" class="post-context" > id="post-29" onclick="toggle(29);"> > > <li class="post-context-line"><code> pass_block = process_route(pattern, keys, conditions) do |*args| ></code></li> > > <li class="post-context-line"><code> route_eval { block[*args] } ></code></li> > > <li class="post-context-line"><code> end ></code></li> > > <li class="post-context-line"><code> end ></code></li> > > <li class="post-context-line"><code> end ></code></li> > > <li class="post-context-line"><code> ></code></li> > > <li class="post-context-line"><code> # Run routes defined in superclass. ></code></li> > > </ol> > > <div class="clear"></div> > </li> > > > > > > > > <li class="frame-info framework"> > <code>/usr/lib/ruby/gems/1.8/gems/sinatra-1.3.6/lib/sinatra/base.rb</code> in > <code><strong>dispatch!</strong></code> > </li> > > <li class="code framework"> > > <ol start="956" > class="pre-context" id="pre-30" > onclick="toggle(30);"> > > <li class="pre-context-line"><code> end ></code></li> > > <li class="pre-context-line"><code> ></code></li> > > <li class="pre-context-line"><code> # Dispatch a request with error handling. ></code></li> > > <li class="pre-context-line"><code> def dispatch! ></code></li> > > <li class="pre-context-line"><code> invoke do ></code></li> > > <li class="pre-context-line"><code> static! if settings.static? && (request.get? || request.head?) ></code></li> > > <li class="pre-context-line"><code> filter! :before ></code></li> > > </ol> > > > <ol start="963" class="context" id="30" > onclick="toggle(30);"> > <li class="context-line" id="context-30"><code> route!</code></li> > </ol> > > > <ol start="964" class="post-context" > id="post-30" onclick="toggle(30);"> > > <li class="post-context-line"><code> end ></code></li> > > <li class="post-context-line"><code> rescue ::Exception => boom ></code></li> > > <li class="post-context-line"><code> invoke { handle_exception!(boom) } ></code></li> > > <li class="post-context-line"><code> ensure ></code></li> > > <li class="post-context-line"><code> filter! :after unless env['sinatra.static_file'] ></code></li> > > <li class="post-context-line"><code> end ></code></li> > > <li class="post-context-line"><code> ></code></li> > > </ol> > > <div class="clear"></div> > </li> > > > > > > > > <li class="frame-info framework"> > <code>/usr/lib/ruby/gems/1.8/gems/sinatra-1.3.6/lib/sinatra/base.rb</code> in > <code><strong>invoke</strong></code> > </li> > > <li class="code framework"> > > <ol start="939" > class="pre-context" id="pre-31" > onclick="toggle(31);"> > > <li class="pre-context-line"><code> # Creates a Hash with indifferent access. ></code></li> > > <li class="pre-context-line"><code> def indifferent_hash ></code></li> > > <li class="pre-context-line"><code> Hash.new {|hash,key| hash[key.to_s] if Symbol === key } ></code></li> > > <li class="pre-context-line"><code> end ></code></li> > > <li class="pre-context-line"><code> ></code></li> > > <li class="pre-context-line"><code> # Run the block with 'throw :halt' support and apply result to the response. ></code></li> > > <li class="pre-context-line"><code> def invoke ></code></li> > > </ol> > > > <ol start="946" class="context" id="31" > onclick="toggle(31);"> > <li class="context-line" id="context-31"><code> res = catch(:halt) { yield }</code></li> > </ol> > > > <ol start="947" class="post-context" > id="post-31" onclick="toggle(31);"> > > <li class="post-context-line"><code> res = [res] if Fixnum === res or String === res ></code></li> > > <li class="post-context-line"><code> if Array === res and Fixnum === res.first ></code></li> > > <li class="post-context-line"><code> status(res.shift) ></code></li> > > <li class="post-context-line"><code> body(res.pop) ></code></li> > > <li class="post-context-line"><code> headers(*res) ></code></li> > > <li class="post-context-line"><code> elsif res.respond_to? :each ></code></li> > > <li class="post-context-line"><code> body res ></code></li> > > </ol> > > <div class="clear"></div> > </li> > > > > > > > > <li class="frame-info framework"> > <code>/usr/lib/ruby/gems/1.8/gems/sinatra-1.3.6/lib/sinatra/base.rb</code> in > <code><strong>catch</strong></code> > </li> > > <li class="code framework"> > > <ol start="939" > class="pre-context" id="pre-32" > onclick="toggle(32);"> > > <li class="pre-context-line"><code> # Creates a Hash with indifferent access. ></code></li> > > <li class="pre-context-line"><code> def indifferent_hash ></code></li> > > <li class="pre-context-line"><code> Hash.new {|hash,key| hash[key.to_s] if Symbol === key } ></code></li> > > <li class="pre-context-line"><code> end ></code></li> > > <li class="pre-context-line"><code> ></code></li> > > <li class="pre-context-line"><code> # Run the block with 'throw :halt' support and apply result to the response. ></code></li> > > <li class="pre-context-line"><code> def invoke ></code></li> > > </ol> > > > <ol start="946" class="context" id="32" > onclick="toggle(32);"> > <li class="context-line" id="context-32"><code> res = catch(:halt) { yield }</code></li> > </ol> > > > <ol start="947" class="post-context" > id="post-32" onclick="toggle(32);"> > > <li class="post-context-line"><code> res = [res] if Fixnum === res or String === res ></code></li> > > <li class="post-context-line"><code> if Array === res and Fixnum === res.first ></code></li> > > <li class="post-context-line"><code> status(res.shift) ></code></li> > > <li class="post-context-line"><code> body(res.pop) ></code></li> > > <li class="post-context-line"><code> headers(*res) ></code></li> > > <li class="post-context-line"><code> elsif res.respond_to? :each ></code></li> > > <li class="post-context-line"><code> body res ></code></li> > > </ol> > > <div class="clear"></div> > </li> > > > > > > > > <li class="frame-info framework"> > <code>/usr/lib/ruby/gems/1.8/gems/sinatra-1.3.6/lib/sinatra/base.rb</code> in > <code><strong>invoke</strong></code> > </li> > > <li class="code framework"> > > <ol start="939" > class="pre-context" id="pre-33" > onclick="toggle(33);"> > > <li class="pre-context-line"><code> # Creates a Hash with indifferent access. ></code></li> > > <li class="pre-context-line"><code> def indifferent_hash ></code></li> > > <li class="pre-context-line"><code> Hash.new {|hash,key| hash[key.to_s] if Symbol === key } ></code></li> > > <li class="pre-context-line"><code> end ></code></li> > > <li class="pre-context-line"><code> ></code></li> > > <li class="pre-context-line"><code> # Run the block with 'throw :halt' support and apply result to the response. ></code></li> > > <li class="pre-context-line"><code> def invoke ></code></li> > > </ol> > > > <ol start="946" class="context" id="33" > onclick="toggle(33);"> > <li class="context-line" id="context-33"><code> res = catch(:halt) { yield }</code></li> > </ol> > > > <ol start="947" class="post-context" > id="post-33" onclick="toggle(33);"> > > <li class="post-context-line"><code> res = [res] if Fixnum === res or String === res ></code></li> > > <li class="post-context-line"><code> if Array === res and Fixnum === res.first ></code></li> > > <li class="post-context-line"><code> status(res.shift) ></code></li> > > <li class="post-context-line"><code> body(res.pop) ></code></li> > > <li class="post-context-line"><code> headers(*res) ></code></li> > > <li class="post-context-line"><code> elsif res.respond_to? :each ></code></li> > > <li class="post-context-line"><code> body res ></code></li> > > </ol> > > <div class="clear"></div> > </li> > > > > > > > > <li class="frame-info framework"> > <code>/usr/lib/ruby/gems/1.8/gems/sinatra-1.3.6/lib/sinatra/base.rb</code> in > <code><strong>dispatch!</strong></code> > </li> > > <li class="code framework"> > > <ol start="953" > class="pre-context" id="pre-34" > onclick="toggle(34);"> > > <li class="pre-context-line"><code> body res ></code></li> > > <li class="pre-context-line"><code> end ></code></li> > > <li class="pre-context-line"><code> nil # avoid double setting the same response tuple twice ></code></li> > > <li class="pre-context-line"><code> end ></code></li> > > <li class="pre-context-line"><code> ></code></li> > > <li class="pre-context-line"><code> # Dispatch a request with error handling. ></code></li> > > <li class="pre-context-line"><code> def dispatch! ></code></li> > > </ol> > > > <ol start="960" class="context" id="34" > onclick="toggle(34);"> > <li class="context-line" id="context-34"><code> invoke do</code></li> > </ol> > > > <ol start="961" class="post-context" > id="post-34" onclick="toggle(34);"> > > <li class="post-context-line"><code> static! if settings.static? && (request.get? || request.head?) ></code></li> > > <li class="post-context-line"><code> filter! :before ></code></li> > > <li class="post-context-line"><code> route! ></code></li> > > <li class="post-context-line"><code> end ></code></li> > > <li class="post-context-line"><code> rescue ::Exception => boom ></code></li> > > <li class="post-context-line"><code> invoke { handle_exception!(boom) } ></code></li> > > <li class="post-context-line"><code> ensure ></code></li> > > </ol> > > <div class="clear"></div> > </li> > > > > > > > > <li class="frame-info framework"> > <code>/usr/lib/ruby/gems/1.8/gems/sinatra-1.3.6/lib/sinatra/base.rb</code> in > <code><strong>call!</strong></code> > </li> > > <li class="code framework"> > > <ol start="787" > class="pre-context" id="pre-35" > onclick="toggle(35);"> > > <li class="pre-context-line"><code> @request = Request.new(env) ></code></li> > > <li class="pre-context-line"><code> @response = Response.new ></code></li> > > <li class="pre-context-line"><code> @params = indifferent_params(@request.params) ></code></li> > > <li class="pre-context-line"><code> template_cache.clear if settings.reload_templates ></code></li> > > <li class="pre-context-line"><code> force_encoding(@params) ></code></li> > > <li class="pre-context-line"><code> ></code></li> > > <li class="pre-context-line"><code> @response['Content-Type'] = nil ></code></li> > > </ol> > > > <ol start="794" class="context" id="35" > onclick="toggle(35);"> > <li class="context-line" id="context-35"><code> invoke { dispatch! }</code></li> > </ol> > > > <ol start="795" class="post-context" > id="post-35" onclick="toggle(35);"> > > <li class="post-context-line"><code> invoke { error_block!(response.status) } ></code></li> > > <li class="post-context-line"><code> ></code></li> > > <li class="post-context-line"><code> unless @response['Content-Type'] ></code></li> > > <li class="post-context-line"><code> if Array === body and body[0].respond_to? :content_type ></code></li> > > <li class="post-context-line"><code> content_type body[0].content_type ></code></li> > > <li class="post-context-line"><code> else ></code></li> > > <li class="post-context-line"><code> content_type :html ></code></li> > > </ol> > > <div class="clear"></div> > </li> > > > > > > > > <li class="frame-info framework"> > <code>/usr/lib/ruby/gems/1.8/gems/sinatra-1.3.6/lib/sinatra/base.rb</code> in > <code><strong>invoke</strong></code> > </li> > > <li class="code framework"> > > <ol start="939" > class="pre-context" id="pre-36" > onclick="toggle(36);"> > > <li class="pre-context-line"><code> # Creates a Hash with indifferent access. ></code></li> > > <li class="pre-context-line"><code> def indifferent_hash ></code></li> > > <li class="pre-context-line"><code> Hash.new {|hash,key| hash[key.to_s] if Symbol === key } ></code></li> > > <li class="pre-context-line"><code> end ></code></li> > > <li class="pre-context-line"><code> ></code></li> > > <li class="pre-context-line"><code> # Run the block with 'throw :halt' support and apply result to the response. ></code></li> > > <li class="pre-context-line"><code> def invoke ></code></li> > > </ol> > > > <ol start="946" class="context" id="36" > onclick="toggle(36);"> > <li class="context-line" id="context-36"><code> res = catch(:halt) { yield }</code></li> > </ol> > > > <ol start="947" class="post-context" > id="post-36" onclick="toggle(36);"> > > <li class="post-context-line"><code> res = [res] if Fixnum === res or String === res ></code></li> > > <li class="post-context-line"><code> if Array === res and Fixnum === res.first ></code></li> > > <li class="post-context-line"><code> status(res.shift) ></code></li> > > <li class="post-context-line"><code> body(res.pop) ></code></li> > > <li class="post-context-line"><code> headers(*res) ></code></li> > > <li class="post-context-line"><code> elsif res.respond_to? :each ></code></li> > > <li class="post-context-line"><code> body res ></code></li> > > </ol> > > <div class="clear"></div> > </li> > > > > > > > > <li class="frame-info framework"> > <code>/usr/lib/ruby/gems/1.8/gems/sinatra-1.3.6/lib/sinatra/base.rb</code> in > <code><strong>catch</strong></code> > </li> > > <li class="code framework"> > > <ol start="939" > class="pre-context" id="pre-37" > onclick="toggle(37);"> > > <li class="pre-context-line"><code> # Creates a Hash with indifferent access. ></code></li> > > <li class="pre-context-line"><code> def indifferent_hash ></code></li> > > <li class="pre-context-line"><code> Hash.new {|hash,key| hash[key.to_s] if Symbol === key } ></code></li> > > <li class="pre-context-line"><code> end ></code></li> > > <li class="pre-context-line"><code> ></code></li> > > <li class="pre-context-line"><code> # Run the block with 'throw :halt' support and apply result to the response. ></code></li> > > <li class="pre-context-line"><code> def invoke ></code></li> > > </ol> > > > <ol start="946" class="context" id="37" > onclick="toggle(37);"> > <li class="context-line" id="context-37"><code> res = catch(:halt) { yield }</code></li> > </ol> > > > <ol start="947" class="post-context" > id="post-37" onclick="toggle(37);"> > > <li class="post-context-line"><code> res = [res] if Fixnum === res or String === res ></code></li> > > <li class="post-context-line"><code> if Array === res and Fixnum === res.first ></code></li> > > <li class="post-context-line"><code> status(res.shift) ></code></li> > > <li class="post-context-line"><code> body(res.pop) ></code></li> > > <li class="post-context-line"><code> headers(*res) ></code></li> > > <li class="post-context-line"><code> elsif res.respond_to? :each ></code></li> > > <li class="post-context-line"><code> body res ></code></li> > > </ol> > > <div class="clear"></div> > </li> > > > > > > > > <li class="frame-info framework"> > <code>/usr/lib/ruby/gems/1.8/gems/sinatra-1.3.6/lib/sinatra/base.rb</code> in > <code><strong>invoke</strong></code> > </li> > > <li class="code framework"> > > <ol start="939" > class="pre-context" id="pre-38" > onclick="toggle(38);"> > > <li class="pre-context-line"><code> # Creates a Hash with indifferent access. ></code></li> > > <li class="pre-context-line"><code> def indifferent_hash ></code></li> > > <li class="pre-context-line"><code> Hash.new {|hash,key| hash[key.to_s] if Symbol === key } ></code></li> > > <li class="pre-context-line"><code> end ></code></li> > > <li class="pre-context-line"><code> ></code></li> > > <li class="pre-context-line"><code> # Run the block with 'throw :halt' support and apply result to the response. ></code></li> > > <li class="pre-context-line"><code> def invoke ></code></li> > > </ol> > > > <ol start="946" class="context" id="38" > onclick="toggle(38);"> > <li class="context-line" id="context-38"><code> res = catch(:halt) { yield }</code></li> > </ol> > > > <ol start="947" class="post-context" > id="post-38" onclick="toggle(38);"> > > <li class="post-context-line"><code> res = [res] if Fixnum === res or String === res ></code></li> > > <li class="post-context-line"><code> if Array === res and Fixnum === res.first ></code></li> > > <li class="post-context-line"><code> status(res.shift) ></code></li> > > <li class="post-context-line"><code> body(res.pop) ></code></li> > > <li class="post-context-line"><code> headers(*res) ></code></li> > > <li class="post-context-line"><code> elsif res.respond_to? :each ></code></li> > > <li class="post-context-line"><code> body res ></code></li> > > </ol> > > <div class="clear"></div> > </li> > > > > > > > > <li class="frame-info framework"> > <code>/usr/lib/ruby/gems/1.8/gems/sinatra-1.3.6/lib/sinatra/base.rb</code> in > <code><strong>call!</strong></code> > </li> > > <li class="code framework"> > > <ol start="787" > class="pre-context" id="pre-39" > onclick="toggle(39);"> > > <li class="pre-context-line"><code> @request = Request.new(env) ></code></li> > > <li class="pre-context-line"><code> @response = Response.new ></code></li> > > <li class="pre-context-line"><code> @params = indifferent_params(@request.params) ></code></li> > > <li class="pre-context-line"><code> template_cache.clear if settings.reload_templates ></code></li> > > <li class="pre-context-line"><code> force_encoding(@params) ></code></li> > > <li class="pre-context-line"><code> ></code></li> > > <li class="pre-context-line"><code> @response['Content-Type'] = nil ></code></li> > > </ol> > > > <ol start="794" class="context" id="39" > onclick="toggle(39);"> > <li class="context-line" id="context-39"><code> invoke { dispatch! }</code></li> > </ol> > > > <ol start="795" class="post-context" > id="post-39" onclick="toggle(39);"> > > <li class="post-context-line"><code> invoke { error_block!(response.status) } ></code></li> > > <li class="post-context-line"><code> ></code></li> > > <li class="post-context-line"><code> unless @response['Content-Type'] ></code></li> > > <li class="post-context-line"><code> if Array === body and body[0].respond_to? :content_type ></code></li> > > <li class="post-context-line"><code> content_type body[0].content_type ></code></li> > > <li class="post-context-line"><code> else ></code></li> > > <li class="post-context-line"><code> content_type :html ></code></li> > > </ol> > > <div class="clear"></div> > </li> > > > > > > > > <li class="frame-info framework"> > <code>/usr/lib/ruby/gems/1.8/gems/sinatra-1.3.6/lib/sinatra/base.rb</code> in > <code><strong>call</strong></code> > </li> > > <li class="code framework"> > > <ol start="773" > class="pre-context" id="pre-40" > onclick="toggle(40);"> > > <li class="pre-context-line"><code> @app = app ></code></li> > > <li class="pre-context-line"><code> @template_cache = Tilt::Cache.new ></code></li> > > <li class="pre-context-line"><code> yield self if block_given? ></code></li> > > <li class="pre-context-line"><code> end ></code></li> > > <li class="pre-context-line"><code> ></code></li> > > <li class="pre-context-line"><code> # Rack call interface. ></code></li> > > <li class="pre-context-line"><code> def call(env) ></code></li> > > </ol> > > > <ol start="780" class="context" id="40" > onclick="toggle(40);"> > <li class="context-line" id="context-40"><code> dup.call!(env)</code></li> > </ol> > > > <ol start="781" class="post-context" > id="post-40" onclick="toggle(40);"> > > <li class="post-context-line"><code> end ></code></li> > > <li class="post-context-line"><code> ></code></li> > > <li class="post-context-line"><code> attr_accessor :env, :request, :response, :params ></code></li> > > <li class="post-context-line"><code> ></code></li> > > <li class="post-context-line"><code> def call!(env) # :nodoc: ></code></li> > > <li class="post-context-line"><code> @env = env ></code></li> > > <li class="post-context-line"><code> @request = Request.new(env) ></code></li> > > </ol> > > <div class="clear"></div> > </li> > > > > > > > > <li class="frame-info system"> > <code>/usr/lib/ruby/gems/1.8/gems/rack-1.4.1/lib/rack/commonlogger.rb</code> in > <code><strong>call_without_check</strong></code> > </li> > > <li class="code system"> > > <ol start="13" > class="pre-context" id="pre-41" > onclick="toggle(41);"> > > <li class="pre-context-line"><code> def initialize(app, logger=nil) ></code></li> > > <li class="pre-context-line"><code> @app = app ></code></li> > > <li class="pre-context-line"><code> @logger = logger ></code></li> > > <li class="pre-context-line"><code> end ></code></li> > > <li class="pre-context-line"><code> ></code></li> > > <li class="pre-context-line"><code> def call(env) ></code></li> > > <li class="pre-context-line"><code> began_at = Time.now ></code></li> > > </ol> > > > <ol start="20" class="context" id="41" > onclick="toggle(41);"> > <li class="context-line" id="context-41"><code> status, header, body = @app.call(env)</code></li> > </ol> > > > <ol start="21" class="post-context" > id="post-41" onclick="toggle(41);"> > > <li class="post-context-line"><code> header = Utils::HeaderHash.new(header) ></code></li> > > <li class="post-context-line"><code> body = BodyProxy.new(body) { log(env, status, header, began_at) } ></code></li> > > <li class="post-context-line"><code> [status, header, body] ></code></li> > > <li class="post-context-line"><code> end ></code></li> > > <li class="post-context-line"><code> ></code></li> > > <li class="post-context-line"><code> private ></code></li> > > <li class="post-context-line"><code> ></code></li> > > </ol> > > <div class="clear"></div> > </li> > > > > > > > > <li class="frame-info framework"> > <code>/usr/lib/ruby/gems/1.8/gems/sinatra-1.3.6/lib/sinatra/base.rb</code> in > <code><strong>call</strong></code> > </li> > > <li class="code framework"> > > <ol start="154" > class="pre-context" id="pre-42" > onclick="toggle(42);"> > > <li class="pre-context-line"><code> env['sinatra.commonlogger'] ? @app.call(env) : super ></code></li> > > <li class="pre-context-line"><code> end ></code></li> > > <li class="pre-context-line"><code> ></code></li> > > <li class="pre-context-line"><code> superclass.class_eval do ></code></li> > > <li class="pre-context-line"><code> alias call_without_check call unless method_defined? :call_without_check ></code></li> > > <li class="pre-context-line"><code> def call(env) ></code></li> > > <li class="pre-context-line"><code> env['sinatra.commonlogger'] = true ></code></li> > > </ol> > > > <ol start="161" class="context" id="42" > onclick="toggle(42);"> > <li class="context-line" id="context-42"><code> call_without_check(env)</code></li> > </ol> > > > <ol start="162" class="post-context" > id="post-42" onclick="toggle(42);"> > > <li class="post-context-line"><code> end ></code></li> > > <li class="post-context-line"><code> end ></code></li> > > <li class="post-context-line"><code> end ></code></li> > > <li class="post-context-line"><code> ></code></li> > > <li class="post-context-line"><code> class NotFound < NameError #:nodoc: ></code></li> > > <li class="post-context-line"><code> def code ; 404 ; end ></code></li> > > <li class="post-context-line"><code> end ></code></li> > > </ol> > > <div class="clear"></div> > </li> > > > > > > > > <li class="frame-info app"> > <code>/usr/share/foreman-proxy/lib/proxy/log.rb</code> in > <code><strong>call</strong></code> > </li> > > <li class="code app"> > > <ol start="56" > class="pre-context" id="pre-43" > onclick="toggle(43);"> > > <li class="pre-context-line"><code> ></code></li> > > <li class="pre-context-line"><code> def initialize(app) ></code></li> > > <li class="pre-context-line"><code> @app = app ></code></li> > > <li class="pre-context-line"><code> end ></code></li> > > <li class="pre-context-line"><code> ></code></li> > > <li class="pre-context-line"><code> def call(env) ></code></li> > > <li class="pre-context-line"><code> env['rack.logger'] = logger ></code></li> > > </ol> > > > <ol start="63" class="context" id="43" > onclick="toggle(43);"> > <li class="context-line" id="context-43"><code> @app.call(env)</code></li> > </ol> > > > <ol start="64" class="post-context" > id="post-43" onclick="toggle(43);"> > > <li class="post-context-line"><code> end ></code></li> > > <li class="post-context-line"><code> end ></code></li> > > <li class="post-context-line"><code>end ></code></li> > > </ol> > > <div class="clear"></div> > </li> > > > > > > > > <li class="frame-info system"> > <code>/usr/lib/ruby/gems/1.8/gems/rack-protection-1.5.0/lib/rack/protection/xss_header.rb</code> in > <code><strong>call</strong></code> > </li> > > <li class="code system"> > > <ol start="11" > class="pre-context" id="pre-44" > onclick="toggle(44);"> > > <li class="pre-context-line"><code> # ></code></li> > > <li class="pre-context-line"><code> # Options: ></code></li> > > <li class="pre-context-line"><code> # xss_mode:: How the browser should prevent the attack (default: :block) ></code></li> > > <li class="pre-context-line"><code> class XSSHeader < Base ></code></li> > > <li class="pre-context-line"><code> default_options :xss_mode => :block, :nosniff => true ></code></li> > > <li class="pre-context-line"><code> ></code></li> > > <li class="pre-context-line"><code> def call(env) ></code></li> > > </ol> > > > <ol start="18" class="context" id="44" > onclick="toggle(44);"> > <li class="context-line" id="context-44"><code> status, headers, body = @app.call(env)</code></li> > </ol> > > > <ol start="19" class="post-context" > id="post-44" onclick="toggle(44);"> > > <li class="post-context-line"><code> headers['X-XSS-Protection'] ||= "1; mode=#{options[:xss_mode]}" if html? headers ></code></li> > > <li class="post-context-line"><code> headers['X-Content-Type-Options'] ||= 'nosniff' if options[:nosniff] ></code></li> > > <li class="post-context-line"><code> [status, headers, body] ></code></li> > > <li class="post-context-line"><code> end ></code></li> > > <li class="post-context-line"><code> end ></code></li> > > <li class="post-context-line"><code> end ></code></li> > > <li class="post-context-line"><code>end ></code></li> > > </ol> > > <div class="clear"></div> > </li> > > > > > > > > <li class="frame-info system"> > <code>/usr/lib/ruby/gems/1.8/gems/rack-protection-1.5.0/lib/rack/protection/path_traversal.rb</code> in > <code><strong>call</strong></code> > </li> > > <li class="code system"> > > <ol start="9" > class="pre-context" id="pre-45" > onclick="toggle(45);"> > > <li class="pre-context-line"><code> # ></code></li> > > <li class="pre-context-line"><code> # Unescapes '/' and '.', expands +path_info+. ></code></li> > > <li class="pre-context-line"><code> # Thus <tt>GET /foo/%2e%2e%2fbar</tt> becomes <tt>GET /bar</tt>. ></code></li> > > <li class="pre-context-line"><code> class PathTraversal < Base ></code></li> > > <li class="pre-context-line"><code> def call(env) ></code></li> > > <li class="pre-context-line"><code> path_was = env["PATH_INFO"] ></code></li> > > <li class="pre-context-line"><code> env["PATH_INFO"] = cleanup path_was if path_was && !path_was.empty? ></code></li> > > </ol> > > > <ol start="16" class="context" id="45" > onclick="toggle(45);"> > <li class="context-line" id="context-45"><code> app.call env</code></li> > </ol> > > > <ol start="17" class="post-context" > id="post-45" onclick="toggle(45);"> > > <li class="post-context-line"><code> ensure ></code></li> > > <li class="post-context-line"><code> env["PATH_INFO"] = path_was ></code></li> > > <li class="post-context-line"><code> end ></code></li> > > <li class="post-context-line"><code> ></code></li> > > <li class="post-context-line"><code> def cleanup(path) ></code></li> > > <li class="post-context-line"><code> parts = [] ></code></li> > > <li class="post-context-line"><code> unescaped = path.gsub('%2e', '.').gsub('%2f', '/') ></code></li> > > </ol> > > <div class="clear"></div> > </li> > > > > > > > > <li class="frame-info system"> > <code>/usr/lib/ruby/gems/1.8/gems/rack-protection-1.5.0/lib/rack/protection/json_csrf.rb</code> in > <code><strong>call</strong></code> > </li> > > <li class="code system"> > > <ol start="11" > class="pre-context" id="pre-46" > onclick="toggle(46);"> > > <li class="pre-context-line"><code> # Array prototype has been patched to track data. Checks the referrer ></code></li> > > <li class="pre-context-line"><code> # even on GET requests if the content type is JSON. ></code></li> > > <li class="pre-context-line"><code> class JsonCsrf < Base ></code></li> > > <li class="pre-context-line"><code> default_reaction :deny ></code></li> > > <li class="pre-context-line"><code> ></code></li> > > <li class="pre-context-line"><code> def call(env) ></code></li> > > <li class="pre-context-line"><code> request = Request.new(env) ></code></li> > > </ol> > > > <ol start="18" class="context" id="46" > onclick="toggle(46);"> > <li class="context-line" id="context-46"><code> status, headers, body = app.call(env)</code></li> > </ol> > > > <ol start="19" class="post-context" > id="post-46" onclick="toggle(46);"> > > <li class="post-context-line"><code> ></code></li> > > <li class="post-context-line"><code> if has_vector? request, headers ></code></li> > > <li class="post-context-line"><code> warn env, "attack prevented by #{self.class}" ></code></li> > > <li class="post-context-line"><code> react(env) ></code></li> > > <li class="post-context-line"><code> else ></code></li> > > <li class="post-context-line"><code> [status, headers, body] ></code></li> > > <li class="post-context-line"><code> end ></code></li> > > </ol> > > <div class="clear"></div> > </li> > > > > > > > > <li class="frame-info system"> > <code>/usr/lib/ruby/gems/1.8/gems/rack-protection-1.5.0/lib/rack/protection/base.rb</code> in > <code><strong>call</strong></code> > </li> > > <li class="code system"> > > <ol start="42" > class="pre-context" id="pre-47" > onclick="toggle(47);"> > > <li class="pre-context-line"><code> end ></code></li> > > <li class="pre-context-line"><code> ></code></li> > > <li class="pre-context-line"><code> def call(env) ></code></li> > > <li class="pre-context-line"><code> unless accepts? env ></code></li> > > <li class="pre-context-line"><code> warn env, "attack prevented by #{self.class}" ></code></li> > > <li class="pre-context-line"><code> result = react env ></code></li> > > <li class="pre-context-line"><code> end ></code></li> > > </ol> > > > <ol start="49" class="context" id="47" > onclick="toggle(47);"> > <li class="context-line" id="context-47"><code> result or app.call(env)</code></li> > </ol> > > > <ol start="50" class="post-context" > id="post-47" onclick="toggle(47);"> > > <li class="post-context-line"><code> end ></code></li> > > <li class="post-context-line"><code> ></code></li> > > <li class="post-context-line"><code> def react(env) ></code></li> > > <li class="post-context-line"><code> result = send(options[:reaction], env) ></code></li> > > <li class="post-context-line"><code> result if Array === result and result.size == 3 ></code></li> > > <li class="post-context-line"><code> end ></code></li> > > <li class="post-context-line"><code> ></code></li> > > </ol> > > <div class="clear"></div> > </li> > > > > > > > > <li class="frame-info system"> > <code>/usr/lib/ruby/gems/1.8/gems/rack-protection-1.5.0/lib/rack/protection/frame_options.rb</code> in > <code><strong>call</strong></code> > </li> > > <li class="code system"> > > <ol start="24" > class="pre-context" id="pre-48" > onclick="toggle(48);"> > > <li class="pre-context-line"><code> frame_options = options[:frame_options] ></code></li> > > <li class="pre-context-line"><code> frame_options = options[:frame_options].to_s.upcase unless frame_options.respond_to? :to_str ></code></li> > > <li class="pre-context-line"><code> frame_options.to_str ></code></li> > > <li class="pre-context-line"><code> end ></code></li> > > <li class="pre-context-line"><code> end ></code></li> > > <li class="pre-context-line"><code> ></code></li> > > <li class="pre-context-line"><code> def call(env) ></code></li> > > </ol> > > > <ol start="31" class="context" id="48" > onclick="toggle(48);"> > <li class="context-line" id="context-48"><code> status, headers, body = @app.call(env)</code></li> > </ol> > > > <ol start="32" class="post-context" > id="post-48" onclick="toggle(48);"> > > <li class="post-context-line"><code> headers['X-Frame-Options'] ||= frame_options if html? headers ></code></li> > > <li class="post-context-line"><code> [status, headers, body] ></code></li> > > <li class="post-context-line"><code> end ></code></li> > > <li class="post-context-line"><code> end ></code></li> > > <li class="post-context-line"><code> end ></code></li> > > <li class="post-context-line"><code>end ></code></li> > > </ol> > > <div class="clear"></div> > </li> > > > > > > > > <li class="frame-info system"> > <code>/usr/lib/ruby/gems/1.8/gems/rack-1.4.1/lib/rack/nulllogger.rb</code> in > <code><strong>call</strong></code> > </li> > > <li class="code system"> > > <ol start="2" > class="pre-context" id="pre-49" > onclick="toggle(49);"> > > <li class="pre-context-line"><code> class NullLogger ></code></li> > > <li class="pre-context-line"><code> def initialize(app) ></code></li> > > <li class="pre-context-line"><code> @app = app ></code></li> > > <li class="pre-context-line"><code> end ></code></li> > > <li class="pre-context-line"><code> ></code></li> > > <li class="pre-context-line"><code> def call(env) ></code></li> > > <li class="pre-context-line"><code> env['rack.logger'] = self ></code></li> > > </ol> > > > <ol start="9" class="context" id="49" > onclick="toggle(49);"> > <li class="context-line" id="context-49"><code> @app.call(env)</code></li> > </ol> > > > <ol start="10" class="post-context" > id="post-49" onclick="toggle(49);"> > > <li class="post-context-line"><code> end ></code></li> > > <li class="post-context-line"><code> ></code></li> > > <li class="post-context-line"><code> def info(progname = nil, &block); end ></code></li> > > <li class="post-context-line"><code> def debug(progname = nil, &block); end ></code></li> > > <li class="post-context-line"><code> def warn(progname = nil, &block); end ></code></li> > > <li class="post-context-line"><code> def error(progname = nil, &block); end ></code></li> > > <li class="post-context-line"><code> def fatal(progname = nil, &block); end ></code></li> > > </ol> > > <div class="clear"></div> > </li> > > > > > > > > <li class="frame-info system"> > <code>/usr/lib/ruby/gems/1.8/gems/rack-1.4.1/lib/rack/head.rb</code> in > <code><strong>call</strong></code> > </li> > > <li class="code system"> > > <ol start="2" > class="pre-context" id="pre-50" > onclick="toggle(50);"> > > <li class="pre-context-line"><code> ></code></li> > > <li class="pre-context-line"><code>class Head ></code></li> > > <li class="pre-context-line"><code> def initialize(app) ></code></li> > > <li class="pre-context-line"><code> @app = app ></code></li> > > <li class="pre-context-line"><code> end ></code></li> > > <li class="pre-context-line"><code> ></code></li> > > <li class="pre-context-line"><code> def call(env) ></code></li> > > </ol> > > > <ol start="9" class="context" id="50" > onclick="toggle(50);"> > <li class="context-line" id="context-50"><code> status, headers, body = @app.call(env)</code></li> > </ol> > > > <ol start="10" class="post-context" > id="post-50" onclick="toggle(50);"> > > <li class="post-context-line"><code> ></code></li> > > <li class="post-context-line"><code> if env["REQUEST_METHOD"] == "HEAD" ></code></li> > > <li class="post-context-line"><code> [status, headers, []] ></code></li> > > <li class="post-context-line"><code> else ></code></li> > > <li class="post-context-line"><code> [status, headers, body] ></code></li> > > <li class="post-context-line"><code> end ></code></li> > > <li class="post-context-line"><code> end ></code></li> > > </ol> > > <div class="clear"></div> > </li> > > > > > > > > <li class="frame-info framework"> > <code>/usr/lib/ruby/gems/1.8/gems/sinatra-1.3.6/lib/sinatra/showexceptions.rb</code> in > <code><strong>call</strong></code> > </li> > > <li class="code framework"> > > <ol start="14" > class="pre-context" id="pre-51" > onclick="toggle(51);"> > > <li class="pre-context-line"><code> ></code></li> > > <li class="pre-context-line"><code> def initialize(app) ></code></li> > > <li class="pre-context-line"><code> @app = app ></code></li> > > <li class="pre-context-line"><code> @template = ERB.new(TEMPLATE) ></code></li> > > <li class="pre-context-line"><code> end ></code></li> > > <li class="pre-context-line"><code> ></code></li> > > <li class="pre-context-line"><code> def call(env) ></code></li> > > </ol> > > > <ol start="21" class="context" id="51" > onclick="toggle(51);"> > <li class="context-line" id="context-51"><code> @app.call(env)</code></li> > </ol> > > > <ol start="22" class="post-context" > id="post-51" onclick="toggle(51);"> > > <li class="post-context-line"><code> rescue Exception => e ></code></li> > > <li class="post-context-line"><code> errors, env["rack.errors"] = env["rack.errors"], @@eats_errors ></code></li> > > <li class="post-context-line"><code> ></code></li> > > <li class="post-context-line"><code> if respond_to?(:prefers_plain_text?) and prefers_plain_text?(env) ></code></li> > > <li class="post-context-line"><code> content_type = "text/plain" ></code></li> > > <li class="post-context-line"><code> body = [dump_exception(e)] ></code></li> > > <li class="post-context-line"><code> else ></code></li> > > </ol> > > <div class="clear"></div> > </li> > > > > > > > > <li class="frame-info framework"> > <code>/usr/lib/ruby/gems/1.8/gems/sinatra-1.3.6/lib/sinatra/base.rb</code> in > <code><strong>call</strong></code> > </li> > > <li class="code framework"> > > <ol start="117" > class="pre-context" id="pre-52" > onclick="toggle(52);"> > > <li class="pre-context-line"><code> # Some Rack handlers (Thin, Rainbows!) implement an extended body object protocol, however, ></code></li> > > <li class="pre-context-line"><code> # some middleware (namely Rack::Lint) will break it by not mirroring the methods in question. ></code></li> > > <li class="pre-context-line"><code> # This middleware will detect an extended body object and will make sure it reaches the ></code></li> > > <li class="pre-context-line"><code> # handler directly. We do this here, so our middleware and middleware set up by the app will ></code></li> > > <li class="pre-context-line"><code> # still be able to run. ></code></li> > > <li class="pre-context-line"><code> class ExtendedRack < Struct.new(:app) ></code></li> > > <li class="pre-context-line"><code> def call(env) ></code></li> > > </ol> > > > <ol start="124" class="context" id="52" > onclick="toggle(52);"> > <li class="context-line" id="context-52"><code> result, callback = app.call(env), env['async.callback']</code></li> > </ol> > > > <ol start="125" class="post-context" > id="post-52" onclick="toggle(52);"> > > <li class="post-context-line"><code> return result unless callback and async?(*result) ></code></li> > > <li class="post-context-line"><code> after_response { callback.call result } ></code></li> > > <li class="post-context-line"><code> setup_close(env, *result) ></code></li> > > <li class="post-context-line"><code> throw :async ></code></li> > > <li class="post-context-line"><code> end ></code></li> > > <li class="post-context-line"><code> ></code></li> > > <li class="post-context-line"><code> private ></code></li> > > </ol> > > <div class="clear"></div> > </li> > > > > > > > > <li class="frame-info framework"> > <code>/usr/lib/ruby/gems/1.8/gems/sinatra-1.3.6/lib/sinatra/base.rb</code> in > <code><strong>call</strong></code> > </li> > > <li class="code framework"> > > <ol start="1410" > class="pre-context" id="pre-53" > onclick="toggle(53);"> > > <li class="pre-context-line"><code> setup_default_middleware builder ></code></li> > > <li class="pre-context-line"><code> setup_middleware builder ></code></li> > > <li class="pre-context-line"><code> builder.run new!(*args, &bk) ></code></li> > > <li class="pre-context-line"><code> builder ></code></li> > > <li class="pre-context-line"><code> end ></code></li> > > <li class="pre-context-line"><code> ></code></li> > > <li class="pre-context-line"><code> def call(env) ></code></li> > > </ol> > > > <ol start="1417" class="context" id="53" > onclick="toggle(53);"> > <li class="context-line" id="context-53"><code> synchronize { prototype.call(env) }</code></li> > </ol> > > > <ol start="1418" class="post-context" > id="post-53" onclick="toggle(53);"> > > <li class="post-context-line"><code> end ></code></li> > > <li class="post-context-line"><code> ></code></li> > > <li class="post-context-line"><code> private ></code></li> > > <li class="post-context-line"><code> def setup_default_middleware(builder) ></code></li> > > <li class="post-context-line"><code> builder.use ExtendedRack ></code></li> > > <li class="post-context-line"><code> builder.use ShowExceptions if show_exceptions? ></code></li> > > <li class="post-context-line"><code> builder.use Rack::MethodOverride if method_override? ></code></li> > > </ol> > > <div class="clear"></div> > </li> > > > > > > > > <li class="frame-info framework"> > <code>/usr/lib/ruby/gems/1.8/gems/sinatra-1.3.6/lib/sinatra/base.rb</code> in > <code><strong>synchronize</strong></code> > </li> > > <li class="code framework"> > > <ol start="1492" > class="pre-context" id="pre-54" > onclick="toggle(54);"> > > <li class="pre-context-line"><code> end ></code></li> > > <li class="pre-context-line"><code> ></code></li> > > <li class="pre-context-line"><code> @@mutex = Mutex.new ></code></li> > > <li class="pre-context-line"><code> def synchronize(&block) ></code></li> > > <li class="pre-context-line"><code> if lock? ></code></li> > > <li class="pre-context-line"><code> @@mutex.synchronize(&block) ></code></li> > > <li class="pre-context-line"><code> else ></code></li> > > </ol> > > > <ol start="1499" class="context" id="54" > onclick="toggle(54);"> > <li class="context-line" id="context-54"><code> yield</code></li> > </ol> > > > <ol start="1500" class="post-context" > id="post-54" onclick="toggle(54);"> > > <li class="post-context-line"><code> end ></code></li> > > <li class="post-context-line"><code> end ></code></li> > > <li class="post-context-line"><code> ></code></li> > > <li class="post-context-line"><code> public ></code></li> > > <li class="post-context-line"><code> CALLERS_TO_IGNORE = [ # :nodoc: ></code></li> > > <li class="post-context-line"><code> /\/sinatra(\/(base|main|showexceptions))?\.rb$/, # all sinatra code ></code></li> > > <li class="post-context-line"><code> /lib\/tilt.*\.rb$/, # all tilt code ></code></li> > > </ol> > > <div class="clear"></div> > </li> > > > > > > > > <li class="frame-info framework"> > <code>/usr/lib/ruby/gems/1.8/gems/sinatra-1.3.6/lib/sinatra/base.rb</code> in > <code><strong>call</strong></code> > </li> > > <li class="code framework"> > > <ol start="1410" > class="pre-context" id="pre-55" > onclick="toggle(55);"> > > <li class="pre-context-line"><code> setup_default_middleware builder ></code></li> > > <li class="pre-context-line"><code> setup_middleware builder ></code></li> > > <li class="pre-context-line"><code> builder.run new!(*args, &bk) ></code></li> > > <li class="pre-context-line"><code> builder ></code></li> > > <li class="pre-context-line"><code> end ></code></li> > > <li class="pre-context-line"><code> ></code></li> > > <li class="pre-context-line"><code> def call(env) ></code></li> > > </ol> > > > <ol start="1417" class="context" id="55" > onclick="toggle(55);"> > <li class="context-line" id="context-55"><code> synchronize { prototype.call(env) }</code></li> > </ol> > > > <ol start="1418" class="post-context" > id="post-55" onclick="toggle(55);"> > > <li class="post-context-line"><code> end ></code></li> > > <li class="post-context-line"><code> ></code></li> > > <li class="post-context-line"><code> private ></code></li> > > <li class="post-context-line"><code> def setup_default_middleware(builder) ></code></li> > > <li class="post-context-line"><code> builder.use ExtendedRack ></code></li> > > <li class="post-context-line"><code> builder.use ShowExceptions if show_exceptions? ></code></li> > > <li class="post-context-line"><code> builder.use Rack::MethodOverride if method_override? ></code></li> > > </ol> > > <div class="clear"></div> > </li> > > > > > > > > <li class="frame-info system"> > <code>/usr/lib/ruby/gems/1.8/gems/rack-1.4.1/lib/rack/builder.rb</code> in > <code><strong>call</strong></code> > </li> > > <li class="code system"> > > <ol start="127" > class="pre-context" id="pre-56" > onclick="toggle(56);"> > > <li class="pre-context-line"><code> def to_app ></code></li> > > <li class="pre-context-line"><code> app = @map ? generate_map(@run, @map) : @run ></code></li> > > <li class="pre-context-line"><code> fail "missing run or map statement" unless app ></code></li> > > <li class="pre-context-line"><code> @use.reverse.inject(app) { |a,e| e[a] } ></code></li> > > <li class="pre-context-line"><code> end ></code></li> > > <li class="pre-context-line"><code> ></code></li> > > <li class="pre-context-line"><code> def call(env) ></code></li> > > </ol> > > > <ol start="134" class="context" id="56" > onclick="toggle(56);"> > <li class="context-line" id="context-56"><code> to_app.call(env)</code></li> > </ol> > > > <ol start="135" class="post-context" > id="post-56" onclick="toggle(56);"> > > <li class="post-context-line"><code> end ></code></li> > > <li class="post-context-line"><code> ></code></li> > > <li class="post-context-line"><code> private ></code></li> > > <li class="post-context-line"><code> ></code></li> > > <li class="post-context-line"><code> def generate_map(default_app, mapping) ></code></li> > > <li class="post-context-line"><code> mapped = default_app ? {'/' => default_app} : {} ></code></li> > > <li class="post-context-line"><code> mapping.each { |r,b| mapped[r] = self.class.new(default_app, &b) } ></code></li> > > </ol> > > <div class="clear"></div> > </li> > > > > > > > > <li class="frame-info system"> > <code>/usr/lib/ruby/gems/1.8/gems/rack-1.4.1/lib/rack/urlmap.rb</code> in > <code><strong>call</strong></code> > </li> > > <li class="code system"> > > <ol start="57" > class="pre-context" id="pre-57" > onclick="toggle(57);"> > > <li class="pre-context-line"><code> ></code></li> > > <li class="pre-context-line"><code> rest = m[1] ></code></li> > > <li class="pre-context-line"><code> next unless !rest || rest.empty? || rest[0] == ?/ ></code></li> > > <li class="pre-context-line"><code> ></code></li> > > <li class="pre-context-line"><code> env['SCRIPT_NAME'] = (script_name + location) ></code></li> > > <li class="pre-context-line"><code> env['PATH_INFO'] = rest ></code></li> > > <li class="pre-context-line"><code> ></code></li> > > </ol> > > > <ol start="64" class="context" id="57" > onclick="toggle(57);"> > <li class="context-line" id="context-57"><code> return app.call(env)</code></li> > </ol> > > > <ol start="65" class="post-context" > id="post-57" onclick="toggle(57);"> > > <li class="post-context-line"><code> end ></code></li> > > <li class="post-context-line"><code> ></code></li> > > <li class="post-context-line"><code> [404, {"Content-Type" => "text/plain", "X-Cascade" => "pass"}, ["Not Found: #{path}"]] ></code></li> > > <li class="post-context-line"><code> ></code></li> > > <li class="post-context-line"><code> ensure ></code></li> > > <li class="post-context-line"><code> env['PATH_INFO'] = path ></code></li> > > <li class="post-context-line"><code> env['SCRIPT_NAME'] = script_name ></code></li> > > </ol> > > <div class="clear"></div> > </li> > > > > > > > > <li class="frame-info system"> > <code>/usr/lib/ruby/gems/1.8/gems/rack-1.4.1/lib/rack/urlmap.rb</code> in > <code><strong>each</strong></code> > </li> > > <li class="code system"> > > <ol start="42" > class="pre-context" id="pre-58" > onclick="toggle(58);"> > > <li class="pre-context-line"><code> def call(env) ></code></li> > > <li class="pre-context-line"><code> path = env["PATH_INFO"] ></code></li> > > <li class="pre-context-line"><code> script_name = env['SCRIPT_NAME'] ></code></li> > > <li class="pre-context-line"><code> hHost = env['HTTP_HOST'] ></code></li> > > <li class="pre-context-line"><code> sName = env['SERVER_NAME'] ></code></li> > > <li class="pre-context-line"><code> sPort = env['SERVER_PORT'] ></code></li> > > <li class="pre-context-line"><code> ></code></li> > > </ol> > > > <ol start="49" class="context" id="58" > onclick="toggle(58);"> > <li class="context-line" id="context-58"><code> @mapping.each do |host, location, match, app|</code></li> > </ol> > > > <ol start="50" class="post-context" > id="post-58" onclick="toggle(58);"> > > <li class="post-context-line"><code> unless hHost == host \ ></code></li> > > <li class="post-context-line"><code> || sName == host \ ></code></li> > > <li class="post-context-line"><code> || (!host && (hHost == sName || hHost == sName+':'+sPort)) ></code></li> > > <li class="post-context-line"><code> next ></code></li> > > <li class="post-context-line"><code> end ></code></li> > > <li class="post-context-line"><code> ></code></li> > > <li class="post-context-line"><code> next unless m = match.match(path.to_s) ></code></li> > > </ol> > > <div class="clear"></div> > </li> > > > > > > > > <li class="frame-info system"> > <code>/usr/lib/ruby/gems/1.8/gems/rack-1.4.1/lib/rack/urlmap.rb</code> in > <code><strong>call</strong></code> > </li> > > <li class="code system"> > > <ol start="42" > class="pre-context" id="pre-59" > onclick="toggle(59);"> > > <li class="pre-context-line"><code> def call(env) ></code></li> > > <li class="pre-context-line"><code> path = env["PATH_INFO"] ></code></li> > > <li class="pre-context-line"><code> script_name = env['SCRIPT_NAME'] ></code></li> > > <li class="pre-context-line"><code> hHost = env['HTTP_HOST'] ></code></li> > > <li class="pre-context-line"><code> sName = env['SERVER_NAME'] ></code></li> > > <li class="pre-context-line"><code> sPort = env['SERVER_PORT'] ></code></li> > > <li class="pre-context-line"><code> ></code></li> > > </ol> > > > <ol start="49" class="context" id="59" > onclick="toggle(59);"> > <li class="context-line" id="context-59"><code> @mapping.each do |host, location, match, app|</code></li> > </ol> > > > <ol start="50" class="post-context" > id="post-59" onclick="toggle(59);"> > > <li class="post-context-line"><code> unless hHost == host \ ></code></li> > > <li class="post-context-line"><code> || sName == host \ ></code></li> > > <li class="post-context-line"><code> || (!host && (hHost == sName || hHost == sName+':'+sPort)) ></code></li> > > <li class="post-context-line"><code> next ></code></li> > > <li class="post-context-line"><code> end ></code></li> > > <li class="post-context-line"><code> ></code></li> > > <li class="post-context-line"><code> next unless m = match.match(path.to_s) ></code></li> > > </ol> > > <div class="clear"></div> > </li> > > > > > > > > <li class="frame-info system"> > <code>/usr/lib/ruby/gems/1.8/gems/rack-1.4.1/lib/rack/builder.rb</code> in > <code><strong>call</strong></code> > </li> > > <li class="code system"> > > <ol start="127" > class="pre-context" id="pre-60" > onclick="toggle(60);"> > > <li class="pre-context-line"><code> def to_app ></code></li> > > <li class="pre-context-line"><code> app = @map ? generate_map(@run, @map) : @run ></code></li> > > <li class="pre-context-line"><code> fail "missing run or map statement" unless app ></code></li> > > <li class="pre-context-line"><code> @use.reverse.inject(app) { |a,e| e[a] } ></code></li> > > <li class="pre-context-line"><code> end ></code></li> > > <li class="pre-context-line"><code> ></code></li> > > <li class="pre-context-line"><code> def call(env) ></code></li> > > </ol> > > > <ol start="134" class="context" id="60" > onclick="toggle(60);"> > <li class="context-line" id="context-60"><code> to_app.call(env)</code></li> > </ol> > > > <ol start="135" class="post-context" > id="post-60" onclick="toggle(60);"> > > <li class="post-context-line"><code> end ></code></li> > > <li class="post-context-line"><code> ></code></li> > > <li class="post-context-line"><code> private ></code></li> > > <li class="post-context-line"><code> ></code></li> > > <li class="post-context-line"><code> def generate_map(default_app, mapping) ></code></li> > > <li class="post-context-line"><code> mapped = default_app ? {'/' => default_app} : {} ></code></li> > > <li class="post-context-line"><code> mapping.each { |r,b| mapped[r] = self.class.new(default_app, &b) } ></code></li> > > </ol> > > <div class="clear"></div> > </li> > > > > > > > > <li class="frame-info system"> > <code>/usr/lib/ruby/gems/1.8/gems/rack-1.4.1/lib/rack/handler/webrick.rb</code> in > <code><strong>service</strong></code> > </li> > > <li class="code system"> > > <ol start="52" > class="pre-context" id="pre-61" > onclick="toggle(61);"> > > <li class="pre-context-line"><code> env["QUERY_STRING"] ||= "" ></code></li> > > <li class="pre-context-line"><code> unless env["PATH_INFO"] == "" ></code></li> > > <li class="pre-context-line"><code> path, n = req.request_uri.path, env["SCRIPT_NAME"].length ></code></li> > > <li class="pre-context-line"><code> env["PATH_INFO"] = path[n, path.length-n] ></code></li> > > <li class="pre-context-line"><code> end ></code></li> > > <li class="pre-context-line"><code> env["REQUEST_PATH"] ||= [env["SCRIPT_NAME"], env["PATH_INFO"]].join ></code></li> > > <li class="pre-context-line"><code> ></code></li> > > </ol> > > > <ol start="59" class="context" id="61" > onclick="toggle(61);"> > <li class="context-line" id="context-61"><code> status, headers, body = @app.call(env)</code></li> > </ol> > > > <ol start="60" class="post-context" > id="post-61" onclick="toggle(61);"> > > <li class="post-context-line"><code> begin ></code></li> > > <li class="post-context-line"><code> res.status = status.to_i ></code></li> > > <li class="post-context-line"><code> headers.each { |k, vs| ></code></li> > > <li class="post-context-line"><code> if k.downcase == "set-cookie" ></code></li> > > <li class="post-context-line"><code> res.cookies.concat vs.split("\n") ></code></li> > > <li class="post-context-line"><code> else ></code></li> > > <li class="post-context-line"><code> # Since WEBrick won't accept repeated headers, ></code></li> > > </ol> > > <div class="clear"></div> > </li> > > > > > > > > <li class="frame-info app"> > <code>/usr/lib/ruby/1.8/webrick/httpserver.rb</code> in > <code><strong>service</strong></code> > </li> > > <li class="code app"> > > <ol start="97" > class="pre-context" id="pre-62" > onclick="toggle(62);"> > > <li class="pre-context-line"><code> ></code></li> > > <li class="pre-context-line"><code> servlet, options, script_name, path_info = search_servlet(req.path) ></code></li> > > <li class="pre-context-line"><code> raise HTTPStatus::NotFound, "`#{req.path}' not found." unless servlet ></code></li> > > <li class="pre-context-line"><code> req.script_name = script_name ></code></li> > > <li class="pre-context-line"><code> req.path_info = path_info ></code></li> > > <li class="pre-context-line"><code> si = servlet.get_instance(self, *options) ></code></li> > > <li class="pre-context-line"><code> @logger.debug(format("%s is invoked.", si.class.name)) ></code></li> > > </ol> > > > <ol start="104" class="context" id="62" > onclick="toggle(62);"> > <li class="context-line" id="context-62"><code> si.service(req, res)</code></li> > </ol> > > > <ol start="105" class="post-context" > id="post-62" onclick="toggle(62);"> > > <li class="post-context-line"><code> end ></code></li> > > <li class="post-context-line"><code> ></code></li> > > <li class="post-context-line"><code> def do_OPTIONS(req, res) ></code></li> > > <li class="post-context-line"><code> res["allow"] = "GET,HEAD,POST,OPTIONS" ></code></li> > > <li class="post-context-line"><code> end ></code></li> > > <li class="post-context-line"><code> ></code></li> > > <li class="post-context-line"><code> def mount(dir, servlet, *options) ></code></li> > > </ol> > > <div class="clear"></div> > </li> > > > > > > > > <li class="frame-info app"> > <code>/usr/lib/ruby/1.8/webrick/httpserver.rb</code> in > <code><strong>run</strong></code> > </li> > > <li class="code app"> > > <ol start="58" > class="pre-context" id="pre-63" > onclick="toggle(63);"> > > <li class="pre-context-line"><code> res.request_uri = req.request_uri ></code></li> > > <li class="pre-context-line"><code> res.request_http_version = req.http_version ></code></li> > > <li class="pre-context-line"><code> res.keep_alive = req.keep_alive? ></code></li> > > <li class="pre-context-line"><code> server = lookup_server(req) || self ></code></li> > > <li class="pre-context-line"><code> if callback = server[:RequestCallback] || server[:RequestHandler] ></code></li> > > <li class="pre-context-line"><code> callback.call(req, res) ></code></li> > > <li class="pre-context-line"><code> end ></code></li> > > </ol> > > > <ol start="65" class="context" id="63" > onclick="toggle(63);"> > <li class="context-line" id="context-63"><code> server.service(req, res)</code></li> > </ol> > > > <ol start="66" class="post-context" > id="post-63" onclick="toggle(63);"> > > <li class="post-context-line"><code> rescue HTTPStatus::EOFError, HTTPStatus::RequestTimeout => ex ></code></li> > > <li class="post-context-line"><code> res.set_error(ex) ></code></li> > > <li class="post-context-line"><code> rescue HTTPStatus::Error => ex ></code></li> > > <li class="post-context-line"><code> @logger.error(ex.message) ></code></li> > > <li class="post-context-line"><code> res.set_error(ex) ></code></li> > > <li class="post-context-line"><code> rescue HTTPStatus::Status => ex ></code></li> > > <li class="post-context-line"><code> res.status = ex.code ></code></li> > > </ol> > > <div class="clear"></div> > </li> > > > > > > > > <li class="frame-info app"> > <code>/usr/lib/ruby/1.8/webrick/server.rb</code> in > <code><strong>start_thread</strong></code> > </li> > > <li class="code app"> > > <ol start="166" > class="pre-context" id="pre-64" > onclick="toggle(64);"> > > <li class="pre-context-line"><code> addr = sock.peeraddr ></code></li> > > <li class="pre-context-line"><code> @logger.debug "accept: #{addr[3]}:#{addr[1]}" ></code></li> > > <li class="pre-context-line"><code> rescue SocketError ></code></li> > > <li class="pre-context-line"><code> @logger.debug "accept: <address unknown>" ></code></li> > > <li class="pre-context-line"><code> raise ></code></li> > > <li class="pre-context-line"><code> end ></code></li> > > <li class="pre-context-line"><code> call_callback(:AcceptCallback, sock) ></code></li> > > </ol> > > > <ol start="173" class="context" id="64" > onclick="toggle(64);"> > <li class="context-line" id="context-64"><code> block ? block.call(sock) : run(sock)</code></li> > </ol> > > > <ol start="174" class="post-context" > id="post-64" onclick="toggle(64);"> > > <li class="post-context-line"><code> rescue Errno::ENOTCONN ></code></li> > > <li class="post-context-line"><code> @logger.debug "Errno::ENOTCONN raised" ></code></li> > > <li class="post-context-line"><code> rescue ServerError => ex ></code></li> > > <li class="post-context-line"><code> msg = "#{ex.class}: #{ex.message}\n\t#{ex.backtrace[0]}" ></code></li> > > <li class="post-context-line"><code> @logger.error msg ></code></li> > > <li class="post-context-line"><code> rescue Exception => ex ></code></li> > > <li class="post-context-line"><code> @logger.error ex ></code></li> > > </ol> > > <div class="clear"></div> > </li> > > > > > > > > <li class="frame-info app"> > <code>/usr/lib/ruby/1.8/webrick/server.rb</code> in > <code><strong>start</strong></code> > </li> > > <li class="code app"> > > <ol start="155" > class="pre-context" id="pre-65" > onclick="toggle(65);"> > > <li class="pre-context-line"><code> msg = "#{ex.class}: #{ex.message}\n\t#{ex.backtrace[0]}" ></code></li> > > <li class="pre-context-line"><code> @logger.error msg ></code></li> > > <li class="pre-context-line"><code> end ></code></li> > > <li class="pre-context-line"><code> return sock ></code></li> > > <li class="pre-context-line"><code> end ></code></li> > > <li class="pre-context-line"><code> ></code></li> > > <li class="pre-context-line"><code> def start_thread(sock, &block) ></code></li> > > </ol> > > > <ol start="162" class="context" id="65" > onclick="toggle(65);"> > <li class="context-line" id="context-65"><code> Thread.start{</code></li> > </ol> > > > <ol start="163" class="post-context" > id="post-65" onclick="toggle(65);"> > > <li class="post-context-line"><code> begin ></code></li> > > <li class="post-context-line"><code> Thread.current[:WEBrickSocket] = sock ></code></li> > > <li class="post-context-line"><code> begin ></code></li> > > <li class="post-context-line"><code> addr = sock.peeraddr ></code></li> > > <li class="post-context-line"><code> @logger.debug "accept: #{addr[3]}:#{addr[1]}" ></code></li> > > <li class="post-context-line"><code> rescue SocketError ></code></li> > > <li class="post-context-line"><code> @logger.debug "accept: <address unknown>" ></code></li> > > </ol> > > <div class="clear"></div> > </li> > > > > > > > > <li class="frame-info app"> > <code>/usr/lib/ruby/1.8/webrick/server.rb</code> in > <code><strong>start_thread</strong></code> > </li> > > <li class="code app"> > > <ol start="155" > class="pre-context" id="pre-66" > onclick="toggle(66);"> > > <li class="pre-context-line"><code> msg = "#{ex.class}: #{ex.message}\n\t#{ex.backtrace[0]}" ></code></li> > > <li class="pre-context-line"><code> @logger.error msg ></code></li> > > <li class="pre-context-line"><code> end ></code></li> > > <li class="pre-context-line"><code> return sock ></code></li> > > <li class="pre-context-line"><code> end ></code></li> > > <li class="pre-context-line"><code> ></code></li> > > <li class="pre-context-line"><code> def start_thread(sock, &block) ></code></li> > > </ol> > > > <ol start="162" class="context" id="66" > onclick="toggle(66);"> > <li class="context-line" id="context-66"><code> Thread.start{</code></li> > </ol> > > > <ol start="163" class="post-context" > id="post-66" onclick="toggle(66);"> > > <li class="post-context-line"><code> begin ></code></li> > > <li class="post-context-line"><code> Thread.current[:WEBrickSocket] = sock ></code></li> > > <li class="post-context-line"><code> begin ></code></li> > > <li class="post-context-line"><code> addr = sock.peeraddr ></code></li> > > <li class="post-context-line"><code> @logger.debug "accept: #{addr[3]}:#{addr[1]}" ></code></li> > > <li class="post-context-line"><code> rescue SocketError ></code></li> > > <li class="post-context-line"><code> @logger.debug "accept: <address unknown>" ></code></li> > > </ol> > > <div class="clear"></div> > </li> > > > > > > > > <li class="frame-info app"> > <code>/usr/lib/ruby/1.8/webrick/server.rb</code> in > <code><strong>start</strong></code> > </li> > > <li class="code app"> > > <ol start="88" > class="pre-context" id="pre-67" > onclick="toggle(67);"> > > <li class="pre-context-line"><code> @status = :Running ></code></li> > > <li class="pre-context-line"><code> while @status == :Running ></code></li> > > <li class="pre-context-line"><code> begin ></code></li> > > <li class="pre-context-line"><code> if svrs = IO.select(@listeners, nil, nil, 2.0) ></code></li> > > <li class="pre-context-line"><code> svrs[0].each{|svr| ></code></li> > > <li class="pre-context-line"><code> @tokens.pop # blocks while no token is there. ></code></li> > > <li class="pre-context-line"><code> if sock = accept_client(svr) ></code></li> > > </ol> > > > <ol start="95" class="context" id="67" > onclick="toggle(67);"> > <li class="context-line" id="context-67"><code> th = start_thread(sock, &block)</code></li> > </ol> > > > <ol start="96" class="post-context" > id="post-67" onclick="toggle(67);"> > > <li class="post-context-line"><code> th[:WEBrickThread] = true ></code></li> > > <li class="post-context-line"><code> thgroup.add(th) ></code></li> > > <li class="post-context-line"><code> else ></code></li> > > <li class="post-context-line"><code> @tokens.push(nil) ></code></li> > > <li class="post-context-line"><code> end ></code></li> > > <li class="post-context-line"><code> } ></code></li> > > <li class="post-context-line"><code> end ></code></li> > > </ol> > > <div class="clear"></div> > </li> > > > > > > > > <li class="frame-info app"> > <code>/usr/lib/ruby/1.8/webrick/server.rb</code> in > <code><strong>each</strong></code> > </li> > > <li class="code app"> > > <ol start="85" > class="pre-context" id="pre-68" > onclick="toggle(68);"> > > <li class="pre-context-line"><code> call_callback(:StartCallback) ></code></li> > > <li class="pre-context-line"><code> ></code></li> > > <li class="pre-context-line"><code> thgroup = ThreadGroup.new ></code></li> > > <li class="pre-context-line"><code> @status = :Running ></code></li> > > <li class="pre-context-line"><code> while @status == :Running ></code></li> > > <li class="pre-context-line"><code> begin ></code></li> > > <li class="pre-context-line"><code> if svrs = IO.select(@listeners, nil, nil, 2.0) ></code></li> > > </ol> > > > <ol start="92" class="context" id="68" > onclick="toggle(68);"> > <li class="context-line" id="context-68"><code> svrs[0].each{|svr|</code></li> > </ol> > > > <ol start="93" class="post-context" > id="post-68" onclick="toggle(68);"> > > <li class="post-context-line"><code> @tokens.pop # blocks while no token is there. ></code></li> > > <li class="post-context-line"><code> if sock = accept_client(svr) ></code></li> > > <li class="post-context-line"><code> th = start_thread(sock, &block) ></code></li> > > <li class="post-context-line"><code> th[:WEBrickThread] = true ></code></li> > > <li class="post-context-line"><code> thgroup.add(th) ></code></li> > > <li class="post-context-line"><code> else ></code></li> > > <li class="post-context-line"><code> @tokens.push(nil) ></code></li> > > </ol> > > <div class="clear"></div> > </li> > > > > > > > > <li class="frame-info app"> > <code>/usr/lib/ruby/1.8/webrick/server.rb</code> in > <code><strong>start</strong></code> > </li> > > <li class="code app"> > > <ol start="85" > class="pre-context" id="pre-69" > onclick="toggle(69);"> > > <li class="pre-context-line"><code> call_callback(:StartCallback) ></code></li> > > <li class="pre-context-line"><code> ></code></li> > > <li class="pre-context-line"><code> thgroup = ThreadGroup.new ></code></li> > > <li class="pre-context-line"><code> @status = :Running ></code></li> > > <li class="pre-context-line"><code> while @status == :Running ></code></li> > > <li class="pre-context-line"><code> begin ></code></li> > > <li class="pre-context-line"><code> if svrs = IO.select(@listeners, nil, nil, 2.0) ></code></li> > > </ol> > > > <ol start="92" class="context" id="69" > onclick="toggle(69);"> > <li class="context-line" id="context-69"><code> svrs[0].each{|svr|</code></li> > </ol> > > > <ol start="93" class="post-context" > id="post-69" onclick="toggle(69);"> > > <li class="post-context-line"><code> @tokens.pop # blocks while no token is there. ></code></li> > > <li class="post-context-line"><code> if sock = accept_client(svr) ></code></li> > > <li class="post-context-line"><code> th = start_thread(sock, &block) ></code></li> > > <li class="post-context-line"><code> th[:WEBrickThread] = true ></code></li> > > <li class="post-context-line"><code> thgroup.add(th) ></code></li> > > <li class="post-context-line"><code> else ></code></li> > > <li class="post-context-line"><code> @tokens.push(nil) ></code></li> > > </ol> > > <div class="clear"></div> > </li> > > > > > > > > <li class="frame-info app"> > <code>/usr/lib/ruby/1.8/webrick/server.rb</code> in > <code><strong>start</strong></code> > </li> > > <li class="code app"> > > <ol start="16" > class="pre-context" id="pre-70" > onclick="toggle(70);"> > > <li class="pre-context-line"><code> ></code></li> > > <li class="pre-context-line"><code>module WEBrick ></code></li> > > <li class="pre-context-line"><code> ></code></li> > > <li class="pre-context-line"><code> class ServerError < StandardError; end ></code></li> > > <li class="pre-context-line"><code> ></code></li> > > <li class="pre-context-line"><code> class SimpleServer ></code></li> > > <li class="pre-context-line"><code> def SimpleServer.start ></code></li> > > </ol> > > > <ol start="23" class="context" id="70" > onclick="toggle(70);"> > <li class="context-line" id="context-70"><code> yield</code></li> > </ol> > > > <ol start="24" class="post-context" > id="post-70" onclick="toggle(70);"> > > <li class="post-context-line"><code> end ></code></li> > > <li class="post-context-line"><code> end ></code></li> > > <li class="post-context-line"><code> ></code></li> > > <li class="post-context-line"><code> class Daemon ></code></li> > > <li class="post-context-line"><code> def Daemon.start ></code></li> > > <li class="post-context-line"><code> exit!(0) if fork ></code></li> > > <li class="post-context-line"><code> Process::setsid ></code></li> > > </ol> > > <div class="clear"></div> > </li> > > > > > > > > <li class="frame-info app"> > <code>/usr/lib/ruby/1.8/webrick/server.rb</code> in > <code><strong>start</strong></code> > </li> > > <li class="code app"> > > <ol start="75" > class="pre-context" id="pre-71" > onclick="toggle(71);"> > > <li class="pre-context-line"><code> @listeners += Utils::create_listeners(address, port, @logger) ></code></li> > > <li class="pre-context-line"><code> end ></code></li> > > <li class="pre-context-line"><code> ></code></li> > > <li class="pre-context-line"><code> def start(&block) ></code></li> > > <li class="pre-context-line"><code> raise ServerError, "already started." if @status != :Stop ></code></li> > > <li class="pre-context-line"><code> server_type = @config[:ServerType] || SimpleServer ></code></li> > > <li class="pre-context-line"><code> ></code></li> > > </ol> > > > <ol start="82" class="context" id="71" > onclick="toggle(71);"> > <li class="context-line" id="context-71"><code> server_type.start{</code></li> > </ol> > > > <ol start="83" class="post-context" > id="post-71" onclick="toggle(71);"> > > <li class="post-context-line"><code> @logger.info \ ></code></li> > > <li class="post-context-line"><code> "#{self.class}#start: pid=#{$$} port=#{@config[:Port]}" ></code></li> > > <li class="post-context-line"><code> call_callback(:StartCallback) ></code></li> > > <li class="post-context-line"><code> ></code></li> > > <li class="post-context-line"><code> thgroup = ThreadGroup.new ></code></li> > > <li class="post-context-line"><code> @status = :Running ></code></li> > > <li class="post-context-line"><code> while @status == :Running ></code></li> > > </ol> > > <div class="clear"></div> > </li> > > > > > > > > <li class="frame-info system"> > <code>/usr/lib/ruby/gems/1.8/gems/rack-1.4.1/lib/rack/handler/webrick.rb</code> in > <code><strong>run</strong></code> > </li> > > <li class="code system"> > > <ol start="6" > class="pre-context" id="pre-72" > onclick="toggle(72);"> > > <li class="pre-context-line"><code> module Handler ></code></li> > > <li class="pre-context-line"><code> class WEBrick < ::WEBrick::HTTPServlet::AbstractServlet ></code></li> > > <li class="pre-context-line"><code> def self.run(app, options={}) ></code></li> > > <li class="pre-context-line"><code> options[:BindAddress] = options.delete(:Host) if options[:Host] ></code></li> > > <li class="pre-context-line"><code> @server = ::WEBrick::HTTPServer.new(options) ></code></li> > > <li class="pre-context-line"><code> @server.mount "/", Rack::Handler::WEBrick, app ></code></li> > > <li class="pre-context-line"><code> yield @server if block_given? ></code></li> > > </ol> > > > <ol start="13" class="context" id="72" > onclick="toggle(72);"> > <li class="context-line" id="context-72"><code> @server.start</code></li> > </ol> > > > <ol start="14" class="post-context" > id="post-72" onclick="toggle(72);"> > > <li class="post-context-line"><code> end ></code></li> > > <li class="post-context-line"><code> ></code></li> > > <li class="post-context-line"><code> def self.valid_options ></code></li> > > <li class="post-context-line"><code> { ></code></li> > > <li class="post-context-line"><code> "Host=HOST" => "Hostname to listen on (default: localhost)", ></code></li> > > <li class="post-context-line"><code> "Port=PORT" => "Port to listen on (default: 8080)", ></code></li> > > <li class="post-context-line"><code> } ></code></li> > > </ol> > > <div class="clear"></div> > </li> > > > > > > > > <li class="frame-info system"> > <code>/usr/lib/ruby/gems/1.8/gems/rack-1.4.1/lib/rack/server.rb</code> in > <code><strong>start</strong></code> > </li> > > <li class="code system"> > > <ol start="258" > class="pre-context" id="pre-73" > onclick="toggle(73);"> > > <li class="pre-context-line"><code> if server.respond_to?(:shutdown) ></code></li> > > <li class="pre-context-line"><code> server.shutdown ></code></li> > > <li class="pre-context-line"><code> else ></code></li> > > <li class="pre-context-line"><code> exit ></code></li> > > <li class="pre-context-line"><code> end ></code></li> > > <li class="pre-context-line"><code> end ></code></li> > > <li class="pre-context-line"><code> ></code></li> > > </ol> > > > <ol start="265" class="context" id="73" > onclick="toggle(73);"> > <li class="context-line" id="context-73"><code> server.run wrapped_app, options, &blk</code></li> > </ol> > > > <ol start="266" class="post-context" > id="post-73" onclick="toggle(73);"> > > <li class="post-context-line"><code> end ></code></li> > > <li class="post-context-line"><code> ></code></li> > > <li class="post-context-line"><code> def server ></code></li> > > <li class="post-context-line"><code> @_server ||= Rack::Handler.get(options[:server]) || Rack::Handler.default(options) ></code></li> > > <li class="post-context-line"><code> end ></code></li> > > <li class="post-context-line"><code> ></code></li> > > <li class="post-context-line"><code> private ></code></li> > > </ol> > > <div class="clear"></div> > </li> > > > > > > > > <li class="frame-info app"> > <code>/usr/share/foreman-proxy/lib/launcher.rb</code> in > <code><strong>launch</strong></code> > </li> > > <li class="code app"> > > <ol start="119" > class="pre-context" id="pre-74" > onclick="toggle(74);"> > > <li class="pre-context-line"><code> ></code></li> > > <li class="pre-context-line"><code> if SETTINGS.daemon ></code></li> > > <li class="pre-context-line"><code> check_pid ></code></li> > > <li class="pre-context-line"><code> Process.daemon ></code></li> > > <li class="pre-context-line"><code> write_pid ></code></li> > > <li class="pre-context-line"><code> end ></code></li> > > <li class="pre-context-line"><code> ></code></li> > > </ol> > > > <ol start="126" class="context" id="74" > onclick="toggle(74);"> > <li class="context-line" id="context-74"><code> t1 = Thread.new { https_app.start } unless https_app.nil?</code></li> > </ol> > > > <ol start="127" class="post-context" > id="post-74" onclick="toggle(74);"> > > <li class="post-context-line"><code> t2 = Thread.new { http_app.start } unless http_app.nil? ></code></li> > > <li class="post-context-line"><code> ></code></li> > > <li class="post-context-line"><code> Proxy::SignalHandler.install_traps ></code></li> > > <li class="post-context-line"><code> ></code></li> > > <li class="post-context-line"><code> (t1 || t2).join ></code></li> > > <li class="post-context-line"><code> rescue SignalException => e ></code></li> > > <li class="post-context-line"><code> logger.info("Caught #{e}. Exiting") ></code></li> > > </ol> > > <div class="clear"></div> > </li> > > > > > > > > <li class="frame-info app"> > <code>/usr/share/foreman-proxy/lib/launcher.rb</code> in > <code><strong>initialize</strong></code> > </li> > > <li class="code app"> > > <ol start="119" > class="pre-context" id="pre-75" > onclick="toggle(75);"> > > <li class="pre-context-line"><code> ></code></li> > > <li class="pre-context-line"><code> if SETTINGS.daemon ></code></li> > > <li class="pre-context-line"><code> check_pid ></code></li> > > <li class="pre-context-line"><code> Process.daemon ></code></li> > > <li class="pre-context-line"><code> write_pid ></code></li> > > <li class="pre-context-line"><code> end ></code></li> > > <li class="pre-context-line"><code> ></code></li> > > </ol> > > > <ol start="126" class="context" id="75" > onclick="toggle(75);"> > <li class="context-line" id="context-75"><code> t1 = Thread.new { https_app.start } unless https_app.nil?</code></li> > </ol> > > > <ol start="127" class="post-context" > id="post-75" onclick="toggle(75);"> > > <li class="post-context-line"><code> t2 = Thread.new { http_app.start } unless http_app.nil? ></code></li> > > <li class="post-context-line"><code> ></code></li> > > <li class="post-context-line"><code> Proxy::SignalHandler.install_traps ></code></li> > > <li class="post-context-line"><code> ></code></li> > > <li class="post-context-line"><code> (t1 || t2).join ></code></li> > > <li class="post-context-line"><code> rescue SignalException => e ></code></li> > > <li class="post-context-line"><code> logger.info("Caught #{e}. Exiting") ></code></li> > > </ol> > > <div class="clear"></div> > </li> > > > > > > > > <li class="frame-info app"> > <code>/usr/share/foreman-proxy/lib/launcher.rb</code> in > <code><strong>new</strong></code> > </li> > > <li class="code app"> > > <ol start="119" > class="pre-context" id="pre-76" > onclick="toggle(76);"> > > <li class="pre-context-line"><code> ></code></li> > > <li class="pre-context-line"><code> if SETTINGS.daemon ></code></li> > > <li class="pre-context-line"><code> check_pid ></code></li> > > <li class="pre-context-line"><code> Process.daemon ></code></li> > > <li class="pre-context-line"><code> write_pid ></code></li> > > <li class="pre-context-line"><code> end ></code></li> > > <li class="pre-context-line"><code> ></code></li> > > </ol> > > > <ol start="126" class="context" id="76" > onclick="toggle(76);"> > <li class="context-line" id="context-76"><code> t1 = Thread.new { https_app.start } unless https_app.nil?</code></li> > </ol> > > > <ol start="127" class="post-context" > id="post-76" onclick="toggle(76);"> > > <li class="post-context-line"><code> t2 = Thread.new { http_app.start } unless http_app.nil? ></code></li> > > <li class="post-context-line"><code> ></code></li> > > <li class="post-context-line"><code> Proxy::SignalHandler.install_traps ></code></li> > > <li class="post-context-line"><code> ></code></li> > > <li class="post-context-line"><code> (t1 || t2).join ></code></li> > > <li class="post-context-line"><code> rescue SignalException => e ></code></li> > > <li class="post-context-line"><code> logger.info("Caught #{e}. Exiting") ></code></li> > > </ol> > > <div class="clear"></div> > </li> > > > > > > > > <li class="frame-info app"> > <code>/usr/share/foreman-proxy/lib/launcher.rb</code> in > <code><strong>launch</strong></code> > </li> > > <li class="code app"> > > <ol start="119" > class="pre-context" id="pre-77" > onclick="toggle(77);"> > > <li class="pre-context-line"><code> ></code></li> > > <li class="pre-context-line"><code> if SETTINGS.daemon ></code></li> > > <li class="pre-context-line"><code> check_pid ></code></li> > > <li class="pre-context-line"><code> Process.daemon ></code></li> > > <li class="pre-context-line"><code> write_pid ></code></li> > > <li class="pre-context-line"><code> end ></code></li> > > <li class="pre-context-line"><code> ></code></li> > > </ol> > > > <ol start="126" class="context" id="77" > onclick="toggle(77);"> > <li class="context-line" id="context-77"><code> t1 = Thread.new { https_app.start } unless https_app.nil?</code></li> > </ol> > > > <ol start="127" class="post-context" > id="post-77" onclick="toggle(77);"> > > <li class="post-context-line"><code> t2 = Thread.new { http_app.start } unless http_app.nil? ></code></li> > > <li class="post-context-line"><code> ></code></li> > > <li class="post-context-line"><code> Proxy::SignalHandler.install_traps ></code></li> > > <li class="post-context-line"><code> ></code></li> > > <li class="post-context-line"><code> (t1 || t2).join ></code></li> > > <li class="post-context-line"><code> rescue SignalException => e ></code></li> > > <li class="post-context-line"><code> logger.info("Caught #{e}. Exiting") ></code></li> > > </ol> > > <div class="clear"></div> > </li> > > > > > > > > <li class="frame-info app"> > <code>/usr/share/foreman-proxy/bin/smart-proxy</code> in > <code><strong>nil</strong></code> > </li> > > <li class="code app"> > > <ol start="1" > class="pre-context" id="pre-78" > onclick="toggle(78);"> > > <li class="pre-context-line"><code>#!/usr/bin/env ruby ></code></li> > > <li class="pre-context-line"><code> ></code></li> > > <li class="pre-context-line"><code>$LOAD_PATH.unshift(*Dir[File.expand_path("../../lib", __FILE__), File.expand_path("../../modules", __FILE__)]) ></code></li> > > <li class="pre-context-line"><code> ></code></li> > > <li class="pre-context-line"><code>require 'smart_proxy_main' ></code></li> > > </ol> > > > <ol start="6" class="context" id="78" > onclick="toggle(78);"> > <li class="context-line" id="context-78"><code>Proxy::Launcher.new.launch</code></li> > </ol> > > > <ol start="7" class="post-context" > id="post-78" onclick="toggle(78);"> > > </ol> > > <div class="clear"></div> > </li> > > > > > > > </ul> > </div> <!-- /BACKTRACE --> > > <div id="get"> > <h3 id="get-info">GET</h3> > > <p class="no-data">No GET data.</p> > > <div class="clear"></div> > </div> <!-- /GET --> > > <div id="post"> > <h3 id="post-info">POST</h3> > > <p class="no-data">No POST data.</p> > > <div class="clear"></div> > </div> <!-- /POST --> > > <div id="cookies"> > <h3 id="cookie-info">COOKIES</h3> > > <p class="no-data">No cookie data.</p> > > <div class="clear"></div> > </div> <!-- /COOKIES --> > > <div id="rack"> > <h3 id="env-info">Rack ENV</h3> > <table class="req"> > <tr> > <th>Variable</th> > <th>Value</th> > </tr> > > <tr> > <td>CONTENT_LENGTH</td> > <td class="code"><div>385978</div></td> > </tr> > > <tr> > <td>CONTENT_TYPE</td> > <td class="code"><div>text/xml</div></td> > </tr> > > <tr> > <td>GATEWAY_INTERFACE</td> > <td class="code"><div>CGI/1.1</div></td> > </tr> > > <tr> > <td>HTTPS</td> > <td class="code"><div>on</div></td> > </tr> > > <tr> > <td>HTTP_ACCEPT</td> > <td class="code"><div>*/*</div></td> > </tr> > > <tr> > <td>HTTP_CONNECTION</td> > <td class="code"><div>close</div></td> > </tr> > > <tr> > <td>HTTP_CONTENT_ENCODING</td> > <td class="code"><div>x-bzip2</div></td> > </tr> > > <tr> > <td>HTTP_HOST</td> > <td class="code"><div>qe-sat6-feature-rhel6.satqe.lab.eng.rdu2.redhat.com:9090</div></td> > </tr> > > <tr> > <td>HTTP_VERSION</td> > <td class="code"><div>HTTP/1.1</div></td> > </tr> > > <tr> > <td>PATH_INFO</td> > <td class="code"><div>/arf/2</div></td> > </tr> > > <tr> > <td>QUERY_STRING</td> > <td class="code"><div></div></td> > </tr> > > <tr> > <td>REMOTE_ADDR</td> > <td class="code"><div>10.8.113.11</div></td> > </tr> > > <tr> > <td>REMOTE_HOST</td> > <td class="code"><div>10.8.113.11</div></td> > </tr> > > <tr> > <td>REQUEST_METHOD</td> > <td class="code"><div>POST</div></td> > </tr> > > <tr> > <td>REQUEST_PATH</td> > <td class="code"><div>/compliance/arf/2</div></td> > </tr> > > <tr> > <td>REQUEST_URI</td> > <td class="code"><div>https://qe-sat6-feature-rhel6.satqe.lab.eng.rdu2.redhat.com:9090/compliance/arf/2</div></td> > </tr> > > <tr> > <td>SCRIPT_NAME</td> > <td class="code"><div>/compliance</div></td> > </tr> > > <tr> > <td>SERVER_NAME</td> > <td class="code"><div>qe-sat6-feature-rhel6.satqe.lab.eng.rdu2.redhat.com</div></td> > </tr> > > <tr> > <td>SERVER_PORT</td> > <td class="code"><div>9090</div></td> > </tr> > > <tr> > <td>SERVER_PROTOCOL</td> > <td class="code"><div>HTTP/1.1</div></td> > </tr> > > <tr> > <td>SERVER_SOFTWARE</td> > <td class="code"><div>WEBrick/1.3.1 (Ruby/1.8.7/2013-06-27) OpenSSL/1.0.1e</div></td> > </tr> > > <tr> > <td>SSL_CIPHER</td> > <td class="code"><div>AES128-GCM-SHA256</div></td> > </tr> > > <tr> > <td>SSL_CIPHER_ALGKEYSIZE</td> > <td class="code"><div>128</div></td> > </tr> > > <tr> > <td>SSL_CIPHER_USEKEYSIZE</td> > <td class="code"><div>128</div></td> > </tr> > > <tr> > <td>SSL_CLIENT_CERT</td> > <td class="code"><div>-----BEGIN CERTIFICATE----- >MIIEtjCCA56gAwIBAgIIQlxay9bYdr0wDQYJKoZIhvcNAQEFBQAwgZ4xCzAJBgNV >BAYTAlVTMRcwFQYDVQQIEw5Ob3J0aCBDYXJvbGluYTEQMA4GA1UEBxMHUmFsZWln >aDEQMA4GA1UEChMHS2F0ZWxsbzEUMBIGA1UECxMLU29tZU9yZ1VuaXQxPDA6BgNV >BAMTM3FlLXNhdDYtZmVhdHVyZS1yaGVsNi5zYXRxZS5sYWIuZW5nLnJkdTIucmVk >aGF0LmNvbTAeFw0xNjA1MTcxMzA3MTBaFw0zMjA1MTcxMzA3MTBaMC8xLTArBgNV >BAMTJGUzODJlNzgzLWRlYmMtNDZmYi1iNGViLWNjZDZhNTAwMTI5MjCCASIwDQYJ >KoZIhvcNAQEBBQADggEPADCCAQoCggEBAK9PBkO/WGzrN1SCspTutMjUDuwVzuYb >rrhdyaRk4XyXo9m4cwWu3ecnaXoJb22ofxcRZN8UkhU2cJVNlvTaFkRydAPiQ5io >yKanuttB2sgzijnk+tVJhjeLfybhjEMj/t+TgY5a3PGKmT7JRpTnIgYXNv9FJx6Q >aGNQyYDH8u4td+9qwGSbKuAkvOK3ISYhoFkgcrU+p+mdl8Unq2z/EPxATvYePQex >R777YbP0nN2cvwmgJO7lWpal4draTwQvj5nDSG2dnDaiyihtzCCg2V5H/Vgu97oZ >IIfBD2q1J3FoTsFfqVGSjm/phCRim6//3MhbFnfBRHDnuDZNcWojy8sCAwEAAaOC >AWQwggFgMBEGCWCGSAGG+EIBAQQEAwIFoDALBgNVHQ8EBAMCBLAwgdMGA1UdIwSB >yzCByIAU7X0EV1wf1H+rH7qnmrF8AHbNUD2hgaSkgaEwgZ4xCzAJBgNVBAYTAlVT >MRcwFQYDVQQIEw5Ob3J0aCBDYXJvbGluYTEQMA4GA1UEBxMHUmFsZWlnaDEQMA4G >A1UEChMHS2F0ZWxsbzEUMBIGA1UECxMLU29tZU9yZ1VuaXQxPDA6BgNVBAMTM3Fl >LXNhdDYtZmVhdHVyZS1yaGVsNi5zYXRxZS5sYWIuZW5nLnJkdTIucmVkaGF0LmNv >bYIJAIqnPpJVBVPgMB0GA1UdDgQWBBSdCNkf4HAG8fXYkS1q8rKTI1uCKjATBgNV >HSUEDDAKBggrBgEFBQcDAjA0BgNVHREELTArhilDTj1rYnJoZWw2OC5zYXRxZS5s >YWIuZW5nLnJkdTIucmVkaGF0LmNvbTANBgkqhkiG9w0BAQUFAAOCAQEAcc2dM+jz >/ohyt3MNAHtdlcBHsJIWYTQgCMETFobQcomABSN2orx/wqvG5VFPFWTrOzh2sNes >ZpArrXci2iFHsvD/JeYLkLJkXwSW+DHyePfXOKcPk+n+hqWhaMLt9yvUrFgQ7wxW >h/rV8Dbg8GItzWifUzLJHrDjLUcj3cWBYK0xlr4Yrao2BWn/srv8iJEntxYQ2q7z >bHjTnsbl3gX4gRVIib0cOEZ3Hom7ieuwlOXe3GdLgdqotTjF8jf0P5bl/zfCnKtr >fYKq87aG7GMcOosS0jX+9xHukA5FJSTfDjOhQDtE1/DMBnSWc/1xWPxvNLFTKdRK >YASTwBw8jQ8Iog== >-----END CERTIFICATE----- ></div></td> > </tr> > > <tr> > <td>SSL_CLIENT_CERT_CHAIN_0</td> > <td class="code"><div>-----BEGIN CERTIFICATE----- >MIIFQDCCBCigAwIBAgIJAIqnPpJVBVPgMA0GCSqGSIb3DQEBCwUAMIGeMQswCQYD >VQQGEwJVUzEXMBUGA1UECBMOTm9ydGggQ2Fyb2xpbmExEDAOBgNVBAcTB1JhbGVp >Z2gxEDAOBgNVBAoTB0thdGVsbG8xFDASBgNVBAsTC1NvbWVPcmdVbml0MTwwOgYD >VQQDEzNxZS1zYXQ2LWZlYXR1cmUtcmhlbDYuc2F0cWUubGFiLmVuZy5yZHUyLnJl >ZGhhdC5jb20wHhcNMTYwNTE2MTk1NjM4WhcNMzgwMTE3MTk1NjM4WjCBnjELMAkG >A1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRAwDgYDVQQHEwdSYWxl >aWdoMRAwDgYDVQQKEwdLYXRlbGxvMRQwEgYDVQQLEwtTb21lT3JnVW5pdDE8MDoG >A1UEAxMzcWUtc2F0Ni1mZWF0dXJlLXJoZWw2LnNhdHFlLmxhYi5lbmcucmR1Mi5y >ZWRoYXQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAq7yXjxRD >eikxu55FLFk2Ma5CaQgyYfo1Glq0Dtdr0CEAFw33sDdvIifGFtCfrjvMSXd/gzMP >JN1x6/PhicRU/oAF3YPu2j1rYfe7eIMLoSJdQ/T5m8FMiFf16MdIv87NBTEepFN4 >MSAkrZPKbAQCNrSnfXVYxHE8ClPm685tEl7QKlRmzMbbtQOL9yPyILcOmQSBc/SC >Q7kiY6Fhxp3pGnKf1Xv/Yl1QaLJbqn2cHyQyYbrZGAXJxMH6/h4fyrk56h8QbENh >Y2JJJietd0Ecn1ecmIwFi7htVveVTt0x+dvyVF+c4ZsbJMT05KLXwBv6EIs4hVr/ >X2KADRe/XME7hQIDAQABo4IBfTCCAXkwDAYDVR0TBAUwAwEB/zALBgNVHQ8EBAMC >AaYwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBEGCWCGSAGG+EIBAQQE >AwICRDA1BglghkgBhvhCAQ0EKBYmS2F0ZWxsbyBTU0wgVG9vbCBHZW5lcmF0ZWQg >Q2VydGlmaWNhdGUwHQYDVR0OBBYEFO19BFdcH9R/qx+6p5qxfAB2zVA9MIHTBgNV >HSMEgcswgciAFO19BFdcH9R/qx+6p5qxfAB2zVA9oYGkpIGhMIGeMQswCQYDVQQG >EwJVUzEXMBUGA1UECBMOTm9ydGggQ2Fyb2xpbmExEDAOBgNVBAcTB1JhbGVpZ2gx >EDAOBgNVBAoTB0thdGVsbG8xFDASBgNVBAsTC1NvbWVPcmdVbml0MTwwOgYDVQQD >EzNxZS1zYXQ2LWZlYXR1cmUtcmhlbDYuc2F0cWUubGFiLmVuZy5yZHUyLnJlZGhh >dC5jb22CCQCKpz6SVQVT4DANBgkqhkiG9w0BAQsFAAOCAQEAEgitrDxAxubdgsfi >1moOiMtc/b+9+Lgc94jt45vKjnPZ3s/di1pbnkfO0u+CEMrlx4yh2u2K34l1Y+kL >N1R2w/BIwWlvwsHZvMXKpAvm3KKc14A4/YWL3XNhCu8bfKo8uMQe8mZ3vz6RctaH >iNq7Wcxaqaa3X/1OP5QMQvcCaGgI0kj4ctuDs0D7iJfDQUCwXefZxbjLZCVnJf24 >5/yH7Vrvlet3XwsOov83/E2riEQ9Pp7o6XnbpTGCUzIwBCv02mvW0TLEsEZ8C+in >9/Mep0Edbp6u0ARwAmWKlo6AKDu3G1UJIXKAyE1Ix05fqTb/jGFK3MJXvbuUkZAq >TOParw== >-----END CERTIFICATE----- ></div></td> > </tr> > > <tr> > <td>SSL_PROTOCOL</td> > <td class="code"><div>TLSv1/SSLv3</div></td> > </tr> > > <tr> > <td>SSL_SERVER_CERT</td> > <td class="code"><div>-----BEGIN CERTIFICATE----- >MIIFazCCBFOgAwIBAgIJAIqnPpJVBVPpMA0GCSqGSIb3DQEBCwUAMIGeMQswCQYD >VQQGEwJVUzEXMBUGA1UECBMOTm9ydGggQ2Fyb2xpbmExEDAOBgNVBAcTB1JhbGVp >Z2gxEDAOBgNVBAoTB0thdGVsbG8xFDASBgNVBAsTC1NvbWVPcmdVbml0MTwwOgYD >VQQDEzNxZS1zYXQ2LWZlYXR1cmUtcmhlbDYuc2F0cWUubGFiLmVuZy5yZHUyLnJl >ZGhhdC5jb20wHhcNMTYwNTA5MjAwMDAyWhcNMzYwNTExMjAwMDAyWjCBjDELMAkG >A1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRAwDgYDVQQKEwdGT1JF >TUFOMRQwEgYDVQQLFAtTTUFSVF9QUk9YWTE8MDoGA1UEAxMzcWUtc2F0Ni1mZWF0 >dXJlLXJoZWw2LnNhdHFlLmxhYi5lbmcucmR1Mi5yZWRoYXQuY29tMIIBIjANBgkq >hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA+h/UUSiCOhNuze9QxcLbxAfELZltS8oI >PniAOZeXuxHh6UXH5UuKSWVSyf0qSm20NVvuatlKhRIe2rRYpLIhCNdlunT85kmh >zWO17VBwQqhTrvlCrFOSkAlSYOQoQg8CtGh7+RlT8rRKEeu6SVZWGLATi6MzO7dA >NLqgIfqfIG9irtZj8300Ik8iLiBQQ5Gbi+RcY0PJJJHmqBu3WkViPQeysMVkkFLf >SiOtvv0vM7+eoaaocJqKITAV+7k2mWk0PEC/3aiPKRt6k+yquN9bjzslqYiwZQ2d >L38sKDwhN2mzihkWiUopISYZoftjjcTmu2mFTQlGLuUi9tIzCKPXJwIDAQABo4IB >ujCCAbYwCQYDVR0TBAIwADALBgNVHQ8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUH >AwEGCCsGAQUFBwMCMBEGCWCGSAGG+EIBAQQEAwIGQDA1BglghkgBhvhCAQ0EKBYm >S2F0ZWxsbyBTU0wgVG9vbCBHZW5lcmF0ZWQgQ2VydGlmaWNhdGUwHQYDVR0OBBYE >FP5p5EMQ4k6JlbelPApBACu9Z2RWMIHTBgNVHSMEgcswgciAFO19BFdcH9R/qx+6 >p5qxfAB2zVA9oYGkpIGhMIGeMQswCQYDVQQGEwJVUzEXMBUGA1UECBMOTm9ydGgg >Q2Fyb2xpbmExEDAOBgNVBAcTB1JhbGVpZ2gxEDAOBgNVBAoTB0thdGVsbG8xFDAS >BgNVBAsTC1NvbWVPcmdVbml0MTwwOgYDVQQDEzNxZS1zYXQ2LWZlYXR1cmUtcmhl >bDYuc2F0cWUubGFiLmVuZy5yZHUyLnJlZGhhdC5jb22CCQCKpz6SVQVT4DA+BgNV >HREENzA1gjNxZS1zYXQ2LWZlYXR1cmUtcmhlbDYuc2F0cWUubGFiLmVuZy5yZHUy >LnJlZGhhdC5jb20wDQYJKoZIhvcNAQELBQADggEBAI7E6HSyZEJbmgJe4x1bkhW8 >Rqd6zgGBqM+VTMoMaqGRu+QlJWv0O1PuO4KuRgZdMm+r8wNRvsY+XTvOY6xo7/Mp >+ruLE1teeuhR/hSppEgMCyxLYm5OinY9porjY3FNOf+yPb08icZ07cpd71mFPE31 >fQuZ1s8ww9XyNuVtWbhkt2HWopy6nnJ7zcyRLJCUnHMlI/MYJcrdpeJkEQEDjpNe >0AdmBypiWI6qP/NgyYbcLm4q0wFGYmQDDwm0q7bUFSJlkUmKRO8+p1GqvP+hPjBL >ZIcdoXt0Jzt8xEQLp9pfeI9d7X+nvDbOJfemPqH8tPh508S9fKXN/FVbpIm1Wb8= >-----END CERTIFICATE----- ></div></td> > </tr> > > <tr> > <td>rack.errors</td> > <td class="code"><div>#<Object:0x7f18baac4e80></div></td> > </tr> > > <tr> > <td>rack.input</td> > <td class="code"><div>#<StringIO:0x7f18b90fd498></div></td> > </tr> > > <tr> > <td>rack.logger</td> > <td class="code"><div>#<Proxy::LogBuffer::Decorator:0x7f18baa1d068 @buffer=#<Proxy::LogBuffer::Buffer:0x7f18baa1cff0 @failed_modules={}, @level_tail=3, @mutex=#<Mutex:0x7f18baa1cfa0>, @main_buffer=#<Proxy::LogBuffer::RingBuffer:0x7f18baa1cf28 @buffer=[nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil], @count=0, @start=0, @size=2000>, @tail_buffer=#<Proxy::LogBuffer::RingBuffer:0x7f18baa1ceb0 @buffer=[nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil], @count=0, @start=0, @size=1000>>, @roll_log=false, @logger=#<Logger:0x7f18baa1d248 @formatter=nil, @progname=nil, @logdev=#<Logger::LogDevice:0x7f18baa1d1a8 @shift_age=6, @filename="/var/log/foreman-proxy/proxy.log", @mutex=#<Logger::LogDevice::LogDeviceMutex:0x7f18baa1d158 @mon_entering_queue=[], @mon_count=0, @mon_owner=nil, @mon_waiting_queue=[]>, @dev=#<File:/var/log/foreman-proxy/proxy.log>, @shift_size=10485760>, @level=3, @default_formatter=#<Logger::Formatter:0x7f18baa1d1f8 @datetime_format=nil>>, @mutex=#<Mutex:0x7f18baa1ce88>, @log_file="/var/log/foreman-proxy/proxy.log"></div></td> > </tr> > > <tr> > <td>rack.multiprocess</td> > <td class="code"><div>false</div></td> > </tr> > > <tr> > <td>rack.multithread</td> > <td class="code"><div>true</div></td> > </tr> > > <tr> > <td>rack.request.cookie_hash</td> > <td class="code"><div>{}</div></td> > </tr> > > <tr> > <td>rack.request.query_hash</td> > <td class="code"><div>{}</div></td> > </tr> > > <tr> > <td>rack.request.query_string</td> > <td class="code"><div></div></td> > </tr> > > <tr> > <td>rack.run_once</td> > <td class="code"><div>false</div></td> > </tr> > > <tr> > <td>rack.url_scheme</td> > <td class="code"><div>http</div></td> > </tr> > > <tr> > <td>rack.version</td> > <td class="code"><div>[1, 1]</div></td> > </tr> > > <tr> > <td>sinatra.commonlogger</td> > <td class="code"><div>true</div></td> > </tr> > > <tr> > <td>sinatra.error</td> > <td class="code"><div>#<TypeError: can't convert Symbol into String></div></td> > </tr> > > </table> > <div class="clear"></div> > </div> <!-- /RACK ENV --> > > <p id="explanation">You're seeing this error because you have >enabled the <code>show_exceptions</code> setting.</p> > </div> <!-- /WRAP --> > </body> ></html> >Upload failed: 500 "Internal Server Error "
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 1313805
: 1158338