X-Git-Url: https://git.ozlabs.org/?a=blobdiff_plain;f=pppd%2Fupap.h;h=e6058be14bc64b77b6b3e3f29b5d36898d6637b3;hb=ba7f7e053daae846a54a1d08d3d133a5f1266ace;hp=af09cd914176225a76a1fd6ef28ff760660e84a0;hpb=76016e1b948b7d9675b4e0750d1f943d96d9523b;p=ppp.git diff --git a/pppd/upap.h b/pppd/upap.h index af09cd9..e6058be 100644 --- a/pppd/upap.h +++ b/pppd/upap.h @@ -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