[Spice-devel] [Spice-Gtk] SpiceSession: Create webdav even with NULL shared_dir

Javier Celaya javier.celaya at flexvdi.com
Wed May 8 08:15:45 UTC 2019


Hi,
El mié, 08-05-2019 a las 06:47 +0000, Victor Toso escribió:
> Hi,
> On Mon, May 06, 2019 at 04:06:45PM +0200, Javier Celaya wrote:
> > HiEl lun, 06-05-2019 a las 10:37 +0000, Victor Toso escribió:
> > > Hi,On Fri, May 03, 2019 at 06:52:00PM +0200, Javier Celaya wrote:
> > > > A phodav server created with a NULL shared dir is valid
> > > > andresultsin an error answer to all requests of the webdav
> > > > channel,instead ofsilently ignoring them.This is better than
> > > > just returning NULLfromspice_session_get_webdav_server
> > > > because:a) it crasheschannel_webdav.c:start_client.
> > > 
> > > Can you give some steps on how to reproduce? I was trying
> > > withremote-viewer on F29 guest earlier and couldn't.
> > 
> > You cannot just try an existing client, this problem happened as we
> > aredeveloping our new client for flexVDI. You will have to modify
> > some ofthe source code for remote-viewer to see it.The thing is, if
> > you do not set the shared-dir property of theSpiceSession object,
> > it default to the XDG public directory. Thishappens if you do not
> > pass the "shared-dir" command line option, forinstance. But how do
> > I say "I do not want to share any directory withthe guest"?
> 
> With remote-viewer, only when the user toggle 'Share folder'
> thechannel-webdav would connect, that is, you would see in the logs:
>  > GSpice-DEBUG: 05:55:47.703: ../src/spice-channel.c:2707 webdav-
> 11:0: Open coroutine starting 0x55a774a10a90 > GSpice-DEBUG:
> 05:55:47.703: ../src/spice-channel.c:2544 webdav-11:0: Started
> background coroutine 0x55a774a100d0 > GSpice-DEBUG: 05:55:47.703:
> ../src/spice-session.c:2246 webdav-11:0: Using plain text, port 5900
> > GSpice-DEBUG: 05:55:47.704: ../src/spice-session.c:2177 open host
> pasta.usersys.redhat.com:5900 > GSpice-DEBUG: 05:55:47.704:
> ../src/spice-session.c:2099 webdav-11:0: connecting 0x7f2c4bfffa40...
> > GSpice-DEBUG: 05:55:47.729: ../src/spice-session.c:2083 webdav-
> 11:0: connect ready > GSpice-DEBUG: 05:55:47.730: ../src/spice-
> channel.c:1367 webdav-11:0: channel type 11 id 0 num common caps 1
> num caps 0 > GSpice-DEBUG: 05:55:47.767: ../src/spice-channel.c:1391
> webdav-11:0: Peer version: 2:2 > GSpice-DEBUG: 05:55:47.768:
> ../src/spice-channel.c:1947 webdav-11:0: spice_channel_recv_link_msg:
> 2 caps > GSpice-DEBUG: 05:55:47.768: ../src/spice-channel.c:1961
> webdav-11:0: got remote common caps:
> virt-viewer-session has a bool property that's false by default,for
> sharing the folder. When this turns true,virt-viewer-session-spice
> would then spice_channel_connect() thechannel.
> Does it make sense to your client to only connect to thechannel-
> webdav only if you want to share something?
> > I can set the shared-dir property to a file, or a non-
> > existingdirectory, and the guest just complaints when I try to
> > accessit through webdavd. However, this does not seem a
> > goodsolution...Setting the property to NULL, on the other hand,
> > seems areasonable value for "share nothing", but it
> > makesspice_session_get_webdav_server return NULL and
> > start_clientcrashes.
> 
> I don't strong disagree that NULL is interesting to say "Nothingto
> share" but if you have nothing to share, you might as wellignore the
> channel? Similar is playback/record audio, in case youdon't have a
> sound card in your client you might as well ignoredit or if you don't
> have usb devices (i guess this is harder thansound card!) you might
> ignore channel-usbredir too.
> > Unless I missed something and there is some way of makingremote-
> > viewer share nothing... then we can just use that way.
> > > > b) even if it did not crash, access to the shared dir from
> > > > theguest   would fail by timeout instead of immediately
> > > > notifying ofan error.
> > > 
> > > Is that on windows as guest?
> > 
> > Yes, I tested it on Windows as guest. I tried to fix a) by
> > justreturning early from start_client if
> > spice_session_get_webdav_serverreturned NULL, but then all requests
> > made by spice-webdavd are silentlyignored. There is a webdav
> > channel but no webdav server... so I imaginespice-webdavd on Linux
> > will get the same result.
> > > I spent some time looking at the code, found small issue andadded
> > > achecks on start_client(). Still, I don't see why weshould accept
> > > awebdav server running on NULL instead of only ina valid folder
> > > butI'm also interested in fixing (a) and (b) ifpossible.
> > 
> > As I explained before (maybe that should go in the commitmessage
> > too) I wanted a way of sharing no directory at all.Passing NULL as
> > shared- dir property seems like a good value,but you tell me if
> > there is a better way.Best regards
> 
> Well, having the possibility of crash needs a fix either way butlet
> me know if what I said before works for you.

Not connecting the webdav channel works for us, thank you. The crash I
mentioned should be fixed with the patch you sent recently.
Thanks for your help
> Cheers,
> > > Cheers,
> > > > --- src/spice-session.c | 4 ---- 1 file changed, 4 deletions(-
> > > > )diff --git a/src/spice-session.c b/src/spice-
> > > > session.cindex04ba124..cbcd8c4 100644--- a/src/spice-
> > > > session.c+++ b/src/spice-session.c@@ -2813,10 +2813,6 @@
> > > > PhodavServer*spice_session_get_webdav_server(SpiceSession
> > > > *session)     staticGMutex mutex;      const gchar *shared_dir
> > > > =spice_session_get_shared_dir(session);-    if (shared_dir ==
> > > > NULL){-        SPICE_DEBUG("No shared dir set, not creating
> > > > webdavserver");-        return
> > > > NULL;-    }      g_mutex_lock(&mutex); --
> > > > 2.20.1_______________________________________________Spice-
> > > > devel mailing listSpice-devel at lists.freedesktop.org
> > > > https://lists.freedesktop.org/mailman/listinfo/spice-devel
> > -- 
> > 
> > 
> > 
> >  
> > 
> > 
> > 
> > 
> >                                                             Javier
> > Celaya Alastrué                     Chief Technology
> > Officer                                       
> > javier.celaya at flexvdi.com
> >                                   +34696969959                     
> >     j_celaya                                  Legal Information and
> > Privacy Policy                                            Política
> > de confidencialidad            Este mensaje y los ficheros anexos
> > son confidenciales dirigiéndose exclusivamente al destinatario
> > mencionado en el encabezamiento. Si usted ha recibido este correo
> > por error, tenga la amabilidad de eliminarlo de su sistema y no
> > divulgar el contenido a terceros. Los datos personales facilitados
> > por usted o por terceros serán tratados por FLEXIBLE SOFTWARE
> > SOLUTIONS S.L.U. con la finalidad de gestionar y mantener los
> > contactos y relaciones que se produzcan como consecuencia de la
> > relación que mantiene con FLEXIBLE SOFTWARE SOLUTIONS S.L.U.
> > Normalmente, la base jurídica que legitima este tratamiento, será
> > su consentimiento, el interés legítimo o la necesidad para
> > gestionar una relación contractual o similar. El plazo de
> > conservación de sus datos vendrá determinado por la relación que
> > mantiene con nosotros. Para más información al respecto, o para
> > ejercer sus derechos de acceso, rectificación, supresión,
> > oposición, limitación o portabilidad, dirija una comunicación por
> > escrito a FLEXIBLE SOFTWARE SOLUTIONS S.L.U: Avenida de Ranillas
> > 1D, Planta 3, Oficina 3G, Zaragoza o al correo electrónico 
> > pdo at flexvdi.com. En caso de considerar vulnerado su derecho a la
> > protección de datos personales, podrá interponer una reclamación
> > ante la Agencia Española de Protección de Datos
> > (www.agpd.es).             
-- 




 





              
              
          
          
            Javier Celaya Alastrué
          
           Chief Technology Officer
      
      
        
           
        javier.celaya at flexvdi.com
        
        
          
        +34696969959 
      
          
        j_celaya
        
        
          
        Legal Information and Privacy Policy
          
      
    
    
        
            Política de confidencialidad
            Este mensaje y los ficheros anexos son confidenciales dirigiéndose exclusivamente al destinatario mencionado en el encabezamiento. Si usted ha recibido este correo por error, tenga la amabilidad de eliminarlo de su sistema y no divulgar el contenido a terceros. Los datos personales facilitados por usted o por terceros serán tratados por FLEXIBLE SOFTWARE SOLUTIONS S.L.U. con la finalidad de gestionar y mantener los contactos y relaciones que se produzcan como consecuencia de la relación que mantiene con FLEXIBLE SOFTWARE SOLUTIONS S.L.U. Normalmente, la base jurídica que legitima este tratamiento, será su consentimiento, el interés legítimo o la necesidad para gestionar una relación contractual o similar. El plazo de conservación de sus datos vendrá determinado por la relación que mantiene con nosotros. Para más información al respecto, o para ejercer sus derechos de acceso, rectificación, supresión, oposición, limitación o portabilidad, dirija una comunicación por escrito a FLEXIBLE SOFTWARE SOLUTIONS S.L.U: Avenida de Ranillas 1D, Planta 3, Oficina 3G, Zaragoza o al correo electrónico pdo at flexvdi.com. En caso de considerar vulnerado su derecho a la protección de datos personales, podrá interponer una reclamación ante la Agencia Española de Protección de Datos (www.agpd.es). 
        
    

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/spice-devel/attachments/20190508/6d30ebf1/attachment-0001.html>


More information about the Spice-devel mailing list