rpcfetch/io_windows.go

28 lines
470 B
Go

package rpcfetch
import (
"errors"
"github.com/Microsoft/go-winio"
"io/fs"
"syscall"
)
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
}