+ // Snooping this session
+ snoop_send_packet(buf + 4, len - 4, session[s].snoop_ip, session[s].snoop_port);
+ }
+
+ // Increment packet counters
+ session[s].cin += len - 4;
+ session[s].total_cin += len - 4;
+ sess_count[s].cin += len - 4;
+
+ session[s].pin++;
+ eth_tx += len - 4;
+
+ STAT(tun_tx_packets);
+ INC_STAT(tun_tx_bytes, len - 4);
+}
+
+
+// Process CCP messages
+void processccp(tunnelidt t, sessionidt s, u8 *p, u16 l)
+{
+ u8 b[MAXCONTROL];
+ u8 *q;
+
+ CSTAT(call_processccp);
+
+ LOG_HEX(5, "CCP", p, l);
+ switch (l > 1 ? *p : 0)
+ {
+ case ConfigAck:
+ session[s].flags |= SF_CCP_ACKED;
+ return;
+
+ case ConfigReq:
+ if (l < 6) // accept no compression