Merge pull request #494 from larsfinander/wemo

Fixed ArrayIndexOutOfBoundsException
This commit is contained in:
Lars Finander
2016-02-11 10:14:46 -08:00
2 changed files with 30 additions and 70 deletions

View File

@@ -316,60 +316,40 @@ private def parseEventMessage(String description) {
parts.each { part -> parts.each { part ->
part = part.trim() part = part.trim()
if (part.startsWith('devicetype:')) { if (part.startsWith('devicetype:')) {
def valueString = part.split(":")[1].trim() part -= "devicetype:"
event.devicetype = valueString event.devicetype = part.trim()
} }
else if (part.startsWith('mac:')) { else if (part.startsWith('mac:')) {
def valueString = part.split(":")[1].trim() part -= "mac:"
if (valueString) { event.mac = part.trim()
event.mac = valueString
}
} }
else if (part.startsWith('networkAddress:')) { else if (part.startsWith('networkAddress:')) {
def valueString = part.split(":")[1].trim() part -= "networkAddress:"
if (valueString) { event.ip = part.trim()
event.ip = valueString
}
} }
else if (part.startsWith('deviceAddress:')) { else if (part.startsWith('deviceAddress:')) {
def valueString = part.split(":")[1].trim() part -= "deviceAddress:"
if (valueString) { event.port = part.trim()
event.port = valueString
}
} }
else if (part.startsWith('ssdpPath:')) { else if (part.startsWith('ssdpPath:')) {
def valueString = part.split(":")[1].trim() part -= "ssdpPath:"
if (valueString) { event.ssdpPath = part.trim()
event.ssdpPath = valueString
}
} }
else if (part.startsWith('ssdpUSN:')) { else if (part.startsWith('ssdpUSN:')) {
part -= "ssdpUSN:" part -= "ssdpUSN:"
def valueString = part.trim() event.ssdpUSN = part.trim()
if (valueString) {
event.ssdpUSN = valueString
}
} }
else if (part.startsWith('ssdpTerm:')) { else if (part.startsWith('ssdpTerm:')) {
part -= "ssdpTerm:" part -= "ssdpTerm:"
def valueString = part.trim() event.ssdpTerm = part.trim()
if (valueString) {
event.ssdpTerm = valueString
}
} }
else if (part.startsWith('headers')) { else if (part.startsWith('headers')) {
part -= "headers:" part -= "headers:"
def valueString = part.trim() event.headers = part.trim()
if (valueString) {
event.headers = valueString
}
} }
else if (part.startsWith('body')) { else if (part.startsWith('body')) {
part -= "body:" part -= "body:"
def valueString = part.trim() event.body = part.trim()
if (valueString) {
event.body = valueString
}
} }
} }
event event

View File

@@ -473,68 +473,48 @@ private def parseXmlBody(def body) {
} }
private def parseDiscoveryMessage(String description) { private def parseDiscoveryMessage(String description) {
def device = [:] def event = [:]
def parts = description.split(',') def parts = description.split(',')
parts.each { part -> parts.each { part ->
part = part.trim() part = part.trim()
if (part.startsWith('devicetype:')) { if (part.startsWith('devicetype:')) {
def valueString = part.split(":")[1].trim() part -= "devicetype:"
device.devicetype = valueString event.devicetype = part.trim()
} }
else if (part.startsWith('mac:')) { else if (part.startsWith('mac:')) {
def valueString = part.split(":")[1].trim() part -= "mac:"
if (valueString) { event.mac = part.trim()
device.mac = valueString
}
} }
else if (part.startsWith('networkAddress:')) { else if (part.startsWith('networkAddress:')) {
def valueString = part.split(":")[1].trim() part -= "networkAddress:"
if (valueString) { event.ip = part.trim()
device.ip = valueString
}
} }
else if (part.startsWith('deviceAddress:')) { else if (part.startsWith('deviceAddress:')) {
def valueString = part.split(":")[1].trim() part -= "deviceAddress:"
if (valueString) { event.port = part.trim()
device.port = valueString
}
} }
else if (part.startsWith('ssdpPath:')) { else if (part.startsWith('ssdpPath:')) {
def valueString = part.split(":")[1].trim() part -= "ssdpPath:"
if (valueString) { event.ssdpPath = part.trim()
device.ssdpPath = valueString
}
} }
else if (part.startsWith('ssdpUSN:')) { else if (part.startsWith('ssdpUSN:')) {
part -= "ssdpUSN:" part -= "ssdpUSN:"
def valueString = part.trim() event.ssdpUSN = part.trim()
if (valueString) {
device.ssdpUSN = valueString
}
} }
else if (part.startsWith('ssdpTerm:')) { else if (part.startsWith('ssdpTerm:')) {
part -= "ssdpTerm:" part -= "ssdpTerm:"
def valueString = part.trim() event.ssdpTerm = part.trim()
if (valueString) {
device.ssdpTerm = valueString
}
} }
else if (part.startsWith('headers')) { else if (part.startsWith('headers')) {
part -= "headers:" part -= "headers:"
def valueString = part.trim() event.headers = part.trim()
if (valueString) {
device.headers = valueString
}
} }
else if (part.startsWith('body')) { else if (part.startsWith('body')) {
part -= "body:" part -= "body:"
def valueString = part.trim() event.body = part.trim()
if (valueString) {
device.body = valueString
}
} }
} }
device event
} }
def doDeviceSync(){ def doDeviceSync(){