modemu2k
Library that provides telnet capability to a comm program
Data Structures | Macros | Typedefs | Enumerations | Functions | Variables
modemu2k.h File Reference

core modemu2k API More...

#include <stdio.h>
#include <string.h>
#include <stdbool.h>
#include <sys/types.h>
#include <sys/time.h>
#include <sys/ioctl.h>
#include "cmdarg.h"
#include <locale.h>
#include "gettext.h"

Go to the source code of this file.

Data Structures

struct  st_sock
 
struct  Atcmd
 
struct  st_sockBufR
 
struct  st_sockBufW
 
struct  TelOptState
 
struct  TelOptStates
 
struct  st_telOpt
 
struct  st_tty
 
struct  st_ttyBufR
 
struct  st_ttyBufW
 

Macros

#define ENABLE_NLS   1
 
#define _(String)   gettext (String)
 
#define gettext_noop(String)   String
 
#define N_(String)   gettext_noop (String)
 
#define SOCKBUFR_SIZE   1024
 
#define TTYBUFR_SIZE   1024
 
#define LINEBUF_SIZE   256
 
#define CMDBUF_MAX   255
 
#define DEFAULT_PORT   23
 
#define ADDR_MAX   63
 
#define PORT_MAX   63
 
#define PT_MAX   40
 
#define SREG_MAX   12
 
#define CHAR_ESC   (atcmd.s[2])
 
#define CHAR_CR   (atcmd.s[3])
 
#define CHAR_LF   (atcmd.s[4])
 
#define CHAR_BS   (atcmd.s[5])
 
#define SOCKBUFW_SIZE   (2 * TTYBUFR_SIZE) /* this seems to be any number */
 
#define SOCKBUFW_SIZE_A   (SOCKBUFW_SIZE + TTYBUFR_SIZE) /* important */
 
#define putOptCmd(s, c)   { putSock1(IAC); putSock1(s); putSock1(c); }
 
#define TTYBUFW_SIZE   (2 * SOCKBUFR_SIZE) /* this seems to be any number */
 
#define TTYBUFW_SIZE_A   (TTYBUFW_SIZE + SOCKBUFR_SIZE) /* important */
 
#define ttyBufWReset()
 
#define ttyBufWHasData()   (ttyBufW.ptr > ttyBufW.buf)
 
#define ttyBufWReady()   (!ttyBufW.stop)
 
#define putTtyStr(s)   putTtyN(s, sizeof(s)-1)
 
#define VERB_MISC   1
 
#define VERB_TELOPT   2
 

Typedefs

typedef unsigned char uchar
 
typedef struct st_sock st_sock
 

Enumerations

enum  AtdAType { ATDA_NUM , ATDA_STR }
 
enum  AtdPType { ATDP_NUL , ATDP_NUM , ATDP_STR }
 
enum  TelOptReq {
  TOR_MUSTNOT , TOR_BETTERNOT , TOR_NEUTRAL , TOR_BETTER ,
  TOR_MUST
}
 
enum  Cmdstat {
  CMDST_OK , CMDST_ERROR , CMDST_CONNECT , CMDST_NOCARRIER ,
  CMDST_NOAT , CMDST_ATD , CMDST_ATO
}
 

Functions

void sockInit (struct st_sock *sock)
 
int sockClose (st_sock *sock)
 
int sockShutdown (st_sock *sock)
 
int m2k_sockDial (st_sock *sock)
 
void atcmdInit (struct st_cmdarg *cmdarg, st_sock *sock)
 
void m2k_atcmdD (const char *s, AtdAType at, AtdPType pt)
 
int atcmdFake (const char *s, const char *vals)
 
int atcmdH (const char *s, st_sock *sock)
 
int atcmdI (const char *s)
 
int atcmdSQuery (const char *s)
 
int atcmdSSet (const char *s)
 
void atcmdZ (st_sock *sock)
 
void atcmdAW (void)
 
int atcmdPB (const char *s)
 
int atcmdPD (const char *s)
 
int atcmdPL (const char *s)
 
void atcmdPQ (st_sock *sock)
 
int atcmdPR (const char *s)
 
int atcmdPT (const char *s)
 
int atcmdPTSet (const char *s)
 
int atcmdPV (const char *s)
 
void commxForkExec (const char *cmd, char c10, char c01)
 
void sockBufRReset (void)
 
int getSock1 (void)
 
void sockBufRead (st_sock *sock)
 
void sockBufWReset (void)
 
bool sockBufWHasData (void)
 
bool sockBufWReady (void)
 
void sockBufWrite (st_sock *sock)
 
void putSock1 (uchar c)
 
void putSockN (const uchar *cp, int n)
 
void setTty (void)
 
void telOptReset (void)
 
void telOptInit (void)
 
void telOptPrintCmd (const char *str, int cmd)
 
void telOptSendReqs (void)
 
int telOptHandle (int cmd, int opt)
 
int telOptSBHandle (int opt)
 
void timevalSet10ms (struct timeval *ap, int b)
 
void timevalAdd (struct timeval *ap, const struct timeval *bp)
 
void timevalSub (struct timeval *ap, const struct timeval *bp)
 
int timevalCmp (const struct timeval *ap, const struct timeval *bp)
 
void ttyBufRReset (void)
 
int getTty1 (void)
 
void ttyBufRead (st_sock *sock)
 
void ttyBufWrite (st_sock *sock)
 
void putTty1 (unsigned char c)
 
void putTtyN (const char *cp, int n)
 
void * chk_alloc (void *ptr)
 
void verboseOut (int mask, const char *format,...)
 
void verbosePerror (int mask, const char *s)
 
Cmdstat cmdLex (const char *ptr, st_sock *sock)
 

Variables

Atcmd atcmd
 
Atcmd atcmdNV
 
struct st_sockBufR sockBufR
 
struct st_sockBufW sockBufW
 
struct st_telOpt telOpt
 
struct st_tty tty
 
struct st_ttyBufR ttyBufR
 
struct st_ttyBufW ttyBufW
 

Detailed Description

core modemu2k API

Macro Definition Documentation

◆ ttyBufWReset

#define ttyBufWReset ( )
Value:
{ \
ttyBufW.ptr = ttyBufW.top = ttyBufW.buf; \
ttyBufW.stop = 0; \
}

Function Documentation

◆ m2k_atcmdD()

void m2k_atcmdD ( const char *  s,
AtdAType  at,
AtdPType  pt 
)

The host/ip and port number to be dialed

Parameters
sthe host or IP
at
pt
Returns
void
See also
m2k_sockDial()

Example:

atcmdD("github.com 80", ATDA_STR, ATDP_NUM);

◆ m2k_sockDial()

int m2k_sockDial ( st_sock sock)

Initiate connection

Parameters
sock
Returns
0 if completed successfully, 1 otherwise
See also
m2k_atcmdD()

ifdef NO_DIAL_CANCELING