blob: d653466a5f4a7f2c136fde076b078f0a9da84be3 [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 *
17 * You should have received a copy of the GNU General Public License along
18 * with this program; if not, write to the Free Software Foundation, Inc.,
19 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
20 *
21 */
22
Sylvain Munaut12ba7782014-06-16 10:13:40 +020023#pragma once
Harald Welte3fb0b6f2010-05-19 19:02:52 +020024
Pablo Neira Ayuso83419342011-03-22 16:36:13 +010025#include <osmocom/core/logging.h>
26#include <osmocom/core/select.h>
Harald Welte3fb0b6f2010-05-19 19:02:52 +020027
28#include <osmocom/vty/vty.h>
29
Harald Weltee881b1b2011-08-17 18:52:30 +020030/*! \defgroup telnet_interface Telnet Interface
Harald Welte7acb30c2011-08-17 17:13:48 +020031 * @{
Neels Hofmeyr17518fe2017-06-20 04:35:06 +020032 * \file telnet_interface.h */
Harald Welte7acb30c2011-08-17 17:13:48 +020033
Neels Hofmeyr87e45502017-06-20 00:17:59 +020034/*! A telnet connection */
Harald Welte3fb0b6f2010-05-19 19:02:52 +020035struct telnet_connection {
Neels Hofmeyr87e45502017-06-20 00:17:59 +020036 /*! linked list header for internal management */
Harald Welte3fb0b6f2010-05-19 19:02:52 +020037 struct llist_head entry;
Neels Hofmeyr87e45502017-06-20 00:17:59 +020038 /*! private data pointer passed through */
Harald Welte3fb0b6f2010-05-19 19:02:52 +020039 void *priv;
Neels Hofmeyr87e45502017-06-20 00:17:59 +020040 /*! filedsecriptor (socket ) */
Pablo Neira Ayusof7f89d02011-05-07 12:42:40 +020041 struct osmo_fd fd;
Neels Hofmeyr87e45502017-06-20 00:17:59 +020042 /*! VTY instance associated with telnet connection */
Harald Welte3fb0b6f2010-05-19 19:02:52 +020043 struct vty *vty;
Neels Hofmeyr87e45502017-06-20 00:17:59 +020044 /*! logging target associated with this telnet connection */
Harald Welte3fb0b6f2010-05-19 19:02:52 +020045 struct log_target *dbg;
46};
47
Harald Welte3fb0b6f2010-05-19 19:02:52 +020048int telnet_init(void *tall_ctx, void *priv, int port);
Sylvain Munauta9efc122012-03-01 20:41:40 +010049int telnet_init_dynif(void *tall_ctx, void *priv, const char *ip, int port);
Harald Welte3fb0b6f2010-05-19 19:02:52 +020050
Andreas.Eversbergdc3be0a2011-11-06 20:09:28 +010051void telnet_exit(void);
52
Sylvain Munautdca7d2c2012-04-18 21:53:23 +020053/*! @} */