*/
function wfExpandUrl( $url, $defaultProto = PROTO_CURRENT ) {
global $wgServer, $wgCanonicalServer, $wgInternalServer, $wgRequest;
- $serverUrl = $wgServer;
if ( $defaultProto === PROTO_CANONICAL ) {
$serverUrl = $wgCanonicalServer;
- }
- // Make $wgInternalServer fall back to $wgServer if not set
- if ( $defaultProto === PROTO_INTERNAL && $wgInternalServer !== false ) {
+ } elseif ( $defaultProto === PROTO_INTERNAL && $wgInternalServer !== false ) {
+ // Make $wgInternalServer fall back to $wgServer if not set
$serverUrl = $wgInternalServer;
- }
- if ( $defaultProto === PROTO_CURRENT ) {
- $defaultProto = $wgRequest->getProtocol() . '://';
+ } else {
+ $serverUrl = $wgServer;
+ if ( $defaultProto === PROTO_CURRENT ) {
+ $defaultProto = $wgRequest->getProtocol() . '://';
+ }
}
+
// Analyze $serverUrl to obtain its protocol
$bits = wfParseUrl( $serverUrl );
$serverHasProto = $bits && $bits['scheme'] != '';
if ( $useLogPipe ) {
$desc[3] = array( 'pipe', 'w' );
}
+
+ # TODO/FIXME: This is a bad hack to workaround an HHVM bug that prevents
+ # proc_open() from opening stdin/stdout, so use /dev/null *for now*
+ # See bug 56597 / https://github.com/facebook/hhvm/issues/1247 for more info
+ if ( wfIsHHVM() ) {
+ $desc[0] = array( 'file', '/dev/null', 'r' );
+ $desc[2] = array( 'file', '/dev/null', 'w' );
+ }
+
$pipes = null;
$proc = proc_open( $cmd, $desc, $pipes );
if ( !$proc ) {
* @param string|bool $cluster Cluster name accepted by LBFactory. Default: false.
*/
function wfWaitForSlaves( $maxLag = false, $wiki = false, $cluster = false ) {
- if( $cluster !== false ) {
+ if ( $cluster !== false ) {
$lb = wfGetLBFactory()->getExternalLB( $cluster );
} else {
$lb = wfGetLB( $wiki );