Set capture buffer size

-B buffer_size/--buffer-size=buffer_size“ option can be used to change capture buffer size (code is here):

  1. ......
  2. #if defined(HAVE_PCAP_CREATE) || defined(_WIN32)
  3. case 'B':
  4. Bflag = atoi(optarg)*1024;
  5. if (Bflag <= 0)
  6. error("invalid packet buffer size %s", optarg);
  7. break;
  8. #endif /* defined(HAVE_PCAP_CREATE) || defined(_WIN32) */
  9. ......

The unit is KiB. pcap_set_buffer_size() is called to set buffer size (code is here):

  1. ......
  2. if (Bflag != 0) {
  3. status = pcap_set_buffer_size(pc, Bflag);
  4. if (status != 0)
  5. error("%s: Can't set buffer size: %s",
  6. device, pcap_statustostr(status));
  7. }
  8. ......

On Windows, a special processing is needed (code is here):

  1. ......
  2. #if !defined(HAVE_PCAP_CREATE) && defined(_WIN32)
  3. if(Bflag != 0)
  4. if(pcap_setbuff(pd, Bflag)==-1){
  5. error("%s", pcap_geterr(pd));
  6. }
  7. #endif /* !defined(HAVE_PCAP_CREATE) && defined(_WIN32) */
  8. ......