]> git.ozlabs.org Git - ppp.git/blobdiff - pppd/upap.h
Header file reorganization and cleaning up the public API for pppd version 2.5.0...
[ppp.git] / pppd / upap.h
index af09cd914176225a76a1fd6ef28ff760660e84a0..e6058be14bc64b77b6b3e3f29b5d36898d6637b3 100644 (file)
@@ -71,7 +71,7 @@ typedef struct upap_state {
     int us_passwdlen;          /* Password length */
     int us_clientstate;                /* Client state */
     int us_serverstate;                /* Server state */
-    u_char us_id;              /* Current id */
+    unsigned char us_id;               /* Current id */
     int us_timeouttime;                /* Timeout (seconds) for auth-req retrans. */
     int us_transmits;          /* Number of auth-reqs sent */
     int us_maxtransmits;       /* Maximum number of auth-reqs to send */
@@ -113,4 +113,37 @@ void upap_authpeer(int);
 
 extern struct protent pap_protent;
 
+typedef int  (pap_check_hook_fn)(void);
+typedef int  (pap_auth_hook_fn)(char *user, char *passwd, char **msgp,
+                struct wordlist **paddrs,
+                struct wordlist **popts);
+typedef void (pap_logout_hook_fn)(void);
+typedef int  (pap_passwd_hook_fn)(char *user, char *passwd);
+
+/*
+ * This function will return a value of 1 to indicate that a plugin intent to
+ *   supply a username or a password through the pap_auth_hook callback.
+ *
+ * A return value of > 0 will avoid parsing pap-secrets file.
+ */
+extern pap_check_hook_fn  *pap_check_hook;
+
+/*
+ * This hook is used to check if a username and password matches against the
+ *   PAP secrets.
+ */
+extern pap_auth_hook_fn   *pap_auth_hook;
+
+/*
+ * Hook for plugin to know about PAP user logout.
+ */
+extern pap_logout_hook_fn *pap_logout_hook;
+
+/*
+ * A plugin can chose to supply its own user and password overriding what
+ * previously has been configured. Hook is only valid when pppd is acting
+ * as a client
+ */
+extern pap_passwd_hook_fn *pap_passwd_hook;
+
 #endif // PPP_UPAP_H