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