func httpPost(url string, data []byte) bool { // TODO: set timeouts resp, err := http.Post(url, "application/protobuf", bytes.NewBuffer(data)) if err != nil { elog.TODO() return false } resp.Body.Close() if resp.StatusCode != http.StatusNoContent { elog.TODO() return false } return true }
// waitForEvent waits for a given Watcher to return its associated // event. It returns a non-nil error if the given Context times out // or the given ResponseWriter triggers a CloseNotify. func waitForEvent(ctx context.Context, w http.ResponseWriter, wa store.Watcher) (*store.Event, error) { // TODO(bmizerany): support streaming? defer wa.Remove() var nch <-chan bool if x, ok := w.(http.CloseNotifier); ok { nch = x.CloseNotify() } select { case ev := <-wa.EventChan(): return ev, nil case <-nch: elog.TODO() return nil, errClosed case <-ctx.Done(): return nil, ctx.Err() } }