Skip to content

Commit 5bd51c3

Browse files
committed
Use enums for tri-state return values
Resolves #112
1 parent 32f4bb3 commit 5bd51c3

File tree

2 files changed

+17
-11
lines changed

2 files changed

+17
-11
lines changed

include/SDL3_net/SDL_net.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,6 @@ extern "C" {
6161
(SDL_NET_MAJOR_VERSION > X || SDL_NET_MINOR_VERSION >= Y) && \
6262
(SDL_NET_MAJOR_VERSION > X || SDL_NET_MINOR_VERSION > Y || SDL_NET_MICRO_VERSION >= Z))
6363

64-
6564
/**
6665
* This function gets the version of the dynamically linked SDL_net library.
6766
*

src/SDL_net.c

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,13 @@ typedef socklen_t SockLen;
7878
typedef struct sockaddr_storage AddressStorage;
7979
#endif
8080

81+
typedef enum NET_Status
82+
{
83+
NET_FAILURE = -1,
84+
NET_WOULDBLOCK,
85+
NET_SUCCESS,
86+
} NET_Status;
87+
8188
typedef enum NET_SocketType
8289
{
8390
SOCKETTYPE_STREAM,
@@ -214,7 +221,7 @@ static bool SetGetAddrInfoErrorBool(const char *msg, int err)
214221
}
215222

216223
// this blocks!
217-
static int ResolveAddress(NET_Address *addr)
224+
static NET_Status ResolveAddress(NET_Address *addr)
218225
{
219226
SDL_assert(addr != NULL); // we control all this, so this shouldn't happen.
220227
struct addrinfo *ainfo = NULL;
@@ -225,23 +232,23 @@ static int ResolveAddress(NET_Address *addr)
225232
//SDL_Log("rc=%d", rc);
226233
if (rc != 0) {
227234
addr->errstr = CreateGetAddrInfoErrorString(rc);
228-
return -1; // error
235+
return NET_FAILURE; // error
229236
} else if (ainfo == NULL) {
230237
addr->errstr = SDL_strdup("Unknown error (query succeeded but result was NULL!)");
231-
return -1;
238+
return NET_FAILURE;
232239
}
233240

234241
char buf[128];
235242
rc = getnameinfo(ainfo->ai_addr, ainfo->ai_addrlen, buf, sizeof (buf), NULL, 0, NI_NUMERICHOST);
236243
if (rc != 0) {
237244
addr->errstr = CreateGetAddrInfoErrorString(rc);
238245
freeaddrinfo(ainfo);
239-
return -1; // error
246+
return NET_FAILURE; // error
240247
}
241248

242249
addr->human_readable = SDL_strdup(buf);
243250
addr->ainfo = ainfo;
244-
return 1; // success (zero means "still in progress").
251+
return NET_SUCCESS; // success (zero means "still in progress").
245252
}
246253

247254
static int SDLCALL ResolverThread(void *data)
@@ -1335,11 +1342,11 @@ NET_DatagramSocket *NET_CreateDatagramSocket(NET_Address *addr, Uint16 port)
13351342
return sock;
13361343
}
13371344

1338-
static int SendOneDatagram(NET_DatagramSocket *sock, NET_Address *addr, Uint16 port, const void *buf, int buflen)
1345+
static NET_Status SendOneDatagram(NET_DatagramSocket *sock, NET_Address *addr, Uint16 port, const void *buf, int buflen)
13391346
{
13401347
struct addrinfo *addrwithport = MakeAddrInfoWithPort(addr, SOCK_DGRAM, port);
13411348
if (!addrwithport) {
1342-
return -1;
1349+
return NET_FAILURE;
13431350
}
13441351
const int rc = sendto(sock->handle, buf, (size_t) buflen, 0, addrwithport->ai_addr, addrwithport->ai_addrlen);
13451352
freeaddrinfo(addrwithport);
@@ -1350,15 +1357,15 @@ static int SendOneDatagram(NET_DatagramSocket *sock, NET_Address *addr, Uint16 p
13501357
}
13511358

13521359
SDL_assert(rc == buflen);
1353-
return 1;
1360+
return NET_SUCCESS;
13541361
}
13551362

13561363
// see if any pending data can finally be sent, etc
13571364
static int PumpDatagramSocket(NET_DatagramSocket *sock)
13581365
{
13591366
if (!sock) {
13601367
SDL_InvalidParamError("sock");
1361-
return -1;
1368+
return NET_FAILURE;
13621369
}
13631370

13641371
while (sock->pending_output_len > 0) {
@@ -1367,7 +1374,7 @@ static int PumpDatagramSocket(NET_DatagramSocket *sock)
13671374
const int rc = SendOneDatagram(sock, dgram->addr, dgram->port, dgram->buf, dgram->buflen);
13681375
if (rc < 0) { // failure!
13691376
return -1;
1370-
} else if (rc == 0) { // wouldblock
1377+
} else if (rc == NET_WOULDBLOCK) {
13711378
break; // stop trying to send packets for now.
13721379
}
13731380

0 commit comments

Comments
 (0)