summaryrefslogtreecommitdiff
path: root/includes/profiler/ProfilerSimpleUDP.php
diff options
context:
space:
mode:
Diffstat (limited to 'includes/profiler/ProfilerSimpleUDP.php')
-rw-r--r--includes/profiler/ProfilerSimpleUDP.php38
1 files changed, 25 insertions, 13 deletions
diff --git a/includes/profiler/ProfilerSimpleUDP.php b/includes/profiler/ProfilerSimpleUDP.php
index ed49d5a2..ae607aa6 100644
--- a/includes/profiler/ProfilerSimpleUDP.php
+++ b/includes/profiler/ProfilerSimpleUDP.php
@@ -20,22 +20,34 @@ class ProfilerSimpleUDP extends ProfilerSimple {
return;
}
+ if ( !MWInit::functionExists( 'socket_create' ) ) {
+ # Sockets are not enabled
+ return;
+ }
+
$sock = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
- $plength=0;
- $packet="";
- foreach ($this->mCollated as $entry=>$pfdata) {
- $pfline=sprintf ("%s %s %d %f %f %f %f %s\n", $this->getProfileID(),"-",$pfdata['count'],
- $pfdata['cpu'],$pfdata['cpu_sq'],$pfdata['real'],$pfdata['real_sq'],$entry);
- $length=strlen($pfline);
+ $plength = 0;
+ $packet = "";
+ foreach ( $this->mCollated as $entry => $pfdata ) {
+ if( !isset($pfdata['count'])
+ || !isset( $pfdata['cpu'] )
+ || !isset( $pfdata['cpu_sq'] )
+ || !isset( $pfdata['real'] )
+ || !isset( $pfdata['real_sq'] ) ) {
+ continue;
+ }
+ $pfline = sprintf( "%s %s %d %f %f %f %f %s\n", $this->getProfileID(), "-", $pfdata['count'],
+ $pfdata['cpu'], $pfdata['cpu_sq'], $pfdata['real'], $pfdata['real_sq'], $entry);
+ $length = strlen( $pfline );
/* printf("<!-- $pfline -->"); */
- if ($length+$plength>1400) {
- socket_sendto($sock,$packet,$plength,0,$wgUDPProfilerHost,$wgUDPProfilerPort);
- $packet="";
- $plength=0;
+ if ( $length + $plength > 1400 ) {
+ socket_sendto( $sock, $packet, $plength, 0, $wgUDPProfilerHost, $wgUDPProfilerPort );
+ $packet = "";
+ $plength = 0;
}
- $packet.=$pfline;
- $plength+=$length;
+ $packet .= $pfline;
+ $plength += $length;
}
- socket_sendto($sock,$packet,$plength,0x100,$wgUDPProfilerHost,$wgUDPProfilerPort);
+ socket_sendto( $sock, $packet, $plength, 0x100, $wgUDPProfilerHost, $wgUDPProfilerPort );
}
}