| /* $Id$ */ |
| /* |
| * Copyright (C) 2010 Teluu Inc. (http://www.teluu.com) |
| * |
| * This program is free software; you can redistribute it and/or modify |
| * it under the terms of the GNU General Public License as published by |
| * the Free Software Foundation; either version 2 of the License, or |
| * (at your option) any later version. |
| * |
| * This program is distributed in the hope that it will be useful, |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| * GNU General Public License for more details. |
| * |
| * You should have received a copy of the GNU General Public License |
| * along with this program; if not, write to the Free Software |
| * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
| */ |
| #ifndef __PJLIB_UTIL_CLI_TELNET_H__ |
| #define __PJLIB_UTIL_CLI_TELNET_H__ |
| |
| /** |
| * @file cli_telnet.h |
| * @brief Command Line Interface Telnet Front End API |
| */ |
| |
| #include <pjlib-util/cli_imp.h> |
| |
| PJ_BEGIN_DECL |
| |
| /** |
| * @ingroup PJLIB_UTIL_CLI_IMP |
| * @{ |
| * |
| */ |
| |
| /** |
| * This structure contains the information about the telnet. |
| * Application will get updated information each time the telnet is started/ |
| * restarted. |
| */ |
| typedef struct pj_cli_telnet_info |
| { |
| /** |
| * The telnet's ip address. |
| */ |
| pj_str_t ip_address; |
| |
| /** |
| * The telnet's port number. |
| */ |
| pj_uint16_t port; |
| |
| /* Internal buffer for IP address */ |
| char buf_[32]; |
| |
| } pj_cli_telnet_info; |
| |
| /** |
| * This specifies the callback called when telnet is started |
| * |
| * @param status The status of telnet startup process. |
| * |
| */ |
| typedef void (*pj_cli_telnet_on_started)(pj_status_t status); |
| |
| /** |
| * This structure contains various options to instantiate the telnet daemon. |
| * Application must call pj_cli_telnet_cfg_default() to initialize |
| * this structure with its default values. |
| */ |
| typedef struct pj_cli_telnet_cfg |
| { |
| /** |
| * Listening port number. The value may be 0 to let the system choose |
| * the first available port. |
| * |
| * Default value: PJ_CLI_TELNET_PORT |
| */ |
| pj_uint16_t port; |
| |
| /** |
| * Ioqueue instance to be used. If this field is NULL, an internal |
| * ioqueue and worker thread will be created. |
| */ |
| pj_ioqueue_t *ioqueue; |
| |
| /** |
| * Default log verbosity level for the session. |
| * |
| * Default value: PJ_CLI_TELNET_LOG_LEVEL |
| */ |
| int log_level; |
| |
| /** |
| * Specify a password to be asked to the end user to access the |
| * application. |
| * |
| * Default: empty (no password) |
| */ |
| pj_str_t passwd; |
| |
| /** |
| * Specify text message to be displayed to newly connected users. |
| * |
| * Default: empty |
| */ |
| pj_str_t welcome_msg; |
| |
| /** |
| * Specify text message as a prompt string to user. |
| * |
| * Default: empty |
| */ |
| pj_str_t prompt_str; |
| |
| /** |
| * Specify the pj_cli_telnet_on_started callback. |
| * |
| * Default: empty |
| */ |
| pj_cli_telnet_on_started on_started; |
| |
| } pj_cli_telnet_cfg; |
| |
| /** |
| * Initialize pj_cli_telnet_cfg with its default values. |
| * |
| * @param param The structure to be initialized. |
| */ |
| PJ_DECL(void) pj_cli_telnet_cfg_default(pj_cli_telnet_cfg *param); |
| |
| |
| /** |
| * Create, initialize, and start a telnet daemon for the application. |
| * |
| * @param cli The CLI application instance. |
| * @param param Optional parameters for creating the telnet daemon. |
| * If this value is NULL, default parameters will be used. |
| * @param p_fe Optional pointer to receive the front-end instance |
| * of the telnet front-end just created. |
| * |
| * @return PJ_SUCCESS on success, or the appropriate error code. |
| */ |
| PJ_DECL(pj_status_t) pj_cli_telnet_create(pj_cli_t *cli, |
| pj_cli_telnet_cfg *param, |
| pj_cli_front_end **p_fe); |
| |
| |
| /** |
| * Retrieve cli telnet info. |
| * |
| * @param telnet_info The telnet runtime information. |
| * |
| * @return PJ_SUCCESS on success. |
| */ |
| PJ_DECL(pj_status_t) pj_cli_telnet_get_info(pj_cli_front_end *fe, |
| pj_cli_telnet_info *info); |
| |
| /** |
| * @} |
| */ |
| |
| PJ_END_DECL |
| |
| #endif /* __PJLIB_UTIL_CLI_TELNET_H__ */ |