6
1
mirror of https://git.mills.io/saltyim/saltyim.git synced 2024-06-16 11:58:24 +00:00

fix: stuff

This commit is contained in:
Jon Lundy 2022-03-26 14:42:39 -06:00
parent 55f0823ad3
commit da56689e4d
6 changed files with 22 additions and 21 deletions

@ -1,6 +1,6 @@
#!/bin/sh
set -e
set -ex
# Validate environment
if ! command -v jq > /dev/null; then
@ -83,6 +83,7 @@ stream () {
}
check_cors() {
return 0
if [ $# -lt 1 ]; then
printf "check_cors takes 1 arugment %d given\n" "$#"
printf "Try %s check_cors uri\n" "$(basename "$0")"
@ -114,11 +115,11 @@ lookup () {
domain="$(echo "$user" | awk -F@ '{ print $2 }')"
hash="$(printf "%s" "$user" | sha256sum | cut -f 1 -d ' ')"
discovery_host="$(dig +short SRV _salty._tcp."$domain" | cut -f 4 -d' ')"
discovery_host="$(dig +short SRV _salty._tcp."$domain" | cut -f 4 -d' ' | sed 's/.$//')"
if [ -z "$discovery_host" ]; then
discovery_host="$domain"
else
discovery_host="$(printf "%s" "$discovery_host" | sed -e 's/\.$//')"
discovery_host="$(echo "$discovery_host" | sed 's/.$//')"
fi
info=$(mktemp /tmp/salty.XXXXXX)
@ -301,9 +302,9 @@ register () {
nick="$(echo "$user" | awk -F@ '{ print $1 }')"
domain="$(echo "$user" | awk -F@ '{ print $2 }')"
discovery_host="$(dig +short SRV _salty._tcp."$domain" | cut -f 4 -d' ')"
discovery_host="$(dig +short SRV _salty._tcp."$domain" | cut -f 4 -d' ' | sed 's/.$//')"
if [ -z "$discovery_host" ]; then
discovery_host="$domain"
discovery_host="$(echo "$discovery_host" | sed 's/.$//')"
fi
identity_file="$data_path/$nick.key"

@ -70,7 +70,7 @@ func NewClient(me *Addr, options ...IdentityOption) (*Client, error) {
}
if err := me.Refresh(); err != nil {
return nil, fmt.Errorf("error looking up user endpoint: %w", err)
return nil, fmt.Errorf("error looking up user endpoint %s: %w", me.HashURI(), err)
}
log.Debugf("Using identity %s with public key %s", ident.Source(), ident.key)

@ -109,6 +109,10 @@ func (s *Server) Run() (err error) {
ctx, cancel := signal.NotifyContext(context.Background(), syscall.SIGINT, syscall.SIGTERM)
defer cancel()
if s.svc != nil {
s.svc.Run(ctx)
}
<-ctx.Done()
log.Infof("Received signal %s", ctx.Err())
@ -227,7 +231,7 @@ func (s *Server) setupSvcUser() {
// create our addr
me, err := saltyim.ParseAddr(s.config.SvcUser)
if err != nil {
log.WithError(err).Error("error oarsing scv user addr: %w", err)
log.WithError(err).Error("error parsing svc user addr: %w", err)
return
}
@ -248,7 +252,7 @@ func (s *Server) setupSvcUser() {
}
// Wait for things to settle
time.Sleep(time.Second * 5)
//time.Sleep(time.Second * 5)
cli, err := saltyim.NewClient(me, saltyim.WithIdentity(ident))
if err != nil {
@ -278,10 +282,12 @@ func (s *Server) setupSvcUser() {
Key: key.String(),
}, "OK")
})
log.Println(s.svc)
}
func (s *Server) runStartupJobs() {
time.Sleep(time.Second * 5)
// time.Sleep(time.Second * 5)
log.Info("running startup jobs")
for name, jobSpec := range StartupJobs {
@ -436,7 +442,7 @@ func NewServer(bind string, options ...Option) (*Server, error) {
server.initRoutes()
go server.runStartupJobs()
go server.setupSvcUser()
server.setupSvcUser()
return server, nil
}

@ -4,7 +4,6 @@ import (
"crypto/sha256"
"encoding/json"
"fmt"
"io/ioutil"
"net/http"
"net/url"
"strings"
@ -24,13 +23,8 @@ func fetchConfig(addr string) (Config, error) {
return Config{}, err
}
data, err := ioutil.ReadAll(res.Body)
if err != nil {
return Config{}, err
}
var config Config
if err := json.Unmarshal(data, &config); err != nil {
if err := json.NewDecoder(res.Body).Decode(&config); err != nil {
return Config{}, err
}
@ -122,7 +116,7 @@ func (a *Addr) HashURI() string {
func (a *Addr) Refresh() error {
log.Debugf("Looking up SRV record for _salty._tcp.%s", a.Domain)
if target, err := resolver.LookupSRV("salty", "tcp", a.Domain); err == nil {
a.discoveredDomain = target
a.discoveredDomain = strings.TrimSuffix(target, ".")
log.Debugf("Discovered salty services %s", a.discoveredDomain)
} else if err != nil {
log.Debugf("error looking up SRV record for _salty._tcp.%s : %s", a.Domain, err)

@ -44,7 +44,7 @@ func (r *StandardResolver) LookupSRV(service, proto, domain string) (string, err
if len(records) == 0 {
return "", ErrSRVRecordNotFound
}
return records[0].Target, nil
return strings.TrimSuffix(records[0].Target, "."), nil
}
type DNSOverHTTPResolver struct{}
@ -74,5 +74,5 @@ func (r *DNSOverHTTPResolver) LookupSRV(service, proto, domain string) (string,
if len(fields) != 4 {
return "", fmt.Errorf("invalid SRV records found expected 4 fields got %d: %q", len(fields), data)
}
return fields[3], nil
return strings.TrimSuffix(fields[3], "."), nil
}

@ -53,7 +53,7 @@ func (svc *Service) String() string {
}
func (svc *Service) Run(ctx context.Context) {
log.Println("listining for bot: ", svc.Me().Endpoint())
log.Println("listining for bot: ", svc.Me())
msgch := svc.Read(ctx, "", "")
for {
select {