static void rfbSendTunnelingCaps(rfbClientPtr cl)
{
  rfbTunnelingCapsMsg caps;
  CARD32 nTypes = 0;            /* We don't support tunneling yet */

  caps.nTunnelTypes = Swap32IfLE(nTypes);
  if (WriteExact(cl, (char *)&caps, sz_rfbTunnelingCapsMsg) < 0) {
    rfbLogPerror("rfbSendTunnelingCaps: write");
    rfbCloseClient(cl);
    return;
  }

  if (nTypes)
    /* Dispatch client input to rfbProcessClientTunnelingType() */
    cl->state = RFB_TUNNELING_TYPE;
  else
    rfbSendAuthCaps(cl);
}
static void rfbSendTunnelingCaps(rfbClientPtr cl)
{
  rfbTunnelingCapsMsg caps;
  CARD32 nTypes = 0;             

  caps.nTunnelTypes = Swap32IfLE(nTypes);
  if (WriteExact(cl, (char *)&caps, sz_rfbTunnelingCapsMsg) < 0) {
    rfbLogPerror("rfbSendTunnelingCaps: write");
    rfbCloseClient(cl);
    return;
  }

  if (nTypes)
     
    cl->state = RFB_TUNNELING_TYPE;
  else
    rfbSendAuthCaps(cl);
}