@@ -4,7 +4,7 @@ var Buffer = require('buffer').Buffer;
4
4
5
5
var ClientCommands = {
6
6
genToken : 0x0 ,
7
- destroyToken : 0x1 ,
7
+ invalidateToken : 0x1 ,
8
8
getToken : 0x2
9
9
} ;
10
10
@@ -18,6 +18,7 @@ var ServerResponse = {
18
18
var client = new net . Socket ( ) ;
19
19
exports . client = client ;
20
20
var tokenLength ;
21
+
21
22
function int32ToBytes ( num ) {
22
23
arr = new ArrayBuffer ( 4 ) ; // an Int32 takes 4 bytes
23
24
view = new DataView ( arr ) ;
@@ -49,20 +50,35 @@ exports.get_token = function(token, handler) {
49
50
requestQueue . push ( handler ) ;
50
51
} ;
51
52
52
- exports . gen_token = function ( dataBuf , handler ) {
53
+ exports . invalidate = function ( token , handler ) {
53
54
if ( requestQueue . length > 65536 )
54
55
{
55
56
handler ( true ) ;
56
57
return ;
57
58
}
58
- var buff = new Buffer ( dataBuf . length + 1 + 4 ) ;
59
- dataBuf . copy ( buff , 5 , 0 , dataBuf . length ) ;
60
- buff . writeUInt32LE ( dataBuf . length + 1 , 0 ) ;
61
- buff . writeUInt8 ( ClientCommands . genToken , 4 ) ;
59
+ token += '\0' ;
60
+ var buff = new Buffer ( token . length + 1 + 4 ) ;
61
+ buff . writeUInt32LE ( token . length + 1 , 0 ) ;
62
+ buff . writeUInt8 ( ClientCommands . invalidateToken , 4 ) ;
63
+ buff . write ( token , 5 , token . length , 'ascii' ) ;
62
64
client . write ( buff ) ;
63
65
requestQueue . push ( handler ) ;
64
66
} ;
65
67
68
+ exports . gen_token = function ( dataBuf , lifeTime , handler ) {
69
+ if ( requestQueue . length > 65536 )
70
+ {
71
+ handler ( true ) ;
72
+ return ;
73
+ }
74
+ var buff = new Buffer ( dataBuf . length + 1 + 4 + 4 ) ;
75
+ dataBuf . copy ( buff , 9 , 0 , dataBuf . length ) ;
76
+ buff . writeUInt32LE ( dataBuf . length + 1 + 4 , 0 ) ;
77
+ buff . writeUInt8 ( ClientCommands . genToken , 4 ) ;
78
+ buff . writeUInt32LE ( lifeTime , 5 ) ;
79
+ client . write ( buff ) ;
80
+ requestQueue . push ( handler ) ;
81
+ } ;
66
82
67
83
exports . connect = function ( ) {
68
84
client . connect ( 10200 , '127.0.0.1' , function ( ) {
0 commit comments