]> git.seodisparate.com - UDPConnection/commitdiff
Fixes to NetworkTest
authorStephen Seo <seo.disparate@gmail.com>
Mon, 4 Mar 2019 08:48:32 +0000 (17:48 +0900)
committerStephen Seo <seo.disparate@gmail.com>
Mon, 4 Mar 2019 08:48:32 +0000 (17:48 +0900)
src/UDPConnection.c
src/test/UDPC_NetworkTest.c

index 50b61f8fdb6ef218fb74262339f4c15c6ceb26b0..4cde3ab6b27df9b3d34d6b29288bcf140300f51b 100644 (file)
@@ -462,7 +462,7 @@ void UDPC_update(UDPC_Context *ctx)
         (struct sockaddr*) &receivedData,
         &receivedDataSize);
 
-    if(bytes == 0 && (errno == EAGAIN || errno == EWOULDBLOCK))
+    if(bytes == -1 && (errno == EAGAIN || errno == EWOULDBLOCK))
     {
         // expected result for non-blocking socket
         return;
index 87666c37bc78728dce59a43a9badd21a594806e8..73f1ebb6af9f201b3cd0cba60a5839da5412bc1d 100644 (file)
@@ -10,12 +10,27 @@ void printUsage()
     printf("Usage: [-c] -a <addr> -p <target_port> -l <listen_port>\n");
 }
 
+void conCallback(void *userdata, uint32_t addr)
+{
+    *((int*)userdata) = 1;
+}
+
+void discCallback(void *userdata, uint32_t addr)
+{
+    *((int*)userdata) = 0;
+}
+
+void recCallback(void *userdata, char *data, uint32_t size)
+{
+}
+
 int main(int argc, char** argv)
 {
     int isClient = 0;
     uint32_t targetAddress = 0;
     uint16_t targetPort = 0;
     uint16_t listenPort = 0;
+    int isConnected = 0;
 
     --argc; ++argv;
     while(argc > 0)
@@ -51,6 +66,9 @@ int main(int argc, char** argv)
     if(UDPC_get_error(ctx) == UDPC_SUCCESS)
     {
         UDPC_set_logging_type(ctx, 4);
+        UDPC_set_callback_connected(ctx, conCallback, &isConnected);
+        UDPC_set_callback_disconnected(ctx, discCallback, &isConnected);
+        UDPC_set_callback_received(ctx, recCallback, NULL);
         while(UDPC_get_error(ctx) == UDPC_SUCCESS)
         {
             if(isClient)