From 6107a37ae0f8ad89ab6d2d36f93cc0d47f8bb47a Mon Sep 17 00:00:00 2001 From: Ian Moffett Date: Sun, 29 Sep 2024 18:26:07 -0400 Subject: project: Move server/client code into library Signed-off-by: Ian Moffett --- ostp.d/net/otd_param.c | 97 -------------------------------------------------- 1 file changed, 97 deletions(-) delete mode 100644 ostp.d/net/otd_param.c (limited to 'ostp.d/net/otd_param.c') diff --git a/ostp.d/net/otd_param.c b/ostp.d/net/otd_param.c deleted file mode 100644 index fe33bd8..0000000 --- a/ostp.d/net/otd_param.c +++ /dev/null @@ -1,97 +0,0 @@ -/* - * Copyright (c) 2023-2024 Ian Marco Moffett and the Osmora Team. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of Hyra nor the names of its - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ - -#include -#include -#include -#include -#include -#include -#include -#include - -static int -handle_pap(int client_fd, const struct pap *pap, const unsigned char *session_key) -{ - int error = 0; - uint8_t attempts = 0; - struct pap tmp_pap = *pap; - const size_t LEN = sizeof(struct pap); - - /* TODO: Support more SPW bits */ - while (1) { - /* Quick session request, jump right in! */ - if (ISSET(tmp_pap.spw, PAP_SPW_QSR)) { - printf("Got QSR, starting session...\n"); - send_frame(client_fd, &tmp_pap, LEN, session_key); - return 0; - } - - /* We have exhausted our attempts */ - if (attempts >= ARBITRATION_MAX) { - printf("Too many arbitration attempts, bailing!\n"); - return -1; - } - - printf("Got bad SPW from client\n"); - printf("Attempting arbitration...\n"); - - tmp_pap.spw = 0x0; - tmp_pap.code = PAP_BAD_SPW; - - /* Send in PAP and wait for response */ - if ((error = send_frame(client_fd, &tmp_pap, LEN, session_key)) < 0) { - printf("Failed to send PAP frame\n"); - return -1; - } - if ((error = recv_frame(client_fd, LEN, session_key, &tmp_pap)) < 0) { - printf("Failed to recv PAP frame\n"); - return error; - } - - ++attempts; - } - - return 0; -} - -int -negotiate_spw(int client_fd, unsigned char *session_key) -{ - const size_t LEN = sizeof(struct pap); - struct pap pap; - int error; - - /* Get PAP from the network */ - if ((error = recv_frame(client_fd, LEN, session_key, &pap)) < 0) { - return error; - } - - return handle_pap(client_fd, &pap, session_key); -} -- cgit v1.2.3