code: def post_build(self, p, pay):
      
      p += pay
      if self.type in [0, 0x31, 0x32, 0x22]:   # for these, field is reserved (0)
        p = p[:1]+chr(0)+p[2:]
      if self.chksum is None:
        ck = checksum(p[:2]+p[4:])
        p = p[:2]+ck.to_bytes(2, 'big')+p[4:]
      return p
docs: Called implicitly before a packet is sent to compute and place IGMPv3 checksum.
  
      Parameters:
        self    The instantiation of an IGMPv3 class
        p       The IGMPv3 message in hex in network byte order
        pay     Additional payload for the IGMPv3 message