MCPcopy Create free account
hub / github.com/DeNA/PacketProxy / fromDNAME

Method fromDNAME

src/main/java/core/org/xbill/DNS/Name.java:507–535  ·  view source on GitHub ↗

Generates a new Name to be used when following a DNAME. @param dname The DNAME record to follow. @return The constructed name. @throws NameTooLongException The resulting name is too long.

(DNAMERecord dname)

Source from the content-addressed store, hash-verified

505 * @throws NameTooLongException The resulting name is too long.
506 */
507public Name
508fromDNAME(DNAMERecord dname) throws NameTooLongException {
509 Name dnameowner = dname.getName();
510 Name dnametarget = dname.getTarget();
511 if (!subdomain(dnameowner))
512 return null;
513
514 int plabels = labels() - dnameowner.labels();
515 int plength = length() - dnameowner.length();
516 int pstart = offset(0);
517
518 int dlabels = dnametarget.labels();
519 int dlength = dnametarget.length();
520
521 if (plength + dlength > MAXNAME)
522 throw new NameTooLongException();
523
524 Name newname = new Name();
525 newname.setlabels(plabels + dlabels);
526 newname.name = new byte[plength + dlength];
527 System.arraycopy(name, pstart, newname.name, 0, plength);
528 System.arraycopy(dnametarget.name, 0, newname.name, plength, dlength);
529
530 for (int i = 0, pos = 0; i < MAXOFFSETS && i < plabels + dlabels; i++) {
531 newname.setoffset(i, pos);
532 pos += (newname.name[pos] + 1);
533 }
534 return newname;
535}
536
537/**
538 * Is this name a wildcard?

Callers 3

addMessageMethod · 0.95
addAnswerMethod · 0.80
processResponseMethod · 0.80

Calls 8

subdomainMethod · 0.95
labelsMethod · 0.95
lengthMethod · 0.95
offsetMethod · 0.95
setlabelsMethod · 0.95
setoffsetMethod · 0.95
getNameMethod · 0.65
getTargetMethod · 0.45

Tested by

no test coverage detected