gnunet-gns-registrar

GNU Name System registrar
Log | Files | Refs | README

commit f8347a13bfb4eea49fc8ab7a4a79e9131a6121fe
parent 9493f4bfa0134ff6eff1148f4c53b35e7711a2db
Author: Martin Schanzenbach <schanzen@gnunet.org>
Date:   Mon, 18 Dec 2023 14:55:45 +0100

Minor refactoring

Diffstat:
Mpkg/rest/gnsregistrar.go | 110++++++++++++++++++++++++++++++++++++++++++++++++++-----------------------------
1 file changed, 70 insertions(+), 40 deletions(-)

diff --git a/pkg/rest/gnsregistrar.go b/pkg/rest/gnsregistrar.go @@ -189,7 +189,7 @@ func (t *Registrar) landingPage(w http.ResponseWriter, r *http.Request) { return } -func (t *Registrar) isNameValid(label string) error { +func (t *Registrar) isNameValid(label string) (err error) { if ("@" == label) { return errors.New(fmt.Sprintf("'%s' invalid: '@' not allowed", label)) } @@ -214,13 +214,17 @@ func (t *Registrar) isNameValid(label string) error { return errors.New(fmt.Sprintf("Label '%s' not allowed by policy", label)) } } - return nil + return } func (t *Registrar) searchPage(w http.ResponseWriter, r *http.Request) { + var ( + label string + err error + ) w.Header().Set("Content-Type", "text/html; charset=utf-8") - label := r.URL.Query().Get("label") - err := t.isNameValid(label) + label = r.URL.Query().Get("label") + err = t.isNameValid(label) if nil != err { http.Redirect(w, r, fmt.Sprintf("/?error=%s", err), http.StatusSeeOther) return @@ -229,9 +233,12 @@ func (t *Registrar) searchPage(w http.ResponseWriter, r *http.Request) { return } -func (t *Registrar) expireRegistration(label string) (error) { - var gnunetError GnunetError - client := &http.Client{} +func (t *Registrar) expireRegistration(label string) (err error) { + var ( + gnunetError GnunetError + client *http.Client + ) + client = &http.Client{} req, _ := http.NewRequest(http.MethodDelete,t.GnunetUrl+"/namestore/" + t.RootZoneName + "/" + label, nil) if t.GnunetBasicAuthEnabled { req.SetBasicAuth(t.GnunetUsername, t.GnunetPassword) @@ -252,10 +259,9 @@ func (t *Registrar) expireRegistration(label string) (error) { return nil } -func (t *Registrar) createOrUpdateRegistration(nsRecord *NamestoreRecord) (error) { +func (t *Registrar) createOrUpdateRegistration(nsRecord *NamestoreRecord) (err error) { var gnunetError GnunetError reqString, _ := json.Marshal(nsRecord) - fmt.Println(nsRecord) client := &http.Client{} req, _ := http.NewRequest(http.MethodPut,t.GnunetUrl+"/namestore/" + t.RootZoneName, bytes.NewBuffer(reqString)) if t.GnunetBasicAuthEnabled { @@ -281,11 +287,13 @@ func getEndOfDay(day time.Time) (time.Time) { return time.Date(day.Year(), day.Month(), day.Day(), 23, 59, 59, 0, day.Location()) } -func (t *Registrar) setupRegistrationMetadataBeforePayment(label string, zkey string, orderId string, paymentUntil time.Time, regId string) (error) { - var namestoreRequest NamestoreRecord - var delegationRecord RecordData - var metadataRecord RecordData - var registrationMetadata RegistrationMetadata +func (t *Registrar) setupRegistrationMetadataBeforePayment(label string, zkey string, orderId string, paymentUntil time.Time, regId string) (err error) { + var ( + namestoreRequest NamestoreRecord + delegationRecord RecordData + metadataRecord RecordData + registrationMetadata RegistrationMetadata + ) delegationRecord.IsPrivate = true // Private until payment is through delegationRecord.IsRelativeExpiration = true delegationRecord.IsSupplemental = false @@ -319,13 +327,18 @@ func (t *Registrar) setupRegistrationMetadataBeforePayment(label string, zkey st } func (t *Registrar) updateRegistration(w http.ResponseWriter, r *http.Request) { + var ( + namestoreResponse NamestoreRecord + zkeyRecord RecordData + metaRecord RecordData + regMetadata *RegistrationMetadata + client *http.Client + token string + zkey string + ) vars := mux.Vars(r) - var namestoreResponse NamestoreRecord - var zkeyRecord RecordData - var metaRecord RecordData - var regMetadata *RegistrationMetadata w.Header().Set("Content-Type", "text/html; charset=utf-8") - client := &http.Client{} + client = &http.Client{} req, _ := http.NewRequest(http.MethodGet,t.GnunetUrl + "/namestore/" + t.RootZoneName + "/" + vars["label"] + "?include_maintenance=yes", nil) if t.GnunetBasicAuthEnabled { req.SetBasicAuth(t.GnunetUsername, t.GnunetPassword) @@ -365,8 +378,8 @@ func (t *Registrar) updateRegistration(w http.ResponseWriter, r *http.Request) { return } r.ParseForm() - token := r.Form.Get("token") - zkey := r.Form.Get("zkey") + token = r.Form.Get("token") + zkey = r.Form.Get("zkey") if regMetadata.RegistrationID != token { http.Redirect(w, r, "/name/"+vars["label"] + "?error=Unauthorized", http.StatusSeeOther) return @@ -392,12 +405,15 @@ func (t *Registrar) updateRegistration(w http.ResponseWriter, r *http.Request) { } func (t *Registrar) editRegistration(w http.ResponseWriter, r *http.Request) { + var ( + namestoreResponse NamestoreRecord + regMetadata *RegistrationMetadata + value string + client *http.Client + ) vars := mux.Vars(r) - var namestoreResponse NamestoreRecord - var regMetadata *RegistrationMetadata - var value string w.Header().Set("Content-Type", "text/html; charset=utf-8") - client := &http.Client{} + client = &http.Client{} req, _ := http.NewRequest(http.MethodGet,t.GnunetUrl + "/namestore/" + t.RootZoneName + "/" + vars["label"] + "?include_maintenance=yes", nil) if t.GnunetBasicAuthEnabled { req.SetBasicAuth(t.GnunetUsername, t.GnunetPassword) @@ -467,12 +483,18 @@ func (t *Registrar) editRegistration(w http.ResponseWriter, r *http.Request) { } func (t *Registrar) buyPage(w http.ResponseWriter, r *http.Request) { + var ( + namestoreResponse NamestoreRecord + regMetadata *RegistrationMetadata + client *http.Client + label string + errorMsg string + regId string + ) vars := mux.Vars(r) - var namestoreResponse NamestoreRecord - var regMetadata *RegistrationMetadata w.Header().Set("Content-Type", "text/html; charset=utf-8") - client := &http.Client{} - label := vars["label"] + client = &http.Client{} + label = vars["label"] err := t.isNameValid(label) if nil != err { http.Redirect(w, r, fmt.Sprintf("/?error=%s", err), http.StatusSeeOther) @@ -512,8 +534,6 @@ func (t *Registrar) buyPage(w http.ResponseWriter, r *http.Request) { http.Redirect(w, r, "/name/" + label + "?error=Registration failed: Error determining zone status", http.StatusSeeOther) return } - var errorMsg = "" - var regId = "" if nil != regMetadata { if regMetadata.Paid == false { http.Redirect(w, r, "/name/"+ label + "?error=Registration failed: Pending buy order", http.StatusSeeOther) @@ -594,8 +614,11 @@ func (t *Registrar) buyPage(w http.ResponseWriter, r *http.Request) { } func (t *Registrar) getCurrentRegistrationMetadata(label string, nsRecord *NamestoreRecord) (*RegistrationMetadata, error) { - var regMetadata RegistrationMetadata - var haveMetadata = false + var ( + regMetadata RegistrationMetadata + haveMetadata bool + ) + haveMetadata = false for _, record := range nsRecord.Records { if record.RecordType == "TXT" { err := json.Unmarshal([]byte(record.Value), &regMetadata) @@ -687,21 +710,24 @@ func isDelegationRecordType(typ string) (bool) { } func (t *Registrar) namePage(w http.ResponseWriter, r *http.Request) { - var namestoreResponse NamestoreRecord + var ( + namestoreResponse NamestoreRecord + value string + registeredUntilStr string + regMetadata *RegistrationMetadata + remainingDays int64 + client *http.Client + registered = r.URL.Query().Get("registered") == "true" + ) vars := mux.Vars(r) w.Header().Set("Content-Type", "text/html; charset=utf-8") - var value = "" - var registeredUntilStr = "" - var regMetadata *RegistrationMetadata - var remainingDays int64 - var registered = r.URL.Query().Get("registered") == "true" label := vars["label"] err := t.isNameValid(label) if nil != err { http.Redirect(w, r, fmt.Sprintf("/?error=%s", err), http.StatusSeeOther) return } - client := &http.Client{} + client = &http.Client{} req, _ := http.NewRequest(http.MethodGet,t.GnunetUrl + "/namestore/" + t.RootZoneName + "/" + label + "?include_maintenance=yes", nil) if t.GnunetBasicAuthEnabled { req.SetBasicAuth(t.GnunetUsername, t.GnunetPassword) @@ -803,21 +829,25 @@ func (t *Registrar) Initialize(cfgfile string) { t.LandingTpl, err = template.ParseFiles(landingTplFile) if err != nil { fmt.Println(err) + os.Exit(1) } nameTplFile := t.Cfg.Section("gns-registrar").Key("name_template").MustString("web/templates/name.html") t.NameTpl, err = template.ParseFiles(nameTplFile) if err != nil { fmt.Println(err) + os.Exit(1) } buyTplFile := t.Cfg.Section("gns-registrar").Key("buy_template").MustString("web/templates/buy.html") t.BuyTpl, err = template.ParseFiles(buyTplFile) if err != nil { fmt.Println(err) + os.Exit(1) } editTplFile := t.Cfg.Section("gns-registrar").Key("edit_template").MustString("web/templates/edit.html") t.EditTpl, err = template.ParseFiles(editTplFile) if err != nil { fmt.Println(err) + os.Exit(1) } paymentExp := t.Cfg.Section("gns-registrar").Key("payment_required_expiration").MustString("1h") recordExp := t.Cfg.Section("gns-registrar").Key("relative_delegation_expiration").MustString("24h")