<?php

define('LOG_SOCKET_PATH', '/tmp/log_socket');

function log_recieve($callback) {
	if(file_exists(LOG_SOCKET_PATH)) {
		unlink(LOG_SOCKET_PATH);
	}
	
	$socket = socket_create(AF_UNIX, SOCK_STREAM, 0);

	socket_bind($socket, LOG_SOCKET_PATH);
	
	chmod(LOG_SOCKET_PATH, 0777);
		
	socket_listen($socket);

	socket_set_block($socket);

	try {
		while(true) {
			if(($connection = socket_accept($socket)) !== false) {
				while(socket_recv($connection, $buffer, 1024, 0)) {
					$callback($buffer);
				}
				socket_close($connection);
			}
		}
    } catch(Exception $e) {
		socket_close($socket);
	}
}

function log_send($message) {
	$socket = @socket_create(AF_UNIX, SOCK_STREAM, 0);

	if(!$socket) {
		return false;
	}

	$success = false;

	if(@socket_connect($socket, LOG_SOCKET_PATH) && socket_write($socket, $message)) {
		$success = true;
	}
	
	socket_close($socket);
	
	return $success;
}

?>