void IsoSession_createAcceptSpdu(IsoSession* self, BufferChain buffer, BufferChain payload) { int offset = 0; uint8_t* buf = buffer->buffer; int lengthOffset; int payloadLength = payload->length; buf[offset++] = 14; /* ACCEPT SPDU */ lengthOffset = offset; offset++; offset = encodeConnectAcceptItem(buf, offset, self->protocolOptions); offset = encodeSessionRequirement(self, buf, offset); offset = encodeCalledSessionSelector(self, buf, offset); offset = encodeSessionUserData(self, buf, offset, payloadLength); int spduLength = (offset - lengthOffset - 1) + payloadLength; buf[lengthOffset] = spduLength; buffer->partLength = offset; buffer->length = offset + payloadLength; buffer->nextPart = payload; }
void IsoSession_createConnectSpdu(IsoSession* self, ByteBuffer* buffer, uint8_t payloadLength) { int offset = buffer->size; uint8_t* buf = buffer->buffer; int lengthOffset; buf[offset++] = 13; /* CONNECT SPDU */ lengthOffset = offset; offset++; /* Skip byte for length - fill it later */ offset = encodeConnectAcceptItem(buf, offset, 0); offset = encodeSessionRequirement(self, buf, offset); offset = encodeCallingSessionSelector(self, buf, offset); offset = encodeCalledSessionSelector(self, buf, offset); offset = encodeSessionUserData(self, buf, offset, payloadLength); int spduLength = (offset - lengthOffset - 1) + payloadLength; buf[lengthOffset] = spduLength; buffer->size = offset; }
void IsoSession_createConnectSpdu(IsoSession* self, IsoConnectionParameters isoParameters, BufferChain buffer, BufferChain payload) { int offset = 0; uint8_t* buf = buffer->buffer; int lengthOffset; buf[offset++] = 13; /* CONNECT SPDU */ lengthOffset = offset; offset++; /* Skip byte for length - fill it later */ self->calledSessionSelector = isoParameters->remoteSSelector; self->callingSessionSelector = isoParameters->localSSelector; offset = encodeConnectAcceptItem(buf, offset, 0); offset = encodeSessionRequirement(self, buf, offset); offset = encodeCallingSessionSelector(self, buf, offset); offset = encodeCalledSessionSelector(self, buf, offset); offset = encodeSessionUserData(self, buf, offset, payload->length); int spduLength = (offset - lengthOffset - 1) + payload->length; buf[lengthOffset] = spduLength; buffer->partLength = offset; buffer->length = offset + payload->length; buffer->nextPart = payload; }
void IsoSession_createAcceptSpdu(IsoSession* self, ByteBuffer* buffer, uint8_t payloadLength) { int offset = buffer->size; uint8_t* buf = buffer->buffer; int lengthOffset; buf[offset++] = 14; /* ACCEPT SPDU */ lengthOffset = offset; offset++; offset = encodeConnectAcceptItem(buf, offset, self->protocolOptions); offset = encodeSessionRequirement(self, buf, offset); offset = encodeCalledSessionSelector(self, buf, offset); offset = encodeSessionUserData(self, buf, offset, payloadLength); int spduLength = (offset - lengthOffset - 1) + payloadLength; buf[lengthOffset] = spduLength; buffer->size = offset; }