#include <linux/nl80211.h>
#include "regdb.h"
+#include "crda.h"
struct nl80211_state {
struct nl_handle *nl_handle;
nl_handle_destroy(state->nl_handle);
}
-static int reg_handler(struct nl_msg *msg, void *arg)
+static int reg_handler(struct nl_msg __attribute__((unused)) *msg,
+ void __attribute__((unused)) *arg)
{
return NL_SKIP;
}
-static int wait_handler(struct nl_msg *msg, void *arg)
+static int wait_handler(struct nl_msg __attribute__((unused)) *msg, void *arg)
{
int *finished = arg;
*finished = 1;
return NL_STOP;
}
-
-static int error_handler(struct sockaddr_nl *nla, struct nlmsgerr *err, void *arg)
+static int error_handler(struct sockaddr_nl __attribute__((unused)) *nla,
+ struct nlmsgerr *err,
+ void __attribute__((unused)) *arg)
{
fprintf(stderr, "nl80211 error %d\n", err->error);
exit(err->error);
}
-int isalpha_upper(char letter)
-{
- if (letter >= 'A' && letter <= 'Z')
- return 1;
- return 0;
-}
-
-static int is_alpha2(const char *alpha2)
-{
- if (isalpha_upper(alpha2[0]) && isalpha_upper(alpha2[1]))
- return 1;
- return 0;
-}
-
-static int is_world_regdom(const char *alpha2)
-{
- if (alpha2[0] == '0' && alpha2[1] == '0')
- return 1;
- return 0;
-}
-
-static int is_valid_regdom(const char * alpha2)
+static int is_valid_regdom(const char *alpha2)
{
if (strlen(alpha2) != 2)
return 0;
- if (!is_alpha2(alpha2) && !is_world_regdom(alpha2)) {
+ if (!is_alpha2(alpha2) && !is_world_regdom(alpha2))
return 0;
- }
return 1;
}
+
static int put_reg_rule(__u8 *db, int dblen, __be32 ruleptr, struct nl_msg *msg)
{
struct regdb_file_reg_rule *rule;
/* adjust dblen so later sanity checks don't run into the signature */
dblen -= siglen;
- if (dblen <= sizeof(*header)) {
+ if (dblen <= (int)sizeof(*header)) {
fprintf(stderr, "Invalid signature length %d\n", siglen);
return -EINVAL;
}
num_countries = ntohl(header->reg_country_num);
countries = crda_get_file_ptr(db, dblen,
- sizeof(struct regdb_file_reg_country) * num_countries,
- header->reg_country_ptr);
+ sizeof(struct regdb_file_reg_country) * num_countries,
+ header->reg_country_ptr);
for (i = 0; i < num_countries; i++) {
country = countries + i;
}
if (!found_country) {
- fprintf(stderr, "failed to find a country match in regulatory database\n");
+ fprintf(stderr, "No country match in regulatory database.\n");
return -1;
}
r = nl_send_auto_complete(nlstate.nl_handle, msg);
if (r < 0) {
- fprintf(stderr, "failed to send regulatory request: %d\n", r);
+ fprintf(stderr, "Failed to send regulatory request: %d\n", r);
goto cb_out;
}
if (!finished) {
r = nl_wait_for_ack(nlstate.nl_handle);
if (r < 0) {
- fprintf(stderr, "failed to set regulatory domain: %d\n", r);
+ fprintf(stderr, "Failed to set regulatory domain: "
+ "%d\n", r);
goto cb_out;
}
}