LEFT | RIGHT |
(no file at all) | |
1 // Copyright 2013 Canonical Ltd. | 1 // Copyright 2013 Canonical Ltd. |
2 // Licensed under the AGPLv3, see LICENCE file for details. | 2 // Licensed under the AGPLv3, see LICENCE file for details. |
3 | 3 |
4 package apiserver | 4 package apiserver |
5 | 5 |
6 import ( | 6 import ( |
7 "crypto/tls" | 7 "crypto/tls" |
8 "net" | 8 "net" |
9 "net/http" | 9 "net/http" |
10 "sync" | 10 "sync" |
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
146 defer srv.wg.Wait() // wait for any outstanding requests to complete. | 146 defer srv.wg.Wait() // wait for any outstanding requests to complete. |
147 srv.wg.Add(1) | 147 srv.wg.Add(1) |
148 go func() { | 148 go func() { |
149 <-srv.tomb.Dying() | 149 <-srv.tomb.Dying() |
150 lis.Close() | 150 lis.Close() |
151 srv.wg.Done() | 151 srv.wg.Done() |
152 }() | 152 }() |
153 mux := http.NewServeMux() | 153 mux := http.NewServeMux() |
154 mux.HandleFunc("/", srv.apiHandler) | 154 mux.HandleFunc("/", srv.apiHandler) |
155 mux.Handle("/charms", &charmsHandler{state: srv.state}) | 155 mux.Handle("/charms", &charmsHandler{state: srv.state}) |
| 156 mux.Handle("/log", &logHandler{state: srv.state}) |
156 // The error from http.Serve is not interesting. | 157 // The error from http.Serve is not interesting. |
157 http.Serve(lis, mux) | 158 http.Serve(lis, mux) |
158 } | 159 } |
159 | 160 |
160 func (srv *Server) apiHandler(w http.ResponseWriter, req *http.Request) { | 161 func (srv *Server) apiHandler(w http.ResponseWriter, req *http.Request) { |
161 reqNotifier := newRequestNotifier() | 162 reqNotifier := newRequestNotifier() |
162 reqNotifier.join(req) | 163 reqNotifier.join(req) |
163 defer reqNotifier.leave() | 164 defer reqNotifier.leave() |
164 wsServer := websocket.Server{ | 165 wsServer := websocket.Server{ |
165 Handler: func(conn *websocket.Conn) { | 166 Handler: func(conn *websocket.Conn) { |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
207 } | 208 } |
208 | 209 |
209 func serverError(err error) error { | 210 func serverError(err error) error { |
210 if err := common.ServerError(err); err != nil { | 211 if err := common.ServerError(err); err != nil { |
211 return err | 212 return err |
212 } | 213 } |
213 return nil | 214 return nil |
214 } | 215 } |
215 | 216 |
216 var logRequests = true | 217 var logRequests = true |
LEFT | RIGHT |