package main import ( "log" "os" "os/signal" "syscall" ldap "github.com/vjeantet/ldapserver" "gt.kalli.st/czar/fsldap/config" "gt.kalli.st/czar/fsldap/handler" "gt.kalli.st/czar/fsldap/utils" ) func init(){ log.Print("Loading vars...") config.SmtpHostname = utils.Env("SMTP_HOSTNAME") config.SmtpPort = utils.Env("SMTP_PORT") config.Domain = utils.Env("SMTP_DOMAIN") config.Base = utils.Env("LDAP_BASE") config.Uid = utils.Env("LDAP_UID") config.BaseLenght = len(config.Base) + 1 config.UidLenght = len(config.Uid) + 1 } func main() { server := ldap.NewServer() routes := ldap.NewRouteMux() routes.Bind(handler.Bind) routes.Extended(handler.WhoAmI). RequestName(ldap.NoticeOfWhoAmI).Label("Ext - WhoAmI") routes.Search(handler.Search).Label("Search - Generic") server.Handle(routes) log.Print("Starting FSLDAP server...") go func(){ err := server.ListenAndServe("127.0.0.1:389") if err != nil{ log.Fatal(err) } }() ch := make(chan os.Signal) signal.Notify(ch, syscall.SIGINT, syscall.SIGTERM) <-ch close(ch) server.Stop() }