fix generateload
[l2tpns.git] / test / generateload.c
index 5119920..0b32199 100644 (file)
@@ -284,7 +284,7 @@ int main(int argc, char *argv[])
                                break;
                        case 'm' :
                                max_packets = atoi(optarg);
-                               if (packet_length < 64)
+                               if (max_packets < 50)
                                {
                                        printf("You must send at least 50 packets.\n");
                                        return -1;
@@ -645,14 +645,14 @@ __u16 checksum(unsigned char *addr, int count)
 
        for (; count > 1; count -= 2)
        {
-               sum += ntohs(*(u32 *)addr);
+               sum += ntohs(*(u16 *)addr);
                addr += 2;
        }
 
-       if (count > 1) sum += *(unsigned char *)addr;
+       if (count > 0) sum += *(unsigned char *)addr;
 
        // take only 16 bits out of the 32 bit sum and add up the carries
-       while (sum >> 16)
+       if (sum >> 16)
                sum = (sum & 0xFFFF) + (sum >> 16);
 
        // one's complement the result
@@ -1023,9 +1023,9 @@ void reader_thread(int updfd)/*{{{*/
                                                controlfree(r);
                                                break;
                                        case CONFNAK :
-                                               // Ack whatever address we are given - it's ours
-                                               r = ppp_ipcp(s, CONFACK, time(NULL) % 255);
-                                               ppp_lcp_add_option(r, 3, 4, address); // Request 0.0.0.0
+                                               // Request whatever address we are given - it's ours
+                                               r = ppp_ipcp(s, CONFREQ, time(NULL) % 255);
+                                               ppp_lcp_add_option(r, 3, 4, address);
                                                ppp_send(r);
                                                controlfree(r);
                                                printf("Session %d: %s\n", s, inet_toa(address));