Skip to content

Commit 9e7757a

Browse files
committed
Merge pull request moby#5827 from vieux/fix_multiple_events_on_same_computer
allow 2 docker events to be opened on the same computer over unix socket
2 parents 704e9f9 + 81ffd65 commit 9e7757a

File tree

3 files changed

+11
-10
lines changed

3 files changed

+11
-10
lines changed

api/server/server.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -244,7 +244,7 @@ func getEvents(eng *engine.Engine, version version.Version, w http.ResponseWrite
244244
return err
245245
}
246246

247-
var job = eng.Job("events", r.RemoteAddr)
247+
var job = eng.Job("events")
248248
streamJSON(job, w, true)
249249
job.Setenv("since", r.Form.Get("since"))
250250
job.Setenv("until", r.Form.Get("until"))

server/server.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -198,7 +198,7 @@ func (srv *Server) ContainerKill(job *engine.Job) engine.Status {
198198
return engine.StatusOK
199199
}
200200

201-
func (srv *Server) EvictListener(from string) {
201+
func (srv *Server) EvictListener(from int64) {
202202
srv.Lock()
203203
if old, ok := srv.listeners[from]; ok {
204204
delete(srv.listeners, from)
@@ -208,12 +208,12 @@ func (srv *Server) EvictListener(from string) {
208208
}
209209

210210
func (srv *Server) Events(job *engine.Job) engine.Status {
211-
if len(job.Args) != 1 {
212-
return job.Errorf("Usage: %s FROM", job.Name)
211+
if len(job.Args) != 0 {
212+
return job.Errorf("Usage: %s", job.Name)
213213
}
214214

215215
var (
216-
from = job.Args[0]
216+
from = time.Now().UTC().UnixNano()
217217
since = job.GetenvInt64("since")
218218
until = job.GetenvInt64("until")
219219
timeout = time.NewTimer(time.Unix(until, 0).Sub(time.Now()))
@@ -2432,7 +2432,7 @@ func NewServer(eng *engine.Engine, config *daemonconfig.Config) (*Server, error)
24322432
pullingPool: make(map[string]chan struct{}),
24332433
pushingPool: make(map[string]chan struct{}),
24342434
events: make([]utils.JSONMessage, 0, 64), //only keeps the 64 last events
2435-
listeners: make(map[string]chan utils.JSONMessage),
2435+
listeners: make(map[int64]chan utils.JSONMessage),
24362436
running: true,
24372437
}
24382438
daemon.SetServer(srv)
@@ -2494,7 +2494,7 @@ type Server struct {
24942494
pullingPool map[string]chan struct{}
24952495
pushingPool map[string]chan struct{}
24962496
events []utils.JSONMessage
2497-
listeners map[string]chan utils.JSONMessage
2497+
listeners map[int64]chan utils.JSONMessage
24982498
Eng *engine.Engine
24992499
running bool
25002500
}

server/server_unit_test.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
package server
22

33
import (
4-
"github.com/dotcloud/docker/utils"
54
"testing"
65
"time"
6+
7+
"github.com/dotcloud/docker/utils"
78
)
89

910
func TestPools(t *testing.T) {
@@ -47,14 +48,14 @@ func TestPools(t *testing.T) {
4748
func TestLogEvent(t *testing.T) {
4849
srv := &Server{
4950
events: make([]utils.JSONMessage, 0, 64),
50-
listeners: make(map[string]chan utils.JSONMessage),
51+
listeners: make(map[int64]chan utils.JSONMessage),
5152
}
5253

5354
srv.LogEvent("fakeaction", "fakeid", "fakeimage")
5455

5556
listener := make(chan utils.JSONMessage)
5657
srv.Lock()
57-
srv.listeners["test"] = listener
58+
srv.listeners[1337] = listener
5859
srv.Unlock()
5960

6061
srv.LogEvent("fakeaction2", "fakeid", "fakeimage")

0 commit comments

Comments
 (0)