Index: ChangeLog =================================================================== RCS file: /cvs/gnome/vino/ChangeLog,v retrieving revision 1.174 diff -u -p -r1.174 ChangeLog --- ChangeLog 17 Nov 2006 22:42:21 -0000 1.174 +++ ChangeLog 30 Nov 2006 17:55:02 -0000 @@ -0,0 +1,16 @@ +2006-11-30 Mark McLoughlin + + Based on patch from John Wendell + in bug #156967. + + * server/libvncserver/main.c: + (rfbGetScreen): strdup the default desktop name. + (rfbSetDesktopName): add new function. + (rfbScreenCleanup): free the desktop name + + * server/libvncserver/rfb/rfb.h: make desktopName not const + and add rfbSetDesktopName() + + * server/vino-server.c: (vino_server_init_from_screen): set the + desktop name here to user@host + Index: server/vino-server.c =================================================================== RCS file: /cvs/gnome/vino/server/vino-server.c,v retrieving revision 1.19 diff -u -p -r1.19 vino-server.c --- server/vino-server.c 27 Oct 2006 08:23:38 -0000 1.19 +++ server/vino-server.c 30 Nov 2006 17:55:02 -0000 @@ -693,7 +693,8 @@ static void vino_server_init_from_screen (VinoServer *server, GdkScreen *screen) { - rfbScreenInfoPtr rfb_screen; + rfbScreenInfoPtr rfb_screen; + char *name; g_return_if_fail (server->priv->screen == NULL); g_return_if_fail (screen != NULL); @@ -717,6 +718,15 @@ vino_server_init_from_screen (VinoServer gdk_screen_get_width (screen), gdk_screen_get_height (screen), -1, -1, -1); + + name = g_strjoin ("@", + g_get_user_name (), + g_get_host_name (), + NULL); + + rfbSetDesktopName(rfb_screen, name); + + g_free (name); /* libvncserver NOTE: * DeferUpdateTime is the number of milliseconds to wait Index: server/libvncserver/CHANGES =================================================================== RCS file: /cvs/gnome/vino/server/libvncserver/CHANGES,v retrieving revision 1.6 diff -u -p -r1.6 CHANGES --- server/libvncserver/CHANGES 20 Oct 2006 10:15:44 -0000 1.6 +++ server/libvncserver/CHANGES 30 Nov 2006 17:55:02 -0000 @@ -39,6 +39,8 @@ + Added rfbSetAutoPort() and rfbSetPort() + + Added rfbSetDesktopName() + + Removed defaultNewClientHook and made accept new clients by default. Index: server/libvncserver/main.c =================================================================== RCS file: /cvs/gnome/vino/server/libvncserver/main.c,v retrieving revision 1.6 diff -u -p -r1.6 main.c --- server/libvncserver/main.c 20 Oct 2006 10:14:50 -0000 1.6 +++ server/libvncserver/main.c 30 Nov 2006 17:55:02 -0000 @@ -322,7 +322,7 @@ rfbScreenInfoPtr rfbGetScreen(int* argc, rfbScreen->maxFd=0; rfbScreen->rfbListenSock=-1; - rfbScreen->desktopName = "LibVNCServer"; + rfbScreen->desktopName = strdup("LibVNCServer"); rfbScreen->rfbAlwaysShared = FALSE; rfbScreen->rfbNeverShared = FALSE; rfbScreen->rfbDontDisconnect = FALSE; @@ -429,6 +429,13 @@ void rfbNewFramebuffer(rfbScreenInfoPtr rfbReleaseClientIterator(iterator); } +void rfbSetDesktopName(rfbScreenInfoPtr rfbScreen, const char *name) +{ + if (rfbScreen->desktopName) + free(rfbScreen->desktopName); + rfbScreen->desktopName = strdup(name); +} + void rfbScreenCleanup(rfbScreenInfoPtr rfbScreen) { rfbClientIteratorPtr i=rfbGetClientIterator(rfbScreen); @@ -448,6 +455,8 @@ void rfbScreenCleanup(rfbScreenInfoPtr r FREE_IF(underCursorBuffer); if(rfbScreen->cursor) rfbFreeCursor(rfbScreen->cursor); + if(rfbScreen->desktopName) + free(rfbScreen->desktopName); free(rfbScreen); #ifdef HAVE_LIBJPEG rfbTightCleanup(); Index: server/libvncserver/rfb/rfb.h =================================================================== RCS file: /cvs/gnome/vino/server/libvncserver/rfb/rfb.h,v retrieving revision 1.7 diff -u -p -r1.7 rfb.h --- server/libvncserver/rfb/rfb.h 20 Oct 2006 10:14:50 -0000 1.7 +++ server/libvncserver/rfb/rfb.h 30 Nov 2006 17:55:02 -0000 @@ -108,7 +108,7 @@ typedef struct _rfbScreenInfo rfbPixelFormat rfbServerFormat; rfbColourMap colourMap; /* set this if rfbServerFormat.trueColour==FALSE */ - const char* desktopName; + char* desktopName; char rfbThisHost[255]; rfbBool autoPort; @@ -581,6 +581,8 @@ extern rfbScreenInfoPtr rfbGetScreen(int extern void rfbInitServer(rfbScreenInfoPtr rfbScreen); extern void rfbNewFramebuffer(rfbScreenInfoPtr rfbScreen,char *framebuffer, int width,int height); + +extern void rfbSetDesktopName(rfbScreenInfoPtr rfbScreen, const char *name); extern void rfbScreenCleanup(rfbScreenInfoPtr screenInfo);