Remove gorilla/context from vendor.conf
This has been unused since we switched to Go context. Signed-off-by: Justin Cormack <justin.cormack@docker.com>master
							parent
							
								
									23bef416bd
								
							
						
					
					
						commit
						fb7b0ddfc3
					
				|  | @ -15,7 +15,6 @@ github.com/docker/libtrust fa567046d9b14f6aa788882a950d69651d230b21 | ||||||
| github.com/garyburd/redigo 535138d7bcd717d6531c701ef5933d98b1866257 | github.com/garyburd/redigo 535138d7bcd717d6531c701ef5933d98b1866257 | ||||||
| github.com/go-ini/ini 2ba15ac2dc9cdf88c110ec2dc0ced7fa45f5678c | github.com/go-ini/ini 2ba15ac2dc9cdf88c110ec2dc0ced7fa45f5678c | ||||||
| github.com/golang/protobuf 8d92cf5fc15a4382f8964b08e1f42a75c0591aa3 | github.com/golang/protobuf 8d92cf5fc15a4382f8964b08e1f42a75c0591aa3 | ||||||
| github.com/gorilla/context 14f550f51af52180c2eefed15e5fd18d63c0a64a |  | ||||||
| github.com/gorilla/handlers 60c7bfde3e33c201519a200a4507a158cc03a17b | github.com/gorilla/handlers 60c7bfde3e33c201519a200a4507a158cc03a17b | ||||||
| github.com/gorilla/mux 599cba5e7b6137d46ddf58fb1765f5d928e69604 | github.com/gorilla/mux 599cba5e7b6137d46ddf58fb1765f5d928e69604 | ||||||
| github.com/inconshreveable/mousetrap 76626ae9c91c4f2a10f34cad8ce83ea42c93bb75 | github.com/inconshreveable/mousetrap 76626ae9c91c4f2a10f34cad8ce83ea42c93bb75 | ||||||
|  | @ -47,4 +46,4 @@ gopkg.in/check.v1 64131543e7896d5bcc6bd5a76287eb75ea96c673 | ||||||
| gopkg.in/square/go-jose.v1 40d457b439244b546f023d056628e5184136899b | gopkg.in/square/go-jose.v1 40d457b439244b546f023d056628e5184136899b | ||||||
| gopkg.in/yaml.v2 bef53efd0c76e49e6de55ead051f886bea7e9420 | gopkg.in/yaml.v2 bef53efd0c76e49e6de55ead051f886bea7e9420 | ||||||
| rsc.io/letsencrypt e770c10b0f1a64775ae91d240407ce00d1a5bdeb https://github.com/dmcgowan/letsencrypt.git | rsc.io/letsencrypt e770c10b0f1a64775ae91d240407ce00d1a5bdeb https://github.com/dmcgowan/letsencrypt.git | ||||||
| github.com/opencontainers/go-digest a6d0ee40d4207ea02364bd3b9e8e77b9159ba1eb | github.com/opencontainers/go-digest a6d0ee40d4207ea02364bd3b9e8e77b9159ba1eb | ||||||
|  |  | ||||||
|  | @ -1,27 +0,0 @@ | ||||||
| Copyright (c) 2012 Rodrigo Moraes. All rights reserved. |  | ||||||
| 
 |  | ||||||
| Redistribution and use in source and binary forms, with or without |  | ||||||
| modification, are permitted provided that the following conditions are |  | ||||||
| met: |  | ||||||
| 
 |  | ||||||
| 	 * Redistributions of source code must retain the above copyright |  | ||||||
| notice, this list of conditions and the following disclaimer. |  | ||||||
| 	 * Redistributions in binary form must reproduce the above |  | ||||||
| copyright notice, this list of conditions and the following disclaimer |  | ||||||
| in the documentation and/or other materials provided with the |  | ||||||
| distribution. |  | ||||||
| 	 * Neither the name of Google Inc. nor the names of its |  | ||||||
| contributors may be used to endorse or promote products derived from |  | ||||||
| this software without specific prior written permission. |  | ||||||
| 
 |  | ||||||
| THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |  | ||||||
| "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |  | ||||||
| LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |  | ||||||
| A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |  | ||||||
| OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |  | ||||||
| SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |  | ||||||
| LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |  | ||||||
| DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |  | ||||||
| THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |  | ||||||
| (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |  | ||||||
| OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |  | ||||||
|  | @ -1,7 +0,0 @@ | ||||||
| context |  | ||||||
| ======= |  | ||||||
| [](https://travis-ci.org/gorilla/context) |  | ||||||
| 
 |  | ||||||
| gorilla/context is a general purpose registry for global request variables. |  | ||||||
| 
 |  | ||||||
| Read the full documentation here: http://www.gorillatoolkit.org/pkg/context |  | ||||||
|  | @ -1,143 +0,0 @@ | ||||||
| // Copyright 2012 The Gorilla Authors. All rights reserved.
 |  | ||||||
| // Use of this source code is governed by a BSD-style
 |  | ||||||
| // license that can be found in the LICENSE file.
 |  | ||||||
| 
 |  | ||||||
| package context |  | ||||||
| 
 |  | ||||||
| import ( |  | ||||||
| 	"net/http" |  | ||||||
| 	"sync" |  | ||||||
| 	"time" |  | ||||||
| ) |  | ||||||
| 
 |  | ||||||
| var ( |  | ||||||
| 	mutex sync.RWMutex |  | ||||||
| 	data  = make(map[*http.Request]map[interface{}]interface{}) |  | ||||||
| 	datat = make(map[*http.Request]int64) |  | ||||||
| ) |  | ||||||
| 
 |  | ||||||
| // Set stores a value for a given key in a given request.
 |  | ||||||
| func Set(r *http.Request, key, val interface{}) { |  | ||||||
| 	mutex.Lock() |  | ||||||
| 	if data[r] == nil { |  | ||||||
| 		data[r] = make(map[interface{}]interface{}) |  | ||||||
| 		datat[r] = time.Now().Unix() |  | ||||||
| 	} |  | ||||||
| 	data[r][key] = val |  | ||||||
| 	mutex.Unlock() |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| // Get returns a value stored for a given key in a given request.
 |  | ||||||
| func Get(r *http.Request, key interface{}) interface{} { |  | ||||||
| 	mutex.RLock() |  | ||||||
| 	if ctx := data[r]; ctx != nil { |  | ||||||
| 		value := ctx[key] |  | ||||||
| 		mutex.RUnlock() |  | ||||||
| 		return value |  | ||||||
| 	} |  | ||||||
| 	mutex.RUnlock() |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| // GetOk returns stored value and presence state like multi-value return of map access.
 |  | ||||||
| func GetOk(r *http.Request, key interface{}) (interface{}, bool) { |  | ||||||
| 	mutex.RLock() |  | ||||||
| 	if _, ok := data[r]; ok { |  | ||||||
| 		value, ok := data[r][key] |  | ||||||
| 		mutex.RUnlock() |  | ||||||
| 		return value, ok |  | ||||||
| 	} |  | ||||||
| 	mutex.RUnlock() |  | ||||||
| 	return nil, false |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| // GetAll returns all stored values for the request as a map. Nil is returned for invalid requests.
 |  | ||||||
| func GetAll(r *http.Request) map[interface{}]interface{} { |  | ||||||
| 	mutex.RLock() |  | ||||||
| 	if context, ok := data[r]; ok { |  | ||||||
| 		result := make(map[interface{}]interface{}, len(context)) |  | ||||||
| 		for k, v := range context { |  | ||||||
| 			result[k] = v |  | ||||||
| 		} |  | ||||||
| 		mutex.RUnlock() |  | ||||||
| 		return result |  | ||||||
| 	} |  | ||||||
| 	mutex.RUnlock() |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| // GetAllOk returns all stored values for the request as a map and a boolean value that indicates if
 |  | ||||||
| // the request was registered.
 |  | ||||||
| func GetAllOk(r *http.Request) (map[interface{}]interface{}, bool) { |  | ||||||
| 	mutex.RLock() |  | ||||||
| 	context, ok := data[r] |  | ||||||
| 	result := make(map[interface{}]interface{}, len(context)) |  | ||||||
| 	for k, v := range context { |  | ||||||
| 		result[k] = v |  | ||||||
| 	} |  | ||||||
| 	mutex.RUnlock() |  | ||||||
| 	return result, ok |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| // Delete removes a value stored for a given key in a given request.
 |  | ||||||
| func Delete(r *http.Request, key interface{}) { |  | ||||||
| 	mutex.Lock() |  | ||||||
| 	if data[r] != nil { |  | ||||||
| 		delete(data[r], key) |  | ||||||
| 	} |  | ||||||
| 	mutex.Unlock() |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| // Clear removes all values stored for a given request.
 |  | ||||||
| //
 |  | ||||||
| // This is usually called by a handler wrapper to clean up request
 |  | ||||||
| // variables at the end of a request lifetime. See ClearHandler().
 |  | ||||||
| func Clear(r *http.Request) { |  | ||||||
| 	mutex.Lock() |  | ||||||
| 	clear(r) |  | ||||||
| 	mutex.Unlock() |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| // clear is Clear without the lock.
 |  | ||||||
| func clear(r *http.Request) { |  | ||||||
| 	delete(data, r) |  | ||||||
| 	delete(datat, r) |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| // Purge removes request data stored for longer than maxAge, in seconds.
 |  | ||||||
| // It returns the amount of requests removed.
 |  | ||||||
| //
 |  | ||||||
| // If maxAge <= 0, all request data is removed.
 |  | ||||||
| //
 |  | ||||||
| // This is only used for sanity check: in case context cleaning was not
 |  | ||||||
| // properly set some request data can be kept forever, consuming an increasing
 |  | ||||||
| // amount of memory. In case this is detected, Purge() must be called
 |  | ||||||
| // periodically until the problem is fixed.
 |  | ||||||
| func Purge(maxAge int) int { |  | ||||||
| 	mutex.Lock() |  | ||||||
| 	count := 0 |  | ||||||
| 	if maxAge <= 0 { |  | ||||||
| 		count = len(data) |  | ||||||
| 		data = make(map[*http.Request]map[interface{}]interface{}) |  | ||||||
| 		datat = make(map[*http.Request]int64) |  | ||||||
| 	} else { |  | ||||||
| 		min := time.Now().Unix() - int64(maxAge) |  | ||||||
| 		for r := range data { |  | ||||||
| 			if datat[r] < min { |  | ||||||
| 				clear(r) |  | ||||||
| 				count++ |  | ||||||
| 			} |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 	mutex.Unlock() |  | ||||||
| 	return count |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| // ClearHandler wraps an http.Handler and clears request values at the end
 |  | ||||||
| // of a request lifetime.
 |  | ||||||
| func ClearHandler(h http.Handler) http.Handler { |  | ||||||
| 	return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { |  | ||||||
| 		defer Clear(r) |  | ||||||
| 		h.ServeHTTP(w, r) |  | ||||||
| 	}) |  | ||||||
| } |  | ||||||
|  | @ -1,82 +0,0 @@ | ||||||
| // Copyright 2012 The Gorilla Authors. All rights reserved.
 |  | ||||||
| // Use of this source code is governed by a BSD-style
 |  | ||||||
| // license that can be found in the LICENSE file.
 |  | ||||||
| 
 |  | ||||||
| /* |  | ||||||
| Package context stores values shared during a request lifetime. |  | ||||||
| 
 |  | ||||||
| For example, a router can set variables extracted from the URL and later |  | ||||||
| application handlers can access those values, or it can be used to store |  | ||||||
| sessions values to be saved at the end of a request. There are several |  | ||||||
| others common uses. |  | ||||||
| 
 |  | ||||||
| The idea was posted by Brad Fitzpatrick to the go-nuts mailing list: |  | ||||||
| 
 |  | ||||||
| 	http://groups.google.com/group/golang-nuts/msg/e2d679d303aa5d53
 |  | ||||||
| 
 |  | ||||||
| Here's the basic usage: first define the keys that you will need. The key |  | ||||||
| type is interface{} so a key can be of any type that supports equality. |  | ||||||
| Here we define a key using a custom int type to avoid name collisions: |  | ||||||
| 
 |  | ||||||
| 	package foo |  | ||||||
| 
 |  | ||||||
| 	import ( |  | ||||||
| 		"github.com/gorilla/context" |  | ||||||
| 	) |  | ||||||
| 
 |  | ||||||
| 	type key int |  | ||||||
| 
 |  | ||||||
| 	const MyKey key = 0 |  | ||||||
| 
 |  | ||||||
| Then set a variable. Variables are bound to an http.Request object, so you |  | ||||||
| need a request instance to set a value: |  | ||||||
| 
 |  | ||||||
| 	context.Set(r, MyKey, "bar") |  | ||||||
| 
 |  | ||||||
| The application can later access the variable using the same key you provided: |  | ||||||
| 
 |  | ||||||
| 	func MyHandler(w http.ResponseWriter, r *http.Request) { |  | ||||||
| 		// val is "bar".
 |  | ||||||
| 		val := context.Get(r, foo.MyKey) |  | ||||||
| 
 |  | ||||||
| 		// returns ("bar", true)
 |  | ||||||
| 		val, ok := context.GetOk(r, foo.MyKey) |  | ||||||
| 		// ...
 |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| And that's all about the basic usage. We discuss some other ideas below. |  | ||||||
| 
 |  | ||||||
| Any type can be stored in the context. To enforce a given type, make the key |  | ||||||
| private and wrap Get() and Set() to accept and return values of a specific |  | ||||||
| type: |  | ||||||
| 
 |  | ||||||
| 	type key int |  | ||||||
| 
 |  | ||||||
| 	const mykey key = 0 |  | ||||||
| 
 |  | ||||||
| 	// GetMyKey returns a value for this package from the request values.
 |  | ||||||
| 	func GetMyKey(r *http.Request) SomeType { |  | ||||||
| 		if rv := context.Get(r, mykey); rv != nil { |  | ||||||
| 			return rv.(SomeType) |  | ||||||
| 		} |  | ||||||
| 		return nil |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	// SetMyKey sets a value for this package in the request values.
 |  | ||||||
| 	func SetMyKey(r *http.Request, val SomeType) { |  | ||||||
| 		context.Set(r, mykey, val) |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| Variables must be cleared at the end of a request, to remove all values |  | ||||||
| that were stored. This can be done in an http.Handler, after a request was |  | ||||||
| served. Just call Clear() passing the request: |  | ||||||
| 
 |  | ||||||
| 	context.Clear(r) |  | ||||||
| 
 |  | ||||||
| ...or use ClearHandler(), which conveniently wraps an http.Handler to clear |  | ||||||
| variables at the end of a request lifetime. |  | ||||||
| 
 |  | ||||||
| The Routers from the packages gorilla/mux and gorilla/pat call Clear() |  | ||||||
| so if you are using either of them you don't need to clear the context manually. |  | ||||||
| */ |  | ||||||
| package context |  | ||||||
		Loading…
	
		Reference in New Issue