Changeset 677 in code for trunk


Ignore:
Timestamp:
Nov 8, 2021, 6:40:48 PM (4 years ago)
Author:
contact
Message:

Add context support to service

References: https://todo.sr.ht/~emersion/soju/141

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/downstream.go

    r676 r677  
    21622162                                        })
    21632163                                }
    2164                                 handleServicePRIVMSG(dc, text)
     2164                                handleServicePRIVMSG(ctx, dc, text)
    21652165                                continue
    21662166                        }
  • trunk/service.go

    r676 r677  
    4040        usage    string
    4141        desc     string
    42         handle   func(dc *downstreamConn, params []string) error
     42        handle   func(ctx context.Context, dc *downstreamConn, params []string) error
    4343        children serviceCommandSet
    4444        admin    bool
     
    114114}
    115115
    116 func handleServicePRIVMSG(dc *downstreamConn, text string) {
     116func handleServicePRIVMSG(ctx context.Context, dc *downstreamConn, text string) {
    117117        words, err := splitWords(text)
    118118        if err != nil {
     
    145145        }
    146146
    147         if err := cmd.handle(dc, params); err != nil {
     147        if err := cmd.handle(ctx, dc, params); err != nil {
    148148                sendServicePRIVMSG(dc, fmt.Sprintf("error: %v", err))
    149149        }
     
    323323}
    324324
    325 func handleServiceHelp(dc *downstreamConn, params []string) error {
     325func handleServiceHelp(ctx context.Context, dc *downstreamConn, params []string) error {
    326326        if len(params) > 0 {
    327327                cmd, rest, err := serviceCommands.Get(params)
     
    474474}
    475475
    476 func handleServiceNetworkCreate(dc *downstreamConn, params []string) error {
     476func handleServiceNetworkCreate(ctx context.Context, dc *downstreamConn, params []string) error {
    477477        fs := newNetworkFlagSet()
    478478        if err := fs.Parse(params); err != nil {
     
    491491        }
    492492
    493         network, err := dc.user.createNetwork(context.TODO(), record)
     493        network, err := dc.user.createNetwork(ctx, record)
    494494        if err != nil {
    495495                return fmt.Errorf("could not create network: %v", err)
     
    500500}
    501501
    502 func handleServiceNetworkStatus(dc *downstreamConn, params []string) error {
     502func handleServiceNetworkStatus(ctx context.Context, dc *downstreamConn, params []string) error {
    503503        n := 0
    504504        dc.user.forEachNetwork(func(net *network) {
     
    546546}
    547547
    548 func handleServiceNetworkUpdate(dc *downstreamConn, params []string) error {
     548func handleServiceNetworkUpdate(ctx context.Context, dc *downstreamConn, params []string) error {
    549549        if len(params) < 1 {
    550550                return fmt.Errorf("expected at least one argument")
     
    566566        }
    567567
    568         network, err := dc.user.updateNetwork(context.TODO(), &record)
     568        network, err := dc.user.updateNetwork(ctx, &record)
    569569        if err != nil {
    570570                return fmt.Errorf("could not update network: %v", err)
     
    575575}
    576576
    577 func handleServiceNetworkDelete(dc *downstreamConn, params []string) error {
     577func handleServiceNetworkDelete(ctx context.Context, dc *downstreamConn, params []string) error {
    578578        if len(params) != 1 {
    579579                return fmt.Errorf("expected exactly one argument")
     
    585585        }
    586586
    587         if err := dc.user.deleteNetwork(context.TODO(), net.ID); err != nil {
     587        if err := dc.user.deleteNetwork(ctx, net.ID); err != nil {
    588588                return err
    589589        }
     
    593593}
    594594
    595 func handleServiceNetworkQuote(dc *downstreamConn, params []string) error {
     595func handleServiceNetworkQuote(ctx context.Context, dc *downstreamConn, params []string) error {
    596596        if len(params) != 2 {
    597597                return fmt.Errorf("expected exactly two arguments")
     
    627627}
    628628
    629 func handleServiceCertFPGenerate(dc *downstreamConn, params []string) error {
     629func handleServiceCertFPGenerate(ctx context.Context, dc *downstreamConn, params []string) error {
    630630        fs := newFlagSet()
    631631        keyType := fs.String("key-type", "rsa", "key type to generate (rsa, ecdsa, ed25519)")
     
    658658        net.SASL.Mechanism = "EXTERNAL"
    659659
    660         if err := dc.srv.db.StoreNetwork(context.TODO(), dc.user.ID, &net.Network); err != nil {
     660        if err := dc.srv.db.StoreNetwork(ctx, dc.user.ID, &net.Network); err != nil {
    661661                return err
    662662        }
     
    667667}
    668668
    669 func handleServiceCertFPFingerprints(dc *downstreamConn, params []string) error {
     669func handleServiceCertFPFingerprints(ctx context.Context, dc *downstreamConn, params []string) error {
    670670        if len(params) != 1 {
    671671                return fmt.Errorf("expected exactly one argument")
     
    685685}
    686686
    687 func handleServiceSASLSetPlain(dc *downstreamConn, params []string) error {
     687func handleServiceSASLSetPlain(ctx context.Context, dc *downstreamConn, params []string) error {
    688688        if len(params) != 3 {
    689689                return fmt.Errorf("expected exactly 3 arguments")
     
    699699        net.SASL.Mechanism = "PLAIN"
    700700
    701         if err := dc.srv.db.StoreNetwork(context.TODO(), dc.user.ID, &net.Network); err != nil {
     701        if err := dc.srv.db.StoreNetwork(ctx, dc.user.ID, &net.Network); err != nil {
    702702                return err
    703703        }
     
    707707}
    708708
    709 func handleServiceSASLReset(dc *downstreamConn, params []string) error {
     709func handleServiceSASLReset(ctx context.Context, dc *downstreamConn, params []string) error {
    710710        if len(params) != 1 {
    711711                return fmt.Errorf("expected exactly one argument")
     
    723723        net.SASL.Mechanism = ""
    724724
    725         if err := dc.srv.db.StoreNetwork(context.TODO(), dc.user.ID, &net.Network); err != nil {
     725        if err := dc.srv.db.StoreNetwork(ctx, dc.user.ID, &net.Network); err != nil {
    726726                return err
    727727        }
     
    731731}
    732732
    733 func handleUserCreate(dc *downstreamConn, params []string) error {
     733func handleUserCreate(ctx context.Context, dc *downstreamConn, params []string) error {
    734734        fs := newFlagSet()
    735735        username := fs.String("username", "", "")
     
    774774}
    775775
    776 func handleUserUpdate(dc *downstreamConn, params []string) error {
     776func handleUserUpdate(ctx context.Context, dc *downstreamConn, params []string) error {
    777777        var password, realname *string
    778778        var admin *bool
     
    838838                }
    839839
    840                 if err := dc.user.updateUser(context.TODO(), &record); err != nil {
     840                if err := dc.user.updateUser(ctx, &record); err != nil {
    841841                        return err
    842842                }
     
    848848}
    849849
    850 func handleUserDelete(dc *downstreamConn, params []string) error {
     850func handleUserDelete(ctx context.Context, dc *downstreamConn, params []string) error {
    851851        if len(params) != 1 {
    852852                return fmt.Errorf("expected exactly one argument")
     
    861861        u.stop()
    862862
    863         if err := dc.srv.db.DeleteUser(context.TODO(), u.ID); err != nil {
     863        if err := dc.srv.db.DeleteUser(ctx, u.ID); err != nil {
    864864                return fmt.Errorf("failed to delete user: %v", err)
    865865        }
     
    869869}
    870870
    871 func handleServiceChannelStatus(dc *downstreamConn, params []string) error {
     871func handleServiceChannelStatus(ctx context.Context, dc *downstreamConn, params []string) error {
    872872        var defaultNetworkName string
    873873        if dc.network != nil {
     
    989989}
    990990
    991 func handleServiceChannelUpdate(dc *downstreamConn, params []string) error {
     991func handleServiceChannelUpdate(ctx context.Context, dc *downstreamConn, params []string) error {
    992992        if len(params) < 1 {
    993993                return fmt.Errorf("expected at least one argument")
     
    10161016        uc.updateChannelAutoDetach(upstreamName)
    10171017
    1018         if err := dc.srv.db.StoreChannel(context.TODO(), uc.network.ID, ch); err != nil {
     1018        if err := dc.srv.db.StoreChannel(ctx, uc.network.ID, ch); err != nil {
    10191019                return fmt.Errorf("failed to update channel: %v", err)
    10201020        }
     
    10241024}
    10251025
    1026 func handleServiceServerStatus(dc *downstreamConn, params []string) error {
    1027         dbStats, err := dc.user.srv.db.Stats(context.TODO())
     1026func handleServiceServerStatus(ctx context.Context, dc *downstreamConn, params []string) error {
     1027        dbStats, err := dc.user.srv.db.Stats(ctx)
    10281028        if err != nil {
    10291029                return err
     
    10341034}
    10351035
    1036 func handleServiceServerNotice(dc *downstreamConn, params []string) error {
     1036func handleServiceServerNotice(ctx context.Context, dc *downstreamConn, params []string) error {
    10371037        if len(params) != 1 {
    10381038                return fmt.Errorf("expected exactly one argument")
Note: See TracChangeset for help on using the changeset viewer.