|
47 | 47 |
|
48 | 48 | #if ( ipconfigUSE_DNS != 0 ) |
49 | 49 |
|
50 | | -/** @brief The list of all callback structures. */ |
51 | | - |
52 | | - |
53 | | - #if ( ( ipconfigUSE_NBNS == 1 ) || ( ipconfigUSE_LLMNR == 1 ) || ( ipconfigUSE_MDNS == 1 ) ) |
54 | | - |
55 | | -/** |
56 | | - * @brief Find the best matching end-point given a reply that was received. |
57 | | - * @param[in] pxNetworkBuffer The Ethernet packet that was received. |
58 | | - * @return An end-point. |
59 | | - */ |
60 | | - static NetworkEndPoint_t * prvFindEndPointOnNetMask( NetworkBufferDescriptor_t * pxNetworkBuffer ) |
61 | | - { |
62 | | - NetworkEndPoint_t * pxEndPoint = NULL; |
63 | | - |
64 | | - #if ( ipconfigUSE_IPv6 != 0 ) |
65 | | - IPPacket_IPv6_t * xIPPacket_IPv6 = ( ( IPPacket_IPv6_t * ) pxNetworkBuffer->pucEthernetBuffer ); |
66 | | - |
67 | | - if( xIPPacket_IPv6->xEthernetHeader.usFrameType == ipIPv6_FRAME_TYPE ) |
68 | | - { |
69 | | - pxEndPoint = FreeRTOS_FindEndPointOnNetMask_IPv6( &xIPPacket_IPv6->xIPHeader.xSourceAddress ); |
70 | | - } |
71 | | - else |
72 | | - #endif /* ( ipconfigUSE_IPv6 != 0 ) */ |
73 | | - |
74 | | - #if ( ipconfigUSE_IPv4 != 0 ) |
75 | | - { |
76 | | - IPPacket_t * xIPPacket = ( ( IPPacket_t * ) pxNetworkBuffer->pucEthernetBuffer ); |
77 | | - |
78 | | - pxEndPoint = FreeRTOS_FindEndPointOnNetMask( xIPPacket->xIPHeader.ulSourceIPAddress, 6 ); |
79 | | - } |
80 | | - #endif /* ( ipconfigUSE_IPv4 != 0 ) */ |
81 | | - |
82 | | - if( pxEndPoint != NULL ) |
83 | | - { |
84 | | - pxNetworkBuffer->pxEndPoint = pxEndPoint; |
85 | | - } |
86 | | - |
87 | | - return pxEndPoint; |
88 | | - } |
89 | | - #endif /* ( ( ipconfigUSE_NBNS == 1 ) || ( ipconfigUSE_LLMNR == 1 ) || ( ipconfigUSE_MDNS == 1 ) ) */ |
90 | | -/*-----------------------------------------------------------*/ |
91 | 50 |
|
92 | 51 | /** |
93 | 52 | * @brief Read the Name field out of a DNS response packet. |
|
912 | 871 | IPHeader_t * pxIPHeader; |
913 | 872 | UDPHeader_t * pxUDPHeader; |
914 | 873 | size_t uxDataLength; |
915 | | - NetworkEndPoint_t * pxEndPoint = prvFindEndPointOnNetMask( pxNetworkBuffer ); |
| 874 | + NetworkEndPoint_t * pxEndPoint = pxNetworkBuffer->pxEndPoint; |
916 | 875 | const size_t uxIPHeaderLength = uxIPHeaderSizePacket( pxNetworkBuffer ); |
917 | 876 |
|
| 877 | + configASSERT( pxEndPoint != NULL ); |
918 | 878 | pxUDPPacket = ( ( UDPPacket_t * ) |
919 | 879 | pxNetworkBuffer->pucEthernetBuffer ); |
920 | 880 | pxIPHeader = &pxUDPPacket->xIPHeader; |
|
960 | 920 | pxIPHeader->ucTimeToLive = ipconfigUDP_TIME_TO_LIVE; |
961 | 921 | } |
962 | 922 |
|
963 | | - pxIPHeader->ulSourceIPAddress = ( pxEndPoint != NULL ) ? pxEndPoint->ipv4_settings.ulIPAddress : 0U; |
| 923 | + pxIPHeader->ulSourceIPAddress = pxEndPoint->ipv4_settings.ulIPAddress; |
964 | 924 | pxIPHeader->usIdentification = FreeRTOS_htons( usPacketIdentifier ); |
965 | 925 |
|
966 | 926 | /* The stack doesn't support fragments, so the fragment offset field must always be zero. |
|
1149 | 1109 | xEndPoint.bits.bIPv6 = pdFALSE_UNSIGNED; |
1150 | 1110 | xEndPoint.usDNSType = dnsTYPE_A_HOST; |
1151 | 1111 |
|
1152 | | - #if defined( ipconfigIPv4_BACKWARD_COMPATIBLE ) && ( ipconfigIPv4_BACKWARD_COMPATIBLE == 1 ) |
| 1112 | + #if ( ipconfigIPv4_BACKWARD_COMPATIBLE == 1 ) |
1153 | 1113 | xDNSHookReturn = xApplicationDNSQueryHook( ( const char * ) ucNBNSName ); |
1154 | 1114 | #else |
1155 | 1115 | xDNSHookReturn = xApplicationDNSQueryHook_Multi( &( xEndPoint ), ( const char * ) ucNBNSName ); |
|
0 commit comments