VirtualBox

Ignore:
Timestamp:
Jul 13, 2009 8:54:34 AM (16 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
49976
Message:

crOpenGL: add protocol version check(4108), add max connected clients check

Location:
trunk/src/VBox/GuestHost/OpenGL/util
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/GuestHost/OpenGL/util/net.c

    r15759 r21523  
    278278            crFreeMutex( &conn->messageList.lock );
    279279        #endif
     280        conn->Disconnect(conn);
    280281        crFree( conn );
    281282        return NULL;
  • trunk/src/VBox/GuestHost/OpenGL/util/vboxhgcm.c

    r21227 r21523  
    669669    CRASSERT(FALSE);
    670670#endif
     671}
     672
     673static int crVBoxHGCMSetVersion(CRConnection *conn, unsigned int vMajor, unsigned int vMinor)
     674{
     675    CRVBOXHGCMSETVERSION parms;
     676    int rc;
     677
     678    parms.hdr.result      = VINF_SUCCESS;
     679    parms.hdr.u32ClientID = conn->u32ClientID;
     680    parms.hdr.u32Function = SHCRGL_GUEST_FN_SET_VERSION;
     681    parms.hdr.cParms      = SHCRGL_CPARMS_SET_VERSION;
     682
     683    parms.vMajor.type      = VMMDevHGCMParmType_32bit;
     684    parms.vMajor.u.value32 = CR_PROTOCOL_VERSION_MAJOR;
     685    parms.vMinor.type      = VMMDevHGCMParmType_32bit;
     686    parms.vMinor.u.value32 = CR_PROTOCOL_VERSION_MINOR;
     687
     688    rc = crVBoxHGCMCall(&parms, sizeof(parms));
     689
     690    if (RT_FAILURE(rc) || RT_FAILURE(parms.hdr.result))
     691    {
     692        crWarning("Host doesn't accept our version %d.%d. Make sure you have appropriate additions installed!",
     693                  parms.vMajor.u.value32, parms.vMinor.u.value32);
     694        return FALSE;
     695    }
     696
     697    conn->vMajor = CR_PROTOCOL_VERSION_MAJOR;
     698    conn->vMinor = CR_PROTOCOL_VERSION_MINOR;
     699
     700    return TRUE;
    671701}
    672702
     
    744774            conn->u32ClientID = info.u32ClientID;
    745775            crDebug("HGCM connect was successful: client id =0x%x\n", conn->u32ClientID);
     776
     777            return crVBoxHGCMSetVersion(conn, CR_PROTOCOL_VERSION_MAJOR, CR_PROTOCOL_VERSION_MINOR);
    746778        }
    747779        else
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette