1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
| "use strict";
|
| const FEATURE_ID = {
| SESSIONRECOVERY: 0x01,
| FEDAUTH: 0x02,
| COLUMNENCRYPTION: 0x04,
| GLOBALTRANSACTIONS: 0x05,
| AZURESQLSUPPORT: 0x08,
| TERMINATOR: 0xFF
| };
|
| module.exports = function featureExtAckParser(parser, colMetadata, options, callback) {
| const token = {
| 'name': 'FEATUREEXTACK',
| 'event': 'featureExtAck',
| 'fedAuth': undefined
| };
|
| function next(done) {
| parser.readUInt8(featureId => {
| if (featureId === FEATURE_ID.TERMINATOR) {
| return done();
| }
|
| parser.readUInt32LE(featureAckDataLen => {
| parser.readBuffer(featureAckDataLen, featureData => {
| if (featureId === FEATURE_ID.FEDAUTH) {
| token.fedAuth = featureData;
| }
|
| next(done);
| });
| });
| });
| }
|
| next(() => {
| callback(token);
| });
| };
|
|