Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
libvirt
提交
a551e9e1
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看板
体验新版 GitCode,发现更多精彩内容 >>
提交
a551e9e1
编写于
5月 03, 2013
作者:
M
Michal Privoznik
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Adapt to VIR_STRDUP and VIR_STRNDUP in src/xenxs/*
上级
63ee3b66
变更
2
显示空白变更内容
内联
并排
Showing
2 changed file
with
125 addition
and
166 deletion
+125
-166
src/xenxs/xen_sxpr.c
src/xenxs/xen_sxpr.c
+85
-115
src/xenxs/xen_xm.c
src/xenxs/xen_xm.c
+40
-51
未找到文件。
src/xenxs/xen_sxpr.c
浏览文件 @
a551e9e1
...
...
@@ -192,9 +192,8 @@ xenParseSxprChar(const char *value,
if
(
value
[
0
]
==
'/'
)
{
def
->
source
.
type
=
VIR_DOMAIN_CHR_TYPE_DEV
;
def
->
source
.
data
.
file
.
path
=
strdup
(
value
);
if
(
!
def
->
source
.
data
.
file
.
path
)
goto
no_memory
;
if
(
VIR_STRDUP
(
def
->
source
.
data
.
file
.
path
,
value
)
<
0
)
goto
error
;
}
else
{
if
((
tmp
=
strchr
(
value
,
':'
))
!=
NULL
)
{
*
tmp
=
'\0'
;
...
...
@@ -215,15 +214,14 @@ xenParseSxprChar(const char *value,
switch
(
def
->
source
.
type
)
{
case
VIR_DOMAIN_CHR_TYPE_PTY
:
if
(
tty
!=
NULL
&&
!
(
def
->
source
.
data
.
file
.
path
=
strdup
(
tty
)))
goto
no_memory
;
if
(
VIR_STRDUP
(
def
->
source
.
data
.
file
.
path
,
tty
)
<
0
)
goto
error
;
break
;
case
VIR_DOMAIN_CHR_TYPE_FILE
:
case
VIR_DOMAIN_CHR_TYPE_PIPE
:
if
(
!
(
def
->
source
.
data
.
file
.
path
=
strdup
(
value
))
)
goto
no_memory
;
if
(
VIR_STRDUP
(
def
->
source
.
data
.
file
.
path
,
value
)
<
0
)
goto
error
;
break
;
case
VIR_DOMAIN_CHR_TYPE_TCP
:
...
...
@@ -238,18 +236,14 @@ xenParseSxprChar(const char *value,
}
if
(
offset
!=
value
&&
(
def
->
source
.
data
.
tcp
.
host
=
strndup
(
value
,
offset
-
value
))
==
NULL
)
goto
no_memory
;
VIR_STRNDUP
(
def
->
source
.
data
.
tcp
.
host
,
value
,
offset
-
value
)
<
0
)
goto
error
;
offset2
=
strchr
(
offset
,
','
);
if
(
offset2
==
NULL
)
def
->
source
.
data
.
tcp
.
service
=
strdup
(
offset
+
1
);
else
def
->
source
.
data
.
tcp
.
service
=
strndup
(
offset
+
1
,
offset2
-
(
offset
+
1
));
if
(
def
->
source
.
data
.
tcp
.
service
==
NULL
)
goto
no_memory
;
offset
++
;
if
(
VIR_STRNDUP
(
def
->
source
.
data
.
tcp
.
service
,
offset
,
offset2
?
offset2
-
offset
:
strlen
(
offset
))
<
0
)
goto
error
;
if
(
offset2
&&
strstr
(
offset2
,
",server"
))
def
->
source
.
data
.
tcp
.
listen
=
true
;
...
...
@@ -268,15 +262,14 @@ xenParseSxprChar(const char *value,
}
if
(
offset
!=
value
&&
(
def
->
source
.
data
.
udp
.
connectHost
=
strndup
(
value
,
offset
-
value
))
==
NULL
)
goto
no_memory
;
VIR_STRNDUP
(
def
->
source
.
data
.
udp
.
connectHost
,
value
,
offset
-
value
)
<
0
)
goto
error
;
offset2
=
strchr
(
offset
,
'@'
);
if
(
offset2
!=
NULL
)
{
if
(
(
def
->
source
.
data
.
udp
.
connectService
=
strndup
(
offset
+
1
,
offset2
-
(
offset
+
1
)))
==
NULL
)
goto
no_memory
;
if
(
VIR_STRNDUP
(
def
->
source
.
data
.
udp
.
connectService
,
offset
+
1
,
offset2
-
offset
-
1
)
<
0
)
goto
error
;
offset3
=
strchr
(
offset2
,
':'
);
if
(
offset3
==
NULL
)
{
...
...
@@ -286,17 +279,15 @@ xenParseSxprChar(const char *value,
}
if
(
offset3
>
(
offset2
+
1
)
&&
(
def
->
source
.
data
.
udp
.
bindHost
=
strndup
(
offset2
+
1
,
offset3
-
(
offset2
+
1
)))
==
NULL
)
goto
no_memory
;
VIR_STRNDUP
(
def
->
source
.
data
.
udp
.
bindHost
,
offset2
+
1
,
offset3
-
offset2
-
1
)
<
0
)
goto
error
;
if
((
def
->
source
.
data
.
udp
.
bindService
=
strdup
(
offset3
+
1
))
==
NULL
)
goto
no_memory
;
if
(
VIR_STRDUP
(
def
->
source
.
data
.
udp
.
bindService
,
offset3
+
1
)
<
0
)
goto
error
;
}
else
{
if
((
def
->
source
.
data
.
udp
.
connectService
=
strdup
(
offset
+
1
))
==
NULL
)
goto
no_memory
;
if
(
VIR_STRDUP
(
def
->
source
.
data
.
udp
.
connectService
,
offset
+
1
)
<
0
)
goto
error
;
}
}
break
;
...
...
@@ -304,12 +295,9 @@ xenParseSxprChar(const char *value,
case
VIR_DOMAIN_CHR_TYPE_UNIX
:
{
const
char
*
offset
=
strchr
(
value
,
','
);
if
(
offset
)
def
->
source
.
data
.
nix
.
path
=
strndup
(
value
,
(
offset
-
value
));
else
def
->
source
.
data
.
nix
.
path
=
strdup
(
value
);
if
(
def
->
source
.
data
.
nix
.
path
==
NULL
)
goto
no_memory
;
if
(
VIR_STRNDUP
(
def
->
source
.
data
.
nix
.
path
,
value
,
offset
?
offset
-
value
:
strlen
(
value
))
<
0
)
goto
error
;
if
(
offset
!=
NULL
&&
strstr
(
offset
,
",server"
)
!=
NULL
)
...
...
@@ -320,8 +308,6 @@ xenParseSxprChar(const char *value,
return
def
;
no_memory:
virReportOOMError
();
error:
virDomainChrDefFree
(
def
);
return
NULL
;
...
...
@@ -411,8 +397,8 @@ xenParseSxprDisks(virDomainDefPtr def,
if
(
sexpr_lookup
(
node
,
"device/tap2"
)
&&
STRPREFIX
(
src
,
"tap:"
))
{
if
(
!
(
disk
->
driverName
=
strdup
(
"tap2"
))
)
goto
no_memory
;
if
(
VIR_STRDUP
(
disk
->
driverName
,
"tap2"
)
<
0
)
goto
error
;
}
else
{
if
(
VIR_ALLOC_N
(
disk
->
driverName
,
(
offset
-
src
)
+
1
)
<
0
)
goto
no_memory
;
...
...
@@ -438,8 +424,8 @@ xenParseSxprDisks(virDomainDefPtr def,
goto
error
;
}
if
(
!
(
driverType
=
strndup
(
src
,
offset
-
src
))
)
goto
no_memory
;
if
(
VIR_STRNDUP
(
driverType
,
src
,
offset
-
src
)
<
0
)
goto
error
;
if
(
STREQ
(
driverType
,
"aio"
))
disk
->
format
=
VIR_STORAGE_FILE_RAW
;
else
...
...
@@ -490,11 +476,10 @@ xenParseSxprDisks(virDomainDefPtr def,
}
}
if
(
!
(
disk
->
dst
=
strdup
(
dst
)))
goto
no_memory
;
if
(
src
&&
!
(
disk
->
src
=
strdup
(
src
)))
goto
no_memory
;
if
(
VIR_STRDUP
(
disk
->
dst
,
dst
)
<
0
)
goto
error
;
if
(
VIR_STRDUP
(
disk
->
src
,
src
)
<
0
)
goto
error
;
if
(
STRPREFIX
(
disk
->
dst
,
"xvd"
))
disk
->
bus
=
VIR_DOMAIN_DISK_BUS_XEN
;
...
...
@@ -572,26 +557,21 @@ xenParseSxprNets(virDomainDefPtr def,
net
->
type
=
VIR_DOMAIN_NET_TYPE_BRIDGE
;
/* XXX virtual network reverse resolve */
if
(
tmp
&&
!
(
net
->
data
.
bridge
.
brname
=
strdup
(
tmp
)))
goto
no_memory
;
if
(
tmp2
&&
net
->
type
==
VIR_DOMAIN_NET_TYPE_BRIDGE
&&
!
(
net
->
script
=
strdup
(
tmp2
)))
goto
no_memory
;
if
(
VIR_STRDUP
(
net
->
data
.
bridge
.
brname
,
tmp
)
<
0
)
goto
cleanup
;
if
(
net
->
type
==
VIR_DOMAIN_NET_TYPE_BRIDGE
&&
VIR_STRDUP
(
net
->
script
,
tmp2
)
<
0
)
goto
cleanup
;
tmp
=
sexpr_node
(
node
,
"device/vif/ip"
);
if
(
tmp
&&
!
(
net
->
data
.
bridge
.
ipaddr
=
strdup
(
tmp
)))
goto
no_memory
;
if
(
VIR_STRDUP
(
net
->
data
.
bridge
.
ipaddr
,
tmp
)
<
0
)
goto
cleanup
;
}
else
{
net
->
type
=
VIR_DOMAIN_NET_TYPE_ETHERNET
;
if
(
tmp2
&&
!
(
net
->
script
=
strdup
(
tmp2
)))
goto
no_memory
;
if
(
VIR_STRDUP
(
net
->
script
,
tmp2
)
<
0
)
goto
cleanup
;
tmp
=
sexpr_node
(
node
,
"device/vif/ip"
);
if
(
tmp
&&
!
(
net
->
data
.
ethernet
.
ipaddr
=
strdup
(
tmp
)))
goto
no_memory
;
if
(
VIR_STRDUP
(
net
->
data
.
ethernet
.
ipaddr
,
tmp
)
<
0
)
goto
cleanup
;
}
tmp
=
sexpr_node
(
node
,
"device/vif/vifname"
);
...
...
@@ -599,8 +579,8 @@ xenParseSxprNets(virDomainDefPtr def,
* definition regardless of domain state. If vifname is not
* specified, only generate one if domain is active (id != -1). */
if
(
tmp
)
{
if
(
!
(
net
->
ifname
=
strdup
(
tmp
))
)
goto
no_memory
;
if
(
VIR_STRDUP
(
net
->
ifname
,
tmp
)
<
0
)
goto
cleanup
;
}
else
if
(
def
->
id
!=
-
1
)
{
if
(
virAsprintf
(
&
net
->
ifname
,
"vif%d.%d"
,
def
->
id
,
vif_index
)
<
0
)
goto
no_memory
;
...
...
@@ -615,14 +595,12 @@ xenParseSxprNets(virDomainDefPtr def,
}
}
if
(
model
&&
!
(
net
->
model
=
strdup
(
model
)))
goto
no_memory
;
if
(
VIR_STRDUP
(
net
->
model
,
model
)
<
0
)
goto
cleanup
;
if
(
!
model
&&
type
&&
STREQ
(
type
,
"netfront"
)
&&
!
(
net
->
model
=
strdup
(
"netfront"
)))
goto
no_memory
;
if
(
!
model
&&
type
&&
STREQ
(
type
,
"netfront"
)
&&
VIR_STRDUP
(
net
->
model
,
"netfront"
)
<
0
)
goto
cleanup
;
if
(
VIR_REALLOC_N
(
def
->
nets
,
def
->
nnets
+
1
)
<
0
)
goto
no_memory
;
...
...
@@ -833,13 +811,11 @@ xenParseSxprGraphicsOld(virDomainDefPtr def,
virDomainGraphicsListenSetAddress
(
graphics
,
0
,
listenAddr
,
-
1
,
true
))
goto
error
;
if
(
vncPasswd
&&
!
(
graphics
->
data
.
vnc
.
auth
.
passwd
=
strdup
(
vncPasswd
)))
goto
no_memory
;
if
(
VIR_STRDUP
(
graphics
->
data
.
vnc
.
auth
.
passwd
,
vncPasswd
)
<
0
)
goto
error
;
if
(
keymap
&&
!
(
graphics
->
data
.
vnc
.
keymap
=
strdup
(
keymap
)))
goto
no_memory
;
if
(
VIR_STRDUP
(
graphics
->
data
.
vnc
.
keymap
,
keymap
)
<
0
)
goto
error
;
if
(
VIR_ALLOC_N
(
def
->
graphics
,
1
)
<
0
)
goto
no_memory
;
...
...
@@ -856,12 +832,10 @@ xenParseSxprGraphicsOld(virDomainDefPtr def,
goto
no_memory
;
graphics
->
type
=
VIR_DOMAIN_GRAPHICS_TYPE_SDL
;
if
(
display
&&
!
(
graphics
->
data
.
sdl
.
display
=
strdup
(
display
)))
goto
no_memory
;
if
(
xauth
&&
!
(
graphics
->
data
.
sdl
.
xauth
=
strdup
(
xauth
)))
goto
no_memory
;
if
(
VIR_STRDUP
(
graphics
->
data
.
sdl
.
display
,
display
)
<
0
)
goto
error
;
if
(
VIR_STRDUP
(
graphics
->
data
.
sdl
.
xauth
,
xauth
)
<
0
)
goto
error
;
if
(
VIR_ALLOC_N
(
def
->
graphics
,
1
)
<
0
)
goto
no_memory
;
...
...
@@ -926,12 +900,10 @@ xenParseSxprGraphicsNew(virDomainDefPtr def,
if
(
graphics
->
type
==
VIR_DOMAIN_GRAPHICS_TYPE_SDL
)
{
const
char
*
display
=
sexpr_node
(
node
,
"device/vfb/display"
);
const
char
*
xauth
=
sexpr_node
(
node
,
"device/vfb/xauthority"
);
if
(
display
&&
!
(
graphics
->
data
.
sdl
.
display
=
strdup
(
display
)))
goto
no_memory
;
if
(
xauth
&&
!
(
graphics
->
data
.
sdl
.
xauth
=
strdup
(
xauth
)))
goto
no_memory
;
if
(
VIR_STRDUP
(
graphics
->
data
.
sdl
.
display
,
display
)
<
0
)
goto
error
;
if
(
VIR_STRDUP
(
graphics
->
data
.
sdl
.
xauth
,
xauth
)
<
0
)
goto
error
;
}
else
{
int
port
;
const
char
*
listenAddr
=
sexpr_node
(
node
,
"device/vfb/vnclisten"
);
...
...
@@ -960,13 +932,11 @@ xenParseSxprGraphicsNew(virDomainDefPtr def,
virDomainGraphicsListenSetAddress
(
graphics
,
0
,
listenAddr
,
-
1
,
true
))
goto
error
;
if
(
vncPasswd
&&
!
(
graphics
->
data
.
vnc
.
auth
.
passwd
=
strdup
(
vncPasswd
)))
goto
no_memory
;
if
(
VIR_STRDUP
(
graphics
->
data
.
vnc
.
auth
.
passwd
,
vncPasswd
)
<
0
)
goto
error
;
if
(
keymap
&&
!
(
graphics
->
data
.
vnc
.
keymap
=
strdup
(
keymap
)))
goto
no_memory
;
if
(
VIR_STRDUP
(
graphics
->
data
.
vnc
.
keymap
,
keymap
)
<
0
)
goto
error
;
}
if
(
VIR_ALLOC_N
(
def
->
graphics
,
1
)
<
0
)
...
...
@@ -1180,8 +1150,8 @@ xenParseSxpr(const struct sexpr *root,
if
(
!
def
->
os
.
bootloader
&&
sexpr_has
(
root
,
"domain/bootloader"
)
&&
(
def
->
os
.
bootloader
=
strdup
(
""
))
==
NULL
)
goto
no_memory
;
VIR_STRDUP
(
def
->
os
.
bootloader
,
""
)
<
0
)
goto
error
;
if
(
def
->
os
.
bootloader
&&
sexpr_node_copy
(
root
,
"domain/bootloader_args"
,
...
...
@@ -1189,8 +1159,8 @@ xenParseSxpr(const struct sexpr *root,
goto
no_memory
;
}
if
(
!
(
def
->
os
.
type
=
strdup
(
hvm
?
"hvm"
:
"linux"
))
)
goto
no_memory
;
if
(
VIR_STRDUP
(
def
->
os
.
type
,
hvm
?
"hvm"
:
"linux"
)
<
0
)
goto
error
;
if
(
def
->
id
!=
0
)
{
if
(
sexpr_lookup
(
root
,
"domain/image"
))
{
...
...
@@ -1357,19 +1327,19 @@ xenParseSxpr(const struct sexpr *root,
virDomainDiskDefPtr
disk
;
if
(
VIR_ALLOC
(
disk
)
<
0
)
goto
no_memory
;
if
(
!
(
disk
->
src
=
strdup
(
tmp
))
)
{
if
(
VIR_STRDUP
(
disk
->
src
,
tmp
)
<
0
)
{
virDomainDiskDefFree
(
disk
);
goto
no_memory
;
goto
error
;
}
disk
->
type
=
VIR_DOMAIN_DISK_TYPE_FILE
;
disk
->
device
=
VIR_DOMAIN_DISK_DEVICE_CDROM
;
if
(
!
(
disk
->
dst
=
strdup
(
"hdc"
))
)
{
if
(
VIR_STRDUP
(
disk
->
dst
,
"hdc"
)
<
0
)
{
virDomainDiskDefFree
(
disk
);
goto
no_memory
;
goto
error
;
}
if
(
!
(
disk
->
driverName
=
strdup
(
"file"
))
)
{
if
(
VIR_STRDUP
(
disk
->
driverName
,
"file"
)
<
0
)
{
virDomainDiskDefFree
(
disk
);
goto
no_memory
;
goto
error
;
}
disk
->
bus
=
VIR_DOMAIN_DISK_BUS_IDE
;
disk
->
readonly
=
true
;
...
...
@@ -1393,19 +1363,19 @@ xenParseSxpr(const struct sexpr *root,
virDomainDiskDefPtr
disk
;
if
(
VIR_ALLOC
(
disk
)
<
0
)
goto
no_memory
;
if
(
!
(
disk
->
src
=
strdup
(
tmp
))
)
{
if
(
VIR_STRDUP
(
disk
->
src
,
tmp
)
<
0
)
{
VIR_FREE
(
disk
);
goto
no_memory
;
goto
error
;
}
disk
->
type
=
VIR_DOMAIN_DISK_TYPE_FILE
;
disk
->
device
=
VIR_DOMAIN_DISK_DEVICE_FLOPPY
;
if
(
!
(
disk
->
dst
=
strdup
(
fds
[
i
]))
)
{
if
(
VIR_STRDUP
(
disk
->
dst
,
fds
[
i
])
<
0
)
{
virDomainDiskDefFree
(
disk
);
goto
no_memory
;
goto
error
;
}
if
(
!
(
disk
->
driverName
=
strdup
(
"file"
))
)
{
if
(
VIR_STRDUP
(
disk
->
driverName
,
"file"
)
<
0
)
{
virDomainDiskDefFree
(
disk
);
goto
no_memory
;
goto
error
;
}
disk
->
bus
=
VIR_DOMAIN_DISK_BUS_FDC
;
...
...
src/xenxs/xen_xm.c
浏览文件 @
a551e9e1
...
...
@@ -183,12 +183,7 @@ static int xenXMConfigCopyStringInternal(virConfPtr conf,
return
-
1
;
}
if
(
!
(
*
value
=
strdup
(
val
->
str
)))
{
virReportOOMError
();
return
-
1
;
}
return
0
;
return
VIR_STRDUP
(
*
value
,
val
->
str
);
}
...
...
@@ -288,8 +283,8 @@ xenParseXM(virConfPtr conf, int xendConfigVersion,
STREQ
(
str
,
"hvm"
))
hvm
=
1
;
if
(
!
(
def
->
os
.
type
=
strdup
(
hvm
?
"hvm"
:
"xen"
))
)
goto
no_memory
;
if
(
VIR_STRDUP
(
def
->
os
.
type
,
hvm
?
"hvm"
:
"xen"
)
<
0
)
goto
cleanup
;
def
->
os
.
arch
=
virCapabilitiesDefaultGuestArch
(
caps
,
...
...
@@ -307,8 +302,8 @@ xenParseXM(virConfPtr conf, int xendConfigVersion,
def
->
os
.
arch
,
virDomainVirtTypeToString
(
def
->
virtType
));
if
(
defaultMachine
!=
NULL
)
{
if
(
!
(
def
->
os
.
machine
=
strdup
(
defaultMachine
))
)
goto
no_memory
;
if
(
VIR_STRDUP
(
def
->
os
.
machine
,
defaultMachine
)
<
0
)
goto
cleanup
;
}
if
(
hvm
)
{
...
...
@@ -562,8 +557,8 @@ xenParseXM(virConfPtr conf, int xendConfigVersion,
if
(
!
(
tmp
=
strchr
(
disk
->
src
,
':'
)))
goto
skipdisk
;
if
(
!
(
driverType
=
strndup
(
disk
->
src
,
tmp
-
disk
->
src
))
)
goto
no_memory
;
if
(
VIR_STRNDUP
(
driverType
,
disk
->
src
,
tmp
-
disk
->
src
)
<
0
)
goto
cleanup
;
if
(
STREQ
(
driverType
,
"aio"
))
disk
->
format
=
VIR_STORAGE_FILE_RAW
;
else
...
...
@@ -585,8 +580,8 @@ xenParseXM(virConfPtr conf, int xendConfigVersion,
/* No source, or driver name, so fix to phy: */
if
(
!
disk
->
driverName
&&
!
(
disk
->
driverName
=
strdup
(
"phy"
))
)
goto
no_memory
;
VIR_STRDUP
(
disk
->
driverName
,
"phy"
)
<
0
)
goto
cleanup
;
/* phy: type indicates a block device */
...
...
@@ -637,12 +632,12 @@ xenParseXM(virConfPtr conf, int xendConfigVersion,
disk
->
type
=
VIR_DOMAIN_DISK_TYPE_FILE
;
disk
->
device
=
VIR_DOMAIN_DISK_DEVICE_CDROM
;
if
(
!
(
disk
->
driverName
=
strdup
(
"file"
))
)
goto
no_memory
;
if
(
!
(
disk
->
src
=
strdup
(
str
))
)
goto
no_memory
;
if
(
!
(
disk
->
dst
=
strdup
(
"hdc"
))
)
goto
no_memory
;
if
(
VIR_STRDUP
(
disk
->
driverName
,
"file"
)
<
0
)
goto
cleanup
;
if
(
VIR_STRDUP
(
disk
->
src
,
str
)
<
0
)
goto
cleanup
;
if
(
VIR_STRDUP
(
disk
->
dst
,
"hdc"
)
<
0
)
goto
cleanup
;
disk
->
bus
=
VIR_DOMAIN_DISK_BUS_IDE
;
disk
->
readonly
=
true
;
...
...
@@ -703,9 +698,8 @@ xenParseXM(virConfPtr conf, int xendConfigVersion,
}
else
if
(
STRPREFIX
(
key
,
"script="
))
{
int
len
=
nextkey
?
(
nextkey
-
data
)
:
strlen
(
data
);
VIR_FREE
(
script
);
if
(
!
(
script
=
strndup
(
data
,
len
)))
{
goto
no_memory
;
}
if
(
VIR_STRNDUP
(
script
,
data
,
len
)
<
0
)
goto
cleanup
;
}
else
if
(
STRPREFIX
(
key
,
"model="
))
{
int
len
=
nextkey
?
(
nextkey
-
data
)
:
sizeof
(
model
)
-
1
;
if
(
virStrncpy
(
model
,
data
,
len
,
sizeof
(
model
))
==
NULL
)
{
...
...
@@ -763,34 +757,30 @@ xenParseXM(virConfPtr conf, int xendConfigVersion,
}
if
(
net
->
type
==
VIR_DOMAIN_NET_TYPE_BRIDGE
)
{
if
(
bridge
[
0
]
&&
!
(
net
->
data
.
bridge
.
brname
=
strdup
(
bridge
)))
goto
no_memory
;
if
(
ip
[
0
]
&&
!
(
net
->
data
.
bridge
.
ipaddr
=
strdup
(
ip
)))
goto
no_memory
;
if
(
bridge
[
0
]
&&
VIR_STRDUP
(
net
->
data
.
bridge
.
brname
,
bridge
)
<
0
)
goto
cleanup
;
if
(
ip
[
0
]
&&
VIR_STRDUP
(
net
->
data
.
bridge
.
ipaddr
,
ip
)
<
0
)
goto
cleanup
;
}
else
{
if
(
ip
[
0
]
&&
!
(
net
->
data
.
ethernet
.
ipaddr
=
strdup
(
ip
)))
goto
no_memory
;
if
(
ip
[
0
]
&&
VIR_STRDUP
(
net
->
data
.
ethernet
.
ipaddr
,
ip
)
<
0
)
goto
cleanup
;
}
if
(
script
&&
script
[
0
]
&&
!
(
net
->
script
=
strdup
(
script
))
)
goto
no_memory
;
VIR_STRDUP
(
net
->
script
,
script
)
<
0
)
goto
cleanup
;
if
(
model
[
0
]
&&
!
(
net
->
model
=
strdup
(
model
))
)
VIR_STRDUP
(
net
->
model
,
model
)
<
0
)
goto
no_memory
;
if
(
!
model
[
0
]
&&
type
[
0
]
&&
STREQ
(
type
,
"netfront"
)
&&
!
(
net
->
model
=
strdup
(
"netfront"
)))
goto
no_memory
;
if
(
!
model
[
0
]
&&
type
[
0
]
&&
STREQ
(
type
,
"netfront"
)
&&
VIR_STRDUP
(
net
->
model
,
"netfront"
)
<
0
)
goto
cleanup
;
if
(
vifname
[
0
]
&&
!
(
net
->
ifname
=
strdup
(
vifname
))
)
goto
no_memory
;
VIR_STRDUP
(
net
->
ifname
,
vifname
)
<
0
)
goto
cleanup
;
if
(
VIR_REALLOC_N
(
def
->
nets
,
def
->
nnets
+
1
)
<
0
)
goto
no_memory
;
...
...
@@ -1019,21 +1009,21 @@ xenParseXM(virConfPtr conf, int xendConfigVersion,
-
1
,
true
)
<
0
)
goto
cleanup
;
}
else
if
(
STRPREFIX
(
key
,
"vncpasswd="
))
{
if
(
!
(
graphics
->
data
.
vnc
.
auth
.
passwd
=
strdup
(
key
+
10
))
)
goto
no_memory
;
if
(
VIR_STRDUP
(
graphics
->
data
.
vnc
.
auth
.
passwd
,
key
+
10
)
<
0
)
goto
cleanup
;
}
else
if
(
STRPREFIX
(
key
,
"keymap="
))
{
if
(
!
(
graphics
->
data
.
vnc
.
keymap
=
strdup
(
key
+
7
))
)
goto
no_memory
;
if
(
VIR_STRDUP
(
graphics
->
data
.
vnc
.
keymap
,
key
+
7
)
<
0
)
goto
cleanup
;
}
else
if
(
STRPREFIX
(
key
,
"vncdisplay="
))
{
graphics
->
data
.
vnc
.
port
=
strtol
(
key
+
11
,
NULL
,
10
)
+
5900
;
}
}
else
{
if
(
STRPREFIX
(
key
,
"display="
))
{
if
(
!
(
graphics
->
data
.
sdl
.
display
=
strdup
(
key
+
8
))
)
goto
no_memory
;
if
(
VIR_STRDUP
(
graphics
->
data
.
sdl
.
display
,
key
+
8
)
<
0
)
goto
cleanup
;
}
else
if
(
STRPREFIX
(
key
,
"xauthority="
))
{
if
(
!
(
graphics
->
data
.
sdl
.
xauth
=
strdup
(
key
+
11
))
)
goto
no_memory
;
if
(
VIR_STRDUP
(
graphics
->
data
.
sdl
.
xauth
,
key
+
11
)
<
0
)
goto
cleanup
;
}
}
...
...
@@ -1193,9 +1183,8 @@ int xenXMConfigSetString(virConfPtr conf, const char *setting, const char *str)
value
->
type
=
VIR_CONF_STRING
;
value
->
next
=
NULL
;
if
(
!
(
value
->
str
=
strdup
(
str
))
)
{
if
(
VIR_STRDUP
(
value
->
str
,
str
)
<
0
)
{
VIR_FREE
(
value
);
virReportOOMError
();
return
-
1
;
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录