1
- // dbus.freedesktop.org/doc/dbus-specification.html
2
-
3
1
const EventEmitter = require ( 'events' ) . EventEmitter ;
4
2
const net = require ( 'net' ) ;
5
3
6
4
const constants = require ( './lib/constants' ) ;
7
5
const message = require ( './lib/message' ) ;
8
6
const clientHandshake = require ( './lib/handshake' ) ;
9
- const serverHandshake = require ( './lib/server-handshake' ) ;
10
7
const MessageBus = require ( './lib/bus' ) ;
11
- const server = require ( './lib/server' ) ;
12
8
const { getDbusAddressFromFs} = require ( './lib/address-x11' ) ;
13
9
const errors = require ( './lib/errors' ) ;
10
+ const variant = require ( './lib/service/variant' ) ;
11
+ const iface = require ( './lib/service/interface' ) ;
14
12
15
13
function createStream ( opts ) {
16
- if ( opts . stream ) return opts . stream ;
17
- var host = opts . host ;
18
- var port = opts . port ;
19
- var socket = opts . socket ;
20
- if ( socket ) return net . createConnection ( socket ) ;
21
- if ( port ) return net . createConnection ( port , host ) ;
14
+ if ( opts . stream ) {
15
+ return opts . stream ;
16
+ }
17
+ let host = opts . host ;
18
+ let port = opts . port ;
19
+ let socket = opts . socket ;
20
+ if ( socket ) {
21
+ return net . createConnection ( socket ) ;
22
+ }
23
+ if ( port ) {
24
+ return net . createConnection ( port , host ) ;
25
+ }
22
26
23
27
// XXX according to the dbus spec, we should start a new server if the bus
24
28
// address cannot be found.
25
- var busAddress = opts . busAddress ;
29
+ let busAddress = opts . busAddress ;
26
30
if ( ! busAddress ) {
27
31
busAddress = process . env . DBUS_SESSION_BUS_ADDRESS ;
28
32
}
29
33
if ( ! busAddress ) {
30
34
busAddress = getDbusAddressFromFs ( ) ;
31
35
}
32
36
33
- var addresses = busAddress . split ( ';' ) ;
34
- for ( var i = 0 ; i < addresses . length ; ++ i ) {
35
- var address = addresses [ i ] ;
36
- var familyParams = address . split ( ':' ) ;
37
- var family = familyParams [ 0 ] ;
38
- var params = { } ;
37
+ let addresses = busAddress . split ( ';' ) ;
38
+ for ( let i = 0 ; i < addresses . length ; ++ i ) {
39
+ let address = addresses [ i ] ;
40
+ let familyParams = address . split ( ':' ) ;
41
+ let family = familyParams [ 0 ] ;
42
+ let params = { } ;
39
43
familyParams [ 1 ] . split ( ',' ) . map ( function ( p ) {
40
- var keyVal = p . split ( '=' ) ;
44
+ let keyVal = p . split ( '=' ) ;
41
45
params [ keyVal [ 0 ] ] = keyVal [ 1 ] ;
42
46
} ) ;
43
47
@@ -48,21 +52,25 @@ function createStream(opts) {
48
52
port = params . port ;
49
53
return net . createConnection ( port , host ) ;
50
54
case 'unix' :
51
- if ( params . socket ) return net . createConnection ( params . socket ) ;
55
+ if ( params . socket ) {
56
+ return net . createConnection ( params . socket ) ;
57
+ }
52
58
if ( params . abstract ) {
53
- var abs = require ( 'abstract-socket' ) ;
59
+ let abs = require ( 'abstract-socket' ) ;
54
60
return abs . connect ( '\u0000' + params . abstract ) ;
55
61
}
56
- if ( params . path ) return net . createConnection ( params . path ) ;
62
+ if ( params . path ) {
63
+ return net . createConnection ( params . path ) ;
64
+ }
57
65
throw new Error (
58
66
"not enough parameters for 'unix' connection - you need to specify 'socket' or 'abstract' or 'path' parameter"
59
67
) ;
60
68
case 'unixexec' :
61
- var eventStream = require ( 'event-stream' ) ;
62
- var spawn = require ( 'child_process' ) . spawn ;
63
- var args = [ ] ;
64
- for ( var n = 1 ; params [ 'arg' + n ] ; n ++ ) args . push ( params [ 'arg' + n ] ) ;
65
- var child = spawn ( params . path , args ) ;
69
+ let eventStream = require ( 'event-stream' ) ;
70
+ let spawn = require ( 'child_process' ) . spawn ;
71
+ let args = [ ] ;
72
+ for ( let n = 1 ; params [ 'arg' + n ] ; n ++ ) args . push ( params [ 'arg' + n ] ) ;
73
+ let child = spawn ( params . path , args ) ;
66
74
67
75
return eventStream . duplex ( child . stdin , child . stdout ) ;
68
76
default :
@@ -80,9 +88,9 @@ function createStream(opts) {
80
88
}
81
89
82
90
function createConnection ( opts ) {
83
- var self = new EventEmitter ( ) ;
84
- if ( ! opts ) opts = { } ;
85
- var stream = ( self . stream = createStream ( opts ) ) ;
91
+ let self = new EventEmitter ( ) ;
92
+ opts = opts || { } ;
93
+ let stream = ( self . stream = createStream ( opts ) ) ;
86
94
stream . setNoDelay ( ) ;
87
95
88
96
stream . on ( 'error' , function ( err ) {
@@ -102,8 +110,7 @@ function createConnection(opts) {
102
110
return self ;
103
111
} ;
104
112
105
- var handshake = opts . server ? serverHandshake : clientHandshake ;
106
- handshake ( stream , opts , function ( error , guid ) {
113
+ clientHandshake ( stream , opts , function ( error , guid ) {
107
114
if ( error ) {
108
115
return self . emit ( 'error' , error ) ;
109
116
}
@@ -127,7 +134,7 @@ function createConnection(opts) {
127
134
128
135
self . once ( 'connect' , function ( ) {
129
136
self . state = 'connected' ;
130
- for ( var i = 0 ; i < self . _messages . length ; ++ i ) {
137
+ for ( let i = 0 ; i < self . _messages . length ; ++ i ) {
131
138
stream . write ( message . marshall ( self . _messages [ i ] ) ) ;
132
139
}
133
140
self . _messages . length = 0 ;
@@ -141,37 +148,28 @@ function createConnection(opts) {
141
148
return self ;
142
149
}
143
150
144
- module . exports . createClient = function ( params ) {
145
- var connection = createConnection ( params || { } ) ;
151
+ let createClient = function ( params ) {
152
+ let connection = createConnection ( params || { } ) ;
146
153
return new MessageBus ( connection , params || { } ) ;
147
154
} ;
148
155
149
156
module . exports . systemBus = function ( ) {
150
- return module . exports . createClient ( {
157
+ return createClient ( {
151
158
busAddress :
152
159
process . env . DBUS_SYSTEM_BUS_ADDRESS ||
153
160
'unix:path=/var/run/dbus/system_bus_socket'
154
161
} ) ;
155
162
} ;
156
163
157
164
module . exports . sessionBus = function ( opts ) {
158
- return module . exports . createClient ( opts ) ;
165
+ return createClient ( opts ) ;
159
166
} ;
160
167
161
- module . exports . messageType = constants . messageType ;
162
-
163
168
// name flags
164
169
module . exports . DBUS_NAME_FLAG_ALLOW_REPLACEMENT = constants . DBUS_NAME_FLAG_ALLOW_REPLACEMENT ;
165
170
module . exports . DBUS_NAME_FLAG_REPLACE_EXISTING = constants . DBUS_NAME_FLAG_REPLACE_EXISTING ;
166
171
module . exports . DBUS_NAME_FLAG_DO_NOT_QUEUE = constants . DBUS_NAME_FLAG_DO_NOT_QUEUE ;
167
172
168
- module . exports . createConnection = createConnection ;
169
-
170
- module . exports . createServer = server . createServer ;
171
-
172
- // new stuff
173
- const variant = require ( './lib/service/variant' ) ;
174
- const iface = require ( './lib/service/interface' ) ;
175
173
// use a polyfill for bigint
176
174
module . exports . setBigIntCompat = require ( './lib/library-options' ) . setBigIntCompat
177
175
module . exports . interface = iface ;
0 commit comments