VirtualBox

Changeset 21729 in vbox


Ignore:
Timestamp:
Jul 20, 2009 4:06:15 PM (16 years ago)
Author:
vboxsync
Message:

VBoxManage: Don't allow disabling the network adaptor.

Location:
trunk/src/VBox/Frontends/VBoxManage
Files:
2 edited

Legend:

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

    r21612 r21729  
    785785                break;
    786786            }
    787             if (a->argc <= 1 + 1)
     787            if (a->argc <= 2)
    788788            {
    789789                errorArgument("Missing argument to '%s'", a->argv[1]);
     
    797797            if (adapter)
    798798            {
    799                 if (!strcmp(a->argv[2], "none"))
    800                 {
    801                     CHECK_ERROR_RET(adapter, COMSETTER(Enabled) (FALSE), 1);
    802                 }
    803                 else if (!strcmp(a->argv[2], "null"))
    804                 {
    805                     CHECK_ERROR_RET(adapter, COMSETTER(Enabled) (TRUE), 1);
    806                     CHECK_ERROR_RET(adapter, Detach(), 1);
    807                 }
    808                 else if (!strcmp(a->argv[2], "nat"))
    809                 {
    810                     if (a->argc == 3)
    811                         CHECK_ERROR_RET(adapter, COMSETTER(NATNetwork)(Bstr(a->argv[3])), 1);
    812                     CHECK_ERROR_RET(adapter, COMSETTER(Enabled) (TRUE), 1);
    813                     CHECK_ERROR_RET(adapter, AttachToNAT(), 1);
    814                 }
    815                 else if (  !strcmp(a->argv[2], "bridged")
    816                         || !strcmp(a->argv[2], "hostif")) /* backward compatibility */
    817                 {
    818                     if (a->argc <= 1 + 2)
     799                BOOL fEnabled;
     800                adapter->COMGETTER(Enabled)(&fEnabled);
     801                if (fEnabled)
     802                {
     803                    if (!strcmp(a->argv[2], "null"))
    819804                    {
    820                         errorArgument("Missing argument to '%s'", a->argv[2]);
     805                        CHECK_ERROR_RET(adapter, COMSETTER(Enabled) (TRUE), 1);
     806                        CHECK_ERROR_RET(adapter, Detach(), 1);
     807                    }
     808                    else if (!strcmp(a->argv[2], "nat"))
     809                    {
     810                        if (a->argc == 4)
     811                            CHECK_ERROR_RET(adapter, COMSETTER(NATNetwork)(Bstr(a->argv[3])), 1);
     812                        CHECK_ERROR_RET(adapter, COMSETTER(Enabled) (TRUE), 1);
     813                        CHECK_ERROR_RET(adapter, AttachToNAT(), 1);
     814                    }
     815                    else if (  !strcmp(a->argv[2], "bridged")
     816                            || !strcmp(a->argv[2], "hostif")) /* backward compatibility */
     817                    {
     818                        if (a->argc <= 3)
     819                        {
     820                            errorArgument("Missing argument to '%s'", a->argv[2]);
     821                            rc = E_FAIL;
     822                            break;
     823                        }
     824                        CHECK_ERROR_RET(adapter, COMSETTER(HostInterface)(Bstr(a->argv[3])), 1);
     825                        CHECK_ERROR_RET(adapter, COMSETTER(Enabled) (TRUE), 1);
     826                        CHECK_ERROR_RET(adapter, AttachToBridgedInterface(), 1);
     827                    }
     828                    else if (!strcmp(a->argv[2], "intnet"))
     829                    {
     830                        if (a->argc <= 3)
     831                        {
     832                            errorArgument("Missing argument to '%s'", a->argv[2]);
     833                            rc = E_FAIL;
     834                            break;
     835                        }
     836                        CHECK_ERROR_RET(adapter, COMSETTER(InternalNetwork)(Bstr(a->argv[3])), 1);
     837                        CHECK_ERROR_RET(adapter, COMSETTER(Enabled) (TRUE), 1);
     838                        CHECK_ERROR_RET(adapter, AttachToInternalNetwork(), 1);
     839                    }
     840#if defined(VBOX_WITH_NETFLT)
     841                    else if (!strcmp(a->argv[2], "hostonly"))
     842                    {
     843                        if (a->argc <= 3)
     844                        {
     845                            errorArgument("Missing argument to '%s'", a->argv[2]);
     846                            rc = E_FAIL;
     847                            break;
     848                        }
     849                        CHECK_ERROR_RET(adapter, COMSETTER(HostInterface)(Bstr(a->argv[3])), 1);
     850                        CHECK_ERROR_RET(adapter, COMSETTER(Enabled) (TRUE), 1);
     851                        CHECK_ERROR_RET(adapter, AttachToHostOnlyInterface(), 1);
     852                    }
     853#endif
     854                    else
     855                    {
     856                        errorArgument("Invalid type '%s' specfied for NIC %lu", Utf8Str(a->argv[2]).raw(), n);
    821857                        rc = E_FAIL;
    822858                        break;
    823859                    }
    824                     CHECK_ERROR_RET(adapter, COMSETTER(HostInterface)(Bstr(a->argv[3])), 1);
    825                     CHECK_ERROR_RET(adapter, COMSETTER(Enabled) (TRUE), 1);
    826                     CHECK_ERROR_RET(adapter, AttachToBridgedInterface(), 1);
    827                 }
    828                 else if (!strcmp(a->argv[2], "intnet"))
    829                 {
    830                     if (a->argc <= 1 + 2)
    831                     {
    832                         errorArgument("Missing argument to '%s'", a->argv[2]);
    833                         rc = E_FAIL;
    834                         break;
    835                     }
    836                     CHECK_ERROR_RET(adapter, COMSETTER(InternalNetwork)(Bstr(a->argv[3])), 1);
    837                     CHECK_ERROR_RET(adapter, COMSETTER(Enabled) (TRUE), 1);
    838                     CHECK_ERROR_RET(adapter, AttachToInternalNetwork(), 1);
    839                 }
    840 #if defined(VBOX_WITH_NETFLT)
    841                 else if (!strcmp(a->argv[2], "hostonly"))
    842                 {
    843                     if (a->argc <= 1 + 2)
    844                     {
    845                         errorArgument("Missing argument to '%s'", a->argv[2]);
    846                         rc = E_FAIL;
    847                         break;
    848                     }
    849                     CHECK_ERROR_RET(adapter, COMSETTER(HostInterface)(Bstr(a->argv[3])), 1);
    850                     CHECK_ERROR_RET(adapter, COMSETTER(Enabled) (TRUE), 1);
    851                     CHECK_ERROR_RET(adapter, AttachToHostOnlyInterface(), 1);
    852                 }
    853 #endif
     860                }
    854861                else
    855862                {
    856                     errorArgument("Invalid type '%s' specfied for NIC %lu", Utf8Str(a->argv[2]).raw(), n + 1);
    857                     rc = E_FAIL;
    858                     break;
     863                    RTPrintf("The NIC %d is currently disabled and thus can't change its attachment type\n", n);
    859864                }
    860865            }
  • trunk/src/VBox/Frontends/VBoxManage/VBoxManageHelp.cpp

    r21446 r21729  
    288288#ifdef VBOX_DYNAMIC_NET_ATTACH
    289289#if defined(VBOX_WITH_NETFLT)
    290                  "                            nic<1-N> none|null|nat|bridged|intnet|hostonly\n"
     290                 "                            nic<1-N> null|nat|bridged|intnet|hostonly\n"
    291291                 "                                     [<devicename>] |\n"
    292292#else /* !RT_OS_LINUX && !RT_OS_DARWIN */
    293                  "                            nic<1-N> none|null|nat|bridged|intnet\n"
     293                 "                            nic<1-N> null|nat|bridged|intnet\n"
    294294                 "                                     [<devicename>] |\n"
    295295#endif /* !RT_OS_LINUX && !RT_OS_DARWIN  */
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