Skip to content
Snippets Groups Projects
Commit d7e87b6c authored by Rob Swindell's avatar Rob Swindell :speech_balloon:
Browse files

Fix PETSCII 40/80 column port connections for IPv6

The connected TCP port detection method only worked for IPv4, so automatically
detecting a CBM/PETSCII connection over IPv6 didn't work. Thanks to Deuce's
xp_sockaddr and helper functions, this was an easy change.
parent 61c52193
No related branches found
No related tags found
No related merge requests found
...@@ -5381,14 +5381,14 @@ NO_SSH: ...@@ -5381,14 +5381,14 @@ NO_SSH:
sbbs->autoterm=0; sbbs->autoterm=0;
sbbs->cols = startup->default_term_width; sbbs->cols = startup->default_term_width;
SOCKADDR_IN local_addr; union xp_sockaddr local_addr;
memset(&local_addr, 0, sizeof(local_addr)); memset(&local_addr, 0, sizeof(local_addr));
socklen_t addr_len=sizeof(local_addr); socklen_t addr_len=sizeof(local_addr);
if(getsockname(client_socket, (struct sockaddr *)&local_addr, &addr_len) == 0 if(getsockname(client_socket, (struct sockaddr *)&local_addr, &addr_len) == 0
&& (ntohs(local_addr.sin_port) == startup->pet40_port && (inet_addrport(&local_addr) == startup->pet40_port
|| ntohs(local_addr.sin_port) == startup->pet80_port)) { || inet_addrport(&local_addr) == startup->pet80_port)) {
sbbs->autoterm = PETSCII; sbbs->autoterm = PETSCII;
sbbs->cols = ntohs(local_addr.sin_port) == startup->pet40_port ? 40 : 80; sbbs->cols = inet_addrport(&local_addr) == startup->pet40_port ? 40 : 80;
sbbs->outcom(PETSCII_UPPERLOWER); sbbs->outcom(PETSCII_UPPERLOWER);
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment