A very fast kyoto cabinet powered memcache interface http proxy caching server.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

29 lines
702 B

package proxy
import (
"bitbucket.org/ww/cabinet"
"fmt"
"github.com/brettlangdon/ferrite/common"
"io/ioutil"
"net/http"
"os"
"time"
)
func CallProxy(url string, db *cabinet.KCDB) {
response, err := http.Get(url)
if err == nil {
defer response.Body.Close()
result, err := ioutil.ReadAll(response.Body)
if err == nil {
now := int32(time.Now().Unix())
ttl := int32(*common.TTL)
result = []byte(fmt.Sprintf("%d:%s", now+ttl, result))
db.Set([]byte(url), result)
} else {
fmt.Fprintf(os.Stderr, "Error Reading Response for \"%s\": %s\r\n", url, err.Error())
}
} else {
fmt.Fprintf(os.Stderr, "Error Retrieving Proxy Results for \"%s\": %s\r\n", url, err.Error())
}
}