1: <?php
2: 3: 4: 5:
6: class Horde_Core_Factory_ActiveSyncServer extends Horde_Core_Factory_Injector
7: {
8: public function create(Horde_Injector $injector)
9: {
10: global $conf;
11: $logger = false;
12:
13:
14: if ($conf['activesync']['logging']['type'] == 'custom') {
15:
16: $request = $GLOBALS['injector']->getInstance('Horde_Controller_Request');
17: $get = $request->getGetVars();
18: if (!empty($get['DeviceId'])) {
19: $stream = @fopen(dirname($conf['activesync']['logging']['path']) . '/' . $get['DeviceId'] . '.txt', 'a');
20: }
21: if (!$stream) {
22: $stream = @fopen($conf['activesync']['logging']['path'], 'a');
23: }
24: if ($stream) {
25: $logger = new Horde_Log_Logger(new Horde_Log_Handler_Stream($stream));
26: }
27: }
28: if (!$logger) {
29: $logger = $injector->getInstance('Horde_Log_Logger');
30: }
31:
32: $request = $injector->getInstance('Horde_Controller_Request');
33: $backend = $injector->getInstance('Horde_ActiveSyncBackend');
34: $server = new Horde_ActiveSync(
35: $backend,
36: new Horde_ActiveSync_Wbxml_Decoder(fopen('php://input', 'r')),
37: new Horde_ActiveSync_Wbxml_Encoder(fopen('php://output', 'w+')),
38: $request);
39:
40: $server->setLogger($logger);
41:
42: return $server;
43: }
44:
45: }
46: