MCPcopy Create free account
hub / github.com/devkitPro/3ds-hbmenu / netloaderActivate

Function netloaderActivate

source/ui/netloader.c:61–127  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

59}
60
61static bool netloaderActivate(void)
62{
63 struct sockaddr_in serv_addr;
64 // create udp socket for broadcast ping
65 for (;;)
66 {
67 udpfd = socket(AF_INET, SOCK_DGRAM, 0);
68 if (!(udpfd < 0 && errno == -ENETDOWN))
69 break;
70 svcSleepThread(16666666ULL);
71 if (wantExit)
72 return false;
73 }
74 if (udpfd < 0)
75 {
76 netloaderError("udp socket", errno);
77 return false;
78 }
79
80 memset(&serv_addr, '0', sizeof(serv_addr));
81 serv_addr.sin_family = AF_INET;
82 serv_addr.sin_addr.s_addr = htonl(INADDR_ANY);
83 serv_addr.sin_port = htons(NETWORK_PORT);
84
85 if (bind(udpfd, (struct sockaddr*)&serv_addr, sizeof(serv_addr)) < 0)
86 {
87 netloaderError("bind udp socket", errno);
88 return false;
89 }
90
91 if (!set_socket_nonblocking(udpfd))
92 {
93 netloaderError("listen fcntl", errno);
94 return false;
95 }
96
97 // create listening socket on all addresses on NETWORK_PORT
98
99 listenfd = socket(AF_INET, SOCK_STREAM, 0);
100 if (listenfd < 0)
101 {
102 netloaderError("socket", errno);
103 return false;
104 }
105
106 int rc = bind(listenfd, (struct sockaddr*)&serv_addr, sizeof(serv_addr));
107 if (rc != 0)
108 {
109 netloaderError("bind", errno);
110 return false;
111 }
112
113 if (!set_socket_nonblocking(listenfd))
114 {
115 netloaderError("listen fcntl", errno);
116 return false;
117 }
118

Callers 1

netloaderTaskFunction · 0.85

Calls 2

netloaderErrorFunction · 0.85
set_socket_nonblockingFunction · 0.85

Tested by

no test coverage detected