29 lines
470 B
Go
29 lines
470 B
Go
package discord
|
|
|
|
import (
|
|
"errors"
|
|
"io/fs"
|
|
"syscall"
|
|
|
|
"github.com/Microsoft/go-winio"
|
|
)
|
|
|
|
var errPipe = syscall.Errno(232)
|
|
|
|
func (d *Client) dial() error {
|
|
if d.dialed {
|
|
panic("attempted to dial on open client")
|
|
}
|
|
|
|
if conn, err := winio.DialPipe(`\\.\pipe\discord-ipc-0`, nil); err != nil {
|
|
if errors.Is(err, winio.ErrTimeout) || errors.Is(err, fs.ErrNotExist) {
|
|
return ErrAgain
|
|
}
|
|
return err
|
|
} else {
|
|
d.conn = conn
|
|
d.dialed = true
|
|
}
|
|
return nil
|
|
}
|