| | |
| | | AddRequestProtocolOp protocolOp = message.getAddRequestProtocolOp(); |
| | | AddOperationBasis addOp = new AddOperationBasis(this, nextOperationID.getAndIncrement(), |
| | | message.getMessageID(), controls, protocolOp.getDN(), protocolOp.getAttributes()); |
| | | addOp.setAttachment(REACTIVE_OUT, out); |
| | | |
| | | try { |
| | | addOperationInProgress(queueingStrategy, addOp); |
| | | } catch (DirectoryException de) { |
| | | logger.traceException(de); |
| | | |
| | | final Result result = Responses.newResult(de.getResultCode()); |
| | | setDetails(result, de, addOp.getResponseControls()); |
| | | out.onNext(result); |
| | | out.onComplete(); |
| | | } |
| | | |
| | | addOperationToWorkQueue(queueingStrategy, out, addOp); |
| | | return connectionValid; |
| | | } |
| | | |
| | |
| | | DeleteOperationBasis deleteOp = new DeleteOperationBasis(this, nextOperationID.getAndIncrement(), |
| | | message.getMessageID(), controls, protocolOp.getDN()); |
| | | |
| | | // Add the operation into the work queue. |
| | | deleteOp.setAttachment(REACTIVE_OUT, out); |
| | | try { |
| | | addOperationInProgress(queueingStrategy, deleteOp); |
| | | } catch (DirectoryException de) { |
| | | logger.traceException(de); |
| | | |
| | | final Result result = Responses.newResult(de.getResultCode()); |
| | | setDetails(result, de, deleteOp.getResponseControls()); |
| | | out.onNext(result); |
| | | out.onComplete(); |
| | | } |
| | | |
| | | addOperationToWorkQueue(queueingStrategy, out, deleteOp); |
| | | return connectionValid; |
| | | } |
| | | |
| | |
| | | ModifyOperationBasis modifyOp = new ModifyOperationBasis(this, nextOperationID.getAndIncrement(), |
| | | message.getMessageID(), controls, protocolOp.getDN(), protocolOp.getModifications()); |
| | | |
| | | // Add the operation into the work queue. |
| | | modifyOp.setAttachment(REACTIVE_OUT, out); |
| | | try { |
| | | addOperationInProgress(queueingStrategy, modifyOp); |
| | | } catch (DirectoryException de) { |
| | | logger.traceException(de); |
| | | final Result result = Responses.newResult(de.getResultCode()); |
| | | setDetails(result, de, modifyOp.getResponseControls()); |
| | | out.onNext(result); |
| | | out.onComplete(); |
| | | } |
| | | |
| | | addOperationToWorkQueue(queueingStrategy, out, modifyOp); |
| | | return connectionValid; |
| | | } |
| | | |
| | |
| | | message.getMessageID(), controls, protocolOp.getEntryDN(), protocolOp.getNewRDN(), |
| | | protocolOp.deleteOldRDN(), protocolOp.getNewSuperior()); |
| | | |
| | | // Add the operation into the work queue. |
| | | modifyDNOp.setAttachment(REACTIVE_OUT, out); |
| | | try { |
| | | addOperationInProgress(queueingStrategy, modifyDNOp); |
| | | } catch (DirectoryException de) { |
| | | logger.traceException(de); |
| | | |
| | | final Result result = Responses.newResult(de.getResultCode()); |
| | | setDetails(result, de, modifyDNOp.getResponseControls()); |
| | | out.onNext(result); |
| | | out.onComplete(); |
| | | } |
| | | |
| | | addOperationToWorkQueue(queueingStrategy, out, modifyDNOp); |
| | | return connectionValid; |
| | | } |
| | | |
| | |
| | | protocolOp.getDereferencePolicy(), protocolOp.getSizeLimit(), protocolOp.getTimeLimit(), |
| | | protocolOp.getTypesOnly(), protocolOp.getFilter(), protocolOp.getAttributes()); |
| | | |
| | | // Add the operation into the work queue. |
| | | searchOp.setAttachment(REACTIVE_OUT, out); |
| | | addOperationToWorkQueue(queueingStrategy, out, searchOp); |
| | | return connectionValid; |
| | | } |
| | | |
| | | private void addOperationToWorkQueue( |
| | | QueueingStrategy queueingStrategy, FlowableEmitter<Response> out, Operation operation) { |
| | | operation.setAttachment(REACTIVE_OUT, out); |
| | | try { |
| | | addOperationInProgress(queueingStrategy, searchOp); |
| | | addOperationInProgress(queueingStrategy, operation); |
| | | } catch (DirectoryException de) { |
| | | logger.traceException(de); |
| | | |
| | | final Result result = Responses.newResult(de.getResultCode()); |
| | | setDetails(result, de, searchOp.getResponseControls()); |
| | | setDetails(result, de, operation.getResponseControls()); |
| | | out.onNext(result); |
| | | out.onComplete(); |
| | | } |
| | | |
| | | return connectionValid; |
| | | } |
| | | |
| | | private void setDetails(Result result, DirectoryException de, List<Control> responseControls) { |