/******************************* (C) LiteMesh **********************************
 * @module  template
 * @file    template.h
 * @version 1.0.0
 * @date    XX.XX.XXXX
 * $brief   template
 *******************************************************************************
 * @history     Version  Author         Comment
 * XX.XX.XXXX   1.0.0    Telenkov D.A.  First release.
 *******************************************************************************
 */

/* Define to prevent recursive  ----------------------------------------------*/
#ifndef __RADIUS_USER_H
#define __RADIUS_USER_H

#include "lwip/sockets.h"
#include <stdbool.h>

typedef enum
{
    RC_ERROR = 0,       // Внутренняя ошибка FreeRadius. 
    RC_LOGIN_ADMIN_OK,  // Успешный логин под admin
    RC_LOGIN_USER_OK,   // Успешный логин под user
    RC_NET_ERR,         // Ошибка сетевого взаимодействия
    RC_ACC_DENIED,      // Не удалось залогиниться, доступ закрыт
    
} RadiusClientResult;


typedef struct 
{
    u8_t   buf1[8];
    fd_set readset;
    u8_t   buf2[8];
    fd_set writeset;
    u8_t   buf3[8];
    fd_set errset;
    u8_t   buf4[8];
  
} fdsets;

RadiusClientResult RC_Login(char* login, char* pas);

/**
  * @brief  
  */
int RD_TestInit(void);


void initFdsets(fdsets *sets);

bool recvSelect(fdsets *sets, int *socket, uint32_t timeout);

int RC_GetAccessRights(char* buf);

#endif /* #ifndef __RADIUS_USER_H */

/****************************** (C) LiteMesh ***************** end of file ****/