Commit 3d0d5a90 authored by Youness Alaoui's avatar Youness Alaoui

Add a default validater function

parent 59169ee7
......@@ -68,6 +68,27 @@ void stun_agent_init (StunAgent *agent, const uint16_t *known_attributes,
}
bool stun_agent_default_validater (StunAgent *agent,
StunMessage *message, uint8_t *username, uint16_t username_len,
uint8_t **password, size_t *password_len, void *user_data)
{
stun_validater_data* val = (stun_validater_data*) user_data;
int i;
for (i = 0; val && val[i].username ; i++) {
if (username_len == val[i].username_len ||
memcmp (username, val[i].username, username_len) == 0) {
*password = (uint8_t *) val[i].password;
*password_len = val[i].password_len;
return true;
}
}
return false;
}
StunValidationStatus stun_agent_validate (StunAgent *agent, StunMessage *msg,
const uint8_t *buffer, size_t buffer_len,
StunMessageIntegrityValidate validater, void * validater_data)
......
......@@ -84,10 +84,21 @@ struct stun_agent_t {
uint32_t usage_flags;
};
typedef struct {
const uint8_t *username;
const size_t username_len;
const uint8_t *password;
const size_t password_len;
} stun_validater_data;
typedef bool (*StunMessageIntegrityValidate) (StunAgent *agent,
StunMessage *message, uint8_t *username, uint16_t username_len,
uint8_t **password, size_t *password_len, void *user_data);
bool stun_agent_default_validater (StunAgent *agent,
StunMessage *message, uint8_t *username, uint16_t username_len,
uint8_t **password, size_t *password_len, void *user_data);
void stun_agent_init (StunAgent *agent, const uint16_t *known_attributes,
StunCompatibility compatibility, uint32_t usage_flags);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment