Annotation of embedaddon/libpdel/ppp/ppp_pptp_ctrl.h, revision 1.1.1.1

1.1       misho       1: 
                      2: /*
                      3:  * Copyright (c) 1995-1999 Whistle Communications, Inc.
                      4:  * All rights reserved.
                      5:  * 
                      6:  * Subject to the following obligations and disclaimer of warranty,
                      7:  * use and redistribution of this software, in source or object code
                      8:  * forms, with or without modifications are expressly permitted by
                      9:  * Whistle Communications; provided, however, that:   (i) any and
                     10:  * all reproductions of the source or object code must include the
                     11:  * copyright notice above and the following disclaimer of warranties;
                     12:  * and (ii) no rights are granted, in any manner or form, to use
                     13:  * Whistle Communications, Inc. trademarks, including the mark "WHISTLE
                     14:  * COMMUNICATIONS" on advertising, endorsements, or otherwise except
                     15:  * as such appears in the above copyright notice or in the software.
                     16:  * 
                     17:  * THIS SOFTWARE IS BEING PROVIDED BY WHISTLE COMMUNICATIONS "AS IS",
                     18:  * AND TO THE MAXIMUM EXTENT PERMITTED BY LAW, WHISTLE COMMUNICATIONS
                     19:  * MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED,
                     20:  * REGARDING THIS SOFTWARE, INCLUDING WITHOUT LIMITATION, ANY AND
                     21:  * ALL IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
                     22:  * PURPOSE, OR NON-INFRINGEMENT.  WHISTLE COMMUNICATIONS DOES NOT
                     23:  * WARRANT, GUARANTEE, OR MAKE ANY REPRESENTATIONS REGARDING THE USE
                     24:  * OF, OR THE RESULTS OF THE USE OF THIS SOFTWARE IN TERMS OF ITS
                     25:  * CORRECTNESS, ACCURACY, RELIABILITY OR OTHERWISE.  IN NO EVENT
                     26:  * SHALL WHISTLE COMMUNICATIONS BE LIABLE FOR ANY DAMAGES RESULTING
                     27:  * FROM OR ARISING OUT OF ANY USE OF THIS SOFTWARE, INCLUDING WITHOUT
                     28:  * LIMITATION, ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
                     29:  * PUNITIVE, OR CONSEQUENTIAL DAMAGES, PROCUREMENT OF SUBSTITUTE
                     30:  * GOODS OR SERVICES, LOSS OF USE, DATA OR PROFITS, HOWEVER CAUSED
                     31:  * AND UNDER ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
                     32:  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
                     33:  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF WHISTLE COMMUNICATIONS
                     34:  * IS ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
                     35:  *
                     36:  * Author: <archie@freebsd.org>
                     37:  */
                     38: 
                     39: #ifndef _PDEL_PPP_PPP_PPTP_CTRL_H_
                     40: #define _PDEL_PPP_PPP_PPTP_CTRL_H_
                     41: 
                     42: struct ppp_log;
                     43: struct pptp_engine;
                     44: 
                     45: /*
                     46:  * Callback function types
                     47:  */
                     48: 
                     49: /*
                     50:  * Link callback info (passed to PPTP control code)
                     51:  *
                     52:  * cookie      Link private cookie for this connection, NULL = failed
                     53:  * result      Called to report success/failure of a locally initiated
                     54:  *             incoming or outgoing call to peer; also used to report
                     55:  *             when/if a call is terminated by error or the remote side.
                     56:  * setLinkInfo Called when peer notifies us of the remote call link info
                     57:  * cancel      Called to cancel a local outgoing call initiated by peer
                     58:  */
                     59: struct pptplinkinfo {          /* PPTP's info for accessing link code */
                     60:        void    *cookie;        /* NULL indicates response is invalid */
                     61:        void    (*result)(void *cookie, const char *errmsg);
                     62:        void    (*setLinkInfo)(void *cookie, u_int32_t sa, u_int32_t ra);
                     63:        void    (*cancel)(void *cookie);        /* cancel outgoing call */
                     64: };
                     65: typedef struct pptplinkinfo    *PptpLinkInfo;
                     66: 
                     67: /*
                     68:  * PPTP control callback info (passed to link code)
                     69:  *
                     70:  * cookie      PPTP control private cookie for this connection, NULL = failed
                     71:  * peer_addr   Peer's IP address
                     72:  * peer_port   Peer's TCP port
                     73:  * close       Close/shutdown the call
                     74:  * answer      Notify of outgoing call (initiated by peer) success/failure
                     75:  *             Must be called sometime after return from the link-supplied
                     76:  *             'PptpGetOutLink_t' function.
                     77:  */
                     78: struct pptpctrlinfo {          /* Link's info for accessing PPTP code */
                     79:        void            *cookie;        /* NULL indicates response is invalid */
                     80:        struct in_addr  peer_addr;      /* Peer IP address and port */
                     81:        u_int16_t       peer_port;
                     82:        void            (*close)(void *cookie, int result, int err, int cause);
                     83:        void            (*answer)(void *cookie, int rs, int er, int cs, int sp);
                     84: };
                     85: typedef struct pptpctrlinfo    *PptpCtrlInfo;
                     86: 
                     87: typedef int    PptpCheckNewConn_t(void *arg, struct in_addr ip,
                     88:                        u_int16_t port, char *logname, size_t lnmax);
                     89: 
                     90: typedef struct pptplinkinfo PptpGetInLink_t(void *arg,
                     91:                        struct pptpctrlinfo cinfo, struct in_addr peer,
                     92:                        u_int16_t port, int bearType, const char *callingNum,
                     93:                        const char *calledNum, const char *subAddress);
                     94: 
                     95: typedef struct pptplinkinfo PptpGetOutLink_t(void *arg,
                     96:                        struct pptpctrlinfo cinfo, struct in_addr peer,
                     97:                        u_int16_t port, int bearType, int frameType,
                     98:                        int minBps, int maxBps, const char *calledNum,
                     99:                        const char *subAddress);
                    100: 
                    101: /*
                    102:  * Public functions
                    103:  */
                    104: 
                    105: __BEGIN_DECLS
                    106: 
                    107: extern struct  pptp_engine *PptpCtrlInit(void *arg, struct pevent_ctx *ctx,
                    108:                        pthread_mutex_t *mutex,
                    109:                        PptpCheckNewConn_t *checkNewConn,
                    110:                        PptpGetInLink_t *getInLink,
                    111:                        PptpGetOutLink_t *getOutLink,
                    112:                        struct in_addr ip, u_int16_t port, const char *vendor,
                    113:                        struct ppp_log *log, int nocd);
                    114: 
                    115: extern void    PptpCtrlShutdown(struct pptp_engine **enginep);
                    116: 
                    117: extern int     PptpCtrlListen(struct pptp_engine *engine, int enable);
                    118: 
                    119: extern struct  pptpctrlinfo PptpCtrlInCall(struct pptp_engine *engine,
                    120:                        struct pptplinkinfo linfo, struct in_addr ip,
                    121:                        u_int16_t port, const char *logname, int bearType,
                    122:                        int frameType, int minBps, int maxBps,
                    123:                        const char *callingNum, const char *calledNum,
                    124:                        const char *subAddress);
                    125: 
                    126: extern struct  pptpctrlinfo PptpCtrlOutCall(struct pptp_engine *engine,
                    127:                        struct pptplinkinfo linfo, struct in_addr ip,
                    128:                        u_int16_t port, const char *logname, int bearType,
                    129:                        int frameType, int minBps, int maxBps,
                    130:                        const char *calledNum, const char *subAddress);
                    131: 
                    132: extern int     PptpCtrlGetSessionInfo(const struct pptpctrlinfo *cp,
                    133:                        struct in_addr *selfAddr, struct in_addr *peerAddr,
                    134:                        u_int16_t *selfCid, u_int16_t *peerCid,
                    135:                        u_int16_t *peerWin, u_int16_t *peerPpd);
                    136: 
                    137: __END_DECLS
                    138: 
                    139: #endif /* _PDEL_PPP_PPP_PPTP_CTRL_H_ */

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>