Exemplo n.º 1
0
int cisco_out_ap_timesync(struct cw_ElemHandler * eh, 
		struct cw_ElemHandlerParams * params, uint8_t * dst)
{
	cw_set_dword(dst+10 , time(NULL));
        cw_set_byte(dst+10 + 4, 0);

	return 5 + cw_put_elem_vendor_hdr(dst, eh->vendor , eh->id, 5);
}
Exemplo n.º 2
0
int cw_out_generic(struct conn *conn, struct cw_action_out *a, uint8_t * dst)	// ,struct mbag_item * item) 
{


	/* Get the item to put */
	struct mbag_item *item = NULL;
	if (a->get) {
		item = a->get(conn, a);
	}


	/* Size for msg elem header depends on 
	   vendor specific payload */
	int start = a->vendor_id ? 10 : 4;


	int len;
	if (!item) {
		const char *vendor="";
		if ( a->vendor_id ) {
			vendor=cw_strvendor(a->vendor_id);
		}
		if (a->mand) {
			cw_log(LOG_ERR,
			       "Can't put mandatory element %s%d - (%s) into %s. No value found.",
				vendor,
			       a->elem_id, cw_strelemp(conn->actions, a->elem_id)
			       , cw_strmsg(a->msg_id)
			    );
		}
		else{
			cw_dbg(DBG_WARN,"No output for element %s%d -(%s) in %s. Item %s not found.",
				vendor,
			       a->elem_id, cw_strelemp(conn->actions, a->elem_id)
			       , cw_strmsg(a->msg_id),a->item_id);

		}
		return 0;
	} else {
		len = cw_put_item(dst + start, item);
	}


	if (a->vendor_id)
		return len + cw_put_elem_vendor_hdr(dst, a->vendor_id, a->elem_id, len);

	return len + cw_put_elem_hdr(dst, a->elem_id, len);
}
Exemplo n.º 3
0
int cisco_out_lw_path_mtu(struct cw_ElemHandler * eh, 
		struct cw_ElemHandlerParams * params, uint8_t * dst)
{
	char key[CW_KTV_MAX_KEY_LEN];
	int len,max;
		
	sprintf(key,"%s/%s",eh->key,"len");
	len = cw_ktv_get_word(params->conn->local_cfg,key,0);
	if (len == 0)
		return 0;
	sprintf(key,"%s/%s",eh->key,"max");
	max = cw_ktv_get_word(params->conn->local_cfg,key,0);
	
	lw_set_word(dst+16,max);
	lw_set_word(dst+16+2,len);
	memset(dst+16+4,0,len-4);
	
	/* put the lwap elem header */
	lw_set_dword(dst + 10, eh->vendor);
	lw_set_word(dst + 14, eh->id);

	return len + 6 + cw_put_elem_vendor_hdr(dst, eh->vendor, CISCO_ELEM_SPAM_VENDOR_SPECIFIC, len+6);
}