mirror of
https://github.com/danbulant/node-x11
synced 2026-07-04 18:50:36 +00:00
Byte order specified
This commit is contained in:
parent
4407b398a4
commit
9b0457817a
2 changed files with 23 additions and 13 deletions
25
lib/auth.js
25
lib/auth.js
|
|
@ -9,6 +9,14 @@ function parseXauth( buf )
|
||||||
{
|
{
|
||||||
var offset = 0;
|
var offset = 0;
|
||||||
var auth = [];
|
var auth = [];
|
||||||
|
var cookieProperties = ['address', 'display', 'authName', 'authData'];
|
||||||
|
|
||||||
|
function handleCookieProperty(property) {
|
||||||
|
var length = buf.unpack('n', offset)[0];
|
||||||
|
offset += 2;
|
||||||
|
cookie[property] = buf.unpackString(length, offset);
|
||||||
|
offset += length;
|
||||||
|
}
|
||||||
|
|
||||||
while (offset < buf.length)
|
while (offset < buf.length)
|
||||||
{
|
{
|
||||||
|
|
@ -25,20 +33,13 @@ function parseXauth( buf )
|
||||||
5: 'ServerInterpreted',
|
5: 'ServerInterpreted',
|
||||||
6: 'InternetV6'
|
6: 'InternetV6'
|
||||||
};
|
};
|
||||||
var cookieFields = [
|
|
||||||
'address',
|
|
||||||
'display',
|
|
||||||
'authName',
|
|
||||||
'authData'
|
|
||||||
];
|
|
||||||
cookie.type = buf.unpack('n')[0];
|
cookie.type = buf.unpack('n')[0];
|
||||||
offset += 2;
|
if (!typeToName[cookie.type]) {
|
||||||
for (var i = 0; i < 4; i += 1) {
|
console.warn('Unknown address type');
|
||||||
var length = buf.unpack('n', offset)[0];
|
|
||||||
offset += 2;
|
|
||||||
cookie[cookieFields[i]] = buf.unpackString(length, offset);
|
|
||||||
offset += length;
|
|
||||||
}
|
}
|
||||||
|
offset += 2;
|
||||||
|
//JSHint becomes angry when handleCookieProperty is declared inside loop
|
||||||
|
cookieProperties.forEach(handleCookieProperty);
|
||||||
auth.push(cookie);
|
auth.push(cookie);
|
||||||
}
|
}
|
||||||
return auth;
|
return auth;
|
||||||
|
|
|
||||||
|
|
@ -180,10 +180,19 @@ bl.unpack('C', function(res) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function getByteOrder() {
|
||||||
|
var isLittleEndian = ((new Uint32Array((new Uint8Array([1,2,3,4])).buffer))[0] === 0x04030201);
|
||||||
|
if (isLittleEndian) {
|
||||||
|
return 'l'.charCodeAt(0);
|
||||||
|
} else {
|
||||||
|
return 'B'.charCodeAt(0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function writeClientHello(stream, displayNum, authHost)
|
function writeClientHello(stream, displayNum, authHost)
|
||||||
{
|
{
|
||||||
getAuthString( displayNum, authHost, function( authType, authData ) {
|
getAuthString( displayNum, authHost, function( authType, authData ) {
|
||||||
var byte_order = 'l'.charCodeAt(0); // TODO: byteorder!!!
|
var byte_order = getByteOrder();
|
||||||
var protocol_major = 11; // TODO: config? env?
|
var protocol_major = 11; // TODO: config? env?
|
||||||
var protocol_minor = 0;
|
var protocol_minor = 0;
|
||||||
stream.pack(
|
stream.pack(
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue