Changeset 771 in code for trunk/service.go
- Timestamp:
- Feb 4, 2022, 3:47:34 PM (3 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/service.go
r770 r771 7 7 "crypto/sha512" 8 8 "encoding/hex" 9 "errors"10 9 "flag" 11 10 "fmt" … … 229 228 children: serviceCommandSet{ 230 229 "generate": { 231 usage: "[-key-type rsa|ecdsa|ed25519] [-bits N] <network name>",230 usage: "[-key-type rsa|ecdsa|ed25519] [-bits N] [-network name]", 232 231 desc: "generate a new self-signed certificate, defaults to using RSA-3072 key", 233 232 handle: handleServiceCertFPGenerate, 234 233 }, 235 234 "fingerprint": { 236 usage: " <network name>",237 desc: "show fingerprints of certificate associated with the network",235 usage: "[-network name]", 236 desc: "show fingerprints of certificate", 238 237 handle: handleServiceCertFPFingerprints, 239 238 }, … … 243 242 children: serviceCommandSet{ 244 243 "status": { 245 usage: " <network name>",244 usage: "[-network name]", 246 245 desc: "show SASL status", 247 246 handle: handleServiceSASLStatus, 248 247 }, 249 248 "set-plain": { 250 usage: " <network name><username> <password>",249 usage: "[-network name] <username> <password>", 251 250 desc: "set SASL PLAIN credentials", 252 251 handle: handleServiceSASLSetPlain, 253 252 }, 254 253 "reset": { 255 usage: " <network name>",254 usage: "[-network name]", 256 255 desc: "disable SASL authentication and remove stored credentials", 257 256 handle: handleServiceSASLReset, … … 632 631 } 633 632 633 func getNetworkFromFlag(dc *downstreamConn, name string) (*network, error) { 634 if name == "" { 635 if dc.network == nil { 636 return nil, fmt.Errorf("no network selected, -network is required") 637 } 638 return dc.network, nil 639 } else { 640 net := dc.user.getNetwork(name) 641 if net == nil { 642 return nil, fmt.Errorf("unknown network %q", name) 643 } 644 return net, nil 645 } 646 } 647 634 648 func handleServiceCertFPGenerate(ctx context.Context, dc *downstreamConn, params []string) error { 635 649 fs := newFlagSet() 650 netName := fs.String("network", "", "select a network") 636 651 keyType := fs.String("key-type", "rsa", "key type to generate (rsa, ecdsa, ed25519)") 637 652 bits := fs.Int("bits", 3072, "size of key to generate, meaningful only for RSA") … … 641 656 } 642 657 643 if len(fs.Args()) != 1 {644 return errors.New("exactly one argument is required")645 }646 647 net := dc.user.getNetwork(fs.Arg(0))648 if net == nil {649 return fmt.Errorf("unknown network %q", fs.Arg(0))650 }651 652 658 if *bits <= 0 || *bits > maxRSABits { 653 659 return fmt.Errorf("invalid value for -bits") 660 } 661 662 net, err := getNetworkFromFlag(dc, *netName) 663 if err != nil { 664 return err 654 665 } 655 666 … … 673 684 674 685 func handleServiceCertFPFingerprints(ctx context.Context, dc *downstreamConn, params []string) error { 675 if len(params) != 1 { 676 return fmt.Errorf("expected exactly one argument") 677 } 678 679 net := dc.user.getNetwork(params[0]) 680 if net == nil { 681 return fmt.Errorf("unknown network %q", params[0]) 686 fs := newFlagSet() 687 netName := fs.String("network", "", "select a network") 688 689 if err := fs.Parse(params); err != nil { 690 return err 691 } 692 693 net, err := getNetworkFromFlag(dc, *netName) 694 if err != nil { 695 return err 682 696 } 683 697 … … 691 705 692 706 func handleServiceSASLStatus(ctx context.Context, dc *downstreamConn, params []string) error { 693 if len(params) != 1 { 694 return fmt.Errorf("expected exactly one argument") 695 } 696 697 net := dc.user.getNetwork(params[0]) 698 if net == nil { 699 return fmt.Errorf("unknown network %q", params[0]) 707 fs := newFlagSet() 708 netName := fs.String("network", "", "select a network") 709 710 if err := fs.Parse(params); err != nil { 711 return err 712 } 713 714 net, err := getNetworkFromFlag(dc, *netName) 715 if err != nil { 716 return err 700 717 } 701 718 … … 723 740 724 741 func handleServiceSASLSetPlain(ctx context.Context, dc *downstreamConn, params []string) error { 725 if len(params) != 3 { 726 return fmt.Errorf("expected exactly 3 arguments") 727 } 728 729 net := dc.user.getNetwork(params[0]) 730 if net == nil { 731 return fmt.Errorf("unknown network %q", params[0]) 732 } 733 734 net.SASL.Plain.Username = params[1] 735 net.SASL.Plain.Password = params[2] 742 fs := newFlagSet() 743 netName := fs.String("network", "", "select a network") 744 745 if err := fs.Parse(params); err != nil { 746 return err 747 } 748 749 if len(fs.Args()) != 2 { 750 return fmt.Errorf("expected exactly 2 arguments") 751 } 752 753 net, err := getNetworkFromFlag(dc, *netName) 754 if err != nil { 755 return err 756 } 757 758 net.SASL.Plain.Username = fs.Arg(0) 759 net.SASL.Plain.Password = fs.Arg(1) 736 760 net.SASL.Mechanism = "PLAIN" 737 761 … … 745 769 746 770 func handleServiceSASLReset(ctx context.Context, dc *downstreamConn, params []string) error { 747 if len(params) != 1 { 748 return fmt.Errorf("expected exactly one argument") 749 } 750 751 net := dc.user.getNetwork(params[0]) 752 if net == nil { 753 return fmt.Errorf("unknown network %q", params[0]) 771 fs := newFlagSet() 772 netName := fs.String("network", "", "select a network") 773 774 if err := fs.Parse(params); err != nil { 775 return err 776 } 777 778 net, err := getNetworkFromFlag(dc, *netName) 779 if err != nil { 780 return err 754 781 } 755 782
Note:
See TracChangeset
for help on using the changeset viewer.