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 https://github.com/quozl/netrek-server/blob/master/include/packets.h#L24 2. sending CP_FEATURE of FEATURE_PACKETS immediately after CP_SOCKET, 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 > netrek-dev at us.netrek.org > http://mailman.us.netrek.org/mailman/listinfo/netrek-dev -- James Cameron http://quozl.netrek.org/