3
3
#include <stdio.h>
4
4
#include <unistd.h>
5
5
6
- #include <gio/gio.h>
7
6
#include <SDL.h>
8
7
9
8
#include "cmd.h"
19
18
#include <winsock2.h>
20
19
#include <ws2tcpip.h>
21
20
#include "win32.h"
21
+ #else
22
+ #include <netdb.h>
23
+ #include <netinet/in.h>
24
+ #include <sys/types.h>
25
+ #include <sys/socket.h>
22
26
#endif
23
27
24
28
/* default command-line options */
@@ -215,7 +219,6 @@ int main(int argc, char **argv)
215
219
/* initialization stuff */
216
220
217
221
g_thread_init (0 );
218
- g_type_init ();
219
222
220
223
iq_client = g_async_queue_new_full (packet_free );
221
224
iq_server = g_async_queue_new_full (packet_free );
@@ -233,50 +236,35 @@ int main(int argc, char **argv)
233
236
234
237
#ifdef WIN32
235
238
SOCKET listener = WSASocket (AF_INET , SOCK_STREAM , IPPROTO_TCP , 0 , 0 , 0 );
236
- if (listener == INVALID_SOCKET )
239
+ #else
240
+ SOCKET listener = socket (AF_INET , SOCK_STREAM , IPPROTO_TCP );
241
+ #endif
242
+ if (listener < 0 )
237
243
die ("network setup: socket() for listener" );
238
244
239
245
{
240
- BOOL b = TRUE ;
246
+ int b = 1 ;
241
247
setsockopt (listener , SOL_SOCKET , SO_REUSEADDR , (char * )& b , sizeof b );
242
248
}
243
249
244
250
struct sockaddr_in listener_in = { 0 };
245
251
listener_in .sin_family = AF_INET ;
246
252
listener_in .sin_addr .s_addr = htonl (INADDR_ANY );
247
253
listener_in .sin_port = htons (opt .localport );
248
- if (bind (listener , (struct sockaddr * )& listener_in , sizeof listener_in ) == SOCKET_ERROR )
254
+ if (bind (listener , (struct sockaddr * )& listener_in , sizeof listener_in ) != 0 )
249
255
die ("network setup: bind() for listener" );
250
256
251
- if (listen (listener , SOMAXCONN ) == SOCKET_ERROR )
257
+ if (listen (listener , SOMAXCONN ) != 0 )
252
258
die ("network setup: listen() for listener" );
253
259
254
260
SOCKET sock_cli = accept (listener , 0 , 0 );
255
- if (sock_cli == INVALID_SOCKET )
261
+ if (sock_cli < 0 )
256
262
die ("network setup: accept() for listener" );
257
- #else /* WIN32 */
258
- GSocketListener * listener = g_socket_listener_new ();
259
-
260
- if (!g_socket_listener_add_inet_port (listener , opt .localport , 0 , 0 ))
261
- {
262
- die ("Unable to set up sockets." );
263
- return 1 ;
264
- }
265
-
266
- GSocketConnection * conn_cli = g_socket_listener_accept (listener , 0 , 0 , 0 );
267
-
268
- if (!conn_cli )
269
- {
270
- die ("Client never connected." );
271
- return 1 ;
272
- }
273
- #endif /* WIN32 */
274
263
275
264
/* connect to the minecraft server side */
276
265
277
266
log_print ("[INFO] Connecting to %s..." , argv [1 ]);
278
267
279
- #ifdef WIN32
280
268
struct addrinfo hints = { 0 }, * serveraddr ;
281
269
282
270
hints .ai_family = AF_UNSPEC ;
@@ -297,25 +285,18 @@ int main(int argc, char **argv)
297
285
if (aires != 0 )
298
286
die ("network setup: getaddrinfo() for server" );
299
287
288
+ #ifdef WIN32
300
289
SOCKET sock_srv = WSASocket (serveraddr -> ai_family , serveraddr -> ai_socktype , serveraddr -> ai_protocol , 0 , 0 , 0 );
301
- if (sock_srv == INVALID_SOCKET )
290
+ #else
291
+ SOCKET sock_srv = socket (serveraddr -> ai_family , serveraddr -> ai_socktype , serveraddr -> ai_protocol );
292
+ #endif
293
+ if (sock_srv < 0 )
302
294
die ("network setup: socket() for server" );
303
295
304
- if (connect (sock_srv , serveraddr -> ai_addr , serveraddr -> ai_addrlen ) == SOCKET_ERROR )
296
+ if (connect (sock_srv , serveraddr -> ai_addr , serveraddr -> ai_addrlen ) != 0 )
305
297
die ("network setup: connect() for server" );
306
298
307
299
freeaddrinfo (serveraddr );
308
- #else /* WIN32 */
309
- GSocketClient * client = g_socket_client_new ();
310
-
311
- GSocketConnection * conn_srv = g_socket_client_connect_to_host (client , argv [1 ], 25565 , 0 , 0 );
312
-
313
- if (!conn_srv )
314
- {
315
- die ("Unable to connect to server." );
316
- return 1 ;
317
- }
318
- #endif /* WIN32 */
319
300
320
301
/* start the user interface side */
321
302
@@ -350,11 +331,6 @@ int main(int argc, char **argv)
350
331
351
332
log_print ("[INFO] Starting up..." );
352
333
353
- #ifndef WIN32
354
- GSocket * sock_cli = g_socket_connection_get_socket (conn_cli );
355
- GSocket * sock_srv = g_socket_connection_get_socket (conn_srv );
356
- #endif
357
-
358
334
struct proxy_config proxy_client_server = {
359
335
.sock_from = sock_cli ,
360
336
.sock_to = sock_srv ,
0 commit comments