mirror of
https://github.com/hrydgard/ppsspp.git
synced 2025-04-02 11:01:50 -04:00
Initialize some socket-related structs to avoid unexpected behavior. (May fix Unknown Source Port issue)
This commit is contained in:
parent
9209fb7c6e
commit
2b09f81ff8
2 changed files with 12 additions and 12 deletions
|
@ -1795,7 +1795,7 @@ int getLocalIp(sockaddr_in* SocketAddress) {
|
|||
|
||||
#if !PPSSPP_PLATFORM(SWITCH)
|
||||
if (metasocket != (int)INVALID_SOCKET) {
|
||||
struct sockaddr_in localAddr;
|
||||
struct sockaddr_in localAddr {};
|
||||
localAddr.sin_addr.s_addr = INADDR_ANY;
|
||||
socklen_t addrLen = sizeof(localAddr);
|
||||
int ret = getsockname((int)metasocket, (struct sockaddr*)&localAddr, &addrLen);
|
||||
|
@ -1876,7 +1876,7 @@ int getLocalIp(sockaddr_in* SocketAddress) {
|
|||
}
|
||||
|
||||
uint32_t getLocalIp(int sock) {
|
||||
struct sockaddr_in localAddr;
|
||||
struct sockaddr_in localAddr {};
|
||||
localAddr.sin_addr.s_addr = INADDR_ANY;
|
||||
socklen_t addrLen = sizeof(localAddr);
|
||||
getsockname(sock, (struct sockaddr*)&localAddr, &addrLen);
|
||||
|
@ -1887,7 +1887,7 @@ uint32_t getLocalIp(int sock) {
|
|||
}
|
||||
|
||||
static std::vector<std::pair<uint32_t, uint32_t>> InitPrivateIPRanges() {
|
||||
struct sockaddr_in saNet, saMask;
|
||||
struct sockaddr_in saNet {}, saMask{};
|
||||
std::vector<std::pair<uint32_t, uint32_t>> ip_ranges;
|
||||
|
||||
if (1 == inet_pton(AF_INET, "192.168.0.0", &(saNet.sin_addr)) && 1 == inet_pton(AF_INET, "255.255.0.0", &(saMask.sin_addr)))
|
||||
|
@ -1934,7 +1934,7 @@ void getLocalMac(SceNetEtherAddr * addr){
|
|||
}
|
||||
|
||||
uint16_t getLocalPort(int sock) {
|
||||
struct sockaddr_in localAddr;
|
||||
struct sockaddr_in localAddr {};
|
||||
localAddr.sin_port = 0;
|
||||
socklen_t addrLen = sizeof(localAddr);
|
||||
getsockname(sock, (struct sockaddr*)&localAddr, &addrLen);
|
||||
|
|
|
@ -600,7 +600,7 @@ int DoBlockingPdpSend(int uid, AdhocSocketRequest& req, s64& result, AdhocSendTa
|
|||
bool retry = false;
|
||||
for (auto peer = targetPeers.peers.begin(); peer != targetPeers.peers.end(); ) {
|
||||
// Fill in Target Structure
|
||||
struct sockaddr_in target;
|
||||
struct sockaddr_in target {};
|
||||
target.sin_family = AF_INET;
|
||||
target.sin_addr.s_addr = peer->ip;
|
||||
target.sin_port = htons(peer->port + ((isOriPort && !isPrivateIP(peer->ip)) ? 0 : portOffset));
|
||||
|
@ -1379,7 +1379,7 @@ static int sceNetAdhocPdpCreate(const char *mac, int port, int bufferSize, u32 f
|
|||
setUDPConnReset(usocket, false);
|
||||
|
||||
// Binding Information for local Port
|
||||
struct sockaddr_in addr;
|
||||
struct sockaddr_in addr {};
|
||||
addr.sin_family = AF_INET;
|
||||
addr.sin_addr.s_addr = INADDR_ANY;
|
||||
if (isLocalServer) {
|
||||
|
@ -1577,7 +1577,7 @@ static int sceNetAdhocPdpSend(int id, const char *mac, u32 port, void *data, int
|
|||
// Single Target
|
||||
if (!isBroadcastMAC(daddr)) {
|
||||
// Fill in Target Structure
|
||||
struct sockaddr_in target;
|
||||
struct sockaddr_in target {};
|
||||
target.sin_family = AF_INET;
|
||||
target.sin_port = htons(dport + portOffset);
|
||||
|
||||
|
@ -1687,7 +1687,7 @@ static int sceNetAdhocPdpSend(int id, const char *mac, u32 port, void *data, int
|
|||
// Iterate Peers
|
||||
for (auto peer : dest.peers) {
|
||||
// Fill in Target Structure
|
||||
struct sockaddr_in target;
|
||||
struct sockaddr_in target {};
|
||||
target.sin_family = AF_INET;
|
||||
target.sin_addr.s_addr = peer.ip;
|
||||
target.sin_port = htons(dport + ((isOriPort && !isPrivateIP(peer.ip)) ? 0 : portOffset));
|
||||
|
@ -2164,7 +2164,7 @@ int NetAdhocPdp_Delete(int id, int unknown) {
|
|||
// Valid Socket
|
||||
if (sock != NULL && sock->type == SOCK_PDP) {
|
||||
// Close Connection
|
||||
struct linger sl;
|
||||
struct linger sl {};
|
||||
sl.l_onoff = 1; // non-zero value enables linger option in kernel
|
||||
sl.l_linger = 0; // timeout interval in seconds
|
||||
setsockopt(sock->data.pdp.id, SOL_SOCKET, SO_LINGER, (const char*)&sl, sizeof(sl));
|
||||
|
@ -3307,7 +3307,7 @@ static int sceNetAdhocPtpOpen(const char *srcmac, int sport, const char *dstmac,
|
|||
setSockNoDelay(tcpsocket, 1);
|
||||
|
||||
// Binding Information for local Port
|
||||
struct sockaddr_in addr;
|
||||
struct sockaddr_in addr {};
|
||||
// addr.sin_len = sizeof(addr);
|
||||
addr.sin_family = AF_INET;
|
||||
addr.sin_addr.s_addr = INADDR_ANY;
|
||||
|
@ -3776,7 +3776,7 @@ int NetAdhocPtp_Close(int id, int unknown) {
|
|||
// Valid Socket
|
||||
if (socket != NULL && socket->type == SOCK_PTP) {
|
||||
// Close Connection
|
||||
struct linger sl;
|
||||
struct linger sl {};
|
||||
sl.l_onoff = 1; // non-zero value enables linger option in kernel
|
||||
sl.l_linger = 0; // timeout interval in seconds
|
||||
setsockopt(socket->data.ptp.id, SOL_SOCKET, SO_LINGER, (const char*)&sl, sizeof(sl));
|
||||
|
@ -3892,7 +3892,7 @@ static int sceNetAdhocPtpListen(const char *srcmac, int sport, int bufsize, int
|
|||
setSockNoDelay(tcpsocket, 1);
|
||||
|
||||
// Binding Information for local Port
|
||||
struct sockaddr_in addr;
|
||||
struct sockaddr_in addr {};
|
||||
addr.sin_family = AF_INET;
|
||||
addr.sin_addr.s_addr = INADDR_ANY;
|
||||
if (isLocalServer) {
|
||||
|
|
Loading…
Add table
Reference in a new issue