Bill Currie
9fb337fac4
[net] Move found host caching into net_main
...
This unifies all the checks and plugs a set of potential buffer
overflows.
2021-04-04 18:38:14 +09:00
Bill Currie
a630c95eb6
[nat] Remove the datagram test commands
...
They seem to be related to the server list protocol, probably from its
development, but no longer needed.
2021-04-04 18:31:57 +09:00
Bill Currie
5f682ff1df
[net] Clean up nq's packet reading and writing
...
It should be more portable now and hopefully future proof against C
aliasing. Also, the send and receive buffers are now separate.
2021-04-04 17:01:53 +09:00
Bill Currie
972b0f8a70
[util] Make sizebuf and msg sizes unisgned
...
And clean up the mess.
2021-04-04 15:53:53 +09:00
Bill Currie
59e5592fed
[net] Dump nq udp packets
...
Probably need some finer control, but it will do for now.
2021-04-04 14:09:02 +09:00
Bill Currie
658890d681
[net] Clean up some formatting
...
Doing this before attacking the actual code (lots of potential buffer
overflows and possibly unnecessary code).
2021-04-04 14:09:01 +09:00
Bill Currie
5f93c115ff
[util] Make developer flag names easier to manage
...
They're now an enum, and the flag part of the name is all lowercase, but
now the flag definitions and names list will never get out of sync.
2021-03-29 22:38:47 +09:00
Bill Currie
88ff254f42
Get QF cross-compiling using MXE/mingw32
...
This includes -win clients (no clue if anything actually works yet).
2021-03-27 20:09:37 +09:00
Bill Currie
a9bd436837
[build] Autoconfiscate printf format attribute
...
I don't know if gnu_printf is appropriate for all cases, but it is
needed for mingw32.
2021-03-27 19:52:59 +09:00
Bill Currie
5d9bf32d3c
Merge branch 'vulkan'
2021-03-23 12:31:58 +09:00
Bill Currie
09384eb703
[netchan] Optionally dump the contents of packets
2020-08-17 13:08:49 +09:00
Bill Currie
86b5b30b45
Merge branch 'master' into vulkan
2020-06-25 14:03:52 +09:00
Bill Currie
6d5ffa9f8e
[build] Move to non-recursive make
...
There's still some cleanup to do, but everything seems to be working
nicely: `make -j` works, `make distcheck` passes. There is probably
plenty of bitrot in the package directories (RPM, debian), though.
The vc project files have been removed since those versions are way out
of date and quakeforge is pretty much dependent on gcc now anyway.
Most of the old Makefile.am files are now Makemodule.am. This should
allow for new Makefile.am files that allow local building (to be added
on an as-needed bases). The current remaining Makefile.am files are for
standalone sub-projects.a
The installable bins are currently built in the top-level build
directory. This may change if the clutter gets to be too much.
While this does make a noticeable difference in build times, the main
reason for the switch was to take care of the growing dependency issues:
now it's possible to build tools for code generation (eg, using qfcc and
ruamoko programs for code-gen).
2020-06-25 11:35:37 +09:00
Bill Currie
4e4d1b99b4
Clean up all the system shutdown calls
...
I added Sys_RegisterShutdown years ago and never really did anything
with it: now any system that needs to be shutdown can ensure it gets
shutdown on program exit, and in the correct order (ie, reverse to init
order).
2019-07-12 23:15:26 +09:00
Bill Currie
34bcf7faab
Do a pure/const/noreturn/format attribute pass.
...
I always wanted these, but as gcc now provides warnings for functions that
could do with such attributes, finding all the functions is much easier.
2018-10-09 12:42:21 +09:00
Bill Currie
62793b2dc2
Fix some potentially garbage assignments.
...
These are the ones where I could easily make scan-build happy. They do seem
to be potential holes where invalid data in one place could result in use
of uninitialized values.
2018-09-09 09:54:16 +09:00
Bill Currie
f5501fbf24
Fix a pile of automake deprecation warnings.
...
s/INCLUDES/AM_CPPFLAGS/g
I <3 sed :)
2013-11-24 13:11:50 +09:00
Bill Currie
c376ac1ebd
Add some #define magic for SOL_IP on BSD-based stacks.
2013-01-29 12:13:59 +09:00
Bill Currie
f1aefc969d
Fix some 64-bit mingw compile issues.
...
Just one more issue to fix (alloca), but with a hack, QF compiles (no clue
yet if it works: wine doesn't seem to be an option at this stage)
2013-01-22 21:02:49 +09:00
Bill Currie
101ca22b5a
Fix a couple of warnings found by the mxe gcc.
...
Finally, a recent gcc for our mingw builds :)
2012-12-14 17:07:53 +09:00
Bill Currie
beb0b9e0fc
Fix a segfault when no interfaces are available.
2012-09-08 09:37:48 +09:00
Bill Currie
bf41851bd9
Check for ioctl availability.
...
This gets networking compiling. Now the build gets all the way to qfcc,
where it dies with waidpid/execvp errors :P
2012-08-18 22:02:02 +09:00
Bill Currie
575693e4a0
A bunch of networking compile fixes.
...
This isn't everything needed to get networking compiling, but it's pretty
close.
2012-08-18 21:49:30 +09:00
Bill Currie
23a38738fc
Massive whitespace cleanup.
...
Lots of trailing whitespace and otherwise blank lines.
2012-05-22 08:23:22 +09:00
Bill Currie
bc1b483525
Nuke the rcsid stuff.
...
It's pretty useless in git.
2012-04-22 10:56:32 +09:00
Bill Currie
9fbff2f4d5
Do an audit of the Makefile.am files.
...
o All instances of LIBADD/LDADD have a corresponding DEPENDENCIES
specificatiion.
o libraries now use a lib_ldflags macro to keep things consistent
o duplication of source/lib names has been minimized (particularly in
the libraries; more work needs to be done for the executables)
o automake spec blocks have been organized (again, more work needs to be
done for the executables)
2012-02-07 16:04:19 +09:00
Bill Currie
cef004fc15
Fix a type mismatch on android.
2012-02-05 14:28:23 +09:00
Bill Currie
2edac1a438
Nuke a sprintf.
2011-12-08 22:16:59 +09:00
Bill Currie
1c82956dd7
net_udp.c FIONREAD fix from Ozkan Sezer.
...
net_udp.c: Fixed FIONREAD ioctl to take an int* argument instead of an
unsigned long*.
2011-12-08 21:50:55 +09:00
Bill Currie
39190c5e2c
Remove an unnecessary include.
...
Don't need that :P
2011-09-07 09:41:05 +09:00
Bill Currie
5c9ab2832f
Fix win32 cross-building.
...
No idea if the code actually works :(
2011-09-04 09:48:16 +09:00
Bill Currie
e50f0e18ba
Make netmain use netadr_t, same as netchan.
...
Having sockaddr and friends in a header file was bad news for portability
(especially windows).
2011-09-04 09:45:19 +09:00
Bill Currie
5ee01879ec
Missed a spot for net_family.
2011-09-03 16:28:00 +09:00
Bill Currie
80b2b82092
Add a cvar to control the address family.
...
OpenBSD doesn't allow mixed binding of ipv4 and ipv6, but being able to use
ipv6 enabled qf with ipv4 addresses would be nice...
2011-09-03 13:04:47 +09:00
Bill Currie
29a52a8cc8
FIx it for IPv4, too.
...
Oops, I forgot about that :P
2011-08-31 18:32:47 +09:00
Bill Currie
bfcdc5ed17
Fix qw networking on OpenBSD.
...
OpenBSD is very picky about the address size, but does provide sa_len and
friends to make life easier. Use them as appropriate :)
2011-08-31 18:07:41 +09:00
Bill Currie
0d5bebabe2
Replace qsockaddr with AF_address_t.
...
It seems qsockaddr's assumptions aren't necessarily portable, as OpenBSD
seems to be doing weird things with qsa_family. Even if that's not the
case, this is cleaner.
2011-08-24 09:14:02 +09:00
Jeff Teunissen
1cc2b1b178
whitespace
2011-08-23 01:39:40 -04:00
Jeff Teunissen
d2fa1e2479
QW IPv6: lose a pointless assign
...
We already assign a->family earlier, no need to do it again.
2011-08-23 01:39:40 -04:00
Bill Currie
87ad73f146
Add even more info to the address comparison failure.
...
It turns out the family check is failing. Why?
2011-08-22 18:34:52 +09:00
Bill Currie
ce07000054
Make the address comparison a little more informative.
...
Still hunting the openbsd connection issues. It seems the address
comparision isn't working.
2011-08-22 10:30:35 +09:00
Bill Currie
53049e33eb
Make the interface code more portable.
...
It turns out SIOCGIFINDEX isn't (readily?) available in BSD, but
if_nametoindex() is defined by posix, so use that instead.
2011-08-16 10:03:43 +09:00
Bill Currie
4cec4b9f96
Rewrite the interface detection code.
...
Turns out SIOCGIFCONF is rather painful to get working cross-platform. This
should work better, and can be used even with ipv6 :)
2011-08-11 18:32:39 +09:00
Bill Currie
805256ff65
Use the last used interface address for the socket address.
...
This allows the correct address to be put in the server info packet
allowing nq to work on multi-homed hosts. More testing needs to be done to
ensure nothing is broken, or better yet, a rewrite of the networking code
to properly associate the information with the packets.
2011-08-06 21:47:57 +09:00
Bill Currie
ae9404cc27
Obtain the interface on which the packet arrived.
...
Once I sort out just how to get the information to the right place, this
should fix a lot of the problems with nq on multi-homed nodes.
2011-08-06 20:33:20 +09:00
Bill Currie
3088566502
Replace get_address() with get_iface_list().
2011-08-06 18:57:53 +09:00
Bill Currie
6f0ab844ea
Some more nq networking debug prints.
2011-08-06 16:54:01 +09:00
Bill Currie
eba66b1dde
Doc tweaks and some whitespace.
2011-08-02 17:32:36 +09:00
Bill Currie
76f894a29f
Add some debug prints for nq networking.
2011-08-02 15:22:57 +09:00
Bill Currie
e5876752f3
Document the datagram net driver interface.
2011-08-02 15:22:33 +09:00