Deleted Added
full compact
regdomain.c (181463) regdomain.c (183244)
1/*-
2 * Copyright (c) 2008 Sam Leffler, Errno Consulting
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright

--- 9 unchanged lines hidden (view full) ---

18 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
19 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
20 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
21 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
23 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24 */
25#ifndef lint
1/*-
2 * Copyright (c) 2008 Sam Leffler, Errno Consulting
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright

--- 9 unchanged lines hidden (view full) ---

18 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
19 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
20 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
21 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
23 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24 */
25#ifndef lint
26static const char rcsid[] = "$FreeBSD: head/sbin/ifconfig/regdomain.c 181463 2008-08-09 11:14:05Z des $";
26static const char rcsid[] = "$FreeBSD: head/sbin/ifconfig/regdomain.c 183244 2008-09-21 22:16:03Z sam $";
27#endif /* not lint */
28
29#include <sys/types.h>
30#include <sys/errno.h>
31#include <sys/mman.h>
32#include <sys/sbuf.h>
33#include <sys/stat.h>
34

--- 350 unchanged lines hidden (view full) ---

385{
386 XML_Parser parser;
387 struct mystate *mt;
388 struct regdomain *dp;
389 struct country *cp;
390 struct freqband *fp;
391 struct netband *nb;
392 const void *id;
27#endif /* not lint */
28
29#include <sys/types.h>
30#include <sys/errno.h>
31#include <sys/mman.h>
32#include <sys/sbuf.h>
33#include <sys/stat.h>
34

--- 350 unchanged lines hidden (view full) ---

385{
386 XML_Parser parser;
387 struct mystate *mt;
388 struct regdomain *dp;
389 struct country *cp;
390 struct freqband *fp;
391 struct netband *nb;
392 const void *id;
393 int i;
393 int i, errors;
394
395 memset(rdp, 0, sizeof(struct regdata));
396 mt = calloc(1, sizeof(struct mystate));
397 if (mt == NULL)
398 return ENOMEM;
399 /* parse the XML input */
400 mt->rdp = rdp;
401 parser = XML_ParserCreate(NULL);

--- 8 unchanged lines hidden (view full) ---

410 }
411 XML_ParserFree(parser);
412
413 /* setup the identifer table */
414 rdp->ident = calloc(sizeof(struct ident), mt->nident + 1);
415 if (rdp->ident == NULL)
416 return ENOMEM;
417 free(mt);
394
395 memset(rdp, 0, sizeof(struct regdata));
396 mt = calloc(1, sizeof(struct mystate));
397 if (mt == NULL)
398 return ENOMEM;
399 /* parse the XML input */
400 mt->rdp = rdp;
401 parser = XML_ParserCreate(NULL);

--- 8 unchanged lines hidden (view full) ---

410 }
411 XML_ParserFree(parser);
412
413 /* setup the identifer table */
414 rdp->ident = calloc(sizeof(struct ident), mt->nident + 1);
415 if (rdp->ident == NULL)
416 return ENOMEM;
417 free(mt);
418
419 errors = 0;
418 i = 0;
419 LIST_FOREACH(dp, &rdp->domains, next) {
420 rdp->ident[i].id = dp->name;
421 rdp->ident[i].p = dp;
422 rdp->ident[i].type = DOMAIN;
423 i++;
424 }
425 LIST_FOREACH(fp, &rdp->freqbands, next) {

--- 9 unchanged lines hidden (view full) ---

435 i++;
436 }
437
438 /* patch references */
439 LIST_FOREACH(dp, &rdp->domains, next) {
440 if (dp->cc != NULL) {
441 id = dp->cc;
442 dp->cc = findid(rdp, id, COUNTRY);
420 i = 0;
421 LIST_FOREACH(dp, &rdp->domains, next) {
422 rdp->ident[i].id = dp->name;
423 rdp->ident[i].p = dp;
424 rdp->ident[i].type = DOMAIN;
425 i++;
426 }
427 LIST_FOREACH(fp, &rdp->freqbands, next) {

--- 9 unchanged lines hidden (view full) ---

437 i++;
438 }
439
440 /* patch references */
441 LIST_FOREACH(dp, &rdp->domains, next) {
442 if (dp->cc != NULL) {
443 id = dp->cc;
444 dp->cc = findid(rdp, id, COUNTRY);
445 if (dp->cc == NULL) {
446 warnx("undefined country \"%s\"",
447 __DECONST(char *, id));
448 errors++;
449 }
443 free(__DECONST(char *, id));
444 }
450 free(__DECONST(char *, id));
451 }
445 LIST_FOREACH(nb, &dp->bands_11b, next)
446 nb->band = findid(rdp, nb->band, FREQBAND);
447 LIST_FOREACH(nb, &dp->bands_11g, next)
448 nb->band = findid(rdp, nb->band, FREQBAND);
449 LIST_FOREACH(nb, &dp->bands_11a, next)
450 nb->band = findid(rdp, nb->band, FREQBAND);
451 LIST_FOREACH(nb, &dp->bands_11ng, next)
452 nb->band = findid(rdp, nb->band, FREQBAND);
453 LIST_FOREACH(nb, &dp->bands_11na, next)
454 nb->band = findid(rdp, nb->band, FREQBAND);
452 LIST_FOREACH(nb, &dp->bands_11b, next) {
453 id = findid(rdp, nb->band, FREQBAND);
454 if (id == NULL) {
455 warnx("undefined 11b band \"%s\"",
456 __DECONST(char *, nb->band));
457 errors++;
458 }
459 nb->band = id;
460 }
461 LIST_FOREACH(nb, &dp->bands_11g, next) {
462 id = findid(rdp, nb->band, FREQBAND);
463 if (id == NULL) {
464 warnx("undefined 11g band \"%s\"",
465 __DECONST(char *, nb->band));
466 errors++;
467 }
468 nb->band = id;
469 }
470 LIST_FOREACH(nb, &dp->bands_11a, next) {
471 id = findid(rdp, nb->band, FREQBAND);
472 if (id == NULL) {
473 warnx("undefined 11a band \"%s\"",
474 __DECONST(char *, nb->band));
475 errors++;
476 }
477 nb->band = id;
478 }
479 LIST_FOREACH(nb, &dp->bands_11ng, next) {
480 id = findid(rdp, nb->band, FREQBAND);
481 if (id == NULL) {
482 warnx("undefined 11ng band \"%s\"",
483 __DECONST(char *, nb->band));
484 errors++;
485 }
486 nb->band = id;
487 }
488 LIST_FOREACH(nb, &dp->bands_11na, next) {
489 id = findid(rdp, nb->band, FREQBAND);
490 if (id == NULL) {
491 warnx("undefined 11na band \"%s\"",
492 __DECONST(char *, nb->band));
493 errors++;
494 }
495 nb->band = id;
496 }
455 }
456 LIST_FOREACH(cp, &rdp->countries, next) {
457 id = cp->rd;
458 cp->rd = findid(rdp, id, DOMAIN);
497 }
498 LIST_FOREACH(cp, &rdp->countries, next) {
499 id = cp->rd;
500 cp->rd = findid(rdp, id, DOMAIN);
501 if (cp->rd == NULL) {
502 warnx("undefined country \"%s\"",
503 __DECONST(char *, id));
504 errors++;
505 }
459 free(__DECONST(char *, id));
460 }
461
506 free(__DECONST(char *, id));
507 }
508
462 return 0;
509 return errors ? EINVAL : 0;
463}
464
465static void
466cleanup_bands(netband_head *head)
467{
468 struct netband *nb;
469
470 for (;;) {

--- 166 unchanged lines hidden ---
510}
511
512static void
513cleanup_bands(netband_head *head)
514{
515 struct netband *nb;
516
517 for (;;) {

--- 166 unchanged lines hidden ---