VirtualBox

Changeset 93286 in vbox


Ignore:
Timestamp:
Jan 17, 2022 9:55:11 PM (3 years ago)
Author:
vboxsync
Message:

VBoxManage/NATNetwork: Use the same code for "list natnetworks" and
"natnetwork list". Since they used to use different field names this
might create a problem for code that parsed the VBoxManage output.
bugref:8124.

File:
1 edited

Legend:

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

    r93284 r93286  
    8686typedef LOOPBACK2DELETEADD::iterator LOOPBACK2DELETEADDITERATOR;
    8787
    88 static HRESULT printNATNetwork(const ComPtr<INATNetwork> &pNATNet)
     88static HRESULT printNATNetwork(const ComPtr<INATNetwork> &pNATNet,
     89                               bool fLong = true)
    8990{
    9091    HRESULT rc;
     
    9899        RTPrintf(Nat::tr("Name:         %ls\n"), strVal.raw());
    99100
     101        if (fLong)
     102        {
     103            /*
     104             * What does it even mean for a natnet to be disabled?
     105             * (rhetorical question).  Anyway, don't print it unless
     106             * asked for a complete dump.
     107             */
     108            CHECK_ERROR_BREAK(pNATNet, COMGETTER(Enabled)(&fVal));
     109            RTPrintf(Nat::tr("Enabled:      %s\n"),  fVal ? Nat::tr("Yes") : Nat::tr("No"));
     110        }
     111
    100112        CHECK_ERROR_BREAK(pNATNet, COMGETTER(Network)(strVal.asOutParam()));
    101113        RTPrintf(Nat::tr("Network:      %ls\n"), strVal.raw());
     
    117129
    118130
    119         CHECK_ERROR_BREAK(pNATNet, COMGETTER(Enabled)(&fVal));
    120         RTPrintf(Nat::tr("Enabled:      %s\n"),  fVal ? Nat::tr("Yes") : Nat::tr("No"));
    121         /** @todo Add more information here. */
     131        if (fLong)
     132        {
     133            com::SafeArray<BSTR> strs;
     134
     135#define PRINT_STRING_ARRAY(title) do {                                  \
     136                if (strs.size() > 0)                                    \
     137                {                                                       \
     138                    RTPrintf(title);                                    \
     139                    for (size_t j = 0; j < strs.size(); ++j)            \
     140                        RTPrintf("        %s\n", Utf8Str(strs[j]).c_str()); \
     141                }                                                       \
     142            } while (0)
     143
     144        CHECK_ERROR_BREAK(pNATNet, COMGETTER(PortForwardRules4)(ComSafeArrayAsOutParam(strs)));
     145        PRINT_STRING_ARRAY(Nat::tr("Port-forwarding (ipv4)\n"));
     146        strs.setNull();
     147
     148        CHECK_ERROR(pNATNet, COMGETTER(PortForwardRules6)(ComSafeArrayAsOutParam(strs)));
     149        PRINT_STRING_ARRAY(Nat::tr("Port-forwarding (ipv6)\n"));
     150        strs.setNull();
     151
     152        CHECK_ERROR(pNATNet, COMGETTER(LocalMappings)(ComSafeArrayAsOutParam(strs)));
     153        PRINT_STRING_ARRAY(Nat::tr("loopback mappings (ipv4)\n"));
     154        strs.setNull();
     155
     156#undef PRINT_STRING_ARRAY
     157        }
     158
    122159        RTPrintf("\n");
    123 
    124160    } while (0);
    125161
     
    155191        }
    156192
    157         if (i > 0)
    158             RTPrintf("\n");
    159193        rc = printNATNetwork(pNATNet);
    160194        if (FAILED(rc))
     
    601635    HRESULT rc;
    602636
    603     RT_NOREF(fLong);
    604637    RT_NOREF(fSorted);
    605638
     
    608641    for (size_t i = 0; i < nets.size(); ++i)
    609642    {
    610         ComPtr<INATNetwork> net = nets[i];
    611         Bstr netName;
    612         net->COMGETTER(NetworkName)(netName.asOutParam());
    613         RTPrintf(Nat::tr("NetworkName:    %ls\n"), netName.raw());
    614         Bstr gateway;
    615         net->COMGETTER(Gateway)(gateway.asOutParam());
    616         RTPrintf("IP:             %ls\n", gateway.raw());
    617         Bstr network;
    618         net->COMGETTER(Network)(network.asOutParam());
    619         RTPrintf(Nat::tr("Network:        %ls\n"), network.raw());
    620         BOOL fEnabled;
    621         net->COMGETTER(IPv6Enabled)(&fEnabled);
    622         RTPrintf(Nat::tr("IPv6 Enabled:   %s\n"), fEnabled ? Nat::tr("Yes") : Nat::tr("No"));
    623         Bstr ipv6prefix;
    624         net->COMGETTER(IPv6Prefix)(ipv6prefix.asOutParam());
    625         RTPrintf(Nat::tr("IPv6 Prefix:    %ls\n"), ipv6prefix.raw());
    626         net->COMGETTER(NeedDhcpServer)(&fEnabled);
    627         RTPrintf(Nat::tr("DHCP Enabled:   %s\n"), fEnabled ? Nat::tr("Yes") : Nat::tr("No"));
    628         net->COMGETTER(Enabled)(&fEnabled);
    629         RTPrintf(Nat::tr("Enabled:        %s\n"), fEnabled ? Nat::tr("Yes") : Nat::tr("No"));
    630 
    631 #define PRINT_STRING_ARRAY(title)                                       \
    632             if (strs.size() > 0)                                        \
    633             {                                                           \
    634                 RTPrintf(title);                                        \
    635                 size_t j = 0;                                           \
    636                 for (;j < strs.size(); ++j)                             \
    637                     RTPrintf("        %s\n", Utf8Str(strs[j]).c_str()); \
    638             }
    639 
    640         com::SafeArray<BSTR> strs;
    641 
    642         CHECK_ERROR(nets[i], COMGETTER(PortForwardRules4)(ComSafeArrayAsOutParam(strs)));
    643         PRINT_STRING_ARRAY(Nat::tr("Port-forwarding (ipv4)\n"));
    644         strs.setNull();
    645 
    646         CHECK_ERROR(nets[i], COMGETTER(PortForwardRules6)(ComSafeArrayAsOutParam(strs)));
    647         PRINT_STRING_ARRAY(Nat::tr("Port-forwarding (ipv6)\n"));
    648         strs.setNull();
    649 
    650         CHECK_ERROR(nets[i], COMGETTER(LocalMappings)(ComSafeArrayAsOutParam(strs)));
    651         PRINT_STRING_ARRAY(Nat::tr("loopback mappings (ipv4)\n"));
    652         strs.setNull();
    653 
    654 #undef PRINT_STRING_ARRAY
    655 
    656         RTPrintf("\n");
     643        printNATNetwork(nets[i], fLong);
    657644    }
    658645
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