Allow upgrading socks to certain versions of AX.25
Changes: * Add an enum patty_ax25_version argument to the function patty_ax25_sock_upgrade() to allow upgrading a socket to a certain set of AX.25 defaults
This commit is contained in:
parent
810361647a
commit
8a26cace95
3 changed files with 24 additions and 10 deletions
|
@ -96,7 +96,8 @@ void patty_ax25_sock_reset(patty_ax25_sock *sock);
|
|||
|
||||
void patty_ax25_sock_destroy(patty_ax25_sock *sock);
|
||||
|
||||
int patty_ax25_sock_upgrade(patty_ax25_sock *sock);
|
||||
int patty_ax25_sock_upgrade(patty_ax25_sock *sock,
|
||||
enum patty_ax25_version version);
|
||||
|
||||
int patty_ax25_sock_params_set(patty_ax25_sock *sock,
|
||||
patty_ax25_params *params);
|
||||
|
|
|
@ -1407,7 +1407,7 @@ static int handle_xid(patty_ax25_server *server,
|
|||
* upgrade the socket defaults accordingly, and negotiate downwards
|
||||
* as necessary.
|
||||
*/
|
||||
if (patty_ax25_sock_upgrade(remote) < 0) {
|
||||
if (patty_ax25_sock_upgrade(remote, PATTY_AX25_2_2) < 0) {
|
||||
goto error_sock_upgrade;
|
||||
}
|
||||
|
||||
|
@ -1465,7 +1465,7 @@ static int handle_xid(patty_ax25_server *server,
|
|||
|
||||
patty_ax25_sock_bind_if(remote, iface);
|
||||
|
||||
patty_ax25_sock_upgrade(remote);
|
||||
patty_ax25_sock_upgrade(remote, PATTY_AX25_2_2);
|
||||
|
||||
if (patty_ax25_sock_params_set(remote, ¶ms) < 0) {
|
||||
patty_ax25_sock_destroy(remote);
|
||||
|
|
17
src/sock.c
17
src/sock.c
|
@ -169,13 +169,26 @@ void patty_ax25_sock_destroy(patty_ax25_sock *sock) {
|
|||
free(sock);
|
||||
}
|
||||
|
||||
int patty_ax25_sock_upgrade(patty_ax25_sock *sock) {
|
||||
sock->version = PATTY_AX25_2_2;
|
||||
int patty_ax25_sock_upgrade(patty_ax25_sock *sock,
|
||||
enum patty_ax25_version version) {
|
||||
if (sock->version >= version) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
switch (version) {
|
||||
case PATTY_AX25_OLD:
|
||||
case PATTY_AX25_2_0:
|
||||
break;
|
||||
|
||||
case PATTY_AX25_2_2:
|
||||
sock->flags_hdlc = PATTY_AX25_SOCK_2_2_DEFAULT_HDLC;
|
||||
sock->n_maxlen_tx = PATTY_AX25_SOCK_2_2_DEFAULT_MAXLEN;
|
||||
sock->n_maxlen_rx = PATTY_AX25_SOCK_2_2_DEFAULT_MAXLEN;
|
||||
sock->n_window_tx = PATTY_AX25_SOCK_2_2_DEFAULT_WINDOW;
|
||||
sock->n_window_rx = PATTY_AX25_SOCK_2_2_DEFAULT_WINDOW;
|
||||
}
|
||||
|
||||
sock->version = version;
|
||||
|
||||
return init_bufs(sock);
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue