Cube  Check-in [9093e4cf6a]

Overview
Comment:Port to newer enet, remove vendored enet
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | trunk
Files: files | file ages | folders
SHA3-256: 9093e4cf6a8a8ca396478a71c557dd75362a80164eb3e97cc1843cea13c299c4
User & Date: js on 2025-04-19 22:30:13
Other Links: manifest | tags
Context
2025-04-19
22:30
Port to newer enet, remove vendored enet Leaf check-in: 9093e4cf6a user: js tags: trunk
20:17
Fix SDL includes check-in: c39abceb9b user: js tags: trunk
Changes

Deleted enet/Doxyfile version [db94936782].

Deleted enet/LICENSE version [1aa0c9e955].

Deleted enet/README version [d3ae11d48f].

Deleted enet/api.txt version [88da762bae].

Deleted enet/callbacks.c version [0e6473ae6b].

Deleted enet/design.txt version [e93c6b64fc].

Deleted enet/docs/FAQ.dox version [a3dfaf7cf8].

Deleted enet/docs/design.dox version [4f8f7f186c].

Deleted enet/docs/install.dox version [a021ed0cf4].

Deleted enet/docs/license.dox version [7024150f80].

Deleted enet/docs/mainpage.dox version [1ce3fc2cf4].

Deleted enet/docs/tutorial.dox version [2628cc3553].

Deleted enet/enet.txt version [87cc6e7265].

Deleted enet/host.c version [d09ce5d37b].

Deleted enet/include/enet/callbacks.h version [c6d1b13865].

Deleted enet/include/enet/enet.h version [1984b68050].

Deleted enet/include/enet/list.h version [7a8a024a55].

Deleted enet/include/enet/memory.h version [395dd4586f].

Deleted enet/include/enet/protocol.h version [b1bcb9a602].

Deleted enet/include/enet/time.h version [b8a4c3ee8d].

Deleted enet/include/enet/types.h version [d05e9c7a64].

Deleted enet/include/enet/unix.h version [25feb775ff].

Deleted enet/include/enet/utility.h version [07f3630b26].

Deleted enet/include/enet/win32.h version [35c74b1459].

Deleted enet/list.c version [591d59cb7c].

Deleted enet/memory.c version [a7ffc6f8bf].

Deleted enet/meson.build version [4ef18161bf].

Deleted enet/packet.c version [85db170ac0].

Deleted enet/peer.c version [1fb6b564cb].

Deleted enet/protocol.c version [4bf65a8b43].

Deleted enet/tutorial.txt version [c7698b7edd].

Deleted enet/unix.c version [3a19083186].

Deleted enet/win32.c version [470e3220ea].

Modified meson.build from [09e98c7860] to [b91f8efdba].

12
13
14
15
16
17
18

19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
  language: 'objc')

objfw_dep = dependency('objfw')
sdl_dep = dependency('SDL2')
sdlimage_dep = dependency('SDL2_image')
sdlmixer_dep = dependency('SDL2_mixer')
zlib_dep = dependency('zlib')


client_link_args = []
server_link_args = []
extra_deps = []

if host_machine.system() == 'windows'
  client_link_args += ['-lopengl32', '-lglu32', '-lwinmm']
  server_link_args += ['-lwinmm']
elif host_machine.system() == 'darwin'
  extra_deps += dependency('OpenGL', method: 'extraframework')
else
  extra_deps += dependency('gl')
  extra_deps += dependency('glu')
  extra_deps += dependency('x11')
endif

subdir('enet')
subdir('src')







>
















<

12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35

36
  language: 'objc')

objfw_dep = dependency('objfw')
sdl_dep = dependency('SDL2')
sdlimage_dep = dependency('SDL2_image')
sdlmixer_dep = dependency('SDL2_mixer')
zlib_dep = dependency('zlib')
enet_dep = dependency('libenet')

client_link_args = []
server_link_args = []
extra_deps = []

if host_machine.system() == 'windows'
  client_link_args += ['-lopengl32', '-lglu32', '-lwinmm']
  server_link_args += ['-lwinmm']
elif host_machine.system() == 'darwin'
  extra_deps += dependency('OpenGL', method: 'extraframework')
else
  extra_deps += dependency('gl')
  extra_deps += dependency('glu')
  extra_deps += dependency('x11')
endif


subdir('src')

Modified src/clients.m from [6f1a324e2b] to [d4363a4bcc].

125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
	conoutf(@"attempting to connect to %@", servername);
	ENetAddress address = { ENET_HOST_ANY, CUBE_SERVER_PORT };
	if (enet_address_set_host(&address, servername.UTF8String) < 0) {
		conoutf(@"could not resolve server %@", servername);
		return;
	}

	clienthost = enet_host_create(NULL, 1, rate, rate);

	if (clienthost) {
		enet_host_connect(clienthost, &address, 1);
		enet_host_flush(clienthost);
		connecting = lastmillis;
		connattempts = 0;
	} else {
		conoutf(@"could not connect to server");
		disconnect(false, false);
	}
}

void
disconnect(bool onlyclean, bool async)
{
	if (clienthost) {
		if (!connecting && !disconnecting) {
			enet_peer_disconnect(clienthost->peers);
			enet_host_flush(clienthost);
			disconnecting = lastmillis;
		}
		if (clienthost->peers->state != ENET_PEER_STATE_DISCONNECTED) {
			if (async)
				return;
			enet_peer_reset(clienthost->peers);







|


|














|







125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
	conoutf(@"attempting to connect to %@", servername);
	ENetAddress address = { ENET_HOST_ANY, CUBE_SERVER_PORT };
	if (enet_address_set_host(&address, servername.UTF8String) < 0) {
		conoutf(@"could not resolve server %@", servername);
		return;
	}

	clienthost = enet_host_create(NULL, 1, 0, rate, rate);

	if (clienthost) {
		enet_host_connect(clienthost, &address, 0, 1);
		enet_host_flush(clienthost);
		connecting = lastmillis;
		connattempts = 0;
	} else {
		conoutf(@"could not connect to server");
		disconnect(false, false);
	}
}

void
disconnect(bool onlyclean, bool async)
{
	if (clienthost) {
		if (!connecting && !disconnecting) {
			enet_peer_disconnect(clienthost->peers, 0);
			enet_host_flush(clienthost);
			disconnecting = lastmillis;
		}
		if (clienthost->peers->state != ENET_PEER_STATE_DISCONNECTED) {
			if (async)
				return;
			enet_peer_reset(clienthost->peers);

Modified src/meson.build from [1a1922a166] to [74dc653a37].

57
58
59
60
61
62
63

64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84

85
86
87
88
89
  ],
  dependencies: [
    objfw_dep,
    sdl_dep,
    sdlimage_dep,
    sdlmixer_dep,
    zlib_dep,

    extra_deps
  ],
  include_directories: [enet_includes],
  link_args: client_link_args,
  link_with: [enet],
  win_subsystem: 'windows')

executable('server',
  [
    'Client.m',
    'Entity.m',
    'ServerEntity.m',
    'server.m',
    'serverms.m',
    'serverutil.m',
    'tools.m',
  ],
  objc_args: ['-DSTANDALONE'],
  dependencies: [
    objfw_dep,
    sdl_dep

  ],
  include_directories: [enet_includes],
  link_args: server_link_args,
  link_with: [enet],
  win_subsystem: 'console')







>


<

<















|
>

<

<

57
58
59
60
61
62
63
64
65
66

67

68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85

86

87
  ],
  dependencies: [
    objfw_dep,
    sdl_dep,
    sdlimage_dep,
    sdlmixer_dep,
    zlib_dep,
    enet_dep,
    extra_deps
  ],

  link_args: client_link_args,

  win_subsystem: 'windows')

executable('server',
  [
    'Client.m',
    'Entity.m',
    'ServerEntity.m',
    'server.m',
    'serverms.m',
    'serverutil.m',
    'tools.m',
  ],
  objc_args: ['-DSTANDALONE'],
  dependencies: [
    objfw_dep,
    sdl_dep,
    enet_dep
  ],

  link_args: server_link_args,

  win_subsystem: 'console')

Modified src/server.m from [043bbacb23] to [bbc6daa995].

99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
}

void
disconnect_client(int n, OFString *reason)
{
	[OFStdOut writeFormat: @"disconnecting client (%@) [%@]\n",
			       clients[n].hostname, reason];
	enet_peer_disconnect(clients[n].peer);
	clients[n].type = ST_EMPTY;
	send2(true, -1, SV_CDIS, n);
}

void
resetitems()
{







|







99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
}

void
disconnect_client(int n, OFString *reason)
{
	[OFStdOut writeFormat: @"disconnecting client (%@) [%@]\n",
			       clients[n].hostname, reason];
	enet_peer_disconnect(clients[n].peer, 0);
	clients[n].type = ST_EMPTY;
	send2(true, -1, SV_CDIS, n);
}

void
resetitems()
{
542
543
544
545
546
547
548
549

550
551
552
553
554
555
556
	    sdesc, dedicated);

	if ((isdedicated = dedicated)) {
		ENetAddress address = { ENET_HOST_ANY, CUBE_SERVER_PORT };
		if (ip.length > 0 &&
		    enet_address_set_host(&address, ip.UTF8String) < 0)
			printf("WARNING: server ip not resolved");
		serverhost = enet_host_create(&address, MAXCLIENTS, 0, uprate);

		if (!serverhost)
			fatal(@"could not create server host\n");
		for (int i = 0; i < MAXCLIENTS; i++)
			serverhost->peers[i].data = (void *)-1;
	}

	resetserverifempty();







|
>







542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
	    sdesc, dedicated);

	if ((isdedicated = dedicated)) {
		ENetAddress address = { ENET_HOST_ANY, CUBE_SERVER_PORT };
		if (ip.length > 0 &&
		    enet_address_set_host(&address, ip.UTF8String) < 0)
			printf("WARNING: server ip not resolved");
		serverhost = enet_host_create(&address, MAXCLIENTS, 0, 0,
		    uprate);
		if (!serverhost)
			fatal(@"could not create server host\n");
		for (int i = 0; i < MAXCLIENTS; i++)
			serverhost->peers[i].data = (void *)-1;
	}

	resetserverifempty();

Modified src/serverbrowser.m from [8678daf863] to [f2851be8f4].

247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
	}];
}

static void
servermenu()
{
	if (pingsock == ENET_SOCKET_NULL) {
		pingsock = enet_socket_create(ENET_SOCKET_TYPE_DATAGRAM, NULL);
		resolverinit(1, 1000);
	}

	resolverclear();

	for (ServerInfo *si in servers)
		resolverquery(si.name);







|







247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
	}];
}

static void
servermenu()
{
	if (pingsock == ENET_SOCKET_NULL) {
		pingsock = enet_socket_create(ENET_SOCKET_TYPE_DATAGRAM);
		resolverinit(1, 1000);
	}

	resolverclear();

	for (ServerInfo *si in servers)
		resolverquery(si.name);

Modified src/serverms.m from [86b7b53d7e] to [ed37cc442a].

12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
		[OFStdOut writeFormat: @"looking up %@...\n", hostname];
		enet_address_set_host(ad, hostname.UTF8String);
		if (ad->host == ENET_HOST_ANY)
			return;
	}
	if (mssock != ENET_SOCKET_NULL)
		enet_socket_destroy(mssock);
	mssock = enet_socket_create(ENET_SOCKET_TYPE_STREAM, NULL);
	if (mssock == ENET_SOCKET_NULL) {
		printf("could not open socket\n");
		return;
	}
	if (enet_socket_connect(mssock, ad) < 0) {
		printf("could not connect\n");
		return;







|







12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
		[OFStdOut writeFormat: @"looking up %@...\n", hostname];
		enet_address_set_host(ad, hostname.UTF8String);
		if (ad->host == ENET_HOST_ANY)
			return;
	}
	if (mssock != ENET_SOCKET_NULL)
		enet_socket_destroy(mssock);
	mssock = enet_socket_create(ENET_SOCKET_TYPE_STREAM);
	if (mssock == ENET_SOCKET_NULL) {
		printf("could not open socket\n");
		return;
	}
	if (enet_socket_connect(mssock, ad) < 0) {
		printf("could not connect\n");
		return;
159
160
161
162
163
164
165
166
167
168
169
170

171




172


		mid = master;
	masterpath = @(mid);
	masterbase = [OFString stringWithUTF8String: master
					     length: mid - master];
	serverdesc = sdesc;

	if (listen) {
		ENetAddress address = { ENET_HOST_ANY, CUBE_SERVINFO_PORT };
		pongsock =
		    enet_socket_create(ENET_SOCKET_TYPE_DATAGRAM, &address);
		if (pongsock == ENET_SOCKET_NULL)
			fatal(@"could not create server info socket\n");

	}




}









<
<
|
|

>
|
>
>
>
>
|
>
>
159
160
161
162
163
164
165


166
167
168
169
170
171
172
173
174
175
176
177
		mid = master;
	masterpath = @(mid);
	masterbase = [OFString stringWithUTF8String: master
					     length: mid - master];
	serverdesc = sdesc;

	if (listen) {


		pongsock = enet_socket_create(ENET_SOCKET_TYPE_DATAGRAM);
		if (pongsock == ENET_SOCKET_NULL) {
			fatal(@"could not create server info socket\n");
			return;
		}
		ENetAddress address = { ENET_HOST_ANY, CUBE_SERVINFO_PORT };
		if (enet_socket_bind(pongsock, &address) != 0) {
			fatal(@"could not create server info socket\n");
			return;
		}
	}
}