MCPcopy
hub / github.com/wavetermdev/waveterm / Connect

Method Connect

pkg/wslconn/wslconn.go:491–544  ·  view source on GitHub ↗

does not return an error since that error is stored inside of WslConn

(ctx context.Context)

Source from the content-addressed store, hash-verified

489
490// does not return an error since that error is stored inside of WslConn
491func (conn *WslConn) Connect(ctx context.Context) error {
492 var connectAllowed bool
493 conn.WithLock(func() {
494 if conn.Status == Status_Connecting || conn.Status == Status_Connected {
495 connectAllowed = false
496 } else {
497 conn.Status = Status_Connecting
498 conn.Error = ""
499 connectAllowed = true
500 }
501 })
502 log.Printf("Connect %s\n", conn.GetName())
503 if !connectAllowed {
504 conn.Infof(ctx, "cannot connect to %q when status is %q\n", conn.GetName(), conn.GetStatus())
505 return fmt.Errorf("cannot connect to %q when status is %q", conn.GetName(), conn.GetStatus())
506 }
507 conn.FireConnChangeEvent()
508 err := conn.connectInternal(ctx)
509 conn.WithLock(func() {
510 if err != nil {
511 conn.Infof(ctx, "ERROR %v\n\n", err)
512 conn.Status = Status_Error
513 conn.Error = err.Error()
514 conn.close_nolock()
515 telemetry.GoUpdateActivityWrap(wshrpc.ActivityUpdate{
516 Conn: map[string]int{"wsl:connecterror": 1},
517 }, "wsl-connconnect")
518 telemetry.GoRecordTEventWrap(&telemetrydata.TEvent{
519 Event: "conn:connecterror",
520 Props: telemetrydata.TEventProps{
521 ConnType: "wsl",
522 },
523 })
524 } else {
525 conn.Infof(ctx, "successfully connected (wsh:%v)\n\n", conn.WshEnabled.Load())
526 conn.Status = Status_Connected
527 conn.LastConnectTime = time.Now().UnixMilli()
528 if conn.ActiveConnNum == 0 {
529 conn.ActiveConnNum = int(activeConnCounter.Add(1))
530 }
531 telemetry.GoUpdateActivityWrap(wshrpc.ActivityUpdate{
532 Conn: map[string]int{"wsl:connect": 1},
533 }, "wsl-connconnect")
534 telemetry.GoRecordTEventWrap(&telemetrydata.TEvent{
535 Event: "conn:connect",
536 Props: telemetrydata.TEventProps{
537 ConnType: "wsl",
538 },
539 })
540 }
541 })
542 conn.FireConnChangeEvent()
543 return err
544}
545
546func (conn *WslConn) WithLock(fn func()) {
547 conn.Lock.Lock()

Callers 3

ReconnectMethod · 0.95
ConnConnectCommandMethod · 0.45
EnsureConnectionFunction · 0.45

Calls 10

WithLockMethod · 0.95
GetNameMethod · 0.95
InfofMethod · 0.95
GetStatusMethod · 0.95
FireConnChangeEventMethod · 0.95
connectInternalMethod · 0.95
close_nolockMethod · 0.95
GoUpdateActivityWrapFunction · 0.92
GoRecordTEventWrapFunction · 0.92
ErrorMethod · 0.45

Tested by

no test coverage detected