@@ -52,11 +52,7 @@ public function search($searchTarget = 'ssdp:all', $mx = 2)
5252 $ socket = $ this ->multicast ->createSender ();
5353 // TODO: The TTL for the IP packet SHOULD default to 2 and SHOULD be configurable.
5454
55- $ timer = $ this ->loop ->addTimer ($ mx , function () use ($ socket , &$ deferred ) {
56- $ deferred ->resolve ();
57- $ socket ->close ();
58- });
59-
55+ $ messages = array ();
6056 $ loop = $ this ->loop ;
6157 $ deferred = new Deferred (function () use ($ socket , &$ timer , $ loop ) {
6258 // canceling resulting promise cancels timer and closes socket
@@ -65,11 +61,15 @@ public function search($searchTarget = 'ssdp:all', $mx = 2)
6561 throw new RuntimeException ('Cancelled ' );
6662 });
6763
64+ $ timer = $ this ->loop ->addTimer ($ mx , function () use ($ socket , &$ deferred , &$ messages ) {
65+ $ deferred ->resolve ($ messages );
66+ $ socket ->close ();
67+ });
68+
6869 $ that = $ this ;
69- $ socket ->on ('message ' , function ($ data , $ remote ) use ($ deferred , $ that ) {
70+ $ socket ->on ('message ' , function ($ data , $ remote ) use (& $ messages , $ that ) {
7071 $ message = $ that ->parseMessage ($ data , $ remote );
71-
72- $ deferred ->progress ($ message );
72+ $ messages [] = $ message ;
7373 });
7474
7575 $ socket ->send ($ data , self ::ADDRESS );
0 commit comments