struct radius_msg *radius_msg_new(u8 code, u8 identifier) { struct radius_msg *msg; msg = os_malloc(sizeof(*msg)); if (msg == NULL) return NULL; if (radius_msg_initialize(msg, RADIUS_DEFAULT_MSG_SIZE)) { os_free(msg); return NULL; } radius_msg_set_hdr(msg, code, identifier); return msg; }
/** * radius_msg_new - Create a new RADIUS message * @code: Code for RADIUS header * @identifier: Identifier for RADIUS header * Returns: Context for RADIUS message or %NULL on failure * * The caller is responsible for freeing the returned data with * radius_msg_free(). */ struct radius_msg * radius_msg_new(u8 code, u8 identifier) { struct radius_msg *msg; msg = os_zalloc(sizeof(*msg)); if (msg == NULL) return NULL; msg->buf = wpabuf_alloc(RADIUS_DEFAULT_MSG_SIZE); if (msg->buf == NULL || radius_msg_initialize(msg)) { radius_msg_free(msg); return NULL; } msg->hdr = wpabuf_put(msg->buf, sizeof(struct radius_hdr)); radius_msg_set_hdr(msg, code, identifier); return msg; }