try {
if (msg instanceof HttpResponse) {
HttpResponse response = (HttpResponse) msg;
- if (response.status().code() != 401) {
+ if (response.status().code() == 200) {
if (!response.headers().isEmpty()) {
for (String name : response.headers().names()) {
// Some cameras use first letter uppercase and others dont.
}
}
} else {
- // 401 errors already handled in pipeline by MyNettyAuthHandler.java
+ // Non 200 OK replies are logged and handled in pipeline by MyNettyAuthHandler.java
return;
}
}
if (!"PUT".equals(httpMethod) || (useDigestAuth && digestString == null)) {
request = new DefaultFullHttpRequest(HttpVersion.HTTP_1_1, new HttpMethod(httpMethod), httpRequestURL);
request.headers().set("Host", cameraConfig.getIp() + ":" + port);
- request.headers().set("Connection", HttpHeaderValues.KEEP_ALIVE);
+ request.headers().set("Connection", HttpHeaderValues.CLOSE);
} else {
request = putRequestWithBody;
}
}
private void tryConnecting() {
- if (!thing.getThingTypeUID().getId().equals(GENERIC_THING)) {
+ if (!thing.getThingTypeUID().getId().equals(GENERIC_THING)
+ && !thing.getThingTypeUID().getId().equals(DOORBIRD_THING)) {
onvifCamera = new OnvifConnection(this, cameraConfig.getIp() + ":" + cameraConfig.getOnvifPort(),
cameraConfig.getUser(), cameraConfig.getPassword());
onvifCamera.setSelectedMediaProfile(cameraConfig.getOnvifMediaProfile());