Changeset 13746 in vbox
- Timestamp:
- Nov 3, 2008 1:15:07 PM (16 years ago)
- svn:sync-xref-src-repo-rev:
- 38719
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/HostDrivers/VBoxNetFlt/solaris/VBoxNetFlt-solaris.c
r13730 r13746 3158 3158 { 3159 3159 #ifdef VBOXNETFLT_SOLARIS_USE_NETINFO 3160 netstack_t *pNetStack = netstack_get_current();3161 if ( pNetStack)3162 { 3163 net _data_t pNetData = net_lookup_impl(NHF_INET, pNetStack);3164 if (pNet Data)3160 mblk_t *pMsg = vboxNetFltSolarisMBlkFromSG(pThis, pSG, fDst); 3161 if (RT_LIKELY(pMsg)) 3162 { 3163 netstack_t *pNetStack = netstack_get_current(); 3164 if (pNetStack) 3165 3165 { 3166 phy_if_t pInterface = net_phylookup(pNetData, pThis->szName);3167 if (p Interface)3166 net_data_t pNetData = net_lookup_impl(NHF_INET, pNetStack); 3167 if (pNetData) 3168 3168 { 3169 net_inject_t InjectData; 3170 InjectData.ni_packet = pMsg; 3171 InjectData.ni_physical = pInterface; 3172 bzero(&InjectData.ni_addr, sizeof(InjectData.ni_addr)); 3173 InjectData.ni_addr.ss_family = AF_INET; 3174 3175 /* 3176 * Queue out rather than direct out transmission. 3177 */ 3178 int rc = net_inject(pNetData, NI_QUEUE_OUT, &InjectData); 3179 if (!rc) 3180 rc = VINF_SUCCESS; 3169 phy_if_t pInterface = net_phylookup(pNetData, pThis->szName); 3170 if (pInterface) 3171 { 3172 net_inject_t InjectData; 3173 InjectData.ni_packet = pMsg; 3174 InjectData.ni_physical = pInterface; 3175 bzero(&InjectData.ni_addr, sizeof(InjectData.ni_addr)); 3176 InjectData.ni_addr.ss_family = AF_INET; 3177 3178 /* 3179 * Queue out rather than direct out transmission. 3180 */ 3181 int rc = net_inject(pNetData, NI_QUEUE_OUT, &InjectData); 3182 if (!rc) 3183 rc = VINF_SUCCESS; 3184 else 3185 { 3186 LogRel((DEVICE_NAME ":queuing IP packet for transmission failed. rc=%d\n", rc)); 3187 rc = VERR_NET_IO_ERROR; 3188 } 3189 } 3181 3190 else 3182 3191 { 3183 LogRel((DEVICE_NAME ": queuing IP packet for transmission failed. rc=%d\n", rc));3192 LogRel((DEVICE_NAME ":vboxNetFltPortOsXmit failed to lookup physical interface.\n")); 3184 3193 rc = VERR_NET_IO_ERROR; 3185 3194 } 3186 3195 } 3187 3196 else 3188 LogRel((DEVICE_NAME ":vboxNetFltPortOsXmit failed to lookup physical interface.\n")); 3197 { 3198 LogRel((DEVICE_NAME ":vboxNetFltPortOsXmit failed to get IP hooks.\n")); 3199 rc = VERR_NET_IO_ERROR; 3200 } 3201 netstack_rele(pNetStack); 3189 3202 } 3190 3203 else 3191 LogRel((DEVICE_NAME ":vboxNetFltPortOsXmit failed to get IP hooks.\n")); 3192 netstack_rele(pNetStack); 3204 { 3205 LogRel((DEVICE_NAME ":vboxNetFltPortOsXmit failed to get current net stack.\n")); 3206 rc = VERR_NET_IO_ERROR; 3207 } 3193 3208 } 3194 3209 else 3195 LogRel((DEVICE_NAME ":vboxNetFltPortOsXmit failed to get current net stack.\n")); 3210 { 3211 LogRel((DEVICE_NAME ":vboxNetFltPortOsXmit vboxNetFltSolarisMBlkFromSG failed.\n")); 3212 rc = VERR_NO_MEMORY; 3213 } 3196 3214 #else 3197 3215 vboxnetflt_promisc_stream_t *pPromiscStream = ASMAtomicUoReadPtr((void * volatile *)&pThis->u.s.pvPromiscStream);
Note:
See TracChangeset
for help on using the changeset viewer.