Add parsing for mdns QU records (RFC6762)
This commit is contained in:
parent
70d403f0b6
commit
2bddcc9f99
|
@ -222,6 +222,11 @@ public class Record {
|
||||||
*/
|
*/
|
||||||
protected Data payloadData;
|
protected Data payloadData;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* MDNS defines the highest bit of the class as the unicast query bit.
|
||||||
|
*/
|
||||||
|
protected boolean unicastQuery;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Parse a given record based on the full message data and the current
|
* Parse a given record based on the full message data and the current
|
||||||
* stream position.
|
* stream position.
|
||||||
|
@ -233,7 +238,8 @@ public class Record {
|
||||||
this.name = NameUtil.parse(dis, data);
|
this.name = NameUtil.parse(dis, data);
|
||||||
this.type = TYPE.getType(dis.readUnsignedShort());
|
this.type = TYPE.getType(dis.readUnsignedShort());
|
||||||
int clazzValue = dis.readUnsignedShort();
|
int clazzValue = dis.readUnsignedShort();
|
||||||
this.clazz = CLASS.getClass(clazzValue);
|
this.clazz = CLASS.getClass(clazzValue & 0x7fff);
|
||||||
|
this.unicastQuery = (clazzValue & 0x8000) > 0;
|
||||||
if (this.clazz == null) {
|
if (this.clazz == null) {
|
||||||
System.out.println("Unknown class " + clazzValue);
|
System.out.println("Unknown class " + clazzValue);
|
||||||
}
|
}
|
||||||
|
@ -298,6 +304,14 @@ public class Record {
|
||||||
(q.getName().equals(name));
|
(q.getName().equals(name));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* See if this query/response was a unicast query (highest class bit set).
|
||||||
|
* @return True if it is a unicast query/response record.
|
||||||
|
*/
|
||||||
|
public boolean isUnicastQuery() {
|
||||||
|
return unicastQuery;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The generic record name, e.g. "measite.de".
|
* The generic record name, e.g. "measite.de".
|
||||||
* @return The record name.
|
* @return The record name.
|
||||||
|
|
Loading…
Reference in New Issue