]> git.meshlink.io Git - utcp/blobdiff - test.c
Don't use ?: without the middle argument.
[utcp] / test.c
diff --git a/test.c b/test.c
index d7e1cdc5788db3dc8638e3fba93ecd09a292fb0b..d138fd60bc168adf713ed4c068b18d0f92abf29a 100644 (file)
--- a/test.c
+++ b/test.c
@@ -25,7 +25,7 @@ long outpktno;
 long dropfrom;
 long dropto;
 double reorder;
-long reorder_dist;
+long reorder_dist = 10;
 double dropin;
 double dropout;
 long total_out;
@@ -73,6 +73,10 @@ ssize_t do_send(struct utcp *utcp, const void *data, size_t len) {
                        return len;
                if(!reorder_data && drand48() < reorder) {
                        reorder_data = malloc(len);
+                       if(!reorder_data) {
+                               debug("Out of memory\n");
+                               return len;
+                       }
                        reorder_len = len;
                        memcpy(reorder_data, data, len);
                        reorder_countdown = 1 + drand48() * reorder_dist;
@@ -106,12 +110,15 @@ int main(int argc, char *argv[]) {
        bool server = argc == 2;
        bool connected = false;
 
-       dropin = atof(getenv("DROPIN") ?: "0");
-       dropout = atof(getenv("DROPOUT") ?: "0");
-       dropfrom = atoi(getenv("DROPFROM") ?: "0");
-       dropto = atoi(getenv("DROPTO") ?: "0");
-       reorder = atof(getenv("REORDER") ?: "0");
-       reorder_dist = atoi(getenv("REORDER_DIST") ?: "10");
+       if(getenv("DROPIN")) dropin = atof(getenv("DROPIN"));
+       if(getenv("DROPOUT")) dropout = atof(getenv("DROPOUT"));
+       if(getenv("DROPFROM")) dropfrom = atoi(getenv("DROPFROM"));
+       if(getenv("DROPTO")) dropto = atoi(getenv("DROPTO"));
+       if(getenv("REORDER")) reorder = atof(getenv("REORDER"));
+       if(getenv("REORDER_DIST")) reorder_dist = atoi(getenv("REORDER_DIST"));
+
+       if(dropto < dropfrom)
+               dropto = 1 << 30;
 
        struct addrinfo *ai;
        struct addrinfo hint = {