blob: a28df470837efc734590e8e6bd1692e1cd064206 [file] [log] [blame]
Neels Hofmeyr17518fe2017-06-20 04:35:06 +02001/*! \file telnet_interface.h
2 * minimalistic telnet/network interface it might turn into a wire interface */
3/*
4 * (C) 2009 by Holger Hans Peter Freyther <zecke@selfish.org>
Harald Welte3fb0b6f2010-05-19 19:02:52 +02005 * All Rights Reserved
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
Harald Welte3fb0b6f2010-05-19 19:02:52 +020017 */
18
Sylvain Munaut12ba7782014-06-16 10:13:40 +020019#pragma once
Harald Welte3fb0b6f2010-05-19 19:02:52 +020020
Pablo Neira Ayuso83419342011-03-22 16:36:13 +010021#include <osmocom/core/logging.h>
22#include <osmocom/core/select.h>
Harald Welte3fb0b6f2010-05-19 19:02:52 +020023
24#include <osmocom/vty/vty.h>
25
Harald Weltee881b1b2011-08-17 18:52:30 +020026/*! \defgroup telnet_interface Telnet Interface
Harald Welte7acb30c2011-08-17 17:13:48 +020027 * @{
Neels Hofmeyr17518fe2017-06-20 04:35:06 +020028 * \file telnet_interface.h */
Harald Welte7acb30c2011-08-17 17:13:48 +020029
Neels Hofmeyr87e45502017-06-20 00:17:59 +020030/*! A telnet connection */
Harald Welte3fb0b6f2010-05-19 19:02:52 +020031struct telnet_connection {
Neels Hofmeyr87e45502017-06-20 00:17:59 +020032 /*! linked list header for internal management */
Harald Welte3fb0b6f2010-05-19 19:02:52 +020033 struct llist_head entry;
Neels Hofmeyr87e45502017-06-20 00:17:59 +020034 /*! private data pointer passed through */
Harald Welte3fb0b6f2010-05-19 19:02:52 +020035 void *priv;
Neels Hofmeyr87e45502017-06-20 00:17:59 +020036 /*! filedsecriptor (socket ) */
Pablo Neira Ayusof7f89d02011-05-07 12:42:40 +020037 struct osmo_fd fd;
Neels Hofmeyr87e45502017-06-20 00:17:59 +020038 /*! VTY instance associated with telnet connection */
Harald Welte3fb0b6f2010-05-19 19:02:52 +020039 struct vty *vty;
Neels Hofmeyr87e45502017-06-20 00:17:59 +020040 /*! logging target associated with this telnet connection */
Harald Welte3fb0b6f2010-05-19 19:02:52 +020041 struct log_target *dbg;
42};
43
Harald Welte3fb0b6f2010-05-19 19:02:52 +020044int telnet_init(void *tall_ctx, void *priv, int port);
Sylvain Munauta9efc122012-03-01 20:41:40 +010045int telnet_init_dynif(void *tall_ctx, void *priv, const char *ip, int port);
Holger Hans Peter Freyther99ae4012018-12-15 17:36:41 +000046int telnet_init_default(void *tall_ctx, void *priv, int default_port);
Harald Welte3fb0b6f2010-05-19 19:02:52 +020047
Andreas.Eversbergdc3be0a2011-11-06 20:09:28 +010048void telnet_exit(void);
49
Sylvain Munautdca7d2c2012-04-18 21:53:23 +020050/*! @} */