VirtualBox

Ignore:
Timestamp:
Oct 24, 2010 3:57:55 PM (14 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
66973
Message:

VRDE: API changes for the VRDP server separation.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VBoxManage/VBoxManageControlVM.cpp

    r33294 r33386  
    489489#endif /* VBOX_DYNAMIC_NET_ATTACH */
    490490#ifdef VBOX_WITH_VRDP
    491         else if (!strcmp(a->argv[1], "vrdp"))
    492         {
     491        else if (   !strcmp(a->argv[1], "vrde")
     492                 || !strcmp(a->argv[1], "vrdp"))
     493        {
     494            if (!strcmp(a->argv[1], "vrdp"))
     495                RTStrmPrintf(g_pStdErr, "Warning: 'vrdp' is deprecated. Use 'vrde'.\n");
     496
    493497            if (a->argc <= 1 + 1)
    494498            {
     
    497501                break;
    498502            }
    499             /* get the corresponding VRDP server */
    500             ComPtr<IVRDPServer> vrdpServer;
    501             sessionMachine->COMGETTER(VRDPServer)(vrdpServer.asOutParam());
    502             ASSERT(vrdpServer);
    503             if (vrdpServer)
     503            ComPtr<IVRDEServer> vrdeServer;
     504            sessionMachine->COMGETTER(VRDEServer)(vrdeServer.asOutParam());
     505            ASSERT(vrdeServer);
     506            if (vrdeServer)
    504507            {
    505508                if (!strcmp(a->argv[2], "on"))
    506509                {
    507                     CHECK_ERROR_BREAK(vrdpServer, COMSETTER(Enabled)(TRUE));
     510                    CHECK_ERROR_BREAK(vrdeServer, COMSETTER(Enabled)(TRUE));
    508511                }
    509512                else if (!strcmp(a->argv[2], "off"))
    510513                {
    511                     CHECK_ERROR_BREAK(vrdpServer, COMSETTER(Enabled)(FALSE));
    512                 }
    513                 else
    514                 {
    515                     errorArgument("Invalid vrdp server state '%s'", Utf8Str(a->argv[2]).c_str());
     514                    CHECK_ERROR_BREAK(vrdeServer, COMSETTER(Enabled)(FALSE));
     515                }
     516                else
     517                {
     518                    errorArgument("Invalid remote desktop server state '%s'", Utf8Str(a->argv[2]).c_str());
    516519                    rc = E_FAIL;
    517520                    break;
     
    521524        else if (!strcmp(a->argv[1], "vrdpport"))
    522525        {
     526            RTStrmPrintf(g_pStdErr, "Warning: 'vrdpport' is deprecated. Use 'setvrdeproperty'.\n");
     527
    523528            if (a->argc <= 1 + 1)
    524529            {
     
    527532                break;
    528533            }
    529             /* get the corresponding VRDP server */
    530             ComPtr<IVRDPServer> vrdpServer;
    531             sessionMachine->COMGETTER(VRDPServer)(vrdpServer.asOutParam());
    532             ASSERT(vrdpServer);
    533             if (vrdpServer)
    534             {
    535                 Bstr vrdpports;
     534            ComPtr<IVRDEServer> vrdeServer;
     535            sessionMachine->COMGETTER(VRDEServer)(vrdeServer.asOutParam());
     536            ASSERT(vrdeServer);
     537            if (vrdeServer)
     538            {
     539                Bstr ports;
    536540
    537541                if (!strcmp(a->argv[2], "default"))
    538                     vrdpports = "0";
    539                 else
    540                     vrdpports = a->argv[2];
    541 
    542                 CHECK_ERROR_BREAK(vrdpServer, COMSETTER(Ports)(vrdpports.raw()));
    543             }
    544         }
    545         else if (!strcmp(a->argv[1], "vrdpvideochannelquality"))
    546         {
     542                    ports = "0";
     543                else
     544                    ports = a->argv[2];
     545
     546                CHECK_ERROR_BREAK(vrdeServer, SetVRDEProperty(Bstr("TCP/Ports").raw(), ports.raw()));
     547            }
     548        }
     549        else if (   !strcmp(a->argv[1], "vrdevideochannelquality")
     550                 || !strcmp(a->argv[1], "vrdpvideochannelquality"))
     551        {
     552            if (!strcmp(a->argv[1], "vrdpvideochannelquality"))
     553                RTStrmPrintf(g_pStdErr, "Warning: 'vrdpvideochannelquality' is deprecated. Use 'vrdevideochannelquality'.\n");
     554
    547555            if (a->argc <= 1 + 1)
    548556            {
     
    551559                break;
    552560            }
    553             /* get the corresponding VRDP server */
    554             ComPtr<IVRDPServer> vrdpServer;
    555             sessionMachine->COMGETTER(VRDPServer)(vrdpServer.asOutParam());
    556             ASSERT(vrdpServer);
    557             if (vrdpServer)
    558             {
    559                 unsigned n = parseNum(a->argv[2], 100, "VRDP video channel quality in percent");
    560 
    561                 CHECK_ERROR(vrdpServer, COMSETTER(VideoChannelQuality)(n));
     561            ComPtr<IVRDEServer> vrdeServer;
     562            sessionMachine->COMGETTER(VRDEServer)(vrdeServer.asOutParam());
     563            ASSERT(vrdeServer);
     564            if (vrdeServer)
     565            {
     566                unsigned n = parseNum(a->argv[2], 100, "VRDE video redirection quality in percent");
     567
     568                CHECK_ERROR(vrdeServer, COMSETTER(VideoChannelQuality)(n));
     569            }
     570        }
     571        else if (!strcmp(a->argv[1], "vrdesetproperty"))
     572        {
     573            if (a->argc <= 1 + 1)
     574            {
     575                errorArgument("Missing argument to '%s'", a->argv[1]);
     576                rc = E_FAIL;
     577                break;
     578            }
     579            ComPtr<IVRDEServer> vrdeServer;
     580            sessionMachine->COMGETTER(VRDEServer)(vrdeServer.asOutParam());
     581            ASSERT(vrdeServer);
     582            if (vrdeServer)
     583            {
     584                /* Parse 'name=value' */
     585                char *pszProperty = RTStrDup(a->argv[2]);
     586                if (pszProperty)
     587                {
     588                    char *pDelimiter = strchr(pszProperty, '=');
     589                    if (pDelimiter)
     590                    {
     591                        *pDelimiter = '\0';
     592
     593                        Bstr bstrName = pszProperty;
     594                        Bstr bstrValue = &pDelimiter[1];
     595                        CHECK_ERROR(vrdeServer, SetVRDEProperty(bstrName.raw(), bstrValue.raw()));
     596                    }
     597                    else
     598                    {
     599                        errorArgument("Invalid --vrdesetproperty argument '%s'", a->argv[2]);
     600                        rc = E_FAIL;
     601                        break;
     602                    }
     603                    RTStrFree(pszProperty);
     604                }
     605                else
     606                {
     607                    RTStrmPrintf(g_pStdErr, "Error: Failed to allocate memory for VRDE property '%s'\n", a->argv[2]);
     608                    rc = E_FAIL;
     609                }
     610            }
     611            if (FAILED(rc))
     612            {
     613                break;
    562614            }
    563615        }
Note: See TracChangeset for help on using the changeset viewer.

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