Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package main
- import (
- "encoding/json"
- "log"
- "net"
- "net/http"
- "net/http/fcgi"
- "os"
- )
- func main() {
- //setup the config
- configFile := "config.json"
- fd, err := os.Open(configFile)
- if err != nil {
- log.Fatalf("Can't open config file: %v", configFile)
- }
- CFG := config{}
- err = json.NewDecoder(fd).Decode(&CFG)
- if err != nil {
- log.Fatalf("parse config error: %v", err)
- }
- //init DB connection
- db.InitConnectionInfo(CFG.Database.Host, CFG.Database.Port, CFG.Database.Database, CFG.Database.Username, CFG.Database.Password)
- //register HTTP handler
- sessionHandler := &handlers.SessionHandler{}
- http.Handle("/sessions", sessionHandler)
- http.Handle("/sessions/", sessionHandler)
- userHandler := &handlers.UserHandler{
- Facebook: &oa.OAuth{AppId: CFG.Facebook.Key, Secret: CFG.Facebook.Secret},
- Sina: &oa.OAuth{AppId: CFG.Sina.Key, Secret: CFG.Sina.Secret},
- Google: &oa.OAuth{AppId: CFG.Google.Key, Secret: CFG.Google.Secret},
- Tencent: &oa.OAuth{AppId: CFG.Tencent.Key, Secret: CFG.Tencent.Secret},
- Mixpanel: &hu.Share{Token: CFG.Mixpanel.Token},
- FacebookShare: &hu.Share{Token: CFG.Facebook.Token},
- SinaShare: &hu.Share{Token: CFG.Sina.Token},
- GoogleShare: &hu.Share{Token: CFG.Google.Token},
- TencentShare: &hu.Share{Token: CFG.Tencent.Token},
- }
- http.Handle("/users", userHandler)
- http.Handle("/users/", userHandler)
- //and so on ...
- //run server
- log.Println("start listen: ", CFG.FcgiAddr)
- l, _ := net.Listen("tcp", CFG.FcgiAddr)
- log.Fatalf("server error is %v", fcgi.Serve(l, nil))
- //@@select {}
- log.Println("end listen")
- }
- var x = &{...} //init value
- fillX(..., x) //fill the fields of x pointer
- //here the fields of x pointer is not same to inner of fillX func
- var x = &{...}
- x = fullX(..., x)
- the problem resolved.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement