Palacios Public Git Repository

To checkout Palacios execute

  git clone http://v3vee.org/palacios/palacios.web/palacios.git
This will give you the master branch. You probably want the devel branch or one of the release branches. To switch to the devel branch, simply execute
  cd palacios
  git checkout --track -b devel origin/devel
The other branches are similar.


Release 1.0
[palacios.git] / geekos / src / lwip / netif / ppp / pap.h
1 /*****************************************************************************
2 * pap.h -  PPP Password Authentication Protocol header file.
3 *
4 * Copyright (c) 2003 by Marc Boucher, Services Informatiques (MBSI) inc.
5 * portions Copyright (c) 1997 Global Election Systems Inc.
6 *
7 * The authors hereby grant permission to use, copy, modify, distribute,
8 * and license this software and its documentation for any purpose, provided
9 * that existing copyright notices are retained in all copies and that this
10 * notice and the following disclaimer are included verbatim in any 
11 * distributions. No written agreement, license, or royalty fee is required
12 * for any of the authorized uses.
13 *
14 * THIS SOFTWARE IS PROVIDED BY THE CONTRIBUTORS *AS IS* AND ANY EXPRESS OR
15 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
16 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 
17 * IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
18 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
19 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
20 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
21 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
23 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24 *
25 ******************************************************************************
26 * REVISION HISTORY
27 *
28 * 03-01-01 Marc Boucher <marc@mbsi.ca>
29 *   Ported to lwIP.
30 * 97-12-04 Guy Lancaster <glanca@gesn.com>, Global Election Systems Inc.
31 *   Original derived from BSD codes.
32 *****************************************************************************/
33 /*
34  * upap.h - User/Password Authentication Protocol definitions.
35  *
36  * Copyright (c) 1989 Carnegie Mellon University.
37  * All rights reserved.
38  *
39  * Redistribution and use in source and binary forms are permitted
40  * provided that the above copyright notice and this paragraph are
41  * duplicated in all such forms and that any documentation,
42  * advertising materials, and other materials related to such
43  * distribution and use acknowledge that the software was developed
44  * by Carnegie Mellon University.  The name of the
45  * University may not be used to endorse or promote products derived
46  * from this software without specific prior written permission.
47  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
48  * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
49  * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
50  */
51
52 #ifndef PAP_H
53 #define PAP_H
54
55 #if PAP_SUPPORT /* don't build if not configured for use in lwipopts.h */
56
57 /*************************
58 *** PUBLIC DEFINITIONS ***
59 *************************/
60 /*
61  * Packet header = Code, id, length.
62  */
63 #define UPAP_HEADERLEN (sizeof (u_char) + sizeof (u_char) + sizeof (u_short))
64
65
66 /*
67  * UPAP codes.
68  */
69 #define UPAP_AUTHREQ 1 /* Authenticate-Request */
70 #define UPAP_AUTHACK 2 /* Authenticate-Ack */
71 #define UPAP_AUTHNAK 3 /* Authenticate-Nak */
72
73 /*
74  * Client states.
75  */
76 #define UPAPCS_INITIAL 0 /* Connection down */
77 #define UPAPCS_CLOSED  1 /* Connection up, haven't requested auth */
78 #define UPAPCS_PENDING 2 /* Connection down, have requested auth */
79 #define UPAPCS_AUTHREQ 3 /* We've sent an Authenticate-Request */
80 #define UPAPCS_OPEN    4 /* We've received an Ack */
81 #define UPAPCS_BADAUTH 5 /* We've received a Nak */
82
83 /*
84  * Server states.
85  */
86 #define UPAPSS_INITIAL 0 /* Connection down */
87 #define UPAPSS_CLOSED  1 /* Connection up, haven't requested auth */
88 #define UPAPSS_PENDING 2 /* Connection down, have requested auth */
89 #define UPAPSS_LISTEN  3 /* Listening for an Authenticate */
90 #define UPAPSS_OPEN    4 /* We've sent an Ack */
91 #define UPAPSS_BADAUTH 5 /* We've sent a Nak */
92
93
94 /************************
95 *** PUBLIC DATA TYPES ***
96 ************************/
97
98 /*
99  * Each interface is described by upap structure.
100  */
101 typedef struct upap_state {
102   int us_unit;           /* Interface unit number */
103   const char *us_user;   /* User */
104   int us_userlen;        /* User length */
105   const char *us_passwd; /* Password */
106   int us_passwdlen;      /* Password length */
107   int us_clientstate;    /* Client state */
108   int us_serverstate;    /* Server state */
109   u_char us_id;          /* Current id */
110   int us_timeouttime;    /* Timeout (seconds) for auth-req retrans. */
111   int us_transmits;      /* Number of auth-reqs sent */
112   int us_maxtransmits;   /* Maximum number of auth-reqs to send */
113   int us_reqtimeout;     /* Time to wait for auth-req from peer */
114 } upap_state;
115
116
117 /***********************
118 *** PUBLIC FUNCTIONS ***
119 ***********************/
120
121 extern upap_state upap[];
122
123 void upap_setloginpasswd(int unit, const char *luser, const char *lpassword);
124 void upap_authwithpeer  (int, char *, char *);
125 void upap_authpeer      (int);
126
127 extern struct protent pap_protent;
128
129 #endif /* PAP_SUPPORT */
130
131 #endif /* PAP_H */