mirror of
https://github.com/hrydgard/ppsspp.git
synced 2026-10-24 11:49:05 +02:00
Reindexing PDP and PTP socket using const/var instead of using confusing raw numbers
This commit is contained in:
1 parent
19cc81fe91
commit
00d2b488dd
3 files changed
+41
-36
No files matched your search
@@ -71,8 +71,10 @@ SceNetAdhocctlParameter parameter;
|
||||
SceNetAdhocctlAdhocId product_code;
|
||||
std::thread friendFinderThread;
|
||||
std::recursive_mutex peerlock;
|
||||
SceNetAdhocPdpStat * pdp[255];
|
||||
SceNetAdhocPtpStat * ptp[255];
|
||||
SceNetAdhocPdpStat * pdp[MAX_SOCKET];
|
||||
SceNetAdhocPtpStat * ptp[MAX_SOCKET];
|
||||
const int PdpIdStart = MAX_SOCKET + 1; //256
|
||||
const int PdpIdEnd = PdpIdStart + MAX_SOCKET;
|
||||
std::map<int, int> ptpConnectCount;
|
||||
std::vector<std::string> chatLog;
|
||||
std::string name = "";
|
||||
@@ -101,7 +103,7 @@ bool isLocalMAC(const SceNetEtherAddr * addr) {
|
||||
|
||||
bool isPDPPortInUse(uint16_t port) {
|
||||
// Iterate Elements
|
||||
for (int i = 0; i < 255; i++) if (pdp[i] != NULL && pdp[i]->lport == port) return true;
|
||||
for (int i = 0; i < MAX_SOCKET; i++) if (pdp[i] != NULL && pdp[i]->lport == port) return true;
|
||||
|
||||
// Unused Port
|
||||
return false;
|
||||
@@ -109,7 +111,7 @@ bool isPDPPortInUse(uint16_t port) {
|
||||
|
||||
bool isPTPPortInUse(uint16_t port) {
|
||||
// Iterate Sockets
|
||||
for(int i = 0; i < 255; i++) if(ptp[i] != NULL && ptp[i]->lport == port) return true;
|
||||
for(int i = 0; i < MAX_SOCKET; i++) if(ptp[i] != NULL && ptp[i]->lport == port) return true;
|
||||
|
||||
// Unused Port
|
||||
return false;
|
||||
@@ -1861,7 +1863,7 @@ int getPDPSocketCount()
|
||||
int counter = 0;
|
||||
|
||||
// Count Sockets
|
||||
for (int i = 0; i < 255; i++) if (pdp[i] != NULL) counter++;
|
||||
for (int i = 0; i < MAX_SOCKET; i++) if (pdp[i] != NULL) counter++;
|
||||
|
||||
// Return Socket Count
|
||||
return counter;
|
||||
@@ -1872,7 +1874,7 @@ int getPTPSocketCount() {
|
||||
int counter = 0;
|
||||
|
||||
// Count Sockets
|
||||
for (int i = 0; i < 255; i++) if (ptp[i] != NULL) counter++;
|
||||
for (int i = 0; i < MAX_SOCKET; i++) if (ptp[i] != NULL) counter++;
|
||||
|
||||
// Return Socket Count
|
||||
return counter;
|
||||
|
||||
+5
-2
@@ -820,14 +820,17 @@ private:
|
||||
extern int actionAfterAdhocMipsCall;
|
||||
extern int actionAfterMatchingMipsCall;
|
||||
|
||||
#define MAX_SOCKET 255
|
||||
// Aux vars
|
||||
extern int metasocket;
|
||||
extern SceNetAdhocctlParameter parameter;
|
||||
extern SceNetAdhocctlAdhocId product_code;
|
||||
extern std::thread friendFinderThread;
|
||||
extern std::recursive_mutex peerlock;
|
||||
extern SceNetAdhocPdpStat * pdp[255];
|
||||
extern SceNetAdhocPtpStat * ptp[255];
|
||||
extern SceNetAdhocPdpStat * pdp[MAX_SOCKET];
|
||||
extern SceNetAdhocPtpStat * ptp[MAX_SOCKET];
|
||||
extern const int PdpIdStart;
|
||||
extern const int PdpIdEnd;
|
||||
extern std::map<int, int> ptpConnectCount;
|
||||
|
||||
union SockAddrIN4 {
|
||||
|
||||
+28
-28
@@ -281,7 +281,7 @@ int DoBlockingPdpRecv(int uid, AdhocSocketRequest& req, s64& result) {
|
||||
}
|
||||
|
||||
int DoBlockingPdpSend(int uid, AdhocSocketRequest& req, s64& result, AdhocSendTargets& targetPeers) {
|
||||
SceNetAdhocPdpStat* pdpsocket = pdp[req.id - 256];
|
||||
SceNetAdhocPdpStat* pdpsocket = pdp[req.id - PdpIdStart];
|
||||
|
||||
result = 0;
|
||||
bool retry = false;
|
||||
@@ -904,10 +904,10 @@ static int sceNetAdhocPdpCreate(const char *mac, int port, int bufferSize, u32 u
|
||||
|
||||
// Find Free Translator Index
|
||||
int i = 0;
|
||||
for (; i < 255; i++) if (pdp[i] == NULL) break;
|
||||
for (; i < MAX_SOCKET; i++) if (pdp[i] == NULL) break;
|
||||
|
||||
// Found Free Translator Index
|
||||
if (i < 255) {
|
||||
if (i < MAX_SOCKET) {
|
||||
// Fill in Data
|
||||
internal->id = usocket;
|
||||
internal->laddr = *saddr;
|
||||
@@ -925,7 +925,7 @@ static int sceNetAdhocPdpCreate(const char *mac, int port, int bufferSize, u32 u
|
||||
changeBlockingMode(usocket, 1);
|
||||
|
||||
// Success
|
||||
return i + 256;
|
||||
return i + PdpIdStart;
|
||||
}
|
||||
|
||||
// Free Memory for Internal Data
|
||||
@@ -1028,9 +1028,9 @@ static int sceNetAdhocPdpSend(int id, const char *mac, u32 port, void *data, int
|
||||
// Valid Data Length
|
||||
if (len >= 0) { // should we allow 0 size packet (for ping) ?
|
||||
// Valid Socket ID
|
||||
if (id > 255 && id <= 510 && pdp[id - 256] != NULL) {
|
||||
if (id >= PdpIdStart && id < PdpIdEnd && pdp[id - PdpIdStart] != NULL) {
|
||||
// Cast Socket
|
||||
SceNetAdhocPdpStat * socket = pdp[id - 256];
|
||||
SceNetAdhocPdpStat * socket = pdp[id - PdpIdStart];
|
||||
|
||||
// Valid Data Buffer
|
||||
if (data != NULL) {
|
||||
@@ -1233,9 +1233,9 @@ static int sceNetAdhocPdpRecv(int id, void *addr, void * port, void *buf, void *
|
||||
int * len = (int *)dataLength;
|
||||
if (netAdhocInited) {
|
||||
// Valid Socket ID
|
||||
if (id > 255 && id <= 510 && pdp[id - 256] != NULL) {
|
||||
if (id >= PdpIdStart && id < PdpIdEnd && pdp[id - PdpIdStart] != NULL) {
|
||||
// Cast Socket
|
||||
SceNetAdhocPdpStat * socket = pdp[id - 256];
|
||||
SceNetAdhocPdpStat * socket = pdp[id - PdpIdStart];
|
||||
|
||||
// Valid Arguments
|
||||
if (saddr != NULL && port != NULL && buf != NULL && len != NULL && *len > 0) {
|
||||
@@ -1413,14 +1413,14 @@ int PollAdhocSocket(SceNetAdhocPollSd* sds, int count, int timeout) {
|
||||
for (int i = 0; i < count; i++) {
|
||||
sds[i].revents = 0;
|
||||
// Fill in Socket ID
|
||||
if (sds[i].id <= 255 && ptp[sds[i].id - 1] != NULL) {
|
||||
if (sds[i].id <= MAX_SOCKET && ptp[sds[i].id - 1] != NULL) {
|
||||
fd = ptp[sds[i].id - 1]->id;
|
||||
if (ptp[sds[i].id - 1]->state == ADHOC_PTP_STATE_LISTEN) sds[i].revents |= ADHOC_EV_ACCEPT;
|
||||
else
|
||||
if (ptp[sds[i].id - 1]->state == ADHOC_PTP_STATE_CLOSED) sds[i].revents |= ADHOC_EV_CONNECT;
|
||||
}
|
||||
else {
|
||||
fd = pdp[sds[i].id - 256]->id;
|
||||
fd = pdp[sds[i].id - PdpIdStart]->id;
|
||||
}
|
||||
if (fd > maxfd) maxfd = fd;
|
||||
if (sds[i].events & ADHOC_EV_RECV) FD_SET(fd, &readfds);
|
||||
@@ -1435,11 +1435,11 @@ int PollAdhocSocket(SceNetAdhocPollSd* sds, int count, int timeout) {
|
||||
if (affectedsockets > 0) {
|
||||
affectedsockets = 0;
|
||||
for (int i = 0; i < count; i++) {
|
||||
if (sds[i].id <= 255 && ptp[sds[i].id - 1] != NULL) {
|
||||
if (sds[i].id <= MAX_SOCKET && ptp[sds[i].id - 1] != NULL) {
|
||||
fd = ptp[sds[i].id - 1]->id;
|
||||
}
|
||||
else {
|
||||
fd = pdp[sds[i].id - 256]->id;
|
||||
fd = pdp[sds[i].id - PdpIdStart]->id;
|
||||
}
|
||||
if (FD_ISSET(fd, &readfds))
|
||||
sds[i].revents |= ADHOC_EV_RECV;
|
||||
@@ -1468,7 +1468,7 @@ int sceNetAdhocPollSocket(u32 socketStructAddr, int count, int timeout, int nonb
|
||||
for (int i = 0; i < count; i++)
|
||||
{
|
||||
// Invalid Socket
|
||||
if (sds[i].id < 1 || sds[i].id > 510 || (pdp[sds[i].id - 256] == NULL && ptp[sds[i].id - 1] == NULL))
|
||||
if (sds[i].id < 1 || sds[i].id >= PdpIdEnd || (pdp[sds[i].id - PdpIdStart] == NULL && ptp[sds[i].id - 1] == NULL))
|
||||
return hleLogDebug(SCENET, ERROR_NET_ADHOC_INVALID_SOCKET_ID, "invalid socket id");
|
||||
}
|
||||
|
||||
@@ -1526,9 +1526,9 @@ int NetAdhocPdp_Delete(int id, int unknown) {
|
||||
// Library is initialized
|
||||
if (netAdhocInited) {
|
||||
// Valid Arguments
|
||||
if (id > 255 && id <= 510) {
|
||||
if (id >= PdpIdStart && id < PdpIdEnd) {
|
||||
// Cast Socket
|
||||
SceNetAdhocPdpStat* sock = pdp[id - 256];
|
||||
SceNetAdhocPdpStat* sock = pdp[id - PdpIdStart];
|
||||
|
||||
// Valid Socket
|
||||
if (sock != NULL) {
|
||||
@@ -1544,7 +1544,7 @@ int NetAdhocPdp_Delete(int id, int unknown) {
|
||||
free(sock);
|
||||
|
||||
// Free Translation Slot
|
||||
pdp[id - 256] = NULL;
|
||||
pdp[id - PdpIdStart] = NULL;
|
||||
|
||||
// Success
|
||||
return 0;
|
||||
@@ -2522,10 +2522,10 @@ static int sceNetAdhocPtpOpen(const char *srcmac, int sport, const char *dstmac,
|
||||
if (internal != NULL) {
|
||||
// Find Free Translator ID
|
||||
int i = 0;
|
||||
for (; i < 255; i++) if (ptp[i] == NULL) break;
|
||||
for (; i < MAX_SOCKET; i++) if (ptp[i] == NULL) break;
|
||||
|
||||
// Found Free Translator ID
|
||||
if (i < 255) {
|
||||
if (i < MAX_SOCKET) {
|
||||
// Clear Memory
|
||||
memset(internal, 0, sizeof(SceNetAdhocPtpStat));
|
||||
|
||||
@@ -2619,10 +2619,10 @@ int AcceptPtpSocket(int ptpId, int newsocket, sockaddr_in& peeraddr, SceNetEther
|
||||
if (internal != NULL) {
|
||||
// Find Free Translator ID
|
||||
int i = 0;
|
||||
for (; i < 255; i++) if (ptp[i] == NULL) break;
|
||||
for (; i < MAX_SOCKET; i++) if (ptp[i] == NULL) break;
|
||||
|
||||
// Found Free Translator ID
|
||||
if (i < 255) {
|
||||
if (i < MAX_SOCKET) {
|
||||
// Clear Memory
|
||||
memset(internal, 0, sizeof(SceNetAdhocPtpStat));
|
||||
|
||||
@@ -2708,7 +2708,7 @@ static int sceNetAdhocPtpAccept(int id, u32 peerMacAddrPtr, u32 peerPortPtr, int
|
||||
// Library is initialized
|
||||
if (netAdhocInited) {
|
||||
// Valid Socket
|
||||
if (id > 0 && id <= 255 && ptp[id - 1] != NULL) {
|
||||
if (id > 0 && id <= MAX_SOCKET && ptp[id - 1] != NULL) {
|
||||
// Cast Socket
|
||||
SceNetAdhocPtpStat * socket = ptp[id - 1];
|
||||
|
||||
@@ -2783,7 +2783,7 @@ static int sceNetAdhocPtpConnect(int id, int timeout, int flag) {
|
||||
if (netAdhocInited)
|
||||
{
|
||||
// Valid Socket
|
||||
if (id > 0 && id <= 255 && ptp[id - 1] != NULL) {
|
||||
if (id > 0 && id <= MAX_SOCKET && ptp[id - 1] != NULL) {
|
||||
// Cast Socket
|
||||
SceNetAdhocPtpStat * socket = ptp[id - 1];
|
||||
|
||||
@@ -2871,7 +2871,7 @@ int NetAdhocPtp_Close(int id, int unknown) {
|
||||
// Library is initialized
|
||||
if (netAdhocInited) {
|
||||
// Valid Arguments & Atleast one Socket
|
||||
if (id > 0 && id <= 255 && ptp[id - 1] != NULL) {
|
||||
if (id > 0 && id <= MAX_SOCKET && ptp[id - 1] != NULL) {
|
||||
// Cast Socket
|
||||
SceNetAdhocPtpStat* socket = ptp[id - 1];
|
||||
|
||||
@@ -3007,10 +3007,10 @@ static int sceNetAdhocPtpListen(const char *srcmac, int sport, int bufsize, int
|
||||
if (internal != NULL) {
|
||||
// Find Free Translator ID
|
||||
int i = 0;
|
||||
for (; i < 255; i++) if (ptp[i] == NULL) break;
|
||||
for (; i < MAX_SOCKET; i++) if (ptp[i] == NULL) break;
|
||||
|
||||
// Found Free Translator ID
|
||||
if (i < 255) {
|
||||
if (i < MAX_SOCKET) {
|
||||
// Clear Memory
|
||||
memset(internal, 0, sizeof(SceNetAdhocPtpStat));
|
||||
|
||||
@@ -3103,7 +3103,7 @@ static int sceNetAdhocPtpSend(int id, u32 dataAddr, u32 dataSizeAddr, int timeou
|
||||
// Library is initialized
|
||||
if (netAdhocInited) {
|
||||
// Valid Socket
|
||||
if (id > 0 && id <= 255 && ptp[id - 1] != NULL) {
|
||||
if (id > 0 && id <= MAX_SOCKET && ptp[id - 1] != NULL) {
|
||||
// Cast Socket
|
||||
SceNetAdhocPtpStat * socket = ptp[id - 1];
|
||||
|
||||
@@ -3191,7 +3191,7 @@ static int sceNetAdhocPtpRecv(int id, u32 dataAddr, u32 dataSizeAddr, int timeou
|
||||
// Library is initialized
|
||||
if (netAdhocInited) {
|
||||
// Valid Socket
|
||||
if (id > 0 && id <= 255 && ptp[id - 1] != NULL && ptp[id - 1]->state == ADHOC_PTP_STATE_ESTABLISHED) {
|
||||
if (id > 0 && id <= MAX_SOCKET && ptp[id - 1] != NULL && ptp[id - 1]->state == ADHOC_PTP_STATE_ESTABLISHED) {
|
||||
// Cast Socket
|
||||
SceNetAdhocPtpStat * socket = ptp[id - 1];
|
||||
|
||||
@@ -3289,7 +3289,7 @@ static int sceNetAdhocPtpFlush(int id, int timeout, int nonblock) {
|
||||
// Library initialized
|
||||
if (netAdhocInited) {
|
||||
// Valid Socket
|
||||
if (id > 0 && id <= 255 && ptp[id - 1] != NULL) {
|
||||
if (id > 0 && id <= MAX_SOCKET && ptp[id - 1] != NULL) {
|
||||
// Cast Socket
|
||||
SceNetAdhocPtpStat* socket = ptp[id - 1];
|
||||
|
||||
|
||||
Reference in new issue
Block a user