int cw_in_wtp_descriptor(struct conn *conn, struct cw_action_in *a, uint8_t * data,
			 int len, struct sockaddr *from)
{
	mbag_t mbag = conn->incomming;

	return cw_read_wtp_descriptor(mbag, conn, a, data, len, 0);
}
int capwap_in_wtp_descriptor(struct conn *conn, struct cw_action_in *a, uint8_t * data,
			 int len, struct sockaddr *from)
{

	mbag_t mbag = conn->incomming;

	int rc =cw_read_wtp_descriptor(mbag, conn, a, data, len, NULL);
	return rc;
}
int cw_in_cipwap_wtp_descriptor(struct conn *conn, struct cw_action_in *a, uint8_t * data,
				int len, struct sockaddr *from)
{
	mbag_t mbag = conn->incomming;

	switch (conn->capwap_mode) {
		case CW_MODE_CISCO:
			return cw_read_cisco_wtp_descriptor(mbag, conn, a, data, len,
							    0);
		case CW_MODE_CIPWAP:
			{
				/* try to get the right WTP Descriptor */
				int rc;
				rc = cw_read_wtp_descriptor(mbag, conn, a, data, len,
							    1);

				if (rc) {
					return cw_read_wtp_descriptor(mbag, conn, a,
								      data, len, 0);
				}

				rc = cw_read_cisco_wtp_descriptor(mbag, conn, a,
								  data, len, 0);
				if (rc) {
					return cw_read_cisco_wtp_descriptor(mbag,
									    conn, a, data,
									    len, 0);
				}

				return cw_read_wtp_descriptor(mbag, conn, a, data,
							      len, 0);

			}
		default:
			return cw_read_wtp_descriptor(mbag, conn, a, data, len, 0);


	}

	return 0;
}