Page 1 of 1

Dev Chat: 10/8/2013 - LoginServer

Posted: Tue Oct 08, 2013 12:18 pm
by John Adams
First Public Login connection

[quote]Session Start: Mon Oct 14 12:19:21 2013
[13:30] <@Xinux_Work> the very first packet from the server will need to be coded like eq2 does or it doesn't matter what we throw at it
[13:33] <@Scatman> doesnt matter
[13:33] <@Scatman> it just simply dumps the packet right now
[13:33] <@Scatman> it'll help us understand the flow
[13:34] <@Scatman> i need to go through your posts more thoroughly now and understand the header structure
[13:34] <@Xinux_Work> unless the client get's the response back exactly like it wants it does not go any further
[13:34] <@Scatman> the link john had said the opcode was a uint32...but your examples seem to suggest uint16?
[13:34] <@Scatman> then we'll hardcode them for now
[13:35] <@Xinux_Work> you will need to pull data from the client packet
[13:35] <@Xinux_Work> since the response packet is made up from part of it
[13:35] <~john> viewtopic.php?p=88#p88
[13:36] <~john> I imagine we'll need opcodes (or fake ones) implemented before we actually start responding to stuff.
[13:36] <~john> unless you just want to use default for now
[13:36] <@Scatman> yeah
[13:37] <@Scatman> so what happens....launchpad validates the account, etc, etc. then launches the client. which connects to the login serveR?
[13:38] <@Xinux_Work> the sessionid comes later
[13:38] <@Xinux_Work> if we are talking about packet order
[13:38] <@Xinux_Work> the first packet from the cleint the part we are interested in is the connection_id
[13:39] <@Xinux_Work> since the response packet has to have that in it
[13:39] <@Xinux_Work> it will keep sending the first packet then after 4 or 5 tries it changes the connection_id then tries 4 or 5 times then changaes again... repeat till disconnect
[13:44] <@Scatman> new code on svn
[13:44] <@Scatman> basic client and clientlist stuff
[13:45] <@Scatman> so are the opcodes uint16's then?
[13:51] <~john> Xinux, the order of the command line paramters matter? we can't just parse the args and use the data in whatever order?
[13:53] <@Xinux_Work> order shouldn't mattter we are only sending --sessionid right?
[13:53] <@Xinux_Work> and looking over my last collect some look like int32's and other int16 humm i wonder if the collector is stripping stuff
[13:56] <@Xinux_Work> for example
[13:56] <@Xinux_Work> -- OP_Unknown --
[13:56] <@Xinux_Work> 9/3/2013 14:15:53
[13:56] <@Xinux_Work> 69.174.203.27 -> 10.15.155.168
[13:56] <@Xinux_Work> 0000: 02 00 E5 06 00 00 08 00 00 00 04 03 00 00 B5 0A ................
[13:56] <@Xinux_Work> 0010 00 00 ..
[13:57] <@Xinux_Work> 02 00 if the sever is came from E5 06 00 00 opcode? 08 00 00 00 length
[13:57] <@Xinux_Work> world packets are handle differently then login packets maybe
[13:58] <@Xinux_Work> that is a packet from in game
[13:58] <@Scatman> wait, so what is 02 00?
[13:58] <@Xinux_Work> remember awhile back how i mentioned there is 01 02 03 and something else at the start of the packet
[13:59] <@Scatman> oh, yeah'
[14:00] <@Xinux_Work> 02 came from 69.174.203.27 - 05 came from 69.174.203.8
[14:01] <@Xinux_Work> 06 = chat crap from 69.174.203.8
[14:02] <@Xinux_Work> 01 came from 69.174.203.27
[14:02] <~john> Xinux yes, currently Launcher only sends --sessionid, but we can add more stuff if needed. Hard coded stuff from the session creation script, or dynamic params in the Options dialog.
[14:05] <@Scatman> can i skip the launcher thing?
[14:05] <@Scatman> and just launch the client?
[14:05] <@Xinux_Work> yes just make up a sessionid and add it to the shortcut
[14:06] <@Xinux_Work> so make a shortcut and add --sessionid=1 to the end of it
[14:07] <@Scatman> cool
[14:07] <@Scatman> then i need to add an ini file to tell it where the loginserver is?
[14:07] <@Scatman> the internal thing?
[14:07] <@Xinux_Work> yes
[14:15] <@Scatman> i can pass an ip:port to VGClient.exe too?
[14:21] <@Scatman> or is this still valid? viewtopic.php?f=16&t=9
[14:31] <~john> pfft. skip the launcher thing :p
[14:31] <@Scatman> <--- lazy
[14:31] <~john> OFFENDED!
[14:32] <~john> all my hard work painting pretty colored boxes :'(
[14:34] <@Scatman> well of course i'll use it once we get login going
[14:34] <@Scatman> !
[14:35] <~john> good save!!
[14:35] <@Scatman> the launcher does look badass though
[14:59] <~john> oh you're just sayin that ~blush~
[15:16] <~john> just tried the VG collector, about 10 mins of login, create, and some noob/UI stuff. Kinda tickled the log is semi-readable
[15:17] <~john> btw, VGO whiteboard is working http://vgoemulator.net/index.php?p=whit ... &session=1
[15:25] <@Scatman> sweet
[15:29] <@Scatman> john, for the login.php
[15:29] <~john> yes?
[15:29] <@Scatman> does LaunchPad-internal.ini's Url=<hostname>/login.php then?
[15:30] <~john> no, my launcher/login.php uses no custom ini's. i never even tried them.
[15:31] <~john> but, if you're just trying to point at yourself, I think so. then run login.php on <hostname>
[15:31] <~john> which I assume for you is localhost?
[15:36] <@Xinux_Work> i used
[15:36] <@Xinux_Work> Url=https://vanguard.com
[15:36] <@Xinux_Work> but i also edited my host table so that pointed to me
[15:37] <@Xinux_Work> it has to be a url if i remeber right i don't think it worked by ip
[15:37] <@Xinux_Work> that is if you try and redirect there launcher
[15:49] <~john> if anyone cares, my log viewtopic.php?p=274#p274
[15:55] <@Scatman> sweet that'll definitely come in handy
[15:56] <~john> I'm pasting observations into my whiteboard now. Gotta run soon, so at least I feel i am doing something
[16:02] <@Xinux_Work> 702512982 i think is the accountid
[16:02] <~john> ahh, makes sense. I see it coupled with the sessionId a lot.
[16:03] <~john> i guess I could be posting these to the forum instead. duh.
[16:03] <~john> i'll move them over, so you can tell me how far off I am
[16:17] <@Scatman> xin, does this loginserver.txt file still work?
[16:18] <@Scatman> 192.168.1.150 vanguardlogin1.soe.sony.com
[16:18] <@Scatman> 192.168.1.150 vanguardlogin2.soe.sony.com
[16:18] <@Scatman> 192.168.1.150 vanguardlogin3.soe.sony.com
[16:18] <@Scatman> 192.168.1.150 vanguardlogin4.soe.sony.com
[16:18] <~john> pastey poop
[16:36] <@Xinux_Work> you only need your ip
[16:37] <@Xinux_Work> just a ip in it nothing else
[16:37] <@Xinux_Work> in the bin folder
[16:38] <@Scatman> just 1?
[16:39] <@Xinux_Work> that was all i put in it
[16:39] <@Scatman> ok and it connects on port 9000?
[16:40] <@Xinux_Work> let me double check i used ramsey sudo servers for my testing
[16:43] <@Scatman> ok thanks
[16:43] <@Xinux_Work> with that file it hits port 10101
[16:46] <~john> lol i just found 2 packets; shave and a haircut, and gender changer... with text "Not Implemented" inside
[16:47] <~john> no gender reassignment for YOU, Scatman!
[16:47] <@Scatman> excellent, getting data now thanks
[16:47] <@Scatman> lol
[16:47] <@Scatman> damn it!
[17:00] <~john> there is a character in front of me named "Icritmypants"
[17:14] <@Scatman> rofl
[17:15] <@Scatman> oh crap, i forgot i need to implement wide characters
[17:15] <~john> double-wide. just how I like my wimminz.
[17:16] <@Scatman> ooooo yea
[17:16] <@Scatman> rockin
[17:16] <@Scatman> the bed
[17:18] <@Scatman> xin, any clue to what the integer after opcode is in OP_SessionRequest?
[17:18] <@Scatman> it's weird they don't have a payload size?
[17:18] <@Scatman> but 3, is obviously not the size
[17:19] <@Scatman> actually i guess we really don't need a size huh
[17:19] <~john> payload. lol
[17:20] <@Xinux_Work> i got that being a int from the chat logs from talking with kyle
[17:20] <@Scatman> lol what's funny about payload?
[17:20] <~john> i'm a perv. duh.
[17:21] <~john> bow-chicka-bow-wow
[17:21] <@Xinux_Work> [17:37] <kyle_swgemu> Look at the request
[17:21] <@Xinux_Work> [17:37] <kyle_swgemu> we have opcode
[17:21] <@Xinux_Work> [17:37] <~john> k
[17:21] <@Xinux_Work> [17:37] <kyle_swgemu> 00 01
[17:21] <@Xinux_Work> [17:38] <kyle_swgemu> then 00 00 00 03
[17:21] <@Xinux_Work> [17:38] <kyle_swgemu> is an int
[17:21] <@Xinux_Work> [17:38] <~john> yes. that's where things start looking familiar to me.
[17:21] <@Xinux_Work> [17:38] <kyle_swgemu> (because i already know that, not that you can tell by just looking at it)
[17:21] <@Xinux_Work> [17:38] <kyle_swgemu> both in netbyte order
[17:21] <@Xinux_Work> [17:39] <~john> which means?
[17:21] <@Xinux_Work> [17:39] <kyle_swgemu> endianess
[17:21] <@Xinux_Work> [17:39] <~john> little endian?
[17:21] <@Xinux_Work> [17:39] <kyle_swgemu> yeah
[17:21] <@Xinux_Work> [17:39] <~john> endianess hehe
[17:21] <@Xinux_Work> [17:39] <kyle_swgemu> SOE protocol stuff is in netbyte order
[17:21] <@Scatman> ok
[17:22] <~john> look at me all sounding like i knew what i was talking abou.
[17:22] <@Xinux_Work> http://www.eq2emulator.net/phpBB3/viewt ... yle#p21884
[17:23] <@Xinux_Work> 2nd post under the first screenshot
[17:24] <@Xinux_Work> eq2 packets are pretty much the same here is a eq2 packet
[17:24] <@Xinux_Work> -- Session Request Packet
[17:24] <@Xinux_Work> 9/10/2013 11:23:46
[17:24] <@Xinux_Work> 10.15.155.168 -> 69.174.200.73
[17:24] <@Xinux_Work> 0000 00 01 00 00 00 03 76 4D 86 60 00 00 02 ......vM.`...
[17:38] <~john> roflmao - Witness Protection Pack - 1300SC
[17:38] <@Scatman> ??
[17:38] <~john> allows you to change your name, gender and appearance.
[17:39] <~john> so when you piss everyone on your server off, you can just go WitSec!
[17:41] <@Scatman> rofl
[17:41] <@Scatman> nice
[17:46] <@Scatman> 0000: 00 01 00 00 00 03 38 3E - 9D E6 00 00 02 00 41 50 ......8>......AP
[17:46] <@Scatman> 0010: 49 5F 50 52 4F 54 4F 43 - 4F 4C 5F 31 2E 30 00 I_PROTOCOL_1.0.
[17:46] <@Scatman> LoginSessionRequest
[17:46] <@Scatman> Unknown1 3
[17:46] <@Scatman> SessionID 943627750
[17:46] <@Scatman> MaxUDPSize 512
[17:47] <@Xinux_Work> i wouldn't use sessionid
[17:47] <@Xinux_Work> connection_id
[17:47] <@Xinux_Work> since that isn't the sessionid
[17:48] <@Scatman> i've created a packet struct list, and created that packet. loaded the data in, everything is workin!
[17:48] <@Xinux_Work> sessionid comes later
[17:49] <@Scatman> i need to create a FixedString data struct type
[17:49] <@Scatman> for the API_PROTOCOL_1.0\0
[17:52] <@Scatman> so packets cannot be longer than 512 bytes?
[17:52] <@Scatman> is that what that means?
[17:52] <@Xinux_Work> yup
[17:53] <~john> must be why I am seeing everything broken into small packets. unlike EQ2 that make 2mb long packets
[17:53] <@Scatman> lol ya
[17:53] <@Scatman> some of those packets were ridiculous
[17:53] <~john> although some of these are definitely bigger than 512 bytes.
[17:54] <@Xinux_Work> biggest i've seen is 482
[17:54] <~john> 0x9A90
[17:54] <~john> er. index size. that's the only massive one I see so far though.
[17:56] <~john> opn my log to line 6769, that's the biggie.
[17:56] <@Xinux_Work> correct the raw packet would have it broken down
[17:57] <@Xinux_Work> remeber our collector knows how to handle fragmented packets
[17:57] <~john> oh so it's gluing something back together?
[17:57] <@Xinux_Work> yes
[17:57] <~john> still, that's the only massive one I've seen so far. about 1/6th the way in.

[18:11] <@Scatman> well, let's see how sending the session response goes
[18:18] <~john> hmm, i cannot seem to find the spawn packets for NPCs. Like their plain-english names are not in there.
[18:19] <@Scatman> they doing that weird ascii translation thing?
[18:20] <~john> well, the convo dialogs are a.l.l..l.i.k.e..t.h.i.s, but I think I just found 1 NPC.
[18:20] <~john> and his name is not 2-byte
[18:24] <@Scatman> annoying
[18:24] <@Scatman> well, i guess dialog may need to be in chinese
[18:24] <@Scatman> the names remain english?
[18:27] <~john> just so not used to seeing that. guess EQ2 didn't give a shit? or just built sepErate clients for each region? lol
[18:27] <@Scatman> yeah could've lol
[18:30] <@Scatman> it'd probably help if i included the opcode when serializing outgoing data, huh?
[18:30] <@Scatman> this client seems much more forgiving than eq2's
[18:31] <~john> not crashing if you look at it wrong?
[18:31] <@Scatman> nope
[18:31] <@Scatman> just keeps firing more sessionrequests
[18:31] <@Scatman> eq2 would've been like, "WTF IS THIS SHIT? disconnect"
[18:33] <~john> omg i am standing next to someone doing Diplomacy... totally coming back to me now, the time I played this game for days on end... listening to those silly violin trills and moaning NPCs LOL
[18:34] <~john> well, since the live game Vanguard is still basically in Open Alpha, it's no wonder the client is a debug build
[18:34] <@Scatman> heh
[18:35] <~john> it was so shoddily put together, this is why I am hoping that reversing it will be a snap, compared to EQ2.
[18:43] <@Scatman> yeah it seems a little easier
[18:43] <@Scatman> woohoo! client is accepting our packets
[18:43] <@Scatman> WE'RE IN!
[18:43] <~john> haha nice
[18:44] <~john> in my epic thread, i think there's some stuff about what happens after we connect.
[18:44] <~john> hang on... i have heard no talk of crypto. there is zero encryption in all this shit?
[18:47] <@Scatman> none so far
[18:47] <~john> holy balls.
[18:48] <~john> c'mon. when NPCs shrug and say "Meh", you know it's a good game.
[18:49] <@Scatman> haha
[18:49] <~john> i'm assuming there will be some form of packet compression though, as these NPC records are way too tiny. hope you know how to blow them up
[18:50] <@Scatman> i believe it's the same as eq2emu?
[18:50] <~john> hell, let me just put one in Anal and see.
[18:50] <@Scatman> xin, you gone gone?
[18:51] <@Scatman> 00 09 opcode
[18:51] <@Scatman> 00 00 sequence
[18:51] <@Scatman> 03 00 priority?
[18:51] <@Scatman> 09 00 00 00 53 4F 45 5F 4C 4F 47 49 4E string
[18:51] <@Scatman> 10 00 00 00 44 30 4D 33 62 38 66 71 55 3F 70 78 6A 47 74 47 string (sessionid)
[18:51] <@Scatman> 26 4C crc
[18:51] <@Scatman> doesn't one of those uint16's need to be a sub-opcode?
[18:51] <@Scatman> maybe what he thinks priority is?
[18:52] <@Scatman> because 00 09 going to be on most packets
[18:53] <~john> i don't think 00 09 is the opcode
[18:53] <@Scatman> no?
[18:53] <@Scatman> isn't it OP_PACKET?
[18:53] <~john> isn't that like the eq2 packet, 01 and 09 stuff?
[18:53] <@Scatman> yea
[18:54] <~john> oh, you mean like EqCommand::Blah
[18:54] <~john> that's a good point. I haven't been looking for those opcode::opcode guys.
[18:55] <@Scatman> yeah
[18:55] <~john> are you looking at my log from tonight?
[18:56] <@Scatman> not yet
[18:56] <@Scatman> xinux's post of the login process
[18:56] <~john> okay. my collect might be chopping shit off, so if his is raw wireshark stuff it will probably be better.
[18:58] <~john> but here's my opening packet. compare to his.
[18:58] <~john> 0000: 00 01 00 00 00 03 5D BD CE 91 00 00 02 00 41 50 ......].......AP
[18:58] <~john> 0010 49 5F 50 52 4F 54 4F 43 4F 4C 5F 31 2E 30 00 I_PROTOCOL_1.0.
[18:58] <@Scatman> yep its the same
[18:58] <~john> and my Keygen Response:
[18:58] <~john> 0000: 00 09 00 00 03 00 09 00 00 00 53 4F 45 5F 4C 4F ..........SOE_LO
[18:58] <~john> 0010: 47 49 4E 10 00 00 00 6D 77 3F 61 43 4D 55 51 6E GIN....mw?aCMUQn
[18:58] <~john> 0020 38 4A 79 49 3F 6B 48 8JyI?kH
[18:59] <@Scatman> same
[18:59] <@Scatman> thats the one i'm wroking on
[18:59] <@Scatman> that comes formt he client
[18:59] <~john> and that mw?... thingy, is the session ID, or connection ID, whatever we're calling it this week.
[18:59] <~john> it's consistent through my log.
[19:00] <@Scatman> that's good though, isn't it?
[19:00] <~john> well, my understanding of the login process, sure. lol
[19:00] <~john> but I only got up to building the command-line args and launching the client.
[19:01] <~john> isn't login supposed to validate that sessionID from the login DB, then generate a connectionID that ties them together?
[19:02] <@Scatman> no idea
[19:02] <~john> oh. and you may be right. opcode 00 09?
[19:02] <~john> 0000: 03 00 09 00 00 00 37 30 32 35 31 32 39 38 32 10 ......702512982.
[19:02] <~john> 0010: 00 00 00 6D 77 3F 61 43 4D 55 51 6E 38 4A 79 49 ...mw?aCMUQn8JyI
[19:02] <~john> 0020 3F 6B 48 ?kH
[19:03] <@Scatman> hmm what's that 03 though?
[19:03] <@Scatman> first byte
[19:03] <~john> that is I believe, the connect ID and session ID. maybe packet type?
[19:03] <~john> well this is Collector, so something could be missing.
[19:03] <@Scatman> oh yeah
[19:03] <~john> xinux have anything like that in his post?
[19:03] <@Scatman> not that i see
[19:04] <~john> he's got an 0x03 in there. looks different than mine though.
[19:04] <~john> static const char OP_Combined = 0x03;
[19:05] <@Scatman> oh that could be it
[19:06] <~john> oh yes. see his "rest of hte packets
[19:06] <~john> 0070 00 00 00 37 30 30 31 37 38 38 35 35 10 00 00 00 ...700178855....
[19:06] <~john> 0080 44 57 36 5A 65 36 69 36 6E 38 56 79 62 43 68 63 DW6Ze6i6n8VybChc
[19:06] <~john> 0090 30 74 0t
[19:06] <~john> that looks like mine.
[19:06] <~john> let me paste you both. spam inc
[19:06] <@Scatman> kk
[19:07] <~john> Xinux's
[19:07] <~john> 20 0.0.0.0:62368 :0 146 SendTo
[19:07] <~john> 0000 00 09 00 00 00 19 65 02 00 6F 00 00 00 5B 00 00 ......e..o...[..
[19:07] <~john> 0010 00 0C 00 1A 00 00 00 43 6C 69 65 6E 74 57 6F 72 .......ClientWor
[19:07] <~john> 0020 6C 64 43 6F 6E 6E 65 63 74 69 6F 6E 73 2E 6C 6F ldConnections.lo
[19:07] <~john> 0030 67 37 00 00 00 43 6F 6E 6E 65 63 74 65 64 20 74 g7...Connected t
[19:07] <~john> 0040 6F 20 57 6F 72 6C 64 20 53 65 72 76 65 72 3A 20 o World Server:
[19:07] <~john> 0050 6C 76 73 76 67 6F 2D 30 31 2D 30 31 2E 76 61 6E lvsvgo-01-01.van
[19:07] <~john> 0060 67 75 61 72 64 73 6F 68 2E 6E 65 74 23 03 00 09 guardsoh.net#...
[19:07] <~john> 0070 00 00 00 37 30 30 31 37 38 38 35 35 10 00 00 00 ...700178855....
[19:07] <~john> 0080 44 57 36 5A 65 36 69 36 6E 38 56 79 62 43 68 63 DW6Ze6i6n8VybChc
[19:07] <~john> 0090 30 74 0t
[19:07] <~john> Collector (mine)
[19:07] <~john> -- Client Keygen Response
[19:07] <~john> 10/14/2013 15:02:27
[19:07] <~john> 192.168.1.100 -> 69.174.203.8
[19:07] <~john> 0000: 02 00 6F 00 00 00 5B 00 00 00 0C 00 1A 00 00 00 ..o...[.........
[19:07] <~john> 0010: 43 6C 69 65 6E 74 57 6F 72 6C 64 43 6F 6E 6E 65 ClientWorldConne
[19:07] <~john> 0020: 63 74 69 6F 6E 73 2E 6C 6F 67 37 00 00 00 43 6F ctions.log7...Co
[19:07] <~john> 0030: 6E 6E 65 63 74 65 64 20 74 6F 20 57 6F 72 6C 64 nnected to World
[19:07] <~john> 0040: 20 53 65 72 76 65 72 3A 20 6C 76 73 76 67 6F 2D Server: lvsvgo-
[19:07] <~john> 0050: 30 31 2D 30 31 2E 76 61 6E 67 75 61 72 64 73 6F 01-01.vanguardso
[19:07] <~john> 0060 68 2E 6E 65 74 h.net
[19:07] <~john> -- OP_AllCharactersDescRequestMsg --
[19:07] <~john> 10/14/2013 15:02:27
[19:07] <~john> 192.168.1.100 -> 69.174.203.8
[19:07] <~john> 0000: 03 00 09 00 00 00 37 30 32 35 31 32 39 38 32 10 ......702512982.
[19:07] <~john> 0010: 00 00 00 6D 77 3F 61 43 4D 55 51 6E 38 4A 79 49 ...mw?aCMUQn8JyI
[19:07] <~john> 0020 3F 6B 48 ?kH
[19:07] <~john> i think that's what he meant by Combined Packets.
[19:07] <@Scatman> ok so yeah yours stripped some off
[19:08] <~john> yeah I am missing 00 09 00 00 00 19 65
[19:09] <~john> I see a lot of those packets with ClientWorldConnections.log (or similar) text in them. But no logs on the drive. Maybe their local logs?
[19:11] <@Scatman> could be...
[19:11] <@Scatman> maybe there's an option to enable it?
[19:12] <@Scatman> it's weird. it's like a logging packet
[19:12] <@Scatman> Connected to World Server: <name>
[19:14] <~john> yeah. there used to be more worlds lol
[19:14] <~john> now with both players, they only needed 1
[19:15] <@Scatman> lol
[19:15] <@Scatman> downsize
[19:16] <@Scatman> 5 :0 0.0.0.0:52277 100 RecvFrom
[19:16] <@Scatman> 0000: 00 09 00 00 00 19 20 02 00 01 00 00 00 16 00 00 ...... .........
[19:16] <@Scatman> 0010: 00 6A 00 6F 00 68 00 6E 00 74 00 65 00 73 00 74 .j.o.h.n.t.e.s.t
[19:16] <@Scatman> 0020: 00 38 00 38 00 00 00 1E 02 00 25 00 00 00 14 00 .8.8......%.....
[19:16] <@Scatman> 0030: 00 00 05 00 00 00 FF FF FF FF 54 00 65 00 6C 00 ..........T.e.l.
[19:16] <@Scatman> 0040: 6F 00 6E 00 00 00 17 02 00 28 07 00 00 0D 00 00 o.n......(......
[19:16] <@Scatman> 0050: 00 FF FF FF FF FF FF FF FF 00 00 00 00 00 03 04 ................
[19:16] <@Scatman> 0060: 00 01 63 B9
[19:16] <@Scatman> yeah that 00 19 has got to be the opcode type
[19:16] <@Scatman> or subopcode
[19:16] <@Scatman> whatever you wanna call it
[19:16] <@Scatman> not priority
[19:18] <~john> hmm
[19:18] <@Scatman> not sure what else it'd be
[19:18] <~john> i think he got that terminology from the SOE Protocol docs
[19:18] <@Scatman> or how to distinguish the packet
[19:19] <@Scatman> my god i love chicken pot pie
[19:19] <~john> meeeee toooooo
[19:20] <~john> this make any sense/use to you? http://wiki.vgoemulator.net/Docs/Backup ... _Breakdown
[19:23] <@Scatman> oh, so that 19 means it's a combined packet
[19:23] <@Scatman> acording to this
[19:25] <@Scatman> wtf
[19:25] <@Scatman> i still don't understand how to distinguish what type of 09 it is
[19:27] <~john> oh, you looking at this?
[19:27] <~john> (00 09) (sequence) (00 19) (Size1) (SWG PACKET) (Size2) (SWG PACKET)
[19:27] <~john> SOE op. sequence multi size data size data
[19:27] <@Scatman> yea
[19:27] <~john> beats me, man.
[19:29] <~john> are you still enthralled by this challenge?
[19:30] <@Scatman> even more now
[19:30] <~john> awesome.
[19:30] <@Scatman> this is where it starts getting fun!
[19:32] <~john> can you tell me where the Size is in this packet then? I cannot seem to find it lol
[19:33] <~john> 00 09 26 F6 01 00 87 00 00 00 86 29 7B 41 03 08
[19:33] <~john> 7F 98 CD DE 82 82 90 7B 45 08 60 16 00 00 00 00
[19:33] <~john> 00 F8 13 50 1E 21 40 68 54 05 00 00 00 76 11 43
[19:33] <~john> 68 69 20 53 61 75 20 4F 70 65 6E 70 61 6C 6D 00
[19:33] <~john> 53 0A 14 A4 B2 30 B6 32 39 90 24 B7 39 3A B9 BA
[19:33] <~john> 31 BA 37 B9 14 80 AB B7 A0 20 E4 5E 11 52 01 C8
[19:33] <~john> 00 00 00 78 CD 09 00 0C 00 00 00 B0 85 03 00 00
[19:33] <~john> 59 22 07 00 00 78 01 00 00 00 1B 0A 00 00 20 3E
[19:33] <~john> F0 B1 B7 1B 00 00 C8 FF FF FF FF E3 FF FF FF FF
[19:33] <~john> 03
[19:33] <~john> i tried right after 87 00 00 00, and it crashes anal.
[19:33] <@Scatman> i don't think these packets have sizes
[19:33] <@Scatman> unless there are combined packets
[19:34] <~john> well this is a spawn packet. aren't they usually compressed?
[19:34] <@Scatman> maybe not in vgo?
[19:34] <@Scatman> did you try 87 00 00 00 as the size?
[19:34] <~john> hmm. maybe the details come in a packet after this? sigh.
[19:35] <~john> i did. gets me the submit bug report dialog
[19:35] <@Scatman> so 135..
[19:36] <@Scatman> 8 rows of 16 bytes = 128
[19:36] <@Scatman> +7
[19:36] <@Scatman> =135
[19:36] <~john> right, these are the packets I am very confused of what the opcode is. since 4 spawns, all have different "opcodes"
[19:36] <~john> so that's why I lost count lol
[19:36] <@Scatman> is 87 00 00 00 is the size
[19:37] <~john> i guess it is?
[19:37] <@Scatman> there are 135 bytes after 0x87
[19:37] <~john> hmm, then this must not be packed. anal won't unpack it lol
[19:54] <@Scatman> yeah that 00 19 has gotta be the opcode type22:53:30.233 W Net Recieved packet with unknown opcode 0x0009 (9)
[19:54] <@Scatman> 0000: 00 09 00 00 03 00 09 00 - 00 00 53 4F 45 5F 4C 4F ..........SOE_LO
[19:54] <@Scatman> 0010: 47 49 4E 01 00 00 00 31 - 3A FE GIN....1:.
[19:54] <@Scatman> 00 00 is def the ack
[19:55] <@Scatman> because i need to send an ack back for 00 00
[19:55] <@Scatman> 03 00 has to be the typ
[19:55] <@Scatman> Type
[19:55] <@Scatman> HAS!
[19:55] <~john> right.
[19:55] <~john> HAS2B
[19:57] <@Scatman> 768 thought
[19:57] <@Scatman> seems high
[19:57] <@Scatman> eh, guess not
[19:57] <@Scatman> 65k is max
[19:58] <~john> 768 what?
[19:58] <@Scatman> as the opcode type
[19:59] <~john> ohhh...
[19:59] <~john> it ain't netbyte or whatevs? little end?
[19:59] <~john> 00 03?
[20:00] <~john> oh i see. 00 03 00 09
[20:00] <~john> i was all confused about your 09 opcode idea from 0000: 00 09
[20:01] <~john> but then i thought, Scatman ain't do dummy!
[20:01] <@Scatman> lol well i'm just guessing
[20:01] <~john> hey, so is my doctor. it's all good.
[20:01] <@Scatman> rofl
[20:03] <@Scatman> man, lots of fragmented packets
[20:05] <~john> is that bad?
[20:05] <@Scatman> no
[20:05] <@Scatman> just need to implement it soon than i had thought
[20:06] <@Scatman> SOONER
[20:13] <@Scatman> going to commit what i have for now
[20:14] <~john> okie dokie
[20:15] <@Scatman> co-mitted
[20:16] <~john> so I can log in and play, right?
[20:16] <@Scatman> yep!

[20:36] <~john> so what happens if you aim your VGClient.exe at vgoemulator.net:10101?
[20:39] <@Scatman> uhh
[20:39] <@Scatman> let me try
[20:39] <~john> just UDP, right?
[20:39] <@Scatman> yea
[20:40] <~john> weird.
[20:40] <@Scatman> it's only 2 packets right now though lol
[20:40] <~john> lol
[20:40] <@Scatman> after i receive the next packet and send an ack, i'm assuming we'll see a login screen
[20:41] <@Scatman> i mean a char select
[20:41] <~john> oh, does the loginserver burp anything out to the screen right now?
[20:41] <@Scatman> yea
[20:41] <~john> i see no burpage.
[20:41] <@Scatman> hmm
[20:41] <~john> oh, let me check workstation firewall. hmm.
[20:42] <@Scatman> k
[20:43] <~john> yep, i'm wide open.
[20:43] <@Scatman> wtzfook?
[20:43] <@Scatman> trying again
[20:43] <@Scatman> anything?
[20:44] <~john> nada. you want me to try a different port?
[20:44] <~john> maybe it is hard-coded?
[20:45] <@Scatman> no, it's automatically choosing that port
[20:45] <@Scatman> yeah 10101 is hardcoded
[20:45] <@Scatman> client side, anyway
[20:45] <~john> hang on, I got all freaky last week and enable a bunch of security shit lol
[20:45] <@Scatman> lol kk
[20:45] <~john> Server listening on localhost:10101
[20:46] <@Scatman> try vgoemulator.net?
[20:46] <~john> yes. isn't that what I said?
[20:47] <~john> or you want the IP?
[20:47] <@Scatman> i mean, try listening as that hostname
[20:47] <~john> ohh, duh.
[20:48] <~john> can't bind
[20:48] <@Scatman> hmm
[20:48] <@Scatman> waht the eff
[20:48] <@Scatman> vgoemulator.net
[20:48] <~john> 20:48:19.912 E Net Error binding UDP server socket: The requested address i
[20:48] <~john> s not valid in its context.
[20:48] <@Scatman> that's spelled right..
[20:49] <~john> <listen host="vgoemulator.net" port="10101" />
[20:49] <~john> ah hah! your first bug!
[20:51] <~john> oh. shit.
[20:51] <~john> hang on.
[20:51] <@Scatman> lol
[20:51] <@Scatman> yeah i'm not sure what that error is
[20:52] <~john> i have the same NAT rule going to 3 computers LOL
[20:53] <@Scatman> haha
[20:53] <~john> hey, at least I figured out why my EQ2 dev server wasn't taking calls anymore
[20:54] <@Scatman> rofl
[20:54] <@Scatman> VGOEmu is ROBUST! and tells you what's wrong
[20:55] <~john> still unable to launch, that UDP error
[20:56] <~john> what's the magic command to get a C++ window from closing? cin?
[20:57] <@Scatman> fgetc(stdin);
[20:58] <@Scatman> might need #include <stdio.h>
[21:00] <~john> well, the domain name resolves fine from this box. just won't open.
[21:00] <~john> probably not important right now, unless it is a fundamental flaw in the Net code
[21:01] <@Scatman> i'm getting it too when i use scatmanfatman.com
[21:02] <~john> you run it, and it finds your name/port? i cannot even run login
[21:02] <@Scatman> no it's fine when i use an internal ip
[21:02] <~john> scatmanfatman.com is hosted inside your house?
[21:03] <@Scatman> but my hostname does not work
[21:03] <~john> ohhh
[21:03] <@Scatman> yep
[21:03] <@Scatman> let me try my external ip
[21:04] <~john> nope.
[21:04] <@Scatman> yeah same
[21:04] <@Scatman> WTF
[21:05] <~john> okay so I can stop jacking up my network settings because it's not just me? lo
[21:05] <@Scatman> try your internal ip
[21:06] <~john> you mean the IP of my Windows 7 machine?
[21:06] <@Scatman> i don't think you can listen on an external ip.....
[21:06] <@Scatman> can you?
[21:06] <@Scatman> i mean bind
[21:06] <@Scatman> yeah
[21:06] <~john> how does EQ2Emu do it?
[21:06] <@Scatman> the one your router assigns you
[21:06] <~john> my router doesn't. i have a DNS server.
[21:07] <@Scatman> try localhost again?
[21:07] <~john> 192.168.1.100 worked.
[21:07] <~john> hit me!
[21:07] <~john> ohh. i see what's going on.
[21:07] <~john> i am not in the DMZ, so vgoemulator.net makes no diff.
[21:08] <@Scatman> ah
[21:08] <@Scatman> client's up
[21:08] <~john> 21:07:53.715 I Net New client connected from 68.37.29.240
[21:08] <~john> 21:07:53.716 I Net Received session request from 68.37.29.240
[21:08] <~john> 21:07:53.716 I Net Connection ID is 1483400854
[21:08] <~john> 21:07:53.717 I Net Max UDP size is 512
[21:08] <@Scatman> should've gotta dump of the reply
[21:08] <~john> that's you!
[21:08] <~john> yeah. didn't think you wanted to see the dump lol
[21:08] <@Scatman> ok
[21:08] <@Scatman> cool
[21:09] <~john> too bad you didn't spell Received right though.
[21:09] <~john>
[21:09] <~john> that's a sepErate issue.
[21:09] <@Scatman> i before e, except after c!
[21:10] <~john> Recieved packet with unknown opcode 0x0009 (9)
[21:10] <@Scatman> oh lol
[21:10] <~john> silly little hobbit
[21:10] <@Scatman> thought you meant the "received session request" line
[21:10] <~john> haha
[21:10] <~john> <-- QA
[21:10] <~john> it hit me in the face like a transcontinental bus
[21:10] <@Scatman> you should get a timeout from me
[21:10] <@Scatman> after 30s
[21:11] <~john> 21:08:03.626 W Net Recieved packet with unknown opcode 0x0009 (9)
[21:11] <~john> 0000: 00 09 00 00 03 00 09 00 - 00 00 53 4F 45 5F 4C 4F ..........SOE_LO
[21:11] <~john> 0010: 47 49 4E 01 00 00 00 31 - 3A FE GIN....1:.
[21:11] <~john> 21:08:36.002 I Net Client from 68.37.29.240 disconnected: timed out after 3
[21:11] <~john> 0 seconds
[21:11] <@Scatman> schwing
[21:11] <~john> badass scatto
[21:11] <~john> something that was ZERO lines of code, just replied to someone elses game client. You should be proud
[21:12] <@Scatman> this is just the beginning of the fun!
[21:12] <@Scatman> can't wait to see the char select
[21:12] <@Scatman> gotta figure out how to identify those 0x09 packets though
[21:12] <~john> indeed. you want to just hardcode some stuff to see it work?
[21:12] <~john> or work more on the structs part, start building xml's?
[21:13] <@Scatman> i can hard code it
[21:13] <@Scatman> for now
[21:13] <@Scatman> i actually do create those structs though
[21:13] <@Scatman> in Main.cpp
[21:13] <@Scatman> they just aren't in a config file atm
[21:13] <@Scatman> so that's all actually working
[21:14] <@Scatman> i need to get some sleep though. stayed up all night last night
[21:14] <~john> i saw, your post times LOL
[21:14] <~john> nighty night!
[21:15] <@Scatman> talk to ya tomorrow[/quote]