use port number instead of port string in network code

Sun, 29 Mar 2026 13:18:40 +0200

author
Mike Becker <universe@uap-core.de>
date
Sun, 29 Mar 2026 13:18:40 +0200
changeset 92
84e0dec5db16
parent 91
c7b586c0ee36
child 93
9b64437262a2

use port number instead of port string in network code

src/client.c file | annotate | diff | comparison | revisions
src/game.h file | annotate | diff | comparison | revisions
src/main.c file | annotate | diff | comparison | revisions
src/network.c file | annotate | diff | comparison | revisions
src/network.h file | annotate | diff | comparison | revisions
src/server.c file | annotate | diff | comparison | revisions
--- a/src/client.c	Sat Mar 28 14:04:21 2026 +0100
+++ b/src/client.c	Sun Mar 29 13:18:40 2026 +0200
@@ -34,7 +34,7 @@
 #include <ncurses.h>
 #include <stdlib.h>
 
-static int client_connect(Server *server, char *host, char *port) {
+static int client_connect(Server *server, char *host, short port) {
     if (net_find(server, host, port)) {
         addstr("Can't find server");
         return 1;
--- a/src/game.h	Sat Mar 28 14:04:21 2026 +0100
+++ b/src/game.h	Sun Mar 29 13:18:40 2026 +0200
@@ -39,9 +39,9 @@
 
 typedef struct {
     GameInfo gameinfo;
-    char* port;
     char* serverhost; /* NULL, if we are about to start a server */
     char* continuepgn;
+    short port;
     bool singlemachine;
     bool disableflip;
     bool unicode;
--- a/src/main.c	Sat Mar 28 14:04:21 2026 +0100
+++ b/src/main.c	Sun Mar 29 13:18:40 2026 +0200
@@ -27,7 +27,7 @@
  *
  */
 
-#define PROGRAM_VERSION "0.9 beta"
+#define PROGRAM_VERSION "1.0 alpha"
 
 #include "game.h"
 #include "input.h"
@@ -95,7 +95,7 @@
                     optarg);
                 return 1;
             } else {
-                settings->port = optarg;
+                settings->port = (short) port;
             }
             break;
         case 'v':
@@ -152,7 +152,7 @@
 static Settings default_settings() {
     Settings settings = {0};
     settings.gameinfo.servercolor = WHITE;
-    settings.port = "27015";
+    settings.port = 27015;
     settings.unicode = !!setlocale(LC_CTYPE, "C.UTF-8");
     return settings;
 }
--- a/src/network.c	Sat Mar 28 14:04:21 2026 +0100
+++ b/src/network.c	Sun Mar 29 13:18:40 2026 +0200
@@ -31,15 +31,17 @@
 #include <string.h>
 #include "network.h"
 
+#include <stdio.h>
+
 #define new_socket() socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
 
-int net_create(Server *server, char* port) {
+int net_create(Server *server, short port) {
     server->info = NULL;
     
     struct sockaddr_in addr;
     addr.sin_family = AF_INET;
     addr.sin_addr.s_addr = INADDR_ANY;
-    addr.sin_port = htons(atoi(port));
+    addr.sin_port = htons(port);
 
     server->fd = new_socket();
     if (server->fd > -1) {
@@ -64,11 +66,12 @@
     return getaddrinfo(host, port, &hints, info);
 }
 
-int net_find(Server *server, char *host, char* port) {
+int net_find(Server *server, char *host, short port) {
     memset(server, 0, sizeof(Server));
     server->fd = -1;
-    
-    return getaddrinfo_intrnl(host, port, &(server->info));
+    char portstr[6];
+    sprintf(portstr, "%hd", port);
+    return getaddrinfo_intrnl(host, portstr, &(server->info));
 }
 
 int net_listen(Server *server) {
--- a/src/network.h	Sat Mar 28 14:04:21 2026 +0100
+++ b/src/network.h	Sun Mar 29 13:18:40 2026 +0200
@@ -64,8 +64,8 @@
     Client *client;
 } Server;
 
-int net_create(Server *server, char* port);
-int net_find(Server *server, char* host, char* port);
+int net_create(Server *server, short port);
+int net_find(Server *server, char* host, short port);
 
 int net_listen(Server *server);
 int net_destroy(Server *server);
--- a/src/server.c	Sat Mar 28 14:04:21 2026 +0100
+++ b/src/server.c	Sun Mar 29 13:18:40 2026 +0200
@@ -36,7 +36,7 @@
 #include <string.h>
 #include <stdlib.h>
 
-static int server_open(Server *server, char *port) {
+static int server_open(Server *server, short port) {
     printw("\nListening for client...\n");
     refresh();
     if (net_create(server, port)) {

mercurial