def recv(self): REQUEST_SIZE = 8192 data = '' done = False while not done: recvData = self._socket.recv(REQUEST_SIZE) if len(recvData) < REQUEST_SIZE: done = True data += recvData answers = [] while len(data) > 0: try: ldapMessage, remaining = decoder.decode(data, asn1Spec=LDAPMessage()) except SubstrateUnderrunError: # We need more data remaining = data + self._socket.recv(REQUEST_SIZE) else: answers.append(ldapMessage) data = remaining self._messageId += 1 return answers
def recv(self): REQUEST_SIZE = 8192 data = b'' done = False while not done: recvData = self._socket.recv(REQUEST_SIZE) if len(recvData) < REQUEST_SIZE: done = True data += recvData response = [] while len(data) > 0: try: message, remaining = decoder.decode(data, asn1Spec=LDAPMessage()) except SubstrateUnderrunError: # We need more data remaining = data + self._socket.recv(REQUEST_SIZE) else: if message['messageID'] == 0: # unsolicited notification name = message['protocolOp']['extendedResp']['responseName'] or message['responseName'] notification = KNOWN_NOTIFICATIONS.get(name, "Unsolicited Notification '%s'" % name) if name == NOTIFICATION_DISCONNECT: # Server has disconnected self.close() raise LDAPSessionError( error=int(message['protocolOp']['extendedResp']['resultCode']), errorString='%s -> %s: %s' % (notification, message['protocolOp']['extendedResp']['resultCode'].prettyPrint(), message['protocolOp']['extendedResp']['diagnosticMessage']) ) response.append(message) data = remaining return response
def send(self, message): ldapMessage = LDAPMessage() ldapMessage['messageID'] = IntegerPositive(self._messageId) ldapMessage['protocolOp'] = message data = encoder.encode(ldapMessage) return self._socket.sendall(data)
def send(self, protocolOp, message): ldapMessage = LDAPMessage() ldapMessage['messageID'] = IntegerPositive(self._messageId) ldapMessage['protocolOp'] = ProtocolOp().setComponentByName( protocolOp, message) data = encoder.encode(ldapMessage) return self._socket.sendall(data)
def send(self, request, controls=None): message = LDAPMessage() message['messageID'] = random.randrange(1, 2147483647) message['protocolOp'].setComponentByType(request.getTagSet(), request) if controls is not None: message['controls'].setComponents(*controls) data = encoder.encode(message) return self._socket.sendall(data)
def send(self, protocolOp, request, controls=None): message = LDAPMessage() message['messageID'] = IntegerPositive(self._messageId) message['protocolOp'] = ProtocolOp().setComponentByName( protocolOp, request) if controls is not None: message['controls'] = Controls().setComponents(*controls) data = encoder.encode(message) return self._socket.sendall(data)