- Timestamp:
- Dec 19, 2008 6:28:27 PM (16 years ago)
- Location:
- trunk/src/VBox/Main
- Files:
-
- 16 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Main/ConsoleImpl.cpp
r15592 r15708 35 35 # include <stdlib.h> 36 36 # include <string.h> 37 #elif defined(VBOX_WITH_UNIXY_TAP_NETWORKING)38 # include <sys/wait.h>39 # include <sys/fcntl.h>40 37 #endif 41 38 … … 270 267 memset(&mapUSBLed, 0, sizeof(mapUSBLed)); 271 268 memset(&mapSharedFolderLed, 0, sizeof(mapSharedFolderLed)); 272 273 #ifdef VBOX_WITH_UNIXY_TAP_NETWORKING274 Assert(RT_ELEMENTS(maTapFD) == RT_ELEMENTS(maTAPDeviceName));275 Assert(RT_ELEMENTS(maTapFD) >= SchemaDefs::NetworkAdapterCount);276 for (unsigned i = 0; i < RT_ELEMENTS(maTapFD); i++)277 {278 maTapFD[i] = NIL_RTFILE;279 maTAPDeviceName[i] = "";280 }281 #endif282 269 283 270 return S_OK; -
trunk/src/VBox/Main/ConsoleImpl2.cpp
r15595 r15708 1215 1215 if (SUCCEEDED(hrc)) 1216 1216 { 1217 #ifdef VBOX_WITH_UNIXY_TAP_NETWORKING 1218 Assert ((int)pConsole->maTapFD[ulInstance] >= 0); 1219 if ((int)pConsole->maTapFD[ulInstance] >= 0) 1220 { 1221 if (fSniffer) 1222 { 1223 rc = CFGMR3InsertNode(pLunL0, "AttachedDriver", &pLunL0); RC_CHECK(); 1224 } 1225 else 1226 { 1227 rc = CFGMR3InsertNode(pInst, "LUN#0", &pLunL0); RC_CHECK(); 1228 } 1229 rc = CFGMR3InsertString(pLunL0, "Driver", "HostInterface"); RC_CHECK(); 1230 rc = CFGMR3InsertNode(pLunL0, "Config", &pCfg); RC_CHECK(); 1231 # if defined(RT_OS_SOLARIS) 1232 /* Device name/number is required for Solaris as we need it for TAP PPA. */ 1233 Bstr tapDeviceName; 1234 networkAdapter->COMGETTER(HostInterface)(tapDeviceName.asOutParam()); 1235 if (!tapDeviceName.isEmpty()) 1236 rc = CFGMR3InsertString(pCfg, "Device", Utf8Str(tapDeviceName)); RC_CHECK(); 1237 1238 /* TAP setup application/script */ 1239 Bstr tapSetupApp; 1240 networkAdapter->COMGETTER(TAPSetupApplication)(tapSetupApp.asOutParam()); 1241 if (!tapSetupApp.isEmpty()) 1242 rc = CFGMR3InsertString(pCfg, "TAPSetupApplication", Utf8Str(tapSetupApp)); RC_CHECK(); 1243 1244 /* TAP terminate application/script */ 1245 Bstr tapTerminateApp; 1246 networkAdapter->COMGETTER(TAPTerminateApplication)(tapTerminateApp.asOutParam()); 1247 if (!tapTerminateApp.isEmpty()) 1248 rc = CFGMR3InsertString(pCfg, "TAPTerminateApplication", Utf8Str(tapTerminateApp)); RC_CHECK(); 1249 1250 /* "FileHandle" must NOT be inserted here, it is done in DrvTAP.cpp */ 1251 1252 # ifdef VBOX_WITH_CROSSBOW 1253 /* Crossbow: needs the MAC address for setting up TAP. */ 1254 rc = CFGMR3InsertBytes(pCfg, "MAC", &Mac, sizeof(Mac)); RC_CHECK(); 1255 # endif 1256 # else 1257 rc = CFGMR3InsertInteger(pCfg, "FileHandle", pConsole->maTapFD[ulInstance]); RC_CHECK(); 1258 # endif 1259 } 1260 1261 #elif defined(VBOX_WITH_NETFLT) 1217 #if defined(VBOX_WITH_NETFLT) 1262 1218 /* 1263 1219 * This is the new VBoxNetFlt+IntNet stuff. -
trunk/src/VBox/Main/Makefile.kmk
r15372 r15708 56 56 ifneq ($(KBUILD_TARGET),os2) 57 57 VBOX_MAIN_DEFS+= VBOX_WITH_SYS_V_IPC_SESSION_WATCHER 58 endif59 ifndef VBOX_WITH_NETFLT60 VBOX_MAIN_DEFS += VBOX_WITH_UNIXY_TAP_NETWORKING61 58 endif 62 59 endif -
trunk/src/VBox/Main/NetworkAdapterImpl.cpp
r15537 r15708 412 412 /** @todo Validate input string length. r=dmik: do it in XML schema?*/ 413 413 414 #ifndef VBOX_WITH_UNIXY_TAP_NETWORKING 415 // we don't allow null strings for the host interface on Win32 416 // (because the @name attribute of <HostInterface> must be always present, 417 // but can be empty). 418 CheckComArgNotNull(aHostInterface); 419 #else 420 CheckComArgStrNotEmptyOrNull(aHostInterface); 421 #endif 414 /* we don't allow null strings for the host interface (because the @name 415 * attribute of <HostInterface> must be always present but can be empty). */ 416 CheckComArgNotNull (aHostInterface); 422 417 423 418 AutoCaller autoCaller (this); … … 443 438 return S_OK; 444 439 } 445 446 #ifdef VBOX_WITH_UNIXY_TAP_NETWORKING447 448 STDMETHODIMP NetworkAdapter::COMGETTER(TAPFileDescriptor)(LONG *aTAPFileDescriptor)449 {450 # ifdef VBOX_WITH_UNIXY_TAP_NETWORKING451 CheckComArgOutPointerValid(aTAPFileDescriptor);452 453 AutoCaller autoCaller (this);454 CheckComRCReturnRC (autoCaller.rc());455 456 AutoReadLock alock (this);457 458 *aTAPFileDescriptor = mData->mTAPFD;459 460 return S_OK;461 462 #else463 ReturnComNotImplemented();464 #endif465 }466 467 STDMETHODIMP NetworkAdapter::COMSETTER(TAPFileDescriptor)(LONG aTAPFileDescriptor)468 {469 # ifdef VBOX_WITH_UNIXY_TAP_NETWORKING470 /*471 * Validate input.472 */473 RTFILE tapFD = aTAPFileDescriptor;474 if (tapFD != NIL_RTFILE && (LONG)tapFD != aTAPFileDescriptor)475 {476 AssertMsgFailed(("Invalid file descriptor: %ld.\n", aTAPFileDescriptor));477 return setError (E_INVALIDARG,478 tr ("Invalid file descriptor: %ld"), aTAPFileDescriptor);479 }480 481 AutoCaller autoCaller (this);482 CheckComRCReturnRC (autoCaller.rc());483 484 /* the machine needs to be mutable */485 Machine::AutoMutableStateDependency adep (mParent);486 CheckComRCReturnRC (adep.rc());487 488 AutoWriteLock alock (this);489 490 if (mData->mTAPFD != (RTFILE) aTAPFileDescriptor)491 {492 mData.backup();493 mData->mTAPFD = aTAPFileDescriptor;494 495 /* leave the lock before informing callbacks */496 alock.unlock();497 498 mParent->onNetworkAdapterChange (this);499 }500 501 return S_OK;502 #else503 ReturnComNotImplemented();504 #endif505 }506 507 STDMETHODIMP NetworkAdapter::COMGETTER(TAPSetupApplication) (508 BSTR *aTAPSetupApplication)509 {510 # ifdef VBOX_WITH_UNIXY_TAP_NETWORKING511 CheckComArgOutPointerValid(aTAPSetupApplication);512 513 AutoCaller autoCaller (this);514 CheckComRCReturnRC (autoCaller.rc());515 516 AutoReadLock alock (this);517 518 /* we don't have to be in TAP mode to support this call */519 mData->mTAPSetupApplication.cloneTo (aTAPSetupApplication);520 521 return S_OK;522 #else523 ReturnComNotImplemented();524 #endif525 }526 527 STDMETHODIMP NetworkAdapter::COMSETTER(TAPSetupApplication) (528 IN_BSTR aTAPSetupApplication)529 {530 # ifdef VBOX_WITH_UNIXY_TAP_NETWORKING531 /* empty strings are not allowed as path names */532 if (aTAPSetupApplication && !(*aTAPSetupApplication))533 return E_INVALIDARG;534 535 AutoCaller autoCaller (this);536 CheckComRCReturnRC (autoCaller.rc());537 538 /* the machine needs to be mutable */539 Machine::AutoMutableStateDependency adep (mParent);540 CheckComRCReturnRC (adep.rc());541 542 AutoWriteLock alock (this);543 544 if (mData->mTAPSetupApplication != aTAPSetupApplication)545 {546 mData.backup();547 mData->mTAPSetupApplication = aTAPSetupApplication;548 549 /* leave the lock before informing callbacks */550 alock.unlock();551 552 mParent->onNetworkAdapterChange (this);553 }554 555 return S_OK;556 #else557 ReturnComNotImplemented();558 #endif559 }560 561 STDMETHODIMP NetworkAdapter::COMGETTER(TAPTerminateApplication) (562 BSTR *aTAPTerminateApplication)563 {564 # ifdef VBOX_WITH_UNIXY_TAP_NETWORKING565 CheckComArgOutPointerValid(aTAPTerminateApplication);566 567 AutoCaller autoCaller (this);568 CheckComRCReturnRC (autoCaller.rc());569 570 AutoReadLock alock (this);571 572 /* we don't have to be in TAP mode to support this call */573 mData->mTAPTerminateApplication.cloneTo(aTAPTerminateApplication);574 575 return S_OK;576 #else577 ReturnComNotImplemented();578 #endif579 }580 581 STDMETHODIMP NetworkAdapter::COMSETTER(TAPTerminateApplication) (582 IN_BSTR aTAPTerminateApplication)583 {584 # ifdef VBOX_WITH_UNIXY_TAP_NETWORKING585 /* empty strings are not allowed as path names */586 if (aTAPTerminateApplication && !(*aTAPTerminateApplication))587 return E_INVALIDARG;588 589 AutoCaller autoCaller (this);590 CheckComRCReturnRC (autoCaller.rc());591 592 /* the machine needs to be mutable */593 Machine::AutoMutableStateDependency adep (mParent);594 CheckComRCReturnRC (adep.rc());595 596 AutoWriteLock alock (this);597 598 if (mData->mTAPTerminateApplication != aTAPTerminateApplication)599 {600 mData.backup();601 mData->mTAPTerminateApplication = aTAPTerminateApplication;602 603 /* leave the lock before informing callbacks */604 alock.unlock();605 606 mParent->onNetworkAdapterChange(this);607 }608 609 return S_OK;610 #else611 ReturnComNotImplemented();612 #endif613 }614 615 #endif /* VBOX_WITH_UNIXY_TAP_NETWORKING */616 440 617 441 STDMETHODIMP NetworkAdapter::COMGETTER(InternalNetwork) (BSTR *aInternalNetwork) … … 1064 888 1065 889 Bstr name = attachmentNode.stringValue ("name"); 1066 #ifndef VBOX_WITH_UNIXY_TAP_NETWORKING1067 890 /* name can be empty, but not null */ 1068 891 ComAssertRet (!name.isNull(), E_FAIL); 1069 #endif 892 1070 893 rc = COMSETTER(HostInterface) (name); 1071 894 CheckComRCReturnRC (rc); 1072 1073 #ifdef VBOX_WITH_UNIXY_TAP_NETWORKING1074 /* optopnal */1075 mData->mTAPSetupApplication = attachmentNode.stringValue ("TAPSetup");1076 mData->mTAPTerminateApplication = attachmentNode.stringValue ("TAPTerminate");1077 #endif /* VBOX_WITH_UNIXY_TAP_NETWORKING */1078 895 1079 896 rc = AttachToHostInterface(); … … 1173 990 { 1174 991 Key attachmentNode = aAdapterNode.createKey ("HostInterface"); 1175 #ifndef VBOX_WITH_UNIXY_TAP_NETWORKING1176 992 Assert (!mData->mHostInterface.isNull()); 1177 #else 1178 if (!mData->mHostInterface.isEmpty()) 1179 #endif 1180 attachmentNode.setValue <Bstr> ("name", mData->mHostInterface); 1181 #ifdef VBOX_WITH_UNIXY_TAP_NETWORKING 1182 if (!mData->mTAPSetupApplication.isEmpty()) 1183 attachmentNode.setValue <Bstr> ("TAPSetup", 1184 mData->mTAPSetupApplication); 1185 if (!mData->mTAPTerminateApplication.isEmpty()) 1186 attachmentNode.setValue <Bstr> ("TAPTerminate", 1187 mData->mTAPTerminateApplication); 1188 #endif /* VBOX_WITH_UNIXY_TAP_NETWORKING */ 993 attachmentNode.setValue <Bstr> ("name", mData->mHostInterface); 1189 994 break; 1190 995 } … … 1342 1147 { 1343 1148 /* reset handle and device name */ 1344 #ifndef VBOX_WITH_UNIXY_TAP_NETWORKING1345 1149 mData->mHostInterface = ""; 1346 #endif1347 #ifdef VBOX_WITH_UNIXY_TAP_NETWORKING1348 mData->mHostInterface.setNull();1349 mData->mTAPFD = NIL_RTFILE;1350 #endif1351 1150 break; 1352 1151 } -
trunk/src/VBox/Main/idl/VirtualBox.xidl
r15661 r15708 9706 9706 <attribute name="hostInterface" type="wstring"> 9707 9707 <desc> 9708 Name of the Host Network Interface that is currently in use. NULL will be returned 9709 if no device has been allocated. On Linux, setting this refers to a permanent TAP 9710 device. However, a file descriptor has precedence over the interface name on Linux. 9711 Note that when VirtualBox allocates a TAP device, this property will not be set, i.e. the 9712 interface name would have to be determined using the file descriptor and /proc/self/fd. 9708 Name of the host network interface the VM is attached to. 9713 9709 </desc> 9714 9710 </attribute> … … 9761 9757 <method name="attachToHostInterface"> 9762 9758 <desc> 9763 Attach the network adapter to a host interface. On Linux, the TAP 9764 setup application will be executed if configured and unless a device 9765 name and/or file descriptor has been set, a new TAP interface will be 9766 created. 9759 Attach the network adapter to a host interface. 9767 9760 </desc> 9768 9761 </method> -
trunk/src/VBox/Main/include/ConsoleImpl.h
r15051 r15708 71 71 return setError (E_ACCESSDENIED, tr ("The console is not powered up")); \ 72 72 } while (0) 73 74 /** @def VBOX_WITH_UNIXY_TAP_NETWORKING75 * Unixy style TAP networking. This is defined in the Makefile since it's also76 * used by NetworkAdapterImpl.h/cpp.77 */78 #ifdef __DOXYGEN__79 # define VBOX_WITH_UNIXY_TAP_NETWORKING80 #endif81 73 82 74 // Console … … 553 545 PPDMLED mapSharedFolderLed; 554 546 PPDMLED mapUSBLed[2]; 555 #ifdef VBOX_WITH_UNIXY_TAP_NETWORKING556 Utf8Str maTAPDeviceName[8];557 RTFILE maTapFD[8];558 #endif559 547 560 548 bool mVMStateChangeCallbackDisabled; -
trunk/src/VBox/Main/include/NetworkAdapterImpl.h
r15537 r15708 45 45 , mAttachmentType (NetworkAttachmentType_Null) 46 46 , mCableConnected (TRUE), mLineSpeed (0), mTraceEnabled (FALSE) 47 #ifndef VBOX_WITH_UNIXY_TAP_NETWORKING 48 , mHostInterface ("") // cannot be null 49 #else 50 , mTAPFD (NIL_RTFILE) 51 #endif 47 , mHostInterface ("") /* cannot be null */ 52 48 {} 53 49 … … 63 59 mTraceEnabled == that.mTraceEnabled && 64 60 mHostInterface == that.mHostInterface && 65 #ifdef VBOX_WITH_UNIXY_TAP_NETWORKING66 mTAPSetupApplication == that.mTAPSetupApplication &&67 mTAPTerminateApplication == that.mTAPTerminateApplication &&68 mTAPFD == that.mTAPFD &&69 #endif70 61 mInternalNetwork == that.mInternalNetwork && 71 62 mNATNetwork == that.mNATNetwork); … … 82 73 Bstr mTraceFile; 83 74 Bstr mHostInterface; 84 #ifdef VBOX_WITH_UNIXY_TAP_NETWORKING85 Bstr mTAPSetupApplication;86 Bstr mTAPTerminateApplication;87 RTFILE mTAPFD;88 #endif89 75 Bstr mInternalNetwork; 90 76 Bstr mNATNetwork; … … 126 112 STDMETHOD(COMGETTER(HostInterface)) (BSTR *aHostInterface); 127 113 STDMETHOD(COMSETTER(HostInterface)) (IN_BSTR aHostInterface); 128 #ifdef VBOX_WITH_UNIXY_TAP_NETWORKING129 STDMETHOD(COMGETTER(TAPFileDescriptor)) (LONG *aTAPFileDescriptor);130 STDMETHOD(COMSETTER(TAPFileDescriptor)) (LONG aTAPFileDescriptor);131 STDMETHOD(COMGETTER(TAPSetupApplication)) (BSTR *aTAPSetupApplication);132 STDMETHOD(COMSETTER(TAPSetupApplication)) (IN_BSTR aTAPSetupApplication);133 STDMETHOD(COMGETTER(TAPTerminateApplication)) (BSTR *aTAPTerminateApplication);134 STDMETHOD(COMSETTER(TAPTerminateApplication)) (IN_BSTR aTAPTerminateApplication);135 #endif136 114 STDMETHOD(COMGETTER(InternalNetwork)) (BSTR *aInternalNetwork); 137 115 STDMETHOD(COMSETTER(InternalNetwork)) (IN_BSTR aInternalNetwork); -
trunk/src/VBox/Main/include/VirtualBoxXMLUtil.h
r14949 r15708 29 29 30 30 /** VirtualBox XML settings version number substring ("x.y") */ 31 #define VBOX_XML_VERSION "1. 5"31 #define VBOX_XML_VERSION "1.6" 32 32 33 33 /** VirtualBox XML settings version platform substring */ -
trunk/src/VBox/Main/xml/SettingsConverter.xsl
r15582 r15708 127 127 </xsl:copy> 128 128 </xsl:template> 129 130 <!-- 1.5 => 1.6 --> 131 <xsl:template match="/vb:VirtualBox[substring-before(@version,'-')='1.5']"> 132 <xsl:copy> 133 <xsl:attribute name="version"><xsl:value-of select="concat('1.6','-',$curVerPlat)"/></xsl:attribute> 134 <xsl:apply-templates select="node()" mode="v1.6"/> 135 </xsl:copy> 136 </xsl:template> 137 129 138 130 139 <!-- … … 772 781 </xsl:template> 773 782 774 <!--775 -->776 777 783 <xsl:template match="vb:VirtualBox[substring-before(@version,'-')='1.4']/ 778 784 vb:Machine//vb:Hardware/vb:CPU" … … 786 792 </xsl:copy> 787 793 </xsl:template> 794 795 796 <!-- 797 * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 798 * 1.5 => 1.6 799 * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 800 --> 801 802 <!-- 803 * all non-root elements that are not explicitly matched are copied as is 804 --> 805 <xsl:template match="@*|node()[../..]" mode="v1.6"> 806 <xsl:copy> 807 <xsl:apply-templates select="@*|node()[../..]" mode="v1.6"/> 808 </xsl:copy> 809 </xsl:template> 810 811 <!-- 812 * Global settings 813 --> 814 815 <!-- 816 * Machine settings 817 --> 818 819 <xsl:template match="vb:VirtualBox[substring-before(@version,'-')='1.5' and 820 not(substring-after(@version,'-')='windows')]/ 821 vb:Machine//vb:Hardware/vb:Network/vb:Adapter/ 822 vb:HostInterface[@TAPSetup or @TAPTerminate]" 823 mode="v1.6"> 824 <!-- just remove the node --> 825 </xsl:template> 826 827 828 <!-- 829 * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 830 --> 788 831 789 832 -
trunk/src/VBox/Main/xml/VirtualBox-settings-common.xsd
r15582 r15708 587 587 588 588 <xsd:complexType name="TNetworkAdapter"> 589 <xsd:choice minOccurs="0"> 590 <xsd:element name="NAT"> 591 <xsd:complexType> 592 <xsd:attribute name="network" type="xsd:string"/> 593 </xsd:complexType> 594 </xsd:element> 595 <xsd:element name="HostInterface"> 596 <xsd:complexType> 597 <xsd:attribute name="name" type="xsd:string" use="required"/> 598 </xsd:complexType> 599 </xsd:element> 600 <xsd:element name="InternalNetwork"> 601 <xsd:complexType> 602 <xsd:attribute name="name" type="xsd:string" use="required"/> 603 </xsd:complexType> 604 </xsd:element> 605 </xsd:choice> 589 606 <xsd:attribute name="type" type="TNetworkAdapterType" default="Am79C970A"/> 590 607 <xsd:attribute name="slot" use="required"> … … 608 625 <xsd:attribute name="trace" type="xsd:boolean" default="false"/> 609 626 <xsd:attribute name="tracefile" type="xsd:string"/> 627 </xsd:complexType> 628 629 <xsd:complexType name="TNetwork"> 630 <xsd:sequence> 631 <xsd:element name="Adapter" type="TNetworkAdapter" 632 minOccurs="0" maxOccurs="unbounded"/> 633 </xsd:sequence> 610 634 </xsd:complexType> 611 635 … … 629 653 <xsd:complexType name="TUART"> 630 654 <xsd:sequence> 631 <xsd:element name="Port" minOccurs="0" maxOccurs="unbounded"> 632 <xsd:complexType> 633 <xsd:complexContent> 634 <xsd:extension base="TUARTPort"> 635 </xsd:extension> 636 </xsd:complexContent> 637 </xsd:complexType> 638 </xsd:element> 655 <xsd:element name="Port" type="TUARTPort" 656 minOccurs="0" maxOccurs="unbounded"/> 639 657 </xsd:sequence> 640 658 </xsd:complexType> … … 657 675 <xsd:complexType name="TLPT"> 658 676 <xsd:sequence> 659 <xsd:element name="Port" minOccurs="0" maxOccurs="unbounded"> 660 <xsd:complexType> 661 <xsd:complexContent> 662 <xsd:extension base="TLPTPort"> 663 </xsd:extension> 664 </xsd:complexContent> 665 </xsd:complexType> 666 </xsd:element> 677 <xsd:element name="Port" type="TLPTPort" 678 minOccurs="0" maxOccurs="unbounded"/> 667 679 </xsd:sequence> 668 680 </xsd:complexType> -
trunk/src/VBox/Main/xml/VirtualBox-settings-freebsd.xsd
r11982 r15708 66 66 </xsd:complexType> 67 67 68 <xsd:complexType name="TNetwork">69 <xsd:sequence>70 <xsd:element name="Adapter" minOccurs="0" maxOccurs="unbounded">71 <xsd:complexType>72 <xsd:complexContent>73 <xsd:extension base="TNetworkAdapter">74 <xsd:choice minOccurs="0">75 <xsd:element name="NAT">76 <xsd:complexType>77 <xsd:attribute name="network" type="xsd:string"/>78 </xsd:complexType>79 </xsd:element>80 <xsd:element name="HostInterface">81 <xsd:complexType>82 <xsd:attribute name="name" type="TLocalFile"/>83 <xsd:attribute name="TAPSetup" type="TLocalFile"/>84 <xsd:attribute name="TAPTerminate" type="TLocalFile"/>85 </xsd:complexType>86 </xsd:element>87 <xsd:element name="InternalNetwork">88 <xsd:complexType>89 <xsd:attribute name="name" type="xsd:string" use="required"/>90 </xsd:complexType>91 </xsd:element>92 </xsd:choice>93 </xsd:extension>94 </xsd:complexContent>95 </xsd:complexType>96 </xsd:element>97 </xsd:sequence>98 </xsd:complexType>99 100 68 <xsd:complexType name="TAudioAdapter"> 101 69 <xsd:complexContent> -
trunk/src/VBox/Main/xml/VirtualBox-settings-linux.xsd
r11982 r15708 66 66 </xsd:complexType> 67 67 68 <xsd:complexType name="TNetwork">69 <xsd:sequence>70 <xsd:element name="Adapter" minOccurs="0" maxOccurs="unbounded">71 <xsd:complexType>72 <xsd:complexContent>73 <xsd:extension base="TNetworkAdapter">74 <xsd:choice minOccurs="0">75 <xsd:element name="NAT">76 <xsd:complexType>77 <xsd:attribute name="network" type="xsd:string"/>78 </xsd:complexType>79 </xsd:element>80 <xsd:element name="HostInterface">81 <xsd:complexType>82 <xsd:attribute name="name" type="TLocalFile"/>83 <xsd:attribute name="TAPSetup" type="TLocalFile"/>84 <xsd:attribute name="TAPTerminate" type="TLocalFile"/>85 </xsd:complexType>86 </xsd:element>87 <xsd:element name="InternalNetwork">88 <xsd:complexType>89 <xsd:attribute name="name" type="xsd:string" use="required"/>90 </xsd:complexType>91 </xsd:element>92 </xsd:choice>93 </xsd:extension>94 </xsd:complexContent>95 </xsd:complexType>96 </xsd:element>97 </xsd:sequence>98 </xsd:complexType>99 100 68 <xsd:complexType name="TAudioAdapter"> 101 69 <xsd:complexContent> -
trunk/src/VBox/Main/xml/VirtualBox-settings-macosx.xsd
r11982 r15708 66 66 </xsd:complexType> 67 67 68 <xsd:complexType name="TNetwork">69 <xsd:sequence>70 <xsd:element name="Adapter" minOccurs="0" maxOccurs="unbounded">71 <xsd:complexType>72 <xsd:complexContent>73 <xsd:extension base="TNetworkAdapter">74 <xsd:choice minOccurs="0">75 <xsd:element name="NAT">76 <xsd:complexType>77 <xsd:attribute name="network" type="xsd:string"/>78 </xsd:complexType>79 </xsd:element>80 <xsd:element name="HostInterface">81 <xsd:complexType>82 <xsd:attribute name="name" type="TLocalFile"/>83 <xsd:attribute name="TAPSetup" type="TLocalFile"/>84 <xsd:attribute name="TAPTerminate" type="TLocalFile"/>85 </xsd:complexType>86 </xsd:element>87 <xsd:element name="InternalNetwork">88 <xsd:complexType>89 <xsd:attribute name="name" type="xsd:string" use="required"/>90 </xsd:complexType>91 </xsd:element>92 </xsd:choice>93 </xsd:extension>94 </xsd:complexContent>95 </xsd:complexType>96 </xsd:element>97 </xsd:sequence>98 </xsd:complexType>99 100 68 <xsd:complexType name="TAudioAdapter"> 101 69 <xsd:complexContent> -
trunk/src/VBox/Main/xml/VirtualBox-settings-os2.xsd
r11982 r15708 1 1 <?xml version="1.0" encoding="UTF-8"?> 2 2 3 <!-- 3 4 * :tabSize=2:indentSize=2:noTabs=true: … … 66 67 </xsd:complexType> 67 68 68 <xsd:complexType name="TNetwork">69 <xsd:sequence>70 <xsd:element name="Adapter" minOccurs="0" maxOccurs="unbounded">71 <xsd:complexType>72 <xsd:complexContent>73 <xsd:extension base="TNetworkAdapter">74 <xsd:choice minOccurs="0">75 <xsd:element name="NAT">76 <xsd:complexType>77 <xsd:attribute name="network" type="xsd:string"/>78 </xsd:complexType>79 </xsd:element>80 <xsd:element name="HostInterface">81 <xsd:complexType>82 <xsd:attribute name="name" type="TLocalFile"/>83 <xsd:attribute name="TAPSetup" type="TLocalFile"/>84 <xsd:attribute name="TAPTerminate" type="TLocalFile"/>85 </xsd:complexType>86 </xsd:element>87 <xsd:element name="InternalNetwork">88 <xsd:complexType>89 <xsd:attribute name="name" type="xsd:string" use="required"/>90 </xsd:complexType>91 </xsd:element>92 </xsd:choice>93 </xsd:extension>94 </xsd:complexContent>95 </xsd:complexType>96 </xsd:element>97 </xsd:sequence>98 </xsd:complexType>99 100 69 <xsd:complexType name="TAudioAdapter"> 101 70 <xsd:complexContent> -
trunk/src/VBox/Main/xml/VirtualBox-settings-solaris.xsd
r11982 r15708 66 66 </xsd:complexType> 67 67 68 <xsd:complexType name="TNetwork">69 <xsd:sequence>70 <xsd:element name="Adapter" minOccurs="0" maxOccurs="unbounded">71 <xsd:complexType>72 <xsd:complexContent>73 <xsd:extension base="TNetworkAdapter">74 <xsd:choice minOccurs="0">75 <xsd:element name="NAT">76 <xsd:complexType>77 <xsd:attribute name="network" type="xsd:string"/>78 </xsd:complexType>79 </xsd:element>80 <xsd:element name="HostInterface">81 <xsd:complexType>82 <xsd:attribute name="name" type="TLocalFile"/>83 <xsd:attribute name="TAPSetup" type="TLocalFile"/>84 <xsd:attribute name="TAPTerminate" type="TLocalFile"/>85 </xsd:complexType>86 </xsd:element>87 <xsd:element name="InternalNetwork">88 <xsd:complexType>89 <xsd:attribute name="name" type="xsd:string" use="required"/>90 </xsd:complexType>91 </xsd:element>92 </xsd:choice>93 </xsd:extension>94 </xsd:complexContent>95 </xsd:complexType>96 </xsd:element>97 </xsd:sequence>98 </xsd:complexType>99 100 68 <xsd:complexType name="TAudioAdapter"> 101 69 <xsd:complexContent> -
trunk/src/VBox/Main/xml/VirtualBox-settings-windows.xsd
r11982 r15708 66 66 </xsd:complexType> 67 67 68 <xsd:complexType name="TNetwork">69 <xsd:sequence>70 <xsd:element name="Adapter" minOccurs="0" maxOccurs="unbounded">71 <xsd:complexType>72 <xsd:complexContent>73 <xsd:extension base="TNetworkAdapter">74 <xsd:choice minOccurs="0">75 <xsd:element name="NAT">76 <xsd:complexType>77 <xsd:attribute name="network" type="xsd:string"/>78 </xsd:complexType>79 </xsd:element>80 <xsd:element name="HostInterface">81 <xsd:complexType>82 <xsd:attribute name="name" type="xsd:string" use="required"/>83 </xsd:complexType>84 </xsd:element>85 <xsd:element name="InternalNetwork">86 <xsd:complexType>87 <xsd:attribute name="name" type="xsd:string" use="required"/>88 </xsd:complexType>89 </xsd:element>90 </xsd:choice>91 </xsd:extension>92 </xsd:complexContent>93 </xsd:complexType>94 </xsd:element>95 </xsd:sequence>96 </xsd:complexType>97 98 68 <xsd:complexType name="TAudioAdapter"> 99 69 <xsd:complexContent>
Note:
See TracChangeset
for help on using the changeset viewer.