Пример #1
0
        public override bool Connect()
        {
            if (!base.Connect()) return false;

            //Send the GateConnectHeader
            UruStream s = new UruStream(new NetworkStream(fSocket, false));
            s.BufferWriter();
            fHeader.Write(s);
            s.WriteInt(20);
            s.WriteBytes(Guid.Empty.ToByteArray());
            s.FlushWriter();
            s.Close();

            //Init encryption
            if (!base.NetCliConnect(4))
                return false;

            fSocket.BeginReceive(new byte[2], 0, 2, SocketFlags.Peek, new AsyncCallback(IReceive), null);
            return true;
        }
Пример #2
0
        public void Ping(int time)
        {
            File_PingPong ping = new File_PingPong();
            ping.fPingTime = time;

            ResetIdleTimer();
            lock (fSocket) {
                MemoryStream ms = new MemoryStream();
                UruStream s = new UruStream(ms);

                s.WriteUInt(12);
                s.WriteInt((int)FileCli2Srv.PingRequest);
                ping.Write(s);

                fSocket.Send(ms.ToArray());

                s.Close();
                ms.Close();
            }
        }
Пример #3
0
 public void Write(UruStream s)
 {
     s.WriteUInt(fTransID);
     s.WriteInt((int)fResult);
     s.WriteInt(fRefs.Length);
     foreach (VaultNodeRef r in fRefs)
         r.Write(s);
 }
Пример #4
0
 public void Write(UruStream s)
 {
     s.WriteUInt(fTransID);
     s.WriteInt((int)fResult);
     if (fNodeIDs == null) fNodeIDs = new uint[0];
     s.WriteInt(fNodeIDs.Length);
     for (int i = 0; i < fNodeIDs.Length; i++)
         s.WriteUInt(fNodeIDs[i]);
 }
Пример #5
0
 public void Write(UruStream s)
 {
     s.WriteUInt(fTransID);
     s.WriteInt((int)fResult);
     s.WriteUInt(fFileSize);
     s.WriteUInt(fChunkPos);
     if (fChunkData == null) fChunkData = new byte[0];
     s.WriteInt(fChunkData.Length);
     s.WriteBytes(fChunkData);
 }
Пример #6
0
 public void Write(UruStream s)
 {
     s.WriteUInt(fTransID);
     s.WriteInt((int)fResult);
 }
Пример #7
0
 public void Write(UruStream s)
 {
     s.WriteInt(fPingTime);
 }
Пример #8
0
 public void Write(UruStream s)
 {
     if (fData == null) fData = new byte[0];
     s.WriteUInt(fTransID);
     s.WriteUInt((uint)fResult);
     s.WriteUInt(fReaderID);
     s.WriteUInt(fFileSize);
     s.WriteInt(fData.Length);
     s.WriteBytes(fData);
 }
Пример #9
0
        public void Write(UruStream s)
        {
            s.WriteUInt(fTransID);
            s.WriteInt((int)fResult);
            s.WriteUInt(fAgeMcpID);
            s.WriteBytes(fAgeInstanceUuid.ToByteArray());
            s.WriteUInt(fAgeVaultID);

            if (fGameServerIP == null) {
                s.WriteInt(0);
            } else {
                //Little Endian IP
                byte[] ip = fGameServerIP.GetAddressBytes();
                Array.Reverse(ip);
                s.WriteBytes(ip);
            }
        }
Пример #10
0
 public void Write(UruStream s)
 {
     s.WriteInt(fAddr);
     s.WriteBytes(fToken.ToByteArray());
 }
Пример #11
0
 public void Write(UruStream s)
 {
     s.WriteUInt(fTransID);
     s.WriteInt((int)fResult);
     s.WriteUInt(fPlayerID);
     s.WriteUInt(fExplorer);
     s.WriteUnicodeStringV16(fName, 40);
     s.WriteUnicodeStringV16(fModel, 64);
 }
Пример #12
0
 public void Write(UruStream s)
 {
     s.WriteUInt(fTransID);
     s.WriteInt(fChallenge);
     s.WriteUnicodeStringV16(fAccount, 64);
     for (int i = 0; i < fHash.UruHash.Length; i++)
         s.WriteUInt(fHash.UruHash[i]);
     s.WriteUnicodeStringV16(fAuthToken, 64);
     s.WriteUnicodeStringV16(fOS, 8);
 }
Пример #13
0
 public void Write(UruStream s)
 {
     s.WriteUInt(fTransID);
     s.WriteInt((int)fResult);
     s.WriteBytes(fAcctGuid.ToByteArray());
     s.WriteUInt(fFlags);
     s.WriteUInt(fBillingType);
     if (fDroidKey == null) fDroidKey = new uint[4];
     for (int i = 0; i < fDroidKey.Length; i++)
         s.WriteUInt(fDroidKey[i]);
 }
Пример #14
0
 public void Write(UruStream s)
 {
     s.WriteInt((int)fReason);
 }
Пример #15
0
 public void Write(UruStream s)
 {
     s.WriteUInt(fTransID);
     s.WriteInt((int)fResult);
     s.WriteInt(fAges.Length);
     foreach (NetAgeInfo nai in fAges)
         nai.Write(s);
 }
Пример #16
0
 public void Write(UruStream s)
 {
     s.WriteUInt(fPingTime);
     s.WriteUInt(fTransID);
     if (fPayload == null) s.WriteInt(0);
     else {
         s.WriteInt(fPayload.Length);
         s.WriteBytes(fPayload);
     }
 }
Пример #17
0
        public void Write(UruStream s)
        {
            s.WriteUInt(fTransID);
            s.WriteUInt(fNodeID);
            s.WriteBytes(fRevisionID.ToByteArray());

            if (fNodeData == null) fNodeData = new byte[0];
            s.WriteInt(fNodeData.Length);
            s.WriteBytes(fNodeData);
        }
Пример #18
0
        public override bool Connect()
        {
            if (!base.Connect()) return false;

            //Send the AuthConnectHeader
            UruStream s = new UruStream(new NetworkStream(fSocket, false));
            s.BufferWriter();
            fHeader.Write(s);
            s.WriteInt(20);
            s.WriteBytes(Guid.Empty.ToByteArray());
            s.FlushWriter();
            s.Close();

            //Init encryption
            if(!base.NetCliConnect(41))
                return false;

            //Register the client...
            //Don't require the user to do this.
            Auth_RegisterRequest req = new Auth_RegisterRequest();
            req.fBuildID = fHeader.fBuildID;

            fStream.BufferWriter();
            fStream.WriteUShort((ushort)AuthCli2Srv.ClientRegisterRequest);
            req.Write(fStream);
            fStream.FlushWriter();

            fSocket.BeginReceive(new byte[2], 0, 2, SocketFlags.Peek, new AsyncCallback(IReceive), null);
            fChgHack.Reset(); fChgHack.WaitOne();

            return true;
        }
Пример #19
0
 public void Write(UruStream s)
 {
     s.WriteUInt(fTransID);
     s.WriteUInt((uint)fResult);
     s.WriteUInt(fReaderID);
     s.WriteInt(fNumFiles);
     s.WriteInt(fData.Length / 2); //Wide char buffer...
     s.WriteBytes(fData);
 }
Пример #20
0
 public void Write(UruStream s)
 {
     s.WriteUInt(fTransID);
     s.WriteBytes(fAgeUUID.ToByteArray());
     s.WriteBytes(fParentUUID.ToByteArray());
     s.WriteUnicodeStringV16(fFilename, 260);
     s.WriteUnicodeStringV16(fInstanceName, 260);
     s.WriteUnicodeStringV16(fUserName, 260);
     s.WriteUnicodeStringV16(fDescription, 1024);
     s.WriteInt(fSequenceNumber);
     s.WriteInt(fLanguage);
     s.WriteUInt(fCreatorID);
 }
Пример #21
0
        public void Write(UruStream s)
        {
            s.WriteUInt(fMsgType);

            if (fBuffer == null) fBuffer = new byte[0];
            s.WriteInt(fBuffer.Length);
            s.WriteBytes(fBuffer);
        }
Пример #22
0
 public void Write(UruStream s)
 {
     s.WriteUInt(fTransID);
     s.WriteInt((int)fResult);
     if (fNodeData == null) fNodeData = new byte[0];
     s.WriteInt(fNodeData.Length);
     s.WriteBytes(fNodeData);
 }
Пример #23
0
 public void Write(UruStream s)
 {
     s.WriteBytes(fInstanceUuid.ToByteArray());
     s.WriteUnicodeStringF(fFilename, 64);
     s.WriteUnicodeStringF(fInstanceName, 64);
     s.WriteUnicodeStringF(fUserName, 64);
     s.WriteUnicodeStringF(fDescription, 1024);
     s.WriteUInt(fSequenceNumber);
     s.WriteInt(fLanguage);
     s.WriteUInt(fPopulation);
     s.WriteUInt(fCurrPopulation);
 }
Пример #24
0
 public void Write(UruStream s)
 {
     s.WriteUInt(fTransID);
     s.WriteInt(fNodeData.Length);
     s.WriteBytes(fNodeData);
 }
Пример #25
0
        public uint RequestBuildID()
        {
            File_BuildIdRequest req = new File_BuildIdRequest();
            req.fTransID = IGetTransID();

            ResetIdleTimer();
            lock (fSocket) {
                MemoryStream ms = new MemoryStream();
                UruStream s = new UruStream(ms);

                s.WriteUInt(12);
                s.WriteInt((int)FileCli2Srv.BuildIdRequest);
                req.Write(s);

                fSocket.Send(ms.ToArray());

                s.Close();
                ms.Close();
            }

            return req.fTransID;
        }
Пример #26
0
        public byte[] ToArray()
        {
            MemoryStream ms = new MemoryStream();
            UruStream s = new UruStream(ms);

            ulong bit = 1;
            Fields f = NodeFields;
            s.WriteULong((ulong)f);
            while (bit != 0 && bit <= (ulong)f) {
                switch ((f & (Fields)bit)) {
                    case Fields.kBlob_1:
                        s.WriteInt(fBlob[0].Length);
                        s.WriteBytes(fBlob[0]);
                        break;
                    case Fields.kBlob_2:
                        s.WriteInt(fBlob[1].Length);
                        s.WriteBytes(fBlob[1]);
                        break;
                    case Fields.kCreateAgeName:
                        s.WriteUnicodeStringV32(fCreateAgeName);
                        break;
                    case Fields.kCreateAgeUuid:
                        s.WriteBytes(fCreateAgeUuid.ToByteArray());
                        break;
                    case Fields.kCreateTime:
                        s.WriteUInt(ToUnixTime(fCreateTime));
                        break;
                    case Fields.kCreatorIdx:
                        s.WriteUInt(fCreatorIdx.Value);
                        break;
                    case Fields.kCreatorUuid:
                        s.WriteBytes(fCreatorUuid.ToByteArray());
                        break;
                    case Fields.kInt32_1:
                        s.WriteInt(fInt32[0].Value);
                        break;
                    case Fields.kInt32_2:
                        s.WriteInt(fInt32[1].Value);
                        break;
                    case Fields.kInt32_3:
                        s.WriteInt(fInt32[2].Value);
                        break;
                    case Fields.kInt32_4:
                        s.WriteInt(fInt32[3].Value);
                        break;
                    case Fields.kIString64_1:
                        s.WriteUnicodeStringV32(fIString64[0]);
                        break;
                    case Fields.kIString64_2:
                        s.WriteUnicodeStringV32(fIString64[1]);
                        break;
                    case Fields.kModifyTime:
                        s.WriteUInt(ToUnixTime(fModifyTime));
                        break;
                    case Fields.kNodeIdx:
                        s.WriteUInt(fIdx);
                        break;
                    case Fields.kNodeType:
                        s.WriteUInt((uint)fNodeType);
                        break;
                    case Fields.kString64_1:
                        s.WriteUnicodeStringV32(fString64[0]);
                        break;
                    case Fields.kString64_2:
                        s.WriteUnicodeStringV32(fString64[1]);
                        break;
                    case Fields.kString64_3:
                        s.WriteUnicodeStringV32(fString64[2]);
                        break;
                    case Fields.kString64_4:
                        s.WriteUnicodeStringV32(fString64[3]);
                        break;
                    case Fields.kString64_5:
                        s.WriteUnicodeStringV32(fString64[4]);
                        break;
                    case Fields.kString64_6:
                        s.WriteUnicodeStringV32(fString64[5]);
                        break;
                    case Fields.kText_1:
                        s.WriteUnicodeStringV32(fText[0]);
                        break;
                    case Fields.kText_2:
                        s.WriteUnicodeStringV32(fText[1]);
                        break;
                    case Fields.kUInt32_1:
                        s.WriteUInt(fUInt32[0].Value);
                        break;
                    case Fields.kUInt32_2:
                        s.WriteUInt(fUInt32[1].Value);
                        break;
                    case Fields.kUInt32_3:
                        s.WriteUInt(fUInt32[2].Value);
                        break;
                    case Fields.kUInt32_4:
                        s.WriteUInt(fUInt32[3].Value);
                        break;
                    case Fields.kUuid_1:
                        s.WriteBytes(fUuid[0].ToByteArray());
                        break;
                    case Fields.kUuid_2:
                        s.WriteBytes(fUuid[1].ToByteArray());
                        break;
                    case Fields.kUuid_3:
                        s.WriteBytes(fUuid[2].ToByteArray());
                        break;
                    case Fields.kUuid_4:
                        s.WriteBytes(fUuid[3].ToByteArray());
                        break;
                }

                bit <<= 1;
            }

            byte[] buf = ms.ToArray();
            s.Close();
            ms.Close();
            return buf;
        }