<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META content="text/html; charset=utf-8" http-equiv=Content-Type>
<STYLE>
BLOCKQUOTE {
        MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; MARGIN-LEFT: 2em
}
OL {
        MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px
}
UL {
        MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px
}
P {
        MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px
}
BODY {
        LINE-HEIGHT: 1.5; FONT-FAMILY: 微软雅黑; COLOR: #000000; FONT-SIZE: 10.5pt; 36719: ; 38597: ; 40657: 
}
</STYLE>

<META name=GENERATOR content="MSHTML 8.00.7601.17514"></HEAD>
<BODY style="MARGIN: 10px">
<DIV>Please ignore the patchs [1-3].</DIV>
<DIV>I followed the contributer guidelines, before I push the patches I did a 
"git pull --rebase" operation, </DIV>
<DIV>Then the newest  three patches are included into my patches. Are there 
anything I missed?</DIV>
<DIV> </DIV>
<DIV>On 2013-09-17 22:50 , <A 
href="mailto:hzguanqiang@gmail.com">hzguanqiang</A> wrote:</DIV>
<DIV>
<TABLE width="100%">
  <TBODY>
  <TR>
    <TD width="100%">
      <BLOCKQUOTE 
      style="BORDER-LEFT: #000000 2px solid; PADDING-LEFT: 5px; PADDING-RIGHT: 0px; MARGIN-LEFT: 5px; MARGIN-RIGHT: 0px">
        <DIV>From: Aline Manera <alinefm@br.ibm.com></DIV>
        <DIV> </DIV>
        <DIV>The https protocol is also accepted by qemu/KVM when specifying the 
        cdrom ISO</DIV>
        <DIV>image.</DIV>
        <DIV> </DIV>
        <DIV>The xml should be as following:</DIV>
        <DIV> </DIV>
        <DIV>    <disk type='network' device='cdrom'></DIV>
        <DIV>      <source protocol='https' 
        name='/url/path'></DIV>
        <DIV>        <host 
        name='host.name' port='443'/></DIV>
        <DIV>      </source></DIV>
        <DIV>    </disk></DIV>
        <DIV> </DIV>
        <DIV>Signed-off-by: Aline Manera <alinefm@br.ibm.com></DIV>
        <DIV>---</DIV>
        <DIV>docs/formatdomain.html.in                          
        |    8 +++++</DIV>
        <DIV>docs/schemas/domaincommon.rng                      
        |    1 +</DIV>
        <DIV>src/conf/domain_conf.c                             
        |    1 +</DIV>
        <DIV>src/conf/domain_conf.h                             
        |    1 +</DIV>
        <DIV>src/qemu/qemu_command.c                            
        |    6 ++++</DIV>
        <DIV>.../qemuxml2argv-disk-cdrom-network-https.args     
        |    8 +++++</DIV>
        <DIV>.../qemuxml2argv-disk-cdrom-network-https.xml      
        |   37 ++++++++++++++++++++</DIV>
        <DIV>tests/qemuxml2argvtest.c                           
        |    2 ++</DIV>
        <DIV>8 files changed, 64 insertions(+)</DIV>
        <DIV>create mode 100644 
        tests/qemuxml2argvdata/qemuxml2argv-disk-cdrom-network-https.args</DIV>
        <DIV>create mode 100644 
        tests/qemuxml2argvdata/qemuxml2argv-disk-cdrom-network-https.xml</DIV>
        <DIV> </DIV>
        <DIV>diff --git a/docs/formatdomain.html.in 
        b/docs/formatdomain.html.in</DIV>
        <DIV>index f5a36d9..240571f 100644</DIV>
        <DIV>--- a/docs/formatdomain.html.in</DIV>
        <DIV>+++ b/docs/formatdomain.html.in</DIV>
        <DIV>@@ -1511,6 +1511,14 @@</DIV>
        <DIV>     &lt;/disk&gt;</DIV>
        <DIV>     &lt;disk type='network' 
        device='cdrom'&gt;</DIV>
        <DIV>       &lt;driver name='qemu' 
        type='raw'/&gt;</DIV>
        <DIV>+      &lt;source protocol="https" 
        name="url_path"&gt;</DIV>
        <DIV>+        &lt;host 
        name="hostname" port="443"/&gt;</DIV>
        <DIV>+      &lt;/source&gt;</DIV>
        <DIV>+      &lt;target dev='hdc' bus='ide' 
        tray='open'/&gt;</DIV>
        <DIV>+      &lt;readonly/&gt;</DIV>
        <DIV>+    &lt;/disk&gt;</DIV>
        <DIV>+    &lt;disk type='network' 
        device='cdrom'&gt;</DIV>
        <DIV>+      &lt;driver name='qemu' 
        type='raw'/&gt;</DIV>
        <DIV>       &lt;source protocol="ftp" 
        name="url_path"&gt;</DIV>
        <DIV>         &lt;host 
        name="hostname" port="21"/&gt;</DIV>
        <DIV>       &lt;/source&gt;</DIV>
        <DIV>diff --git a/docs/schemas/domaincommon.rng 
        b/docs/schemas/domaincommon.rng</DIV>
        <DIV>index ecd3a42..2f91f0f 100644</DIV>
        <DIV>--- a/docs/schemas/domaincommon.rng</DIV>
        <DIV>+++ b/docs/schemas/domaincommon.rng</DIV>
        <DIV>@@ -1231,6 +1231,7 @@</DIV>
        <DIV>         
        <value>gluster</value></DIV>
        <DIV>         
        <value>iscsi</value></DIV>
        <DIV>         
        <value>http</value></DIV>
        <DIV>+        
        <value>https</value></DIV>
        <DIV>         
        <value>ftp</value></DIV>
        <DIV>       </choice></DIV>
        <DIV>     </attribute></DIV>
        <DIV>diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c</DIV>
        <DIV>index e5fe900..04563f6 100644</DIV>
        <DIV>--- a/src/conf/domain_conf.c</DIV>
        <DIV>+++ b/src/conf/domain_conf.c</DIV>
        <DIV>@@ -265,6 +265,7 @@ VIR_ENUM_IMPL(virDomainDiskProtocol, 
        VIR_DOMAIN_DISK_PROTOCOL_LAST,</DIV>
        <DIV>               
        "gluster",</DIV>
        <DIV>               
        "iscsi",</DIV>
        <DIV>               
        "http",</DIV>
        <DIV>+              
        "https",</DIV>
        <DIV>               
        "ftp")</DIV>
        <DIV></DIV>
        <DIV>VIR_ENUM_IMPL(virDomainDiskProtocolTransport, 
        VIR_DOMAIN_DISK_PROTO_TRANS_LAST,</DIV>
        <DIV>diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h</DIV>
        <DIV>index e4dfee9..d54b29e 100644</DIV>
        <DIV>--- a/src/conf/domain_conf.h</DIV>
        <DIV>+++ b/src/conf/domain_conf.h</DIV>
        <DIV>@@ -543,6 +543,7 @@ enum virDomainDiskProtocol {</DIV>
        <DIV>     VIR_DOMAIN_DISK_PROTOCOL_GLUSTER,</DIV>
        <DIV>     VIR_DOMAIN_DISK_PROTOCOL_ISCSI,</DIV>
        <DIV>     VIR_DOMAIN_DISK_PROTOCOL_HTTP,</DIV>
        <DIV>+    VIR_DOMAIN_DISK_PROTOCOL_HTTPS,</DIV>
        <DIV>     VIR_DOMAIN_DISK_PROTOCOL_FTP,</DIV>
        <DIV></DIV>
        <DIV>     VIR_DOMAIN_DISK_PROTOCOL_LAST</DIV>
        <DIV>diff --git a/src/qemu/qemu_command.c 
b/src/qemu/qemu_command.c</DIV>
        <DIV>index 1521431..883b513 100644</DIV>
        <DIV>--- a/src/qemu/qemu_command.c</DIV>
        <DIV>+++ b/src/qemu/qemu_command.c</DIV>
        <DIV>@@ -3905,6 +3905,12 @@ qemuBuildDriveStr(virConnectPtr conn 
        ATTRIBUTE_UNUSED,</DIV>
        <DIV>                                   
        disk->hosts->port ? disk->hosts->port : "80");</DIV>
        <DIV>                 
        virBufferEscape(&opt, ',', ",", "%s,", disk->src);</DIV>
        <DIV>                 
        break;</DIV>
        <DIV>+            
        case VIR_DOMAIN_DISK_PROTOCOL_HTTPS:</DIV>
        <DIV>+                
        virBufferAsprintf(&opt, "file=https://%s:%s",</DIV>
        <DIV>+                                  
        disk->hosts->name,</DIV>
        <DIV>+                                  
        disk->hosts->port ? disk->hosts->port : "443");</DIV>
        <DIV>+                
        virBufferEscape(&opt, ',', ",", "%s,", disk->src);</DIV>
        <DIV>+                
        break;</DIV>
        <DIV>             
        case VIR_DOMAIN_DISK_PROTOCOL_FTP:</DIV>
        <DIV>                 
        virBufferAsprintf(&opt, "file=ftp://%s:%s",</DIV>
        <DIV>                                   
        disk->hosts->name,</DIV>
        <DIV>diff --git 
        a/tests/qemuxml2argvdata/qemuxml2argv-disk-cdrom-network-https.args 
        b/tests/qemuxml2argvdata/qemuxml2argv-disk-cdrom-network-https.args</DIV>
        <DIV>new file mode 100644</DIV>
        <DIV>index 0000000..affa794</DIV>
        <DIV>--- /dev/null</DIV>
        <DIV>+++ 
        b/tests/qemuxml2argvdata/qemuxml2argv-disk-cdrom-network-https.args</DIV>
        <DIV>@@ -0,0 +1,8 @@</DIV>
        <DIV>+LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test 
        QEMU_AUDIO_DRV=none \</DIV>
        <DIV>+/usr/bin/kvm -S \</DIV>
        <DIV>+-M pc-1.2 -m 1024 -smp 1 -nographic -nodefaults \</DIV>
        <DIV>+-monitor unix:/tmp/test-monitor,server,nowait -boot d -usb \</DIV>
        <DIV>+-drive \</DIV>
        <DIV>+file=https://host.name:443/url/path/file.iso,if=none,media=cdrom,id=drive-ide0-1-0 
        \</DIV>
        <DIV>+-device 
        ide-drive,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0 \</DIV>
        <DIV>+-device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3</DIV>
        <DIV>diff --git 
        a/tests/qemuxml2argvdata/qemuxml2argv-disk-cdrom-network-https.xml 
        b/tests/qemuxml2argvdata/qemuxml2argv-disk-cdrom-network-https.xml</DIV>
        <DIV>new file mode 100644</DIV>
        <DIV>index 0000000..b8a60ed</DIV>
        <DIV>--- /dev/null</DIV>
        <DIV>+++ 
        b/tests/qemuxml2argvdata/qemuxml2argv-disk-cdrom-network-https.xml</DIV>
        <DIV>@@ -0,0 +1,37 @@</DIV>
        <DIV>+<domain type='kvm'></DIV>
        <DIV>+  <name>QEMUGuest1</name></DIV>
        <DIV>+  
        <uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid></DIV>
        <DIV>+  <memory unit='KiB'>1048576</memory></DIV>
        <DIV>+  <currentMemory 
        unit='KiB'>1048576</currentMemory></DIV>
        <DIV>+  <vcpu placement='static'>1</vcpu></DIV>
        <DIV>+  <os></DIV>
        <DIV>+    <type arch='x86_64' 
        machine='pc-1.2'>hvm</type></DIV>
        <DIV>+    <boot dev='cdrom'/></DIV>
        <DIV>+  </os></DIV>
        <DIV>+  <features></DIV>
        <DIV>+    <acpi/></DIV>
        <DIV>+    <apic/></DIV>
        <DIV>+    <pae/></DIV>
        <DIV>+  </features></DIV>
        <DIV>+  <clock offset='utc'/></DIV>
        <DIV>+  <on_poweroff>destroy</on_poweroff></DIV>
        <DIV>+  <on_reboot>restart</on_reboot></DIV>
        <DIV>+  <on_crash>restart</on_crash></DIV>
        <DIV>+  <devices></DIV>
        <DIV>+    
        <emulator>/usr/bin/kvm</emulator></DIV>
        <DIV>+    <disk type='network' 
device='cdrom'></DIV>
        <DIV>+      <driver name='qemu' 
        type='raw'/></DIV>
        <DIV>+      <source protocol='https' 
        name='/url/path/file.iso'></DIV>
        <DIV>+        <host 
        name='host.name' port='443'/></DIV>
        <DIV>+      </source></DIV>
        <DIV>+      <target dev='hdc' 
        bus='ide'/></DIV>
        <DIV>+      <readonly/></DIV>
        <DIV>+      <alias 
name='ide0-1-0'/></DIV>
        <DIV>+      <address type='drive' 
        controller='0' bus='1' target='0' unit='0'/></DIV>
        <DIV>+    </disk></DIV>
        <DIV>+    <controller type='usb' index='0'/></DIV>
        <DIV>+    <controller type='pci' index='0' 
        model='pci-root'/></DIV>
        <DIV>+    <controller type='ide' index='0'/></DIV>
        <DIV>+    <memballoon model='virtio'/></DIV>
        <DIV>+  </devices></DIV>
        <DIV>+</domain></DIV>
        <DIV>diff --git a/tests/qemuxml2argvtest.c 
        b/tests/qemuxml2argvtest.c</DIV>
        <DIV>index fdf1d31..a11c9a8 100644</DIV>
        <DIV>--- a/tests/qemuxml2argvtest.c</DIV>
        <DIV>+++ b/tests/qemuxml2argvtest.c</DIV>
        <DIV>@@ -445,6 +445,8 @@ mymain(void)</DIV>
        <DIV>     DO_TEST("disk-cdrom", NONE);</DIV>
        <DIV>     DO_TEST("disk-cdrom-network-http", 
        QEMU_CAPS_KVM, QEMU_CAPS_DEVICE,</DIV>
        <DIV>             
        QEMU_CAPS_DRIVE);</DIV>
        <DIV>+    DO_TEST("disk-cdrom-network-https", 
        QEMU_CAPS_KVM, QEMU_CAPS_DEVICE,</DIV>
        <DIV>+            
        QEMU_CAPS_DRIVE);</DIV>
        <DIV>     DO_TEST("disk-cdrom-network-ftp", 
        QEMU_CAPS_KVM, QEMU_CAPS_DEVICE,</DIV>
        <DIV>             
        QEMU_CAPS_DRIVE);</DIV>
        <DIV>     DO_TEST("disk-cdrom-empty", 
        QEMU_CAPS_DRIVE);</DIV>
        <DIV>-- </DIV>
        <DIV>1.7.9.5</DIV>
        <DIV> </DIV>
        <DIV>--</DIV>
        <DIV>libvir-list mailing list</DIV>
        <DIV>libvir-list@redhat.com</DIV>
        <DIV>https://www.redhat.com/mailman/listinfo/libvir-list</DIV></BLOCKQUOTE></TD></TR></TBODY></TABLE></DIV>
<DIV> </DIV>
<DIV><SPAN>
<DIV style="FONT-FAMILY: verdana; FONT-SIZE: 10pt">
<DIV>------------------     <BR>Best 
regards!<BR>GuanQiang</DIV></DIV></SPAN></DIV>
<DIV>22:52:52</DIV></BODY></HTML>