xref: /openbsd-src/usr.sbin/radiusctl/parser.h (revision eff8f878b4e2b3d555135dc11d9e6d72aadadea0)
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