Success!  My problem was I set query=1 in my CP_LOGIN.

It looks like the MacTrek client opens one socket, does a query, then closes that socket and opens a second socket to play.  I think I spotted a query=1 in the first socket and emulated that.  Doh!

Thank you for including this line in your debugging info:

> CP_LOGIN query= 0 name= guest

Now I have a bunch of other packet types to parse.  The universe is eager to be updated! ;-)  Hopefully I’ll get started on some drawing code tomorrow.  

Darrell


> On Mar 4, 2019, at 4:20 PM, James Cameron <quozl at laptop.org> wrote:
> 
> No worries.  You may be interested in the Gytha client TCP and UDP
> module, at 300 lines.
> 
> https://github.com/quozl/gytha/blob/master/gytha/client.py <https://github.com/quozl/gytha/blob/master/gytha/client.py>
> 
> Our earlier use of the socket API for networking was because it was
> the lowest common denominator on UNIX systems.  Socket API also
> appears in the Gytha client for same reason.
> 
> When you're building on top of a larger stack, interoperability
> becomes a challenge.
> 
> On Mon, Mar 04, 2019 at 03:57:26PM -0800, Darrell Root wrote:
>> Thank you for that packet dump in netrek format.  I’ll have to upgrade my logs
>> to be that helpful.  ;-)
>> 
>> I’m actively troubleshooting using your data.
>> 
>> On a general netrek-dev note, programming with Swift for most things is cool.
>> I’m using Apple’s new Network framework to send my data (I believe they are
>> working with the IETF on that), so no more BSD socket API.  My TCP reader/
>> writer is around 100 lines (have not implemented UDP).  Packet analyzer is
>> larger of course.
>> 
>> One Swift pain point is generating arbitrary packets.  In C you can just send a
>> struct out a network interface.  But Swift does not guarantee the layout of
>> native-Swift Structs, particularly Structs with arrays.  Swift also does not
>> have arrays of predefined sizes.
>> 
>> For simple structs with no arrays/strings, it works to create the Struct
>> natively in Swift and spit it out the network interface (at least for Swift
>> 4.2)..  But whenever I have a struct with an array or String, I have to define
>> the struct in C and import it into Swift.  This makes it “difficult” to layout
>> the packet in Swift, although I’m now past that challenge.
>> 
>> I remember looking at the Netrek source code back in 1991.  I was impressed,
>> but the C was mostly beyond my abilities.  I looked at it again recently.  It's
>> still beyond my abilities.  Swift just works better with the way my brain is
>> wired.  I salute you all!
>> 
>> Darrell
>> 
>>    On Mar 4, 2019, at 2:52 PM, James Cameron <[1]quozl at laptop.org <mailto:quozl at laptop.org>> wrote:
>> 
>>    Here's a packet dump from Gytha just now.
>> 
>>    [2]http://dev.laptop.org/~quozl/z/1h0wOC.txt <http://dev.laptop.org/~quozl/z/1h0wOC.txt>
>> 
>>    Note how CP_FEATURE is sent early, and there's a burst of SP_FEATURE
>>    after CP_LOGIN and before SP_LOGIN.
>> 
>>    Also, I was wrong in previous mail, SP_YOU is seen before CP_LOGIN,
>>    but with zero flags.
>> 
>>    On Mon, Mar 04, 2019 at 02:26:14PM -0800, Darrell Root wrote:
>> 
>>        I’ll take a look at those documents although I’m already all over
>>        packets.h
>>        from the distribution.
>> 
>>        Here’s the full sequence in order.  SP_YOU comes early before I send my
>>        login
>>        authentication as guest.
>> 
>>        Darrell
>> 
>>        "Sending CP_PACKET 27"
>>        "Received SP_PLAYER_INFO"
>>        "Received SP_PLAYER_INFO"
>>        "Received SP_PLAYER_INFO"
>>        "Received SP_PLAYER_INFO"
>>        "Received SP_PLAYER_INFO"
>>        "Received SP_PLAYER_INFO"
>>        "Received SP_PLAYER_INFO"
>>        "Received SP_PLAYER_INFO"
>>        "Received SP_PLAYER_INFO"
>>        "Received SP_PLAYER_INFO"
>>        "Received SP_PLAYER_INFO"
>>        "Received SP_PLAYER_INFO"
>>        "Received SP_PLAYER_INFO"
>>        "Received SP_PLAYER_INFO"
>>        "Received SP_PLAYER_INFO"
>>        "Received SP_PLAYER_INFO"
>>        "Received SP_PLAYER_INFO"
>>        "Received SP_PLAYER_INFO"
>>        "Received SP_PLAYER_INFO"
>>        "Received SP_PLAYER_INFO"
>>        "Received SP_YOU"
>>        "Sending CP_LOGIN 8"
>>        "Received SP_PL_LOGIN"
>>        "Received SP_HOSTILE"
>>        "Received SP_PLAYER_INFO"
>>        "Received SP_KILLS"
>>        "Received SP_PSTATUS"
>>        "Received SP_PLAYER"
>>        "Received SP_PL_LOGIN"
>>        "Received SP_HOSTILE"
>>        "Received SP_PLAYER_INFO"
>>        "Received SP_KILLS"
>>        "Received SP_PSTATUS"
>>        "Received SP_FLAGS"
>>        "Received SP_PLAYER"
>>        "Received SP_PL_LOGIN"
>>        "Received SP_HOSTILE"
>>        "Received SP_PLAYER_INFO"
>>        "Received SP_KILLS"
>>        "Received SP_PSTATUS"
>>        "Received SP_FLAGS"
>>        "Received SP_PLAYER"
>>        "Received SP_PL_LOGIN"
>>        "Received SP_HOSTILE"
>>        "Received SP_PLAYER_INFO"
>>        "Received SP_KILLS"
>>        "Received SP_PSTATUS"
>>        "Received SP_FLAGS"
>>        "Received SP_PLAYER"
>>        "Received SP_PL_LOGIN"
>>        "Received SP_HOSTILE"
>>        "Received SP_PLAYER_INFO"
>>        "Received SP_KILLS"
>>        "Received SP_PSTATUS"
>>        "Received SP_FLAGS"
>>        "Received SP_PLAYER"
>>        "Received SP_PL_LOGIN"
>>        "Received SP_HOSTILE"
>>        "Received SP_PLAYER_INFO"
>>        "Received SP_KILLS"
>>        "Received SP_PSTATUS"
>>        "Received SP_FLAGS"
>>        "Received SP_PLAYER"
>>        "Received SP_PL_LOGIN"
>>        "Received SP_HOSTILE"
>>        "Received SP_PLAYER_INFO"
>>        "Received SP_KILLS"
>>        "Received SP_PSTATUS"
>>        "Received SP_FLAGS"
>>        "Received SP_PLAYER"
>>        "Received SP_PL_LOGIN"
>>        "Received SP_HOSTILE"
>>        "Received SP_PLAYER_INFO"
>>        "Received SP_KILLS"
>>        "Received SP_PSTATUS"
>>        "Received SP_FLAGS"
>>        "Received SP_PLAYER"
>>        "Received SP_PL_LOGIN"
>>        "Received SP_HOSTILE"
>>        "Received SP_PLAYER_INFO"
>>        "Received SP_KILLS"
>>        "Received SP_PSTATUS"
>>        "Received SP_FLAGS"
>>        "Received SP_PLAYER"
>>        "Received SP_PL_LOGIN"
>>        "Received SP_HOSTILE"
>>        "Received SP_PLAYER_INFO"
>>        "Received SP_KILLS"
>>        "Received SP_PSTATUS"
>>        "Received SP_FLAGS"
>>        "Received SP_PLAYER"
>>        "Received SP_PL_LOGIN"
>>        "Received SP_HOSTILE"
>>        "Received SP_PLAYER_INFO"
>>        "Received SP_KILLS"
>>        "Received SP_PSTATUS"
>>        "Received SP_FLAGS"
>>        "Received SP_PLAYER"
>>        "Received SP_PL_LOGIN"
>>        "Received SP_HOSTILE"
>>        "Received SP_PLAYER_INFO"
>>        "Received SP_KILLS"
>>        "Received SP_PSTATUS"
>>        "Received SP_FLAGS"
>>        "Received SP_PLAYER"
>>        "Received SP_PL_LOGIN"
>>        "Received SP_HOSTILE"
>>        "Received SP_PLAYER_INFO"
>>        "Received SP_KILLS"
>>        "Received SP_PSTATUS"
>>        "Received SP_FLAGS"
>>        "Received SP_PLAYER"
>>        "Received SP_PL_LOGIN"
>>        "Received SP_HOSTILE"
>>        "Received SP_PLAYER_INFO"
>>        "Received SP_KILLS"
>>        "Received SP_PSTATUS"
>>        "Received SP_FLAGS"
>>        "Received SP_PLAYER"
>>        "Received SP_PL_LOGIN"
>>        "Received SP_HOSTILE"
>>        "Received SP_PLAYER_INFO"
>>        "Received SP_KILLS"
>>        "Received SP_PSTATUS"
>>        "Received SP_FLAGS"
>>        "Received SP_PLAYER"
>>        "Received SP_PL_LOGIN"
>>        "Received SP_HOSTILE"
>>        "Received SP_PLAYER_INFO"
>>        "Received SP_KILLS"
>>        "Received SP_PSTATUS"
>>        "Received SP_FLAGS"
>>        "Received SP_PLAYER"
>>        "Received SP_PL_LOGIN"
>>        "Received SP_HOSTILE"
>>        "Received SP_PLAYER_INFO"
>>        "Received SP_KILLS"
>>        "Received SP_PSTATUS"
>>        "Received SP_FLAGS"
>>        "Received SP_PLAYER"
>>        "Received SP_PL_LOGIN"
>>        "Received SP_HOSTILE"
>>        "Received SP_PLAYER_INFO"
>>        "Received SP_KILLS"
>>        "Received SP_PSTATUS"
>>        "Received SP_FLAGS"
>>        "Received SP_PLAYER"
>>        "Received SP_PL_LOGIN"
>>        "Received SP_HOSTILE"
>>        "Received SP_PLAYER_INFO"
>>        "Received SP_KILLS"
>>        "Received SP_PSTATUS"
>>        "Received SP_FLAGS"
>>        "Received SP_PLAYER"
>>        "Received SP_PL_LOGIN"
>>        "Received SP_HOSTILE"
>>        "Received SP_PLAYER_INFO"
>>        "Received SP_KILLS"
>>        "Received SP_PSTATUS"
>>        "Received SP_FLAGS"
>>        "Received SP_PLAYER"
>>        "Received SP_PL_LOGIN"
>>        "Received SP_HOSTILE"
>>        "Received SP_PLAYER_INFO"
>>        "Received SP_KILLS"
>>        "Received SP_PSTATUS"
>>        "Received SP_FLAGS"
>>        "Received SP_PLAYER"
>>        "Received SP_PL_LOGIN"
>>        "Received SP_HOSTILE"
>>        "Received SP_PLAYER_INFO"
>>        "Received SP_KILLS"
>>        "Received SP_PSTATUS"
>>        "Received SP_FLAGS"
>>        "Received SP_PLAYER"
>>        "Received SP_PL_LOGIN"
>>        "Received SP_HOSTILE"
>>        "Received SP_PLAYER_INFO"
>>        "Received SP_KILLS"
>>        "Received SP_PSTATUS"
>>        "Received SP_FLAGS"
>>        "Received SP_PLAYER"
>>        "Received SP_PL_LOGIN"
>>        "Received SP_HOSTILE"
>>        "Received SP_PLAYER_INFO"
>>        "Received SP_KILLS"
>>        "Received SP_PSTATUS"
>>        "Received SP_FLAGS"
>>        "Received SP_PLAYER"
>>        "Received SP_PL_LOGIN"
>>        "Received SP_HOSTILE"
>>        "Received SP_PLAYER_INFO"
>>        "Received SP_KILLS"
>>        "Received SP_PSTATUS"
>>        "Received SP_FLAGS"
>>        "Received SP_PLAYER"
>>        "Received SP_PL_LOGIN"
>>        "Received SP_HOSTILE"
>>        "Received SP_PLAYER_INFO"
>>        "Received SP_KILLS"
>>        "Received SP_PSTATUS"
>>        "Received SP_FLAGS"
>>        "Received SP_PLAYER"
>>        "Received SP_PL_LOGIN"
>>        "Received SP_HOSTILE"
>>        "Received SP_PLAYER_INFO"
>>        "Received SP_KILLS"
>>        "Received SP_PSTATUS"
>>        "Received SP_FLAGS"
>>        "Received SP_PLAYER"
>>        "Received SP_PL_LOGIN"
>>        "Received SP_HOSTILE"
>>        "Received SP_PLAYER_INFO"
>>        "Received SP_KILLS"
>>        "Received SP_PSTATUS"
>>        "Received SP_FLAGS"
>>        "Received SP_PLAYER"
>>        "Received SP_PL_LOGIN"
>>        "Received SP_HOSTILE"
>>        "Received SP_PLAYER_INFO"
>>        "Received SP_KILLS"
>>        "Received SP_PSTATUS"
>>        "Received SP_FLAGS"
>>        "Received SP_PLAYER"
>>        "Received SP_PL_LOGIN"
>>        "Received SP_HOSTILE"
>>        "Received SP_PLAYER_INFO"
>>        "Received SP_KILLS"
>>        "Received SP_PSTATUS"
>>        "Received SP_FLAGS"
>>        "Received SP_PLAYER"
>>        "Received SP_PL_LOGIN"
>>        "Received SP_HOSTILE"
>>        "Received SP_PLAYER_INFO"
>>        "Received SP_KILLS"
>>        "Received SP_PSTATUS"
>>        "Received SP_FLAGS"
>>        "Received SP_PLAYER"
>>        "Received SP_PL_LOGIN"
>>        "Received SP_HOSTILE"
>>        "Received SP_PLAYER_INFO"
>>        "Received SP_KILLS"
>>        "Received SP_PSTATUS"
>>        "Received SP_FLAGS"
>>        "Received SP_PLAYER"
>>        "Received SP_PLANET_LOC"
>>        "Received SP_PLANET_LOC"
>>        "Received SP_PLANET_LOC"
>>        "Received SP_PLANET_LOC"
>>        "Received SP_PLANET_LOC"
>>        "Received SP_PLANET_LOC"
>>        "Received SP_PLANET_LOC"
>>        "Received SP_PLANET_LOC"
>>        "Received SP_PLANET_LOC"
>>        "Received SP_PLANET_LOC"
>>        "Received SP_PLANET_LOC"
>>        "Received SP_PLANET_LOC"
>>        "Received SP_PLANET_LOC"
>>        "Received SP_PLANET_LOC"
>>        "Received SP_PLANET_LOC"
>>        "Received SP_PLANET_LOC"
>>        "Received SP_PLANET_LOC"
>>        "Received SP_PLANET_LOC"
>>        "Received SP_PLANET_LOC"
>>        "Received SP_PLANET_LOC"
>>        "Received SP_PLANET_LOC"
>>        "Received SP_PLANET_LOC"
>>        "Received SP_PLANET_LOC"
>>        "Received SP_PLANET_LOC"
>>        "Received SP_PLANET_LOC"
>>        "Received SP_PLANET_LOC"
>>        "Received SP_PLANET_LOC"
>>        "Received SP_PLANET_LOC"
>>        "Received SP_PLANET_LOC"
>>        "Received SP_PLANET_LOC"
>>        "Received SP_PLANET_LOC"
>>        "Received SP_PLANET_LOC"
>>        "Received SP_PLANET_LOC"
>>        "Received SP_PLANET_LOC"
>>        "Received SP_PLANET_LOC"
>>        "Received SP_PLANET_LOC"
>>        "Received SP_PLANET_LOC"
>>        "Received SP_PLANET_LOC"
>>        "Received SP_PLANET_LOC"
>>        "Received SP_PLANET_LOC"
>>        "Received SP_LOGIN"
>>        "Sending CP_FEATURE 60"
>>        "Sending CP_OUTFIT 9"
>> 
>>           On Mar 4, 2019, at 2:19 PM, James Cameron <[1][3]quozl at laptop.org <mailto:quozl at laptop.org>>
>>        wrote:
>> 
>>           G'day Darrell,
>> 
>>           According to protocol, you should expect SP_YOU in response to
>>           CP_LOGIN and CP_FEATURE.  You say you have it in the count of
>>        packets,
>>           but you don't have it in the end of the sequence.  Can you show the
>>           whole sequence?
>> 
>>           Also, see these references;
>> 
>>           1.  netrek protocol
>> 
>>           [2][4]https://github.com/quozl/netrek-server/blob/master/include/ <https://github.com/quozl/netrek-server/blob/master/include/>
>>        packets.h#L24
>> 
>>           2.  sending CP_FEATURE of FEATURE_PACKETS immediately after
>>        CP_SOCKET,
>> 
>>           [5]https://github.com/quozl/gytha/blob/master/gytha/__init__.py# <https://github.com/quozl/gytha/blob/master/gytha/__init__.py#>
>>        L5644
>> 
>>           On Mon, Mar 04, 2019 at 01:07:35PM -0800, Darrell Root wrote:
>> 
>>               netrek-dev,
>> 
>>               I’m working on a Swift Netrek client for the Mac.  I’m having
>>        trouble
>>               getting
>>               through the login sequence.
>> 
>>               I’m using netrek-server-vanilla netrek-server-vanilla-2.19.0
>>        with no
>>               active
>>               players as a test target.  In my packet traces below the server
>>        is at
>>               192.168.0.10.
>> 
>>               I’m able to successfully play on my test server with the MacTrek
>>               client.
>> 
>>               Here’s a count of the packets I’ve been able to send/receive and
>>               process (not
>>               in order):
>> 
>>                31 "Received SP_FLAGS"
>>                32 "Received SP_HOSTILE"
>>                32 "Received SP_KILLS"
>>                 1 "Received SP_LOGIN"
>>                40 "Received SP_PLANET_LOC"
>>                32 "Received SP_PLAYER"
>>                52 "Received SP_PLAYER_INFO"
>>                32 "Received SP_PL_LOGIN"
>>                32 "Received SP_PSTATUS"
>>                 1 "Received SP_YOU"
>>                 1 "Sending CP_FEATURE 60"
>>                 1 "Sending CP_LOGIN 8"
>>                 1 "Sending CP_OUTFIT 9"
>>                 1 "Sending CP_SOCKET 27"
>> 
>>               Here’s the end of the sequence:
>> 
>>               ...
>>               "Received SP_LOGIN"
>>               "Sending CP_FEATURE 60"
>>               "Sending CP_OUTFIT 9"
>> 
>>               No response to CP_OUTFIT.
>>               The server logs an inability to do a DNS reverse lookup on
>>               192.168.0.31, but I
>>               don’t think that is related (and it doesn’t stop the MacTrek
>>               Objective-C client
>>               from playing).
>> 
>>               I presume that something is wrong with my CP_OUTFIT or CP_LOGIN,
>>        or
>>               that some
>>               other packet is required to login on the server.
>> 
>>               Here’s my CP_FEATURE:
>> 
>>               12:46:33.444140 IP 192.168.0.31.62943 > 192.168.0.10.netrek:
>>        Flags
>>               [P.], seq
>>               61:149, ack 5873, win 2048, options [nop,nop,TS val 516594040
>>        ecr
>>               1657847922],
>>               length 88
>>               0x0000:  685b 3589 0a04 1410 9fd7 77b1 0800 4500
>>               0x0010:  008c 0000 4000 4006 b8f2 c0a8 001f c0a8
>>               0x0020:  000a f5df 0a20 187e d37b 87ce 7c2f 8018
>>               0x0030:  0800 96e5 0000 0101 080a 1eca 9978 62d0
>>               0x0040:  c072 3c53 0000 0000 0001 4645 4154 5552
>>               0x0050:  455f 5041 434b 4554 5300 0000 0000 0000
>>               0x0060:  0000 0000 0000 0000 0000 0000 0000 0000
>>               0x0070:  0000 0000 0000 0000 0000 0000 0000 0000
>>               0x0080:  0000 0000 0000 0000 0000 0000 0000 0000
>>               0x0090:  0000 0000 0000 0000 0000
>> 
>>               Here’s a packet dump of a MacTrek CP_FEATURE packet.  Mine looks
>>               correct.
>> 
>>               08:29:02.233675 IP 192.168.0.31.60481 > 192.168.0.10.netrek:
>>        Flags
>>               [P.], seq
>>               9:97, ack 1, win 2058, options [nop,nop,TS val 501230260 ecr
>>               1642419149],
>>               length 88
>>               0x0000:  685b 3589 0a04 1410 9fd7 77b1 0800 4500
>>               0x0010:  008c 0000 4000 4006 b8f2 c0a8 001f c0a8
>>               0x0020:  000a ec41 0a20 47c9 bead f710 babe 8018
>>               0x0030:  080a b569 0000 0101 080a 1de0 2ab4 61e5
>>               0x0040:  53cd 3c53 0000 0000 0001 4645 4154 5552
>>               0x0050:  455f 5041 434b 4554 5300 0000 0000 0000
>>               0x0060:  0000 0000 0000 0000 0000 0000 0000 0000
>>               0x0070:  0000 0000 0000 0000 0000 0000 0000 0000
>>               0x0080:  0000 0000 0000 0000 0000 0000 0000 0000
>>               0x0090:  0000 0000 0000 0000 0000
>> 
>>               For reference here’s reference information on that structure:
>> 
>>               #define CP_FEATURE      60
>> 
>>               struct feature_cpacket { /* CP_FEATURE py-struct "!bcbbi80s" #60
>>        */
>>                 char                 type;
>>                 char                 feature_type;   /* either 'C' or 'S' */
>>                 char                 arg1,
>>                                      arg2;
>>                 int                  value;
>>                 char                 name[80];
>>               };
>> 
>>               struct feature_var feature_vars[] = {
>>                {"FEATURE_PACKETS",   &F_client_feature_packets,      NULL},
>> 
>>               Here’s my CP_OUTFIT when I try to login as fed (I also tried
>>        setting
>>               team to 0 at 0x0044 since that is what MacTrek appears to do).
>> 
>>               12:46:34.381240 IP 192.168.0.31.62943 > 192.168.0.10.netrek:
>>        Flags
>>               [P.], seq 149:153, ack 5873, win 2048, options [nop,nop,TS val
>>               516594969 ecr 1657848989], length 4
>>                      0x0000:  685b 3589 0a04 1410 9fd7 77b1 0800 4500
>>                      0x0010:  0038 0000 4000 4006 b946 c0a8 001f c0a8
>>                      0x0020:  000a f5df 0a20 187e d3d3 87ce 7c2f 8018
>>                      0x0030:  0800 0e95 0000 0101 080a 1eca 9d19 62d0
>>                      0x0040:  c49d 0901 0200
>> 
>>               Here’s info on that struct:
>> 
>>               #define CP_OUTFIT       9               /* outfit to new ship */
>> 
>>               struct outfit_cpacket { /* CP_OUTFIT py-struct "!bbbx" #9 */
>>                  char type;
>>                  char team;
>>                  char ship;
>>                  char pad1;
>>               };
>> 
>>               Could the problem be with my earlier packets?  They got
>>        responses.  But
>>               here they are for completeness:
>> 
>>               CP_SOCKET:  (note that my client does not support UDP)
>> 
>>               11:46:12.530856 IP 192.168.0.31.62508 > 192.168.0.10.netrek:
>>        Flags
>>               [P.], seq 1:9, ack 1, win 2058, options [nop,nop,TS val
>>        512991468 ecr
>>               1654229963], length 8
>>                      0x0000:  685b 3589 0a04 1410 9fd7 77b1 0800 4500
>>                      0x0010:  003c 0000 4000 4006 b942 c0a8 001f c0a8
>>                      0x0020:  000a f42c 0a20 c97b 28a2 549c ed30 8018
>>                      0x0030:  080a 67e8 0000 0101 080a 1e93 a0ec 6299
>>                      0x0040:  8bcb 1b04 0a00 0000 8020
>> 
>>               #define CP_SOCKET       27              /* new socket for
>>        reconnection
>>               */
>> 
>>               struct socket_cpacket { /* CP_SOCKET py-struct "!bbbxI" #27 */
>>                  char type;
>>                  char version;
>>                  char udp_version;   /* was pad2 */
>>                  char pad3;
>>                  u_int socket;
>>               };
>> 
>>               CP_LOGIN: (hardcoded to guest as the username, password and
>>        login
>>               empty)
>> 
>>               11:46:13.591234 IP 192.168.0.31.62508 > 192.168.0.10.netrek:
>>        Flags
>>               [P.], seq 9:61, ack 5769, win 2048, options [nop,nop,TS val
>>        512992524
>>               ecr 1654231039], length 52
>>                      0x0000:  685b 3589 0a04 1410 9fd7 77b1 0800 4500
>>                      0x0010:  0068 0000 4000 4006 b916 c0a8 001f c0a8
>>                      0x0020:  000a f42c 0a20 c97b 28aa 549d 03b8 8018
>>                      0x0030:  0800 a51c 0000 0101 080a 1e93 a50c 6299
>>                      0x0040:  8fff 0801 0000 6775 6573 7400 0000 0000
>>                      0x0050:  0000 0000 0000 0000 0000 0000 0000 0000
>>                      0x0060:  0000 0000 0000 0000 0000 0000 0000 0000
>>                      0x0070:  0000 0000 0000
>> 
>>               struct login_cpacket { /* CP_LOGIN py-struct '!bbxx16s16s16s' #8
>>        */
>>                  char type;
>>                  char query;
>>                  char pad2;
>>                  char pad3;
>>                  char name[NAME_LEN];
>>                  char password[NAME_LEN];
>>                  char login[NAME_LEN];
>>               };
>> 
>>               Any ideas what I need to correct or what else I need to supply
>>        to
>>               successfully login as guest?
>> 
>>               Darrell
>> 
>>               _______________________________________________
>>               netrek-dev mailing list
>>               [6]netrek-dev at us.netrek.org <mailto:netrek-dev at us.netrek.org>
>>               [7]http://mailman.us.netrek.org/mailman/listinfo/netrek-dev <http://mailman.us.netrek.org/mailman/listinfo/netrek-dev>
>> 
>>           --
>>           James Cameron
>>           [8]http://quozl.netrek.org/ <http://quozl.netrek.org/>
>> 
>>        References:
>> 
>>        [1] [9]mailto:quozl at laptop.org <mailto:quozl at laptop.org>
>>        [2] [10]https://github.com/quozl/netrek-server/blob/master/include/ <https://github.com/quozl/netrek-server/blob/master/include/>
>>        packets.h#L24
>> 
>>        _______________________________________________
>>        netrek-dev mailing list
>>        [11]netrek-dev at us.netrek.org <mailto:netrek-dev at us.netrek.org>
>>        [12]http://mailman.us.netrek.org/mailman/listinfo/netrek-dev <http://mailman.us.netrek.org/mailman/listinfo/netrek-dev>
>> 
>>    -- 
>>    James Cameron
>>    [13]http://quozl.netrek.org/ <http://quozl.netrek.org/>
>>    _______________________________________________
>>    netrek-dev mailing list
>>    [14]netrek-dev at us.netrek.org <mailto:netrek-dev at us.netrek.org>
>>    [15]http://mailman.us.netrek.org/mailman/listinfo/netrek-dev <http://mailman.us.netrek.org/mailman/listinfo/netrek-dev>
>> 
>> References:
>> 
>> [1] mailto:quozl at laptop.org <mailto:quozl at laptop.org>
>> [2] http://dev.laptop.org/~quozl/z/1h0wOC.txt <http://dev.laptop.org/~quozl/z/1h0wOC.txt>
>> [3] mailto:quozl at laptop.org <mailto:quozl at laptop.org>
>> [4] https://github.com/quozl/netrek-server/blob/master/include/packets.h#L24 <https://github.com/quozl/netrek-server/blob/master/include/packets.h#L24>
>> [5] https://github.com/quozl/gytha/blob/master/gytha/__init__.py#L5644 <https://github.com/quozl/gytha/blob/master/gytha/__init__.py#L5644>
>> [6] mailto:netrek-dev at us.netrek.org <mailto:netrek-dev at us.netrek.org>
>> [7] http://mailman.us.netrek.org/mailman/listinfo/netrek-dev <http://mailman.us.netrek.org/mailman/listinfo/netrek-dev>
>> [8] http://quozl.netrek.org/ <http://quozl.netrek.org/>
>> [9] mailto:quozl at laptop.org <mailto:quozl at laptop.org>
>> [10] https://github.com/quozl/netrek-server/blob/master/include/packets.h#L24 <https://github.com/quozl/netrek-server/blob/master/include/packets.h#L24>
>> [11] mailto:netrek-dev at us.netrek.org <mailto:netrek-dev at us.netrek.org>
>> [12] http://mailman.us.netrek.org/mailman/listinfo/netrek-dev <http://mailman.us.netrek.org/mailman/listinfo/netrek-dev>
>> [13] http://quozl.netrek.org/ <http://quozl.netrek.org/>
>> [14] mailto:netrek-dev at us.netrek.org <mailto:netrek-dev at us.netrek.org>
>> [15] http://mailman.us.netrek.org/mailman/listinfo/netrek-dev <http://mailman.us.netrek.org/mailman/listinfo/netrek-dev>
> 
>> _______________________________________________
>> netrek-dev mailing list
>> netrek-dev at us.netrek.org <mailto:netrek-dev at us.netrek.org>
>> http://mailman.us.netrek.org/mailman/listinfo/netrek-dev <http://mailman.us.netrek.org/mailman/listinfo/netrek-dev>
> 
> 
> -- 
> James Cameron
> http://quozl.netrek.org/ <http://quozl.netrek.org/>
> _______________________________________________
> netrek-dev mailing list
> netrek-dev at us.netrek.org <mailto:netrek-dev at us.netrek.org>
> http://mailman.us.netrek.org/mailman/listinfo/netrek-dev <http://mailman.us.netrek.org/mailman/listinfo/netrek-dev>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.us.netrek.org/pipermail/netrek-dev/attachments/20190304/f0e201bb/attachment-0001.html>