ObjFW  Check-in [6b4d138cc3]

Overview
Comment:OFHTTPServer: Allow setting name to nil

Setting it to nil means no Server header is sent.

Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: 6b4d138cc3e652220f5b8ace89b1eb499e68b5f88bab37e1aea4543edd172f0d
User & Date: js on 2016-01-05 14:55:47
Other Links: manifest | tags
Context
2016-01-05
14:58
OFHTTPClient: Allow override of all headers check-in: b9c811a236 user: js tags: trunk
14:55
OFHTTPServer: Allow setting name to nil check-in: 6b4d138cc3 user: js tags: trunk
14:10
Better randomization of HTTP header order check-in: 58d4025602 user: js tags: trunk
Changes

Modified src/OFHTTPServer.h from [5c01a19877] to [79f127a3bc].

89
90
91
92
93
94
95



96
97

98
99
100
101
102
103
104
89
90
91
92
93
94
95
96
97
98
99

100
101
102
103
104
105
106
107







+
+
+

-
+







/*!
 * The delegate for the HTTP server.
 */
@property OF_NULLABLE_PROPERTY (assign) id <OFHTTPServerDelegate> delegate;

/*!
 * The server name the server presents to clients.
 *
 * Setting it to `nil` means no `Server` header will be sent, unless one is
 * specified in the response headers.
 */
@property (copy) OFString *name;
@property OF_NULLABLE_PROPERTY (copy) OFString *name;

/*!
 * @brief Creates a new HTTP server.
 *
 * @return A new HTTP server
 */
+ (instancetype)server;

Modified src/OFHTTPServer.m from [5b5e9e2174] to [e2c16ad886].

221
222
223
224
225
226
227
228
229
230







231
232
233
234
235
236
237
221
222
223
224
225
226
227



228
229
230
231
232
233
234
235
236
237
238
239
240
241







-
-
-
+
+
+
+
+
+
+







		OFString *date = [[OFDate date]
		    dateStringWithFormat: @"%a, %d %b %Y %H:%M:%S GMT"];

		[headers setObject: date
			    forKey: @"Date"];
	}

	if ([headers objectForKey: @"Server"] == nil)
		[headers setObject: [_server name]
			    forKey: @"Server"];
	if ([headers objectForKey: @"Server"] == nil) {
		OFString *name = [_server name];

		if (name != nil)
			[headers setObject: name
				    forKey: @"Server"];
	}

	keyEnumerator = [headers keyEnumerator];
	valueEnumerator = [headers objectEnumerator];
	while ((key = [keyEnumerator nextObject]) != nil &&
	    (value = [valueEnumerator nextObject]) != nil)
		[_socket writeFormat: @"%@: %@\r\n", key, value];