intranet-core 2.3.2 → 2.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c7e47a94a48b6d2b3f4c65189c7fc94327e5f53de9a899bcb28da2258e6070fb
4
- data.tar.gz: add7936f6332a55e6c941a921d6640f1cbfdaab2cb898f5379ee00a22a64d518
3
+ metadata.gz: 76f13ef8a3ab5032152a1a6d5c4a94fca53f02a74492ae02fe3e0af354e06e2c
4
+ data.tar.gz: ee7c7404de4b6c417ff25f1d39d94eef2adc8a482e0a9b1ed5f7817f6b62a5e8
5
5
  SHA512:
6
- metadata.gz: 88b987f64a395931ef5da9cd12988d6b0d798428511cda1e23b10ae36ed8f7e50460fc2ccfb1faf89aaa8f6c2e36f97ccb730d0be7f6b401df6ceb61e93b6981
7
- data.tar.gz: eaf83db0c2c7a1c1692659a3a2442741972fbf75248da2bbd6ef012d37be3dc1434d1155099fc9767f318373802490eaf8c11dd4ef881b21440586e52d2b1a2a
6
+ metadata.gz: d5e60003e1e2071a6da97d46d54a116cafd4b66d171d98914f0fb6c88ebee962a700681e96dd5ffbfdf2799a49677148840c49443aa1e31d0c4085688678a0d2
7
+ data.tar.gz: 2c40affb90abccfca11a0c38032f03f094c8fa9f907cf60cf1815a93a35c51b0736b9572bb4e249ed71462305e2a834ba245c73bb2aa387a7123f15dd17d7ee4
data/lib/intranet/core.rb CHANGED
@@ -91,10 +91,11 @@ module Intranet
91
91
  # See https://github.com/nahi/webrick/blob/master/lib/webrick/accesslog.rb#L69
92
92
  ACCESSLOG_FMT = "%h '%r' -> %s (%b bytes in %Ts)"
93
93
 
94
- def load_http_server(preferred_port)
94
+ def load_http_server(preferred_port) # rubocop:disable Metrics/MethodLength
95
95
  @port = preferred_port
96
96
  begin
97
- WEBrick::HTTPServer.new(Port: @port, Logger: @logger, AccessLog: [[@logger, ACCESSLOG_FMT]])
97
+ WEBrick::HTTPServer.new(Port: @port, Logger: @logger, AccessLog: [[@logger, ACCESSLOG_FMT]],
98
+ ServerSoftware: nil)
98
99
  rescue Errno::EACCES # not enough permission to use port 80
99
100
  @port = 8080
100
101
  retry
@@ -6,7 +6,7 @@ module Intranet
6
6
  NAME = 'intranet-core'
7
7
 
8
8
  # The version of the gem, according to semantic versionning.
9
- VERSION = '2.3.2'
9
+ VERSION = '2.3.3'
10
10
 
11
11
  # The URL of the gem homepage.
12
12
  HOMEPAGE_URL = 'https://rubygems.org/gems/intranet-core'
@@ -61,6 +61,31 @@ RSpec.describe Intranet::Core do
61
61
  thread&.join
62
62
  end
63
63
 
64
+ it 'should not advertise server version in HTTP response headers' do
65
+ @intranet = described_class.new(Intranet::Logger.new(Intranet::Logger::FATAL))
66
+ thread = Thread.new { @intranet.start }
67
+ while @intranet.instance_variable_get(:@server).status != :Running
68
+ end
69
+
70
+ socket = TCPSocket.new('localhost', @intranet.port)
71
+ socket.puts("GET /design/favicon.ico HTTP/1.1\r\nHost: localhost:#{@intranet.port}\r\n\r\n")
72
+ server_identification = ''
73
+ expect(socket.gets).to include('HTTP/1.1 200 OK') # pre-requisite
74
+ while (line = socket.gets.chomp) # look for Server response header
75
+ break if line.empty?
76
+
77
+ if line.start_with?('Server: ')
78
+ server_identification = line[8..-1]
79
+ break
80
+ end
81
+ end
82
+ expect(server_identification).to be_empty
83
+ socket.close
84
+
85
+ @intranet.stop
86
+ thread&.join
87
+ end
88
+
64
89
  context 'when no module is registered' do
65
90
  it 'should return HTTP error 404 when requested for /index.html' do
66
91
  @intranet = described_class.new(Intranet::Logger.new(Intranet::Logger::FATAL))
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: intranet-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.3.2
4
+ version: 2.3.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ebling Mis
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-05-26 00:00:00.000000000 Z
11
+ date: 2021-05-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: haml