void cwsend_change_state_event_response(struct conn * conn,int seqnum, struct radioinfo * radioinfo)
{
	cw_dbg(DBG_CW_MSG,"Sending change state response to %s, seq = %d",sock_addr2str(&conn->addr),seqnum);

	struct cwmsg * cwmsg = &conn->resp_msg;	
	cwmsg_init(cwmsg,conn->resp_buffer,CWMSG_CHANGE_STATE_EVENT_RESPONSE,seqnum,NULL);

	cwmsg_addelem_result_code(cwmsg,0);
	cwmsg_addelem_radio_operational_state(cwmsg,radioinfo);
	
	conn_send_response(conn,cwmsg,seqnum);
}
Пример #2
0
void cwsend_join_response(struct conn *conn, int seqnum, int rc, struct radioinfo *radioinfo,
			  struct ac_info *acinfo, struct wtpinfo *wtpinfo)
{
	struct cwmsg *cwmsg = &conn->resp_msg;
	cwmsg_init(cwmsg, conn->resp_buffer, CW_MSG_JOIN_RESPONSE, seqnum, NULL);
	cwmsg->capwap_mode = conn->capwap_mode;

	/* mandatory messagesg elements */
	cwmsg_addelem_result_code(cwmsg, rc);

	cwmsg_addelem_ac_descriptor(cwmsg, acinfo,wtpinfo);
	cwmsg_addelem(cwmsg, CW_ELEM_AC_NAME, acinfo->ac_name, strlen((char *) acinfo->ac_name));
	cwmsg_addelem(cwmsg, CWMSGELEM_ECN_SUPPORT, &acinfo->ecn_support, sizeof(uint8_t));
//	cwmsg_addelem_ctrl_ip_addrs(cwmsg, acinfo);
//      cwmsg_addelem_cw_local_ip_addr(cwmsg,conn);


	/* */
//      cwmsg_addelem_image_identifier(cwmsg,CW_VENDOR_ID_CISCO,(uint8_t*)"/tobias",strlen("/tobias"));


	uint8_t buffer[] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
	buffer[0] = 0;		/* Mwar Type */
	buffer[1] = 1;		/* h/w version */
	buffer[2] = 2;		/* h/w Release */
	buffer[3] = 0;		/* h/w Maint */
	buffer[4] = 3;		/* h/w Build */

	buffer[5] = 5;		/* s/w version */
	buffer[6] = 0;		/* s/w Release */
	buffer[7] = 19;		/* s/w Maint */
	buffer[8] = 2;		/* s/w Build */

	*((uint16_t *) (buffer + 9)) = htons(13);	/* Active MS */
	*((uint16_t *) (buffer + 9 + 2)) = htons(23);	/* Supported MS */
	*((uint16_t *) (buffer + 9 + 4)) = htons(5);	/* Active RAD's */
	*((uint16_t *) (buffer + 9 + 6)) = htons(15);	/* Supported RAD's */
//      cwmsg_addelem_vendor_specific_payload(cwmsg,CW_VENDOR_ID_CISCO, CWVENDOR_CISCO_MWAR, buffer,34);


	conn_send_response(conn, cwmsg, seqnum);

}