From b2012aa1d22d72d683ccdb915269ea1d09bae99b Mon Sep 17 00:00:00 2001 From: SiSTR0 Date: Tue, 18 Jan 2022 19:53:28 +0100 Subject: [PATCH] Added multiple port support on bgft --- bgft/sender.c | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/bgft/sender.c b/bgft/sender.c index dea8107..abe89a6 100644 --- a/bgft/sender.c +++ b/bgft/sender.c @@ -77,6 +77,9 @@ int main(int argc, const char** argv) } in_addr_t ps4_ip = 0; int interactive = 0; + int binloader_ports[3] = { 9021, 9020, 9090 }; + int binloader_idx = 0; + if(argv[2]) ps4_ip = inet_addr(argv[2]); else @@ -118,19 +121,23 @@ int main(int argc, const char** argv) struct sockaddr_in connect_addr = { .sin_family = AF_INET, .sin_addr = {.s_addr = ps4_ip}, - .sin_port = htons(9021) + .sin_port = htons(binloader_ports[binloader_idx]) }; retry_connect:; SOCKET connect_sock = socket(AF_INET, SOCK_STREAM, 0); if(connect_sock == INVALID_SOCKET) fail(closesocket(accept_sock), "Could not create socket"); + printf("Trying to connect to port %d...\n", binloader_ports[binloader_idx]); if(connect(connect_sock, (struct sockaddr*)&connect_addr, sizeof(connect_addr))) { - if(ERRNO == ECONNREFUSED && connect_addr.sin_port == htons(9021)) + if(ERRNO == ECONNREFUSED && connect_addr.sin_port == htons(binloader_ports[binloader_idx])) { - connect_addr.sin_port = htons(9020); - closesocket(connect_sock); - goto retry_connect; + binloader_idx++; + if (binloader_idx < sizeof(binloader_ports) / sizeof(int)) { + connect_addr.sin_port = htons(binloader_ports[binloader_idx]); + closesocket(connect_sock); + goto retry_connect; + } } fail(fclose(pkg); closesocket(accept_sock); closesocket(connect_sock), "Could not connect to PS4"); }