Changeset 120 in code


Ignore:
Timestamp:
Mar 19, 2020, 12:14:44 AM (5 years ago)
Author:
delthas
Message:

Add create-network bouncer service command

Location:
trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/downstream.go

    r119 r120  
    639639                dc.logger.Printf("auto-saving network %q", networkName)
    640640                var err error
    641                 network, err = dc.user.createNetwork(networkName, dc.nick)
     641                network, err = dc.user.createNetwork(&Network{
     642                        Addr: networkName,
     643                        Nick: dc.nick,
     644                })
    642645                if err != nil {
    643646                        return err
  • trunk/service.go

    r117 r120  
    22
    33import (
     4        "flag"
    45        "fmt"
     6        "io/ioutil"
    57        "strings"
    68
     
    5961                        handle: handleServiceHelp,
    6062                },
     63                "create-network": {
     64                        usage:  "-addr <addr> [-name name] [-username username] [-pass pass] [-realname realname] [-nick nick]",
     65                        desc:   "add a new network",
     66                        handle: handleServiceCreateNetwork,
     67                },
    6168        }
    6269}
     
    8693        return nil
    8794}
     95
     96func handleServiceCreateNetwork(dc *downstreamConn, params []string) error {
     97        fs := flag.NewFlagSet("", flag.ContinueOnError)
     98        fs.SetOutput(ioutil.Discard)
     99        addr := fs.String("addr", "", "")
     100        name := fs.String("name", "", "")
     101        username := fs.String("username", "", "")
     102        pass := fs.String("pass", "", "")
     103        realname := fs.String("realname", "", "")
     104        nick := fs.String("nick", "", "")
     105
     106        if err := fs.Parse(params); err != nil {
     107                return err
     108        }
     109        if *addr == "" {
     110                return fmt.Errorf("flag addr is required")
     111        }
     112
     113        if *nick == "" {
     114                *nick = dc.nick
     115        }
     116
     117        var err error
     118        network, err := dc.user.createNetwork(&Network{
     119                Addr:     *addr,
     120                Name:     *name,
     121                Username: *username,
     122                Pass:     *pass,
     123                Realname: *realname,
     124                Nick:     *nick,
     125        })
     126        if err != nil {
     127                return fmt.Errorf("could not create network: %v", err)
     128        }
     129
     130        sendServicePRIVMSG(dc, fmt.Sprintf("created network %s successfully", network.GetName()))
     131        return nil
     132}
  • trunk/user.go

    r119 r120  
    159159}
    160160
    161 func (u *user) createNetwork(addr, nick string) (*network, error) {
    162         network := newNetwork(u, &Network{
    163                 Addr: addr,
    164                 Nick: nick,
    165         })
     161func (u *user) createNetwork(net *Network) (*network, error) {
     162        network := newNetwork(u, net)
    166163        err := u.srv.db.StoreNetwork(u.Username, &network.Network)
    167164        if err != nil {
Note: See TracChangeset for help on using the changeset viewer.