Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
libvirt
提交
e8989ae4
L
libvirt
项目概览
openeuler
/
libvirt
通知
3
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
L
libvirt
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
e8989ae4
编写于
8月 12, 2011
作者:
J
Jiri Denemark
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
qemu: Use virNetSocket for tunneled migration
上级
52e2918a
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
8 addition
and
42 deletion
+8
-42
src/qemu/qemu_migration.c
src/qemu/qemu_migration.c
+8
-42
未找到文件。
src/qemu/qemu_migration.c
浏览文件 @
e8989ae4
...
...
@@ -42,6 +42,7 @@
#include "fdstream.h"
#include "uuid.h"
#include "locking/domain_lock.h"
#include "rpc/virnetsocket.h"
#define VIR_FROM_THIS VIR_FROM_QEMU
...
...
@@ -1627,9 +1628,8 @@ static int doTunnelMigrate(struct qemud_driver *driver,
unsigned
long
resource
)
{
qemuDomainObjPrivatePtr
priv
=
vm
->
privateData
;
int
qemu_sock
=
-
1
;
struct
sockaddr_un
sa_qemu
;
char
*
unixfile
=
NULL
;
virNetSocketPtr
sock
=
NULL
;
int
ret
=
-
1
;
qemuMigrationSpec
spec
;
...
...
@@ -1651,45 +1651,14 @@ static int doTunnelMigrate(struct qemud_driver *driver,
goto
cleanup
;
}
qemu_sock
=
socket
(
AF_UNIX
,
SOCK_STREAM
,
0
);
if
(
qemu_sock
<
0
)
{
virReportSystemError
(
errno
,
"%s"
,
_
(
"cannot open tunnelled migration socket"
));
goto
cleanup
;
}
memset
(
&
sa_qemu
,
0
,
sizeof
(
sa_qemu
));
sa_qemu
.
sun_family
=
AF_UNIX
;
if
(
virStrcpy
(
sa_qemu
.
sun_path
,
unixfile
,
sizeof
(
sa_qemu
.
sun_path
))
==
NULL
)
{
qemuReportError
(
VIR_ERR_INTERNAL_ERROR
,
_
(
"Unix socket '%s' too big for destination"
),
unixfile
);
if
(
virNetSocketNewListenUNIX
(
unixfile
,
0700
,
driver
->
user
,
driver
->
group
,
&
sock
)
<
0
||
virNetSocketListen
(
sock
,
1
)
<
0
)
goto
cleanup
;
}
unlink
(
unixfile
);
if
(
bind
(
qemu_sock
,
(
struct
sockaddr
*
)
&
sa_qemu
,
sizeof
(
sa_qemu
))
<
0
)
{
virReportSystemError
(
errno
,
_
(
"Cannot bind to unix socket '%s' for tunnelled migration"
),
unixfile
);
goto
cleanup
;
}
if
(
listen
(
qemu_sock
,
1
)
<
0
)
{
virReportSystemError
(
errno
,
_
(
"Cannot listen on unix socket '%s' for tunnelled migration"
),
unixfile
);
goto
cleanup
;
}
if
(
chown
(
unixfile
,
driver
->
user
,
driver
->
group
)
<
0
)
{
virReportSystemError
(
errno
,
_
(
"Cannot change unix socket '%s' owner"
),
unixfile
);
goto
cleanup
;
}
spec
.
destType
=
MIGRATION_DEST_UNIX
;
spec
.
dest
.
unix_socket
.
file
=
unixfile
;
spec
.
dest
.
unix_socket
.
sock
=
qemu_sock
;
spec
.
dest
.
unix_socket
.
sock
=
virNetSocketGetFD
(
sock
)
;
spec
.
fwdType
=
MIGRATION_FWD_STREAM
;
spec
.
fwd
.
stream
=
st
;
...
...
@@ -1697,11 +1666,8 @@ static int doTunnelMigrate(struct qemud_driver *driver,
cookieoutlen
,
flags
,
resource
,
&
spec
);
cleanup:
VIR_FORCE_CLOSE
(
qemu_sock
);
if
(
unixfile
)
{
unlink
(
unixfile
);
VIR_FREE
(
unixfile
);
}
virNetSocketFree
(
sock
);
VIR_FREE
(
unixfile
);
return
ret
;
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录