fixed windows ipc path issue

This commit is contained in:
Bas van Kervel 2015-06-12 09:32:37 +02:00
parent 22080e1fdd
commit 359e6414e5
4 changed files with 27 additions and 4 deletions

View File

@ -93,7 +93,7 @@ func main() {
func run(ctx *cli.Context) { func run(ctx *cli.Context) {
jspath := ctx.GlobalString(utils.JSpathFlag.Name) jspath := ctx.GlobalString(utils.JSpathFlag.Name)
ipcpath := ctx.GlobalString(utils.IPCPathFlag.Name) ipcpath := utils.IpcSocketPath(ctx)
repl := newJSRE(jspath, ipcpath) repl := newJSRE(jspath, ipcpath)
repl.welcome(ipcpath) repl.welcome(ipcpath)

View File

@ -308,7 +308,7 @@ func console(ctx *cli.Context) {
ethereum, ethereum,
ctx.String(utils.JSpathFlag.Name), ctx.String(utils.JSpathFlag.Name),
ctx.GlobalString(utils.RPCCORSDomainFlag.Name), ctx.GlobalString(utils.RPCCORSDomainFlag.Name),
filepath.Join(ctx.GlobalString(utils.DataDirFlag.Name), "geth.ipc"), utils.IpcSocketPath(ctx),
true, true,
nil, nil,
) )
@ -330,7 +330,7 @@ func execJSFiles(ctx *cli.Context) {
ethereum, ethereum,
ctx.String(utils.JSpathFlag.Name), ctx.String(utils.JSpathFlag.Name),
ctx.GlobalString(utils.RPCCORSDomainFlag.Name), ctx.GlobalString(utils.RPCCORSDomainFlag.Name),
ctx.GlobalString(utils.IPCPathFlag.Name), utils.IpcSocketPath(ctx),
false, false,
nil, nil,
) )

View File

@ -385,9 +385,29 @@ func MakeAccountManager(ctx *cli.Context) *accounts.Manager {
return accounts.NewManager(ks) return accounts.NewManager(ks)
} }
func IpcSocketPath(ctx *cli.Context) (ipcpath string) {
if common.IsWindows() {
ipcpath = common.DefaultIpcPath()
if ipcpath != ctx.GlobalString(IPCPathFlag.Name) {
ipcpath = ctx.GlobalString(IPCPathFlag.Name)
}
} else {
ipcpath = common.DefaultIpcPath()
if ctx.GlobalString(IPCPathFlag.Name) != common.DefaultIpcPath() {
ipcpath = ctx.GlobalString(IPCPathFlag.Name)
} else if ctx.GlobalString(DataDirFlag.Name) != "" &&
ctx.GlobalString(DataDirFlag.Name) != common.DefaultDataDir() {
ipcpath = filepath.Join(ctx.GlobalString(DataDirFlag.Name), "geth.ipc")
}
}
return
}
func StartIPC(eth *eth.Ethereum, ctx *cli.Context) error { func StartIPC(eth *eth.Ethereum, ctx *cli.Context) error {
config := comms.IpcConfig{ config := comms.IpcConfig{
Endpoint: filepath.Join(ctx.GlobalString(DataDirFlag.Name), "geth.ipc"), Endpoint: IpcSocketPath(ctx),
} }
xeth := xeth.New(eth, nil) xeth := xeth.New(eth, nil)

View File

@ -95,6 +95,9 @@ func DefaultDataDir() string {
} }
func DefaultIpcPath() string { func DefaultIpcPath() string {
if runtime.GOOS == "windows" {
return `\\.\pipe\geth.ipc`
}
return filepath.Join(DefaultDataDir(), "geth.ipc") return filepath.Join(DefaultDataDir(), "geth.ipc")
} }