Annotation of embedaddon/libpdel/ppp/ppp_pptp_ctrl.h, revision 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>