passenger 6.0.6 → 6.0.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG +28 -1
- data/CONTRIBUTING.md +1 -1
- data/CONTRIBUTORS +2 -0
- data/bin/passenger-memory-stats +65 -12
- data/passenger.gemspec +1 -1
- data/resources/templates/error_renderer/with_details/dist/bundle.js +1 -1
- data/resources/templates/error_renderer/with_details/src/GetHelpView.jsx +1 -1
- data/resources/templates/standalone/rails_asset_pipeline.erb +1 -1
- data/src/agent/Core/ApplicationPool/Group/StateInspection.cpp +1 -0
- data/src/agent/Core/ApplicationPool/Implementation.cpp +0 -1
- data/src/agent/Core/ApplicationPool/Options.h +9 -0
- data/src/agent/Core/Config.h +2 -1
- data/src/agent/Core/Controller/Config.h +5 -1
- data/src/agent/Core/Controller/InitRequest.cpp +2 -0
- data/src/agent/Core/SpawningKit/Config.h +11 -0
- data/src/agent/Core/SpawningKit/Config/AutoGeneratedCode.h +13 -0
- data/src/agent/Core/SpawningKit/Spawner.h +1 -0
- data/src/agent/Watchdog/Config.h +2 -1
- data/src/apache2_module/Config.cpp +1 -1
- data/src/apache2_module/ConfigGeneral/AutoGeneratedDefinitions.cpp +10 -0
- data/src/apache2_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.cpp +10 -0
- data/src/apache2_module/ConfigGeneral/AutoGeneratedSetterFuncs.cpp +25 -0
- data/src/apache2_module/DirConfig/AutoGeneratedCreateFunction.cpp +10 -0
- data/src/apache2_module/DirConfig/AutoGeneratedHeaderSerialization.cpp +6 -0
- data/src/apache2_module/DirConfig/AutoGeneratedManifestGeneration.cpp +26 -0
- data/src/apache2_module/DirConfig/AutoGeneratedMergeFunction.cpp +14 -0
- data/src/apache2_module/DirConfig/AutoGeneratedStruct.h +34 -0
- data/src/cxx_supportlib/Constants.h +3 -2
- data/src/cxx_supportlib/Hooks.h +1 -0
- data/src/cxx_supportlib/vendor-modified/modp_b64_data.h +0 -4
- data/src/cxx_supportlib/vendor-modified/modp_b64_strict_aliasing.cpp +5 -1
- data/src/helper-scripts/node-loader.js +1 -1
- data/src/nginx_module/ConfigGeneral/AutoGeneratedDefinitions.c +8 -0
- data/src/nginx_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.c +7 -0
- data/src/nginx_module/ConfigGeneral/AutoGeneratedSetterFuncs.c +12 -0
- data/src/nginx_module/Configuration.c +1 -1
- data/src/nginx_module/LocationConfig/AutoGeneratedCreateFunction.c +6 -0
- data/src/nginx_module/LocationConfig/AutoGeneratedHeaderSerialization.c +15 -0
- data/src/nginx_module/LocationConfig/AutoGeneratedManifestGeneration.c +14 -0
- data/src/nginx_module/LocationConfig/AutoGeneratedMergeFunction.c +3 -0
- data/src/nginx_module/LocationConfig/AutoGeneratedStruct.h +4 -0
- data/src/nginx_module/ngx_http_passenger_module.c +2 -2
- data/src/ruby_supportlib/phusion_passenger.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/admin_tools/memory_stats.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/apache2/config_options.rb +6 -0
- data/src/ruby_supportlib/phusion_passenger/constants.rb +2 -1
- data/src/ruby_supportlib/phusion_passenger/loader_shared_helpers.rb +5 -1
- data/src/ruby_supportlib/phusion_passenger/nginx/config_options.rb +6 -0
- data/src/ruby_supportlib/phusion_passenger/platform_info/apache.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/request_handler.rb +7 -6
- data/src/ruby_supportlib/phusion_passenger/standalone/config_options_list.rb +7 -0
- data/src/ruby_supportlib/phusion_passenger/standalone/start_command/builtin_engine.rb +2 -2
- metadata +3 -3
@@ -172,6 +172,11 @@ extern "C" const command_rec passenger_commands[] = {
|
|
172
172
|
NULL,
|
173
173
|
RSRC_CONF,
|
174
174
|
"The user that Phusion Passenger applications must run as when user switching fails or is disabled."),
|
175
|
+
AP_INIT_TAKE1("PassengerDirectInstanceRequestAddress",
|
176
|
+
(Take1Func) cmd_passenger_direct_instance_request_address,
|
177
|
+
NULL,
|
178
|
+
RSRC_CONF | ACCESS_CONF,
|
179
|
+
"The address that Passenger binds to in order to allow sending HTTP requests to individual application processes."),
|
175
180
|
AP_INIT_FLAG("PassengerDisableAnonymousTelemetry",
|
176
181
|
(FlagFunc) cmd_passenger_disable_anonymous_telemetry,
|
177
182
|
NULL,
|
@@ -412,6 +417,11 @@ extern "C" const command_rec passenger_commands[] = {
|
|
412
417
|
NULL,
|
413
418
|
RSRC_CONF | ACCESS_CONF | OR_ALL,
|
414
419
|
"Whether to enable sticky sessions."),
|
420
|
+
AP_INIT_TAKE1("PassengerStickySessionsCookieAttributes",
|
421
|
+
(Take1Func) cmd_passenger_sticky_sessions_cookie_attributes,
|
422
|
+
NULL,
|
423
|
+
RSRC_CONF | ACCESS_CONF | OR_ALL,
|
424
|
+
"The attributes to use for the sticky session cookie."),
|
415
425
|
AP_INIT_TAKE1("PassengerStickySessionsCookieName",
|
416
426
|
(Take1Func) cmd_passenger_sticky_sessions_cookie_name,
|
417
427
|
NULL,
|
@@ -179,6 +179,11 @@ ConfigManifestGenerator::autoGenerated_setAppConfigDefaults() {
|
|
179
179
|
"PassengerAppType",
|
180
180
|
P_STATIC_STRING("Autodetected"));
|
181
181
|
|
182
|
+
addOptionsContainerStaticDefaultStr(
|
183
|
+
defaultAppConfigContainer,
|
184
|
+
"PassengerDirectInstanceRequestAddress",
|
185
|
+
P_STATIC_STRING("127.0.0.1"));
|
186
|
+
|
182
187
|
addOptionsContainerStaticDefaultInt(
|
183
188
|
defaultAppConfigContainer,
|
184
189
|
"PassengerForceMaxConcurrentRequestsPerProcess",
|
@@ -305,6 +310,11 @@ ConfigManifestGenerator::autoGenerated_setLocationConfigDefaults() {
|
|
305
310
|
"PassengerStickySessions",
|
306
311
|
false);
|
307
312
|
|
313
|
+
addOptionsContainerStaticDefaultStr(
|
314
|
+
defaultLocConfigContainer,
|
315
|
+
"PassengerStickySessionsCookieAttributes",
|
316
|
+
DEFAULT_STICKY_SESSIONS_COOKIE_ATTRIBUTES);
|
317
|
+
|
308
318
|
addOptionsContainerStaticDefaultStr(
|
309
319
|
defaultLocConfigContainer,
|
310
320
|
"PassengerStickySessionsCookieName",
|
@@ -319,6 +319,21 @@ cmd_passenger_default_user(cmd_parms *cmd, void *pcfg, const char *arg) {
|
|
319
319
|
return NULL;
|
320
320
|
}
|
321
321
|
|
322
|
+
static const char *
|
323
|
+
cmd_passenger_direct_instance_request_address(cmd_parms *cmd, void *pcfg, const char *arg) {
|
324
|
+
const char *err = ap_check_cmd_context(cmd, NOT_IN_FILES);
|
325
|
+
if (err != NULL) {
|
326
|
+
return err;
|
327
|
+
}
|
328
|
+
|
329
|
+
DirConfig *config = (DirConfig *) pcfg;
|
330
|
+
config->mDirectInstanceRequestAddressSourceFile = cmd->directive->filename;
|
331
|
+
config->mDirectInstanceRequestAddressSourceLine = cmd->directive->line_num;
|
332
|
+
config->mDirectInstanceRequestAddressExplicitlySet = true;
|
333
|
+
config->mDirectInstanceRequestAddress = arg;
|
334
|
+
return NULL;
|
335
|
+
}
|
336
|
+
|
322
337
|
static const char *
|
323
338
|
cmd_passenger_disable_anonymous_telemetry(cmd_parms *cmd, void *pcfg, const char *arg) {
|
324
339
|
const char *err = ap_check_cmd_context(cmd, GLOBAL_ONLY);
|
@@ -903,6 +918,16 @@ cmd_passenger_sticky_sessions(cmd_parms *cmd, void *pcfg, const char *arg) {
|
|
903
918
|
return NULL;
|
904
919
|
}
|
905
920
|
|
921
|
+
static const char *
|
922
|
+
cmd_passenger_sticky_sessions_cookie_attributes(cmd_parms *cmd, void *pcfg, const char *arg) {
|
923
|
+
DirConfig *config = (DirConfig *) pcfg;
|
924
|
+
config->mStickySessionsCookieAttributesSourceFile = cmd->directive->filename;
|
925
|
+
config->mStickySessionsCookieAttributesSourceLine = cmd->directive->line_num;
|
926
|
+
config->mStickySessionsCookieAttributesExplicitlySet = true;
|
927
|
+
config->mStickySessionsCookieAttributes = arg;
|
928
|
+
return NULL;
|
929
|
+
}
|
930
|
+
|
906
931
|
static const char *
|
907
932
|
cmd_passenger_sticky_sessions_cookie_name(cmd_parms *cmd, void *pcfg, const char *arg) {
|
908
933
|
DirConfig *config = (DirConfig *) pcfg;
|
@@ -75,6 +75,9 @@ createDirConfig_autoGenerated(DirConfig *config) {
|
|
75
75
|
*/
|
76
76
|
config->mBufferResponse = Apache2Module::UNSET;
|
77
77
|
config->mBufferUpload = Apache2Module::UNSET;
|
78
|
+
/*
|
79
|
+
* config->mDirectInstanceRequestAddress: default initialized
|
80
|
+
*/
|
78
81
|
config->mEnabled = Apache2Module::UNSET;
|
79
82
|
config->mErrorOverride = Apache2Module::UNSET;
|
80
83
|
config->mForceMaxConcurrentRequestsPerProcess = UNSET_INT_VALUE;
|
@@ -115,6 +118,9 @@ createDirConfig_autoGenerated(DirConfig *config) {
|
|
115
118
|
* config->mStartupFile: default initialized
|
116
119
|
*/
|
117
120
|
config->mStickySessions = Apache2Module::UNSET;
|
121
|
+
/*
|
122
|
+
* config->mStickySessionsCookieAttributes: default initialized
|
123
|
+
*/
|
118
124
|
/*
|
119
125
|
* config->mStickySessionsCookieName: default initialized
|
120
126
|
*/
|
@@ -132,6 +138,7 @@ createDirConfig_autoGenerated(DirConfig *config) {
|
|
132
138
|
config->mBaseURIsSourceLine = 0;
|
133
139
|
config->mBufferResponseSourceLine = 0;
|
134
140
|
config->mBufferUploadSourceLine = 0;
|
141
|
+
config->mDirectInstanceRequestAddressSourceLine = 0;
|
135
142
|
config->mEnabledSourceLine = 0;
|
136
143
|
config->mErrorOverrideSourceLine = 0;
|
137
144
|
config->mForceMaxConcurrentRequestsPerProcessSourceLine = 0;
|
@@ -154,6 +161,7 @@ createDirConfig_autoGenerated(DirConfig *config) {
|
|
154
161
|
config->mStartTimeoutSourceLine = 0;
|
155
162
|
config->mStartupFileSourceLine = 0;
|
156
163
|
config->mStickySessionsSourceLine = 0;
|
164
|
+
config->mStickySessionsCookieAttributesSourceLine = 0;
|
157
165
|
config->mStickySessionsCookieNameSourceLine = 0;
|
158
166
|
config->mUserSourceLine = 0;
|
159
167
|
|
@@ -167,6 +175,7 @@ createDirConfig_autoGenerated(DirConfig *config) {
|
|
167
175
|
config->mBaseURIsExplicitlySet = false;
|
168
176
|
config->mBufferResponseExplicitlySet = false;
|
169
177
|
config->mBufferUploadExplicitlySet = false;
|
178
|
+
config->mDirectInstanceRequestAddressExplicitlySet = false;
|
170
179
|
config->mEnabledExplicitlySet = false;
|
171
180
|
config->mErrorOverrideExplicitlySet = false;
|
172
181
|
config->mForceMaxConcurrentRequestsPerProcessExplicitlySet = false;
|
@@ -189,6 +198,7 @@ createDirConfig_autoGenerated(DirConfig *config) {
|
|
189
198
|
config->mStartTimeoutExplicitlySet = false;
|
190
199
|
config->mStartupFileExplicitlySet = false;
|
191
200
|
config->mStickySessionsExplicitlySet = false;
|
201
|
+
config->mStickySessionsCookieAttributesExplicitlySet = false;
|
192
202
|
config->mStickySessionsCookieNameExplicitlySet = false;
|
193
203
|
config->mUserExplicitlySet = false;
|
194
204
|
}
|
@@ -61,6 +61,9 @@ constructRequestHeaders_autoGenerated(request_rec *r, DirConfig *config, std::st
|
|
61
61
|
addHeader(result, StaticString("!~PASSENGER_APP_LOG_FILE",
|
62
62
|
sizeof("!~PASSENGER_APP_LOG_FILE") - 1),
|
63
63
|
config->mAppLogFile);
|
64
|
+
addHeader(result, StaticString("!~PASSENGER_DIRECT_INSTANCE_REQUEST_ADDRESS",
|
65
|
+
sizeof("!~PASSENGER_DIRECT_INSTANCE_REQUEST_ADDRESS") - 1),
|
66
|
+
config->mDirectInstanceRequestAddress);
|
64
67
|
addHeader(r, result, StaticString("!~PASSENGER_FORCE_MAX_CONCURRENT_REQUESTS_PER_PROCESS",
|
65
68
|
sizeof("!~PASSENGER_FORCE_MAX_CONCURRENT_REQUESTS_PER_PROCESS") - 1),
|
66
69
|
config->mForceMaxConcurrentRequestsPerProcess);
|
@@ -115,6 +118,9 @@ constructRequestHeaders_autoGenerated(request_rec *r, DirConfig *config, std::st
|
|
115
118
|
addHeader(result, StaticString("!~PASSENGER_STICKY_SESSIONS",
|
116
119
|
sizeof("!~PASSENGER_STICKY_SESSIONS") - 1),
|
117
120
|
config->mStickySessions);
|
121
|
+
addHeader(result, StaticString("!~PASSENGER_STICKY_SESSIONS_COOKIE_ATTRIBUTES",
|
122
|
+
sizeof("!~PASSENGER_STICKY_SESSIONS_COOKIE_ATTRIBUTES") - 1),
|
123
|
+
config->mStickySessionsCookieAttributes);
|
118
124
|
addHeader(result, StaticString("!~PASSENGER_STICKY_SESSIONS_COOKIE_NAME",
|
119
125
|
sizeof("!~PASSENGER_STICKY_SESSIONS_COOKIE_NAME") - 1),
|
120
126
|
config->mStickySessionsCookieName);
|
@@ -176,6 +176,19 @@ ConfigManifestGenerator::autoGenerated_generateConfigManifestForDirConfig(server
|
|
176
176
|
pdconf->mBufferUploadSourceLine);
|
177
177
|
hierarchyMember["value"] = pdconf->mBufferUpload == Apache2Module::ENABLED;
|
178
178
|
}
|
179
|
+
if (pdconf->mDirectInstanceRequestAddressExplicitlySet) {
|
180
|
+
findOrCreateAppAndLocOptionsContainers(serverRec, csconf, cdconf,
|
181
|
+
pdconf, context, &appOptionsContainer, &locOptionsContainer);
|
182
|
+
Json::Value &optionContainer = findOrCreateOptionContainer(*appOptionsContainer,
|
183
|
+
"PassengerDirectInstanceRequestAddress",
|
184
|
+
sizeof("PassengerDirectInstanceRequestAddress") - 1);
|
185
|
+
Json::Value &hierarchyMember = addOptionContainerHierarchyMember(optionContainer,
|
186
|
+
pdconf->mDirectInstanceRequestAddressSourceFile,
|
187
|
+
pdconf->mDirectInstanceRequestAddressSourceLine);
|
188
|
+
hierarchyMember["value"] = Json::Value(
|
189
|
+
pdconf->mDirectInstanceRequestAddress.data(),
|
190
|
+
pdconf->mDirectInstanceRequestAddress.data() + pdconf->mDirectInstanceRequestAddress.size());
|
191
|
+
}
|
179
192
|
if (pdconf->mEnabledExplicitlySet) {
|
180
193
|
findOrCreateAppAndLocOptionsContainers(serverRec, csconf, cdconf,
|
181
194
|
pdconf, context, &appOptionsContainer, &locOptionsContainer);
|
@@ -435,6 +448,19 @@ ConfigManifestGenerator::autoGenerated_generateConfigManifestForDirConfig(server
|
|
435
448
|
pdconf->mStickySessionsSourceLine);
|
436
449
|
hierarchyMember["value"] = pdconf->mStickySessions == Apache2Module::ENABLED;
|
437
450
|
}
|
451
|
+
if (pdconf->mStickySessionsCookieAttributesExplicitlySet) {
|
452
|
+
findOrCreateAppAndLocOptionsContainers(serverRec, csconf, cdconf,
|
453
|
+
pdconf, context, &appOptionsContainer, &locOptionsContainer);
|
454
|
+
Json::Value &optionContainer = findOrCreateOptionContainer(*locOptionsContainer,
|
455
|
+
"PassengerStickySessionsCookieAttributes",
|
456
|
+
sizeof("PassengerStickySessionsCookieAttributes") - 1);
|
457
|
+
Json::Value &hierarchyMember = addOptionContainerHierarchyMember(optionContainer,
|
458
|
+
pdconf->mStickySessionsCookieAttributesSourceFile,
|
459
|
+
pdconf->mStickySessionsCookieAttributesSourceLine);
|
460
|
+
hierarchyMember["value"] = Json::Value(
|
461
|
+
pdconf->mStickySessionsCookieAttributes.data(),
|
462
|
+
pdconf->mStickySessionsCookieAttributes.data() + pdconf->mStickySessionsCookieAttributes.size());
|
463
|
+
}
|
438
464
|
if (pdconf->mStickySessionsCookieNameExplicitlySet) {
|
439
465
|
findOrCreateAppAndLocOptionsContainers(serverRec, csconf, cdconf,
|
440
466
|
pdconf, context, &appOptionsContainer, &locOptionsContainer);
|
@@ -88,6 +88,10 @@ mergeDirConfig_autoGenerated(DirConfig *config, DirConfig *base, DirConfig *add)
|
|
88
88
|
(add->mBufferUpload != Apache2Module::UNSET)
|
89
89
|
? add->mBufferUpload
|
90
90
|
: base->mBufferUpload;
|
91
|
+
config->mDirectInstanceRequestAddress =
|
92
|
+
(!add->mDirectInstanceRequestAddress.empty())
|
93
|
+
? add->mDirectInstanceRequestAddress
|
94
|
+
: base->mDirectInstanceRequestAddress;
|
91
95
|
config->mEnabled =
|
92
96
|
(add->mEnabled != Apache2Module::UNSET)
|
93
97
|
? add->mEnabled
|
@@ -176,6 +180,10 @@ mergeDirConfig_autoGenerated(DirConfig *config, DirConfig *base, DirConfig *add)
|
|
176
180
|
(add->mStickySessions != Apache2Module::UNSET)
|
177
181
|
? add->mStickySessions
|
178
182
|
: base->mStickySessions;
|
183
|
+
config->mStickySessionsCookieAttributes =
|
184
|
+
(!add->mStickySessionsCookieAttributes.empty())
|
185
|
+
? add->mStickySessionsCookieAttributes
|
186
|
+
: base->mStickySessionsCookieAttributes;
|
179
187
|
config->mStickySessionsCookieName =
|
180
188
|
(!add->mStickySessionsCookieName.empty())
|
181
189
|
? add->mStickySessionsCookieName
|
@@ -195,6 +203,7 @@ mergeDirConfig_autoGenerated(DirConfig *config, DirConfig *base, DirConfig *add)
|
|
195
203
|
config->mBaseURIsSourceFile = add->mBaseURIsSourceFile;
|
196
204
|
config->mBufferResponseSourceFile = add->mBufferResponseSourceFile;
|
197
205
|
config->mBufferUploadSourceFile = add->mBufferUploadSourceFile;
|
206
|
+
config->mDirectInstanceRequestAddressSourceFile = add->mDirectInstanceRequestAddressSourceFile;
|
198
207
|
config->mEnabledSourceFile = add->mEnabledSourceFile;
|
199
208
|
config->mErrorOverrideSourceFile = add->mErrorOverrideSourceFile;
|
200
209
|
config->mForceMaxConcurrentRequestsPerProcessSourceFile = add->mForceMaxConcurrentRequestsPerProcessSourceFile;
|
@@ -217,6 +226,7 @@ mergeDirConfig_autoGenerated(DirConfig *config, DirConfig *base, DirConfig *add)
|
|
217
226
|
config->mStartTimeoutSourceFile = add->mStartTimeoutSourceFile;
|
218
227
|
config->mStartupFileSourceFile = add->mStartupFileSourceFile;
|
219
228
|
config->mStickySessionsSourceFile = add->mStickySessionsSourceFile;
|
229
|
+
config->mStickySessionsCookieAttributesSourceFile = add->mStickySessionsCookieAttributesSourceFile;
|
220
230
|
config->mStickySessionsCookieNameSourceFile = add->mStickySessionsCookieNameSourceFile;
|
221
231
|
config->mUserSourceFile = add->mUserSourceFile;
|
222
232
|
|
@@ -230,6 +240,7 @@ mergeDirConfig_autoGenerated(DirConfig *config, DirConfig *base, DirConfig *add)
|
|
230
240
|
config->mBaseURIsSourceLine = add->mBaseURIsSourceLine;
|
231
241
|
config->mBufferResponseSourceLine = add->mBufferResponseSourceLine;
|
232
242
|
config->mBufferUploadSourceLine = add->mBufferUploadSourceLine;
|
243
|
+
config->mDirectInstanceRequestAddressSourceLine = add->mDirectInstanceRequestAddressSourceLine;
|
233
244
|
config->mEnabledSourceLine = add->mEnabledSourceLine;
|
234
245
|
config->mErrorOverrideSourceLine = add->mErrorOverrideSourceLine;
|
235
246
|
config->mForceMaxConcurrentRequestsPerProcessSourceLine = add->mForceMaxConcurrentRequestsPerProcessSourceLine;
|
@@ -252,6 +263,7 @@ mergeDirConfig_autoGenerated(DirConfig *config, DirConfig *base, DirConfig *add)
|
|
252
263
|
config->mStartTimeoutSourceLine = add->mStartTimeoutSourceLine;
|
253
264
|
config->mStartupFileSourceLine = add->mStartupFileSourceLine;
|
254
265
|
config->mStickySessionsSourceLine = add->mStickySessionsSourceLine;
|
266
|
+
config->mStickySessionsCookieAttributesSourceLine = add->mStickySessionsCookieAttributesSourceLine;
|
255
267
|
config->mStickySessionsCookieNameSourceLine = add->mStickySessionsCookieNameSourceLine;
|
256
268
|
config->mUserSourceLine = add->mUserSourceLine;
|
257
269
|
|
@@ -265,6 +277,7 @@ mergeDirConfig_autoGenerated(DirConfig *config, DirConfig *base, DirConfig *add)
|
|
265
277
|
config->mBaseURIsExplicitlySet = add->mBaseURIsExplicitlySet;
|
266
278
|
config->mBufferResponseExplicitlySet = add->mBufferResponseExplicitlySet;
|
267
279
|
config->mBufferUploadExplicitlySet = add->mBufferUploadExplicitlySet;
|
280
|
+
config->mDirectInstanceRequestAddressExplicitlySet = add->mDirectInstanceRequestAddressExplicitlySet;
|
268
281
|
config->mEnabledExplicitlySet = add->mEnabledExplicitlySet;
|
269
282
|
config->mErrorOverrideExplicitlySet = add->mErrorOverrideExplicitlySet;
|
270
283
|
config->mForceMaxConcurrentRequestsPerProcessExplicitlySet = add->mForceMaxConcurrentRequestsPerProcessExplicitlySet;
|
@@ -287,6 +300,7 @@ mergeDirConfig_autoGenerated(DirConfig *config, DirConfig *base, DirConfig *add)
|
|
287
300
|
config->mStartTimeoutExplicitlySet = add->mStartTimeoutExplicitlySet;
|
288
301
|
config->mStartupFileExplicitlySet = add->mStartupFileExplicitlySet;
|
289
302
|
config->mStickySessionsExplicitlySet = add->mStickySessionsExplicitlySet;
|
303
|
+
config->mStickySessionsCookieAttributesExplicitlySet = add->mStickySessionsCookieAttributesExplicitlySet;
|
290
304
|
config->mStickySessionsCookieNameExplicitlySet = add->mStickySessionsCookieNameExplicitlySet;
|
291
305
|
config->mUserExplicitlySet = add->mUserExplicitlySet;
|
292
306
|
}
|
@@ -166,6 +166,11 @@ struct AutoGeneratedDirConfig {
|
|
166
166
|
*/
|
167
167
|
StaticString mAppType;
|
168
168
|
|
169
|
+
/*
|
170
|
+
* The address that Passenger binds to in order to allow sending HTTP requests to individual application processes.
|
171
|
+
*/
|
172
|
+
StaticString mDirectInstanceRequestAddress;
|
173
|
+
|
169
174
|
/*
|
170
175
|
* The group that Ruby applications must run as.
|
171
176
|
*/
|
@@ -206,6 +211,11 @@ struct AutoGeneratedDirConfig {
|
|
206
211
|
*/
|
207
212
|
StaticString mStartupFile;
|
208
213
|
|
214
|
+
/*
|
215
|
+
* The attributes to use for the sticky session cookie.
|
216
|
+
*/
|
217
|
+
StaticString mStickySessionsCookieAttributes;
|
218
|
+
|
209
219
|
/*
|
210
220
|
* The cookie name to use for sticky sessions.
|
211
221
|
*/
|
@@ -249,6 +259,7 @@ struct AutoGeneratedDirConfig {
|
|
249
259
|
StaticString mAppRootSourceFile;
|
250
260
|
StaticString mAppStartCommandSourceFile;
|
251
261
|
StaticString mAppTypeSourceFile;
|
262
|
+
StaticString mDirectInstanceRequestAddressSourceFile;
|
252
263
|
StaticString mGroupSourceFile;
|
253
264
|
StaticString mMeteorAppSettingsSourceFile;
|
254
265
|
StaticString mNodejsSourceFile;
|
@@ -257,6 +268,7 @@ struct AutoGeneratedDirConfig {
|
|
257
268
|
StaticString mRubySourceFile;
|
258
269
|
StaticString mSpawnMethodSourceFile;
|
259
270
|
StaticString mStartupFileSourceFile;
|
271
|
+
StaticString mStickySessionsCookieAttributesSourceFile;
|
260
272
|
StaticString mStickySessionsCookieNameSourceFile;
|
261
273
|
StaticString mUserSourceFile;
|
262
274
|
StaticString mBaseURIsSourceFile;
|
@@ -284,6 +296,7 @@ struct AutoGeneratedDirConfig {
|
|
284
296
|
unsigned int mAppRootSourceLine;
|
285
297
|
unsigned int mAppStartCommandSourceLine;
|
286
298
|
unsigned int mAppTypeSourceLine;
|
299
|
+
unsigned int mDirectInstanceRequestAddressSourceLine;
|
287
300
|
unsigned int mGroupSourceLine;
|
288
301
|
unsigned int mMeteorAppSettingsSourceLine;
|
289
302
|
unsigned int mNodejsSourceLine;
|
@@ -292,6 +305,7 @@ struct AutoGeneratedDirConfig {
|
|
292
305
|
unsigned int mRubySourceLine;
|
293
306
|
unsigned int mSpawnMethodSourceLine;
|
294
307
|
unsigned int mStartupFileSourceLine;
|
308
|
+
unsigned int mStickySessionsCookieAttributesSourceLine;
|
295
309
|
unsigned int mStickySessionsCookieNameSourceLine;
|
296
310
|
unsigned int mUserSourceLine;
|
297
311
|
unsigned int mBaseURIsSourceLine;
|
@@ -319,6 +333,7 @@ struct AutoGeneratedDirConfig {
|
|
319
333
|
bool mAppRootExplicitlySet: 1;
|
320
334
|
bool mAppStartCommandExplicitlySet: 1;
|
321
335
|
bool mAppTypeExplicitlySet: 1;
|
336
|
+
bool mDirectInstanceRequestAddressExplicitlySet: 1;
|
322
337
|
bool mGroupExplicitlySet: 1;
|
323
338
|
bool mMeteorAppSettingsExplicitlySet: 1;
|
324
339
|
bool mNodejsExplicitlySet: 1;
|
@@ -327,6 +342,7 @@ struct AutoGeneratedDirConfig {
|
|
327
342
|
bool mRubyExplicitlySet: 1;
|
328
343
|
bool mSpawnMethodExplicitlySet: 1;
|
329
344
|
bool mStartupFileExplicitlySet: 1;
|
345
|
+
bool mStickySessionsCookieAttributesExplicitlySet: 1;
|
330
346
|
bool mStickySessionsCookieNameExplicitlySet: 1;
|
331
347
|
bool mUserExplicitlySet: 1;
|
332
348
|
bool mBaseURIsExplicitlySet: 1;
|
@@ -507,6 +523,15 @@ struct AutoGeneratedDirConfig {
|
|
507
523
|
return mAppType;
|
508
524
|
}
|
509
525
|
|
526
|
+
StaticString
|
527
|
+
getDirectInstanceRequestAddress() const {
|
528
|
+
if (mDirectInstanceRequestAddress.empty()) {
|
529
|
+
return P_STATIC_STRING("127.0.0.1");
|
530
|
+
} else {
|
531
|
+
return mDirectInstanceRequestAddress;
|
532
|
+
}
|
533
|
+
}
|
534
|
+
|
510
535
|
StaticString
|
511
536
|
getGroup() const {
|
512
537
|
return mGroup;
|
@@ -563,6 +588,15 @@ struct AutoGeneratedDirConfig {
|
|
563
588
|
return mStartupFile;
|
564
589
|
}
|
565
590
|
|
591
|
+
StaticString
|
592
|
+
getStickySessionsCookieAttributes() const {
|
593
|
+
if (mStickySessionsCookieAttributes.empty()) {
|
594
|
+
return DEFAULT_STICKY_SESSIONS_COOKIE_ATTRIBUTES;
|
595
|
+
} else {
|
596
|
+
return mStickySessionsCookieAttributes;
|
597
|
+
}
|
598
|
+
}
|
599
|
+
|
566
600
|
StaticString
|
567
601
|
getStickySessionsCookieName() const {
|
568
602
|
if (mStickySessionsCookieName.empty()) {
|
@@ -48,6 +48,7 @@
|
|
48
48
|
#define DEFAULT_APP_OUTPUT_LOG_LEVEL 3
|
49
49
|
#define DEFAULT_APP_OUTPUT_LOG_LEVEL_NAME "notice"
|
50
50
|
#define DEFAULT_APP_THREAD_COUNT 1
|
51
|
+
#define DEFAULT_BIND_ADDRESS "127.0.0.1"
|
51
52
|
#define DEFAULT_CONCURRENCY_MODEL "process"
|
52
53
|
#define DEFAULT_FILE_BUFFERED_CHANNEL_THRESHOLD 131072
|
53
54
|
#define DEFAULT_HTTP_SERVER_LISTEN_ADDRESS "tcp://127.0.0.1:3000"
|
@@ -71,7 +72,7 @@
|
|
71
72
|
#define DEFAULT_STICKY_SESSIONS_COOKIE_ATTRIBUTES "SameSite=Lax; Secure;"
|
72
73
|
#define DEFAULT_STICKY_SESSIONS_COOKIE_NAME "_passenger_route"
|
73
74
|
#define DEFAULT_WEB_APP_USER "nobody"
|
74
|
-
#define ENTERPRISE_URL "https://www.phusionpassenger.com/
|
75
|
+
#define ENTERPRISE_URL "https://www.phusionpassenger.com/features#premium-features"
|
75
76
|
#define FEEDBACK_FD 3
|
76
77
|
#define FLYING_PASSENGER_NAME "Flying Passenger"
|
77
78
|
#define GLOBAL_NAMESPACE_DIRNAME "passenger"
|
@@ -82,7 +83,7 @@
|
|
82
83
|
#define PASSENGER_API_VERSION_MAJOR 0
|
83
84
|
#define PASSENGER_API_VERSION_MINOR 3
|
84
85
|
#define PASSENGER_DEFAULT_USER "nobody"
|
85
|
-
#define PASSENGER_VERSION "6.0.
|
86
|
+
#define PASSENGER_VERSION "6.0.7"
|
86
87
|
#define POOL_HELPER_THREAD_STACK_SIZE 262144
|
87
88
|
#define PROCESS_SHUTDOWN_TIMEOUT 60
|
88
89
|
#define PROCESS_SHUTDOWN_TIMEOUT_DISPLAY "1 minute"
|
data/src/cxx_supportlib/Hooks.h
CHANGED
@@ -11,10 +11,6 @@
|
|
11
11
|
typedef uint32_t modp_uint32_t;
|
12
12
|
#endif
|
13
13
|
|
14
|
-
#ifndef MODP_B64_DONT_INCLUDE_BOOST_ENDIANNESS_HEADERS
|
15
|
-
#include <boost/detail/endian.hpp>
|
16
|
-
#endif
|
17
|
-
|
18
14
|
/**
|
19
15
|
* you can control if we use padding by commenting out this
|
20
16
|
* next line. However, I highly recommend you use padding and not
|
@@ -26,6 +26,10 @@
|
|
26
26
|
|
27
27
|
#include "modp_b64_data.h"
|
28
28
|
|
29
|
+
#ifndef MODP_B64_DONT_INCLUDE_BOOST_ENDIANNESS_HEADERS
|
30
|
+
#include <boost/predef/other/endian.h>
|
31
|
+
#endif
|
32
|
+
|
29
33
|
/* public header */
|
30
34
|
#include "modp_b64.h"
|
31
35
|
|
@@ -85,7 +89,7 @@ size_t modp_b64_decode(char* dest, const char* src, size_t len)
|
|
85
89
|
case 0:
|
86
90
|
x = d0[y[3]] | d1[y[2]] | d2[y[1]] | d3[y[0]];
|
87
91
|
if (x >= B64_BADCHAR) return -1;
|
88
|
-
#ifdef
|
92
|
+
#ifdef BOOST_ENDIAN_BIG_BYTE
|
89
93
|
*p++ = ((modp_uint8_t*)&x)[1];
|
90
94
|
*p++ = ((modp_uint8_t*)&x)[2];
|
91
95
|
*p = ((modp_uint8_t*)&x)[3];
|
@@ -135,7 +135,7 @@ setupEnvironment(options);
|
|
135
135
|
|
136
136
|
function tryWriteFile(path, contents) {
|
137
137
|
try {
|
138
|
-
fs.writeFileSync(path, contents);
|
138
|
+
fs.writeFileSync(path, contents.toString());
|
139
139
|
} catch (e) {
|
140
140
|
console.error('Warning: unable to write to ' + path + ': ' + e.message);
|
141
141
|
}
|
@@ -446,6 +446,14 @@
|
|
446
446
|
offsetof(passenger_loc_conf_t, autogenerated.spawn_method),
|
447
447
|
NULL
|
448
448
|
},
|
449
|
+
{
|
450
|
+
ngx_string("passenger_direct_instance_request_address"),
|
451
|
+
NGX_HTTP_MAIN_CONF | NGX_HTTP_SRV_CONF | NGX_HTTP_LOC_CONF | NGX_HTTP_LIF_CONF | NGX_CONF_TAKE1,
|
452
|
+
passenger_conf_set_direct_instance_request_address,
|
453
|
+
NGX_HTTP_LOC_CONF_OFFSET,
|
454
|
+
offsetof(passenger_loc_conf_t, autogenerated.direct_instance_request_address),
|
455
|
+
NULL
|
456
|
+
},
|
449
457
|
{
|
450
458
|
ngx_string("passenger_load_shell_envvars"),
|
451
459
|
NGX_HTTP_MAIN_CONF | NGX_HTTP_SRV_CONF | NGX_HTTP_LOC_CONF | NGX_HTTP_LIF_CONF | NGX_CONF_FLAG,
|