sendHelper(ipHdr, hdr, bufOfs);
sendHelper(ipHdr, hdr, 0);
	public synchronized void send(IPv4Header ipHdr, TCPHeader hdr, byte[] data, int offset, int length)	throws SocketException {		log.debug("outChannel.send(ipHdr,hdr,data," + offset + ", " + length + ")");		// Check for maximum datalength		if (length > mss) {			throw new IllegalArgumentException("dataLength must be <= mss");		}		// Wait until there is space in the output buffer		while ((length > dataBuffer.getFreeSize()) && !controlBlock.isReset()) {			try {				wait();			} catch (InterruptedException ex) {				// Ignore			}		}		if (controlBlock.isReset()) {			throw new SocketException("Connection reset");		}		// Add to databuffer		final int bufOfs = dataBuffer.add(data, offset, length);		// Update tcp header		hdr.setDataLength(length);		// Do the actual send		sendHelper(ipHdr, hdr, bufOfs);	}