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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.us.netrek.org/pipermail/netrek-dev/attachments/20190304/3aa3054e/attachment-0001.html>