1*eff8f878Syasuoka /* $OpenBSD: parser.h,v 1.5 2024/09/15 05:26:05 yasuoka Exp $ */ 2a7ca44b8Syasuoka 3a7ca44b8Syasuoka /* This file is derived from OpenBSD:src/usr.sbin/ikectl/parser.h 1.9 */ 4a7ca44b8Syasuoka /* 5a7ca44b8Syasuoka * Copyright (c) 2007, 2008 Reyk Floeter <reyk@vantronix.net> 6a7ca44b8Syasuoka * 7a7ca44b8Syasuoka * Permission to use, copy, modify, and distribute this software for any 8a7ca44b8Syasuoka * purpose with or without fee is hereby granted, provided that the above 9a7ca44b8Syasuoka * copyright notice and this permission notice appear in all copies. 10a7ca44b8Syasuoka * 11a7ca44b8Syasuoka * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 12a7ca44b8Syasuoka * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 13a7ca44b8Syasuoka * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 14a7ca44b8Syasuoka * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 15a7ca44b8Syasuoka * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 16a7ca44b8Syasuoka * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 17a7ca44b8Syasuoka * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 18a7ca44b8Syasuoka */ 19a7ca44b8Syasuoka 20a7ca44b8Syasuoka #ifndef _RADIUSCTL_PARSER_H 21a7ca44b8Syasuoka #define _RADIUSCTL_PARSER_H 22a7ca44b8Syasuoka 23842565f2Syasuoka #include <sys/types.h> 24842565f2Syasuoka #include <sys/time.h> 25842565f2Syasuoka 26a7ca44b8Syasuoka enum actions { 27a7ca44b8Syasuoka NONE, 28842565f2Syasuoka TEST, 29842565f2Syasuoka IPCP_SHOW, 30842565f2Syasuoka IPCP_DUMP, 31842565f2Syasuoka IPCP_MONITOR, 32*eff8f878Syasuoka IPCP_DELETE, 33842565f2Syasuoka IPCP_DISCONNECT 34a7ca44b8Syasuoka }; 35a7ca44b8Syasuoka 36a7ca44b8Syasuoka enum auth_method { 37a7ca44b8Syasuoka PAP, 38a7ca44b8Syasuoka CHAP, 39a7ca44b8Syasuoka MSCHAPV2 40a7ca44b8Syasuoka }; 41a7ca44b8Syasuoka 425d013a5eSdlg #define TEST_TRIES_MIN 1 435d013a5eSdlg #define TEST_TRIES_MAX 32 445d013a5eSdlg #define TEST_TRIES_DEFAULT 3 455d013a5eSdlg 465d013a5eSdlg #define TEST_INTERVAL_MIN 1 475d013a5eSdlg #define TEST_INTERVAL_MAX 10 485d013a5eSdlg #define TEST_INTERVAL_DEFAULT 2 495d013a5eSdlg 505d013a5eSdlg #define TEST_MAXWAIT_MIN 3 515d013a5eSdlg #define TEST_MAXWAIT_MAX 60 525d013a5eSdlg #define TEST_MAXWAIT_DEFAULT 8 535d013a5eSdlg 54842565f2Syasuoka #define FLAGS_JSON 0x01 55842565f2Syasuoka 56a7ca44b8Syasuoka struct parse_result { 57a7ca44b8Syasuoka enum actions action; 58a7ca44b8Syasuoka const char *hostname; 59a7ca44b8Syasuoka const char *secret; 60a7ca44b8Syasuoka const char *username; 61a7ca44b8Syasuoka const char *password; 62a7ca44b8Syasuoka u_short port; 63a7ca44b8Syasuoka int nas_port; 64a852e27aSyasuoka int msgauth; 65a7ca44b8Syasuoka enum auth_method auth_method; 665d013a5eSdlg 675d013a5eSdlg /* number of packets to try sending */ 685d013a5eSdlg unsigned int tries; 695d013a5eSdlg /* how long between packet sends */ 705d013a5eSdlg struct timeval interval; 715d013a5eSdlg /* overall process wait time for a reply */ 725d013a5eSdlg struct timeval maxwait; 73842565f2Syasuoka 74842565f2Syasuoka unsigned flags; 75842565f2Syasuoka unsigned session_seq; 76a7ca44b8Syasuoka }; 77a7ca44b8Syasuoka 78a7ca44b8Syasuoka struct parse_result *parse(int, char *[]); 79a7ca44b8Syasuoka 80a7ca44b8Syasuoka #endif /* _RADIUSCTL_PARSER_H */ 81