aboutsummaryrefslogtreecommitdiff
path: root/cmd
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2016-01-12 22:23:15 +0100
committerDimitri Sokolyuk <demon@dim13.org>2016-01-12 22:23:15 +0100
commitcabc90b89bd2e6000663dba36d3449cde5b461dd (patch)
treedf99e32d7b0cf2108639debc31c661564baabe71 /cmd
parentf2d197b38fb6e64ff8d506bdccfb2cbd205f81df (diff)
Drop WG for now
Diffstat (limited to 'cmd')
-rw-r--r--cmd/acme/main.go113
1 files changed, 38 insertions, 75 deletions
diff --git a/cmd/acme/main.go b/cmd/acme/main.go
index b4b4985..0490399 100644
--- a/cmd/acme/main.go
+++ b/cmd/acme/main.go
@@ -3,7 +3,6 @@ package main
import (
"flag"
"log"
- "sync"
"dim13.org/acme"
)
@@ -11,73 +10,48 @@ import (
var confName = flag.String("conf", "acme.toml", "configuration file")
func prepare(conf *Config) error {
- var wg sync.WaitGroup
var err error
- errc := make(chan error, 1)
-
for k, acc := range conf.Account {
- wg.Add(1)
- go func(k string, acc *account) {
- defer wg.Done()
- log.Println("LoadAccount", k)
- acc.Account, err = acme.LoadAccount(acc.Key)
+ log.Println("LoadAccount", k)
+ acc.Account, err = acme.LoadAccount(acc.Key)
+ if err != nil {
+ log.Println(err)
+ log.Println("NewAccount", k)
+ acc.Account, err = acme.NewAccount(acc.KeySize)
if err != nil {
- log.Println(err)
- log.Println("NewAccount", k)
- acc.Account, err = acme.NewAccount(acc.KeySize)
- if err != nil {
- errc <- err
- return
- }
- defer acc.Account.SaveKey(acc.Key)
- acc.pending = true
+ return err
}
- acc.Contacts.AddMail(acc.Mail)
- acc.Contacts.AddPhone(acc.Phone)
- conf.Account[k] = acc
- }(k, acc)
+ defer acc.Account.SaveKey(acc.Key)
+ acc.pending = true
+ }
+ acc.Contacts.AddMail(acc.Mail)
+ acc.Contacts.AddPhone(acc.Phone)
+ conf.Account[k] = acc
}
for k, des := range conf.Desire {
- wg.Add(1)
- go func(k string, des *desire) {
- defer wg.Done()
- log.Println("NewDesire", k)
- des.Desire, err = acme.NewDesire(des.Altnames, des.Webroot, des.KeySize)
- if err != nil {
- errc <- err
- return
- }
- conf.Desire[k] = des
- }(k, des)
+ log.Println("NewDesire", k)
+ des.Desire, err = acme.NewDesire(des.Altnames, des.Webroot, des.KeySize)
+ if err != nil {
+ return err
+ }
+ conf.Desire[k] = des
}
for k, pro := range conf.Provider {
- wg.Add(1)
- go func(k string, pro *provider) {
- defer wg.Done()
- log.Println("NewProvider", k)
- pro.Provider, err = acme.NewProvider(pro.Directory)
- if err != nil {
- errc <- err
- return
- }
- conf.Provider[k] = pro
- }(k, pro)
+ log.Println("NewProvider", k)
+ pro.Provider, err = acme.NewProvider(pro.Directory)
+ if err != nil {
+ return err
+ }
+ conf.Provider[k] = pro
}
- go func() {
- wg.Wait()
- close(errc)
- }()
-
- return <-errc
+ return nil
}
func execute(conf *Config) error {
- var wg sync.WaitGroup
var err error
- errc := make(chan error, 1)
for k, des := range conf.Desire {
if des.account.pending {
@@ -90,34 +64,23 @@ func execute(conf *Config) error {
hs := &httpChallenge{Webroot: des.Webroot}
des.RegisterSolver(acme.ChallengeHTTP, hs)
- wg.Add(1)
- go func(k string, des *desire) {
- log.Println("process", k)
- defer wg.Done()
+ log.Println("process", k)
- err = des.provider.Authorize(des.account, des.Desire)
- if err != nil {
- errc <- err
- return
- }
+ err = des.provider.Authorize(des.account, des.Desire)
+ if err != nil {
+ return err
+ }
- err = des.provider.Cert(des.account, des.Desire)
- if err != nil {
- errc <- err
- return
- }
+ err = des.provider.Cert(des.account, des.Desire)
+ if err != nil {
+ return err
+ }
- defer des.SaveKey(des.Key)
- defer des.SaveCert(des.Cert)
- }(k, des)
+ des.SaveKey(des.Key)
+ des.SaveCert(des.Cert)
}
- go func() {
- wg.Wait()
- close(errc)
- }()
-
- return <-errc
+ return nil
}
func main() {