Доброе время суток...
Хочу сделать чтобы скрипт разрешал логинеться только определенным логинам.
Для этого отлавливаю пакет AuthLogin из этого пакете проверяю логин и если ему доступ разрешен, то пропускаю этот пакет дальше на логин сервер.
Код:
var
ProtocolVersion: string;
begin
if pck='' then exit;
if FromServer then
case pck[1] of
// Ловим пакет KeyPacket от сервера чтобы он не дублировался
#$2E: begin
pck:='';
end;
end;
if FromClient then
case pck[1] of
//Перехватываем пакет от клиента с протоколом
#$0E: begin
// Записывам ProtocolVersion в переменную
ProtocolVersion:=pck;
//На пакет ProtocolVersion от клиента отвечаем ему пакетом KeyPacket
// Вот тут проблема у меня не могу разобраться с этим пакетом какой ключ писать
// вот сюда WriteQ(0) в остальных вроде все правильно
// вот такой пакет приходит от сервера если на него отправлять
//пакет ProtocolVersion
//2E 01 26 6E 69 A3 47 FB 9C BA 01 00 00 00 01 00 00 00 00 00 00 00 00
// Если ему отправлять такой же пакет то клиент его не принимает
buf:=#$2E;
WriteC(1);
WriteQ(0);
WriteD(1);
WriteD(1);
WriteC(0);
WriteD(0);
SendtoClient;
pck:='';
end;
//Пакет AuthLogin
#$2B: begin
if ReadS(2) = 'Логин которому разрешено заходить' then
begin
//Отсылаем на сервер ProtocolVersion
buf:=ProtocolVersion;
SendToServer;
//Отсылаем на сервер пакет AuthLogin
buf:=pck;
SendToServer;
end
else begin
//шлем логаут на клиента если ему не разрешено заходить
buf:=#$84;
SendToClient;
end;
//Удаляем пакет чтобы он не дублировался
pck:='';
end;
end;
end.
Помогите пожалуйста разобраться с пакетом KeyPacket