XANTRONIX Development
566f302a1f
Adhere to proper P/F procedure
...
Adhere to proper P/F procedure for SABM, I, and DISC frames
2024-03-01 00:20:46 -05:00
XANTRONIX Development
1265108efd
Reply to I frames outside of SABM(E) with DM
2024-03-01 00:20:46 -05:00
XANTRONIX Development
a4518a839a
Implement better modulo-128 I and S frame support
...
Changes:
* Split patty_ax25_frame_decode() into the following:
- patty_ax25_frame_decode_address()
- patty_ax25_frame_decode_control()
This allows for look up an established socket for a given address
pair, to determine if an SABME session is in progress,
necessitating modulo-128 control decoding
* Decode I and S N(R), N(S) sequence numbers, poll/final
bits properly in both modulo-8 and modulo-128 mode
* Perform better frame control validation
* Implement the following functions in src/sock.c:
- patty_ax25_sock_send_rr()
- patty_ax25_sock_send_rnr()
- patty_ax25_sock_send_rej()
- patty_ax25_sock_send_srej()
Corresponding functions have been removed from src/server.c
* Implement better functions in src/sock.c for encoding frame
control, with send/receive sequences associated with the socket,
with modulo-128 encoding for SABME sessions
Other changes:
* Move or delete macros from include/patty/ax25/macros.h into
include/patty/ax25.h and include/patty/ax25/frame.h
* Move definitions from include/patty/ax25/proto.h to header file
include/patty/ax25.h
* Perform better bounds checking while decoding frames
* Improve frame control printing in src/print.c; display frame
type names, N(R), (NS) sequence numbers, and poll/final bits
2024-03-01 00:20:46 -05:00
XANTRONIX Development
b281925eba
Significantly simplify dictionaries
...
Significantly simplify dictionaries so that dictionary keys are always
uint32_t; this number can be an arbitrary integer, be it a file
descriptor, for instance, or a hashed value
2024-03-01 00:20:46 -05:00
XANTRONIX Development
0bfd5795ad
Do a slightly better job handling sock control fields
2024-03-01 00:20:46 -05:00
XANTRONIX Development
84ae427037
Move raw frame capture to patty_ax25_if
...
Move raw frame interface capture to patty_ax25_if, patty_ax25_sock; this
resolves the issue wherein only bytes received, not sent, would be
captured by a raw socket bound to a specific interface with setsockopt()
2024-03-01 00:20:46 -05:00
XANTRONIX Development
1888b70ed9
Drop patty_ax25_server member fds_w
2024-03-01 00:20:46 -05:00
XANTRONIX Development
8d24566e83
Implement generalized enumerate types; REJ reply
2024-03-01 00:20:46 -05:00
XANTRONIX Development
9ec0255204
De-embiggen an expression
2024-03-01 00:20:46 -05:00
XANTRONIX Development
84809755a1
Implement clients_by_sock convenience methods
...
Implement clients_by_sock convenience methods in src/server.c
2024-03-01 00:20:46 -05:00
XANTRONIX Development
3d2922f2a4
Remove trailing whitespace
2024-03-01 00:20:46 -05:00
XANTRONIX Development
ab2c283542
Refactor socket(), openif() as setsockopt()
...
Other changes:
* Fix blocking on disconnects when a raw socket is bound to an
interface
2024-03-01 00:20:46 -05:00
XANTRONIX Development
5a14f81c4a
whitespace
2024-03-01 00:20:46 -05:00
XANTRONIX Development
619890c206
Shave off a few lines of code in src/server.c
2024-03-01 00:20:46 -05:00
XANTRONIX Development
73ae096b2d
Implement openif(), raw packet interface access
2024-03-01 00:20:46 -05:00
XANTRONIX Development
c853b79529
Remove unnecessary #include <stdio.h>
2024-03-01 00:20:46 -05:00
XANTRONIX Development
65bfa95820
s/socket/fd/ for all such named members, variables
2024-03-01 00:20:46 -05:00
XANTRONIX Development
5a3660450f
Get rid of patty_list_iterator (too expensive)
2024-03-01 00:20:46 -05:00
XANTRONIX Development
c6aac035e1
Add proto arg to patty_ax25_sock_new()
...
Other changes:
* Remove proto arg from patty_ax25_sock_send() and
patty_ax25_sock_write(); instead, use the proto member of
patty_ax25_sock
2024-03-01 00:20:46 -05:00
XANTRONIX Development
f835f19e53
Move some stuff, remove some damn labels
2024-03-01 00:20:46 -05:00
XANTRONIX Development
2b1bc4c30e
Well, I have WORKING FREAKING SESSIONS BAYBEE
2024-03-01 00:20:46 -05:00
XANTRONIX Development
22bf692a61
SO BLOODY CLOSE
2024-03-01 00:20:46 -05:00
XANTRONIX Development
a60e562fdb
Factor out code for handling SABM frames
2024-03-01 00:20:46 -05:00
XANTRONIX Development
17b2313edc
Keep accounting of RX/TX bytes, frames
2024-03-01 00:20:46 -05:00
XANTRONIX Development
7fd05f607a
Huh, I managed to make something nice
2024-03-01 00:20:46 -05:00
XANTRONIX Development
eb261c9890
Don't hardcode those values there
2024-03-01 00:20:46 -05:00
XANTRONIX Development
d98249ef77
Don't need to do that
2024-03-01 00:20:46 -05:00
XANTRONIX Development
cc21e6342b
Whoops
2024-03-01 00:20:46 -05:00
XANTRONIX Development
b9c3568c43
This is a slog with no real end
2024-03-01 00:20:46 -05:00
XANTRONIX Development
89195bde69
Holy crap, getting deeper and deeper
2024-03-01 00:20:46 -05:00
XANTRONIX Development
4478241319
I'm in a world of hurt
2024-03-01 00:20:46 -05:00
XANTRONIX Development
d983672619
Fix address writing
2024-03-01 00:20:46 -05:00
XANTRONIX Development
bdb73c8805
Making significant headway towards a working server
2024-03-01 00:20:46 -05:00
XANTRONIX Development
22366f2d0c
Need some shit for managing routing tables
2024-03-01 00:20:46 -05:00
XANTRONIX Development
94b9a9d481
Start working on routing table
2024-03-01 00:20:46 -05:00
XANTRONIX Development
4aced9e9c1
...I've been busy.
2024-03-01 00:20:46 -05:00
XANTRONIX Development
8dd5864e67
Gettin' there
2024-03-01 00:20:46 -05:00
XANTRONIX Development
8d3c24696e
Don't forget to watch client/server socket
2024-03-01 00:20:46 -05:00
XANTRONIX Development
36a7de1b2c
unlink() stale sockets
2024-03-01 00:20:46 -05:00
XANTRONIX Development
d265ce8756
More stuff
2024-03-01 00:20:46 -05:00
XANTRONIX Development
58e9d365d5
Remove usage of non-portable FD_COPY()
2024-03-01 00:20:46 -05:00
XANTRONIX Development
df466dc02b
Slightly rethinking something
2024-03-01 00:20:46 -05:00
XANTRONIX Development
eb45bd192d
Just need to make a damn client/server test already
2024-03-01 00:20:46 -05:00
XANTRONIX Development
aa1ccd792a
Don't need that...for the time being
2024-03-01 00:20:46 -05:00
XANTRONIX Development
c4fa41dab4
I am getting AWFULLY close to being able to run this code
2024-03-01 00:20:46 -05:00
XANTRONIX Development
116f4f9f6b
Start approaching something I can conceptually write working code around
2024-03-01 00:20:46 -05:00
XANTRONIX Development
ac8b239ed8
Thinking out loud here
2024-03-01 00:20:46 -05:00
XANTRONIX Development
ac55d13057
Writing a network stack from scratch is extremely tiring
2024-03-01 00:20:46 -05:00
XANTRONIX Development
d25b799e4e
Moving right along!
2024-03-01 00:20:46 -05:00
XANTRONIX Development
710b5ef069
Getting a little better at this whole refactoring endeavor
2024-03-01 00:20:46 -05:00