MCPcopy Create free account
hub / github.com/PCSX2/pcsx2 / GetAdapterAuto

Method GetAdapterAuto

pcsx2/DEV9/AdapterUtils.cpp:136–181  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

134 return false;
135}
136bool AdapterUtils::GetAdapterAuto(Adapter* adapter, AdapterBuffer* buffer)
137{
138 std::unique_ptr<std::byte[]> adapterInfo;
139 PIP_ADAPTER_ADDRESSES pAdapter = GetAllAdapters(&adapterInfo);
140 if (pAdapter == nullptr)
141 return false;
142
143 do
144 {
145 if (pAdapter->IfType != IF_TYPE_SOFTWARE_LOOPBACK &&
146 pAdapter->OperStatus == IfOperStatusUp)
147 {
148 // Search for an adapter with;
149 // IPv4 Address,
150 // DNS,
151 // Gateway.
152
153 bool hasIPv4 = false;
154 bool hasDNS = false;
155 bool hasGateway = false;
156
157 // IPv4.
158 if (GetAdapterIP(pAdapter).has_value())
159 hasIPv4 = true;
160
161 // DNS.
162 if (GetDNS(pAdapter).size() > 0)
163 hasDNS = true;
164
165 // Gateway.
166 if (GetGateways(pAdapter).size() > 0)
167 hasGateway = true;
168
169 if (hasIPv4 && hasDNS && hasGateway)
170 {
171 *adapter = *pAdapter;
172 buffer->swap(adapterInfo);
173 return true;
174 }
175 }
176
177 pAdapter = pAdapter->Next;
178 } while (pAdapter);
179
180 return false;
181}
182#elif defined(__POSIX__)
183AdapterUtils::Adapter* AdapterUtils::GetAllAdapters(AdapterBuffer* buffer)
184{

Callers

nothing calls this directly

Calls 2

sizeMethod · 0.45
swapMethod · 0.45

Tested by

no test coverage detected