* OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
-#define RCSID "$Id: auth.c,v 1.115 2008/06/15 06:56:12 paulus Exp $"
+#define RCSID "$Id: auth.c,v 1.117 2008/07/01 12:27:56 paulus Exp $"
#include <stdio.h>
#include <stddef.h>
void start_link(unit)
int unit;
{
- char *msg;
-
+ status = EXIT_CONNECT_FAILED;
new_phase(PHASE_SERIALCONN);
+ hungup = 0;
devfd = the_channel->connect();
- msg = "Connect script failed";
if (devfd < 0)
goto fail;
* gives us. Thus we don't need the tdb_writelock/tdb_writeunlock.
*/
fd_ppp = the_channel->establish_ppp(devfd);
- msg = "ppp establishment failed";
if (fd_ppp < 0) {
status = EXIT_FATAL_ERROR;
goto disconnect;
(*the_channel->cleanup)();
if (doing_multilink && multilink_master) {
- if (!bundle_terminating)
+ if (!bundle_terminating) {
new_phase(PHASE_MASTER);
- else
+ if (master_detach && !detached)
+ detach();
+ } else
mp_bundle_terminated();
} else
new_phase(PHASE_DEAD);
check_maxoctets(arg)
void *arg;
{
- int diff;
unsigned int used;
update_link_stats(ifunit);
used = link_stats.bytes_in+link_stats.bytes_out;
break;
}
- diff = maxoctets - used;
- if(diff < 0) {
+ if (used > maxoctets) {
notice("Traffic limit reached. Limit: %u Used: %u", maxoctets, used);
status = EXIT_TRAFFIC_LIMIT;
lcp_close(0, "Traffic limit");
}
if (secret[0] != 0 && !login_secret) {
/* password given in pap-secrets - must match */
- if ((cryptpap || strcmp(passwd, secret) != 0)
- && strcmp(crypt(passwd, secret), secret) != 0)
- ret = UPAP_AUTHNAK;
+ if (cryptpap || strcmp(passwd, secret) != 0) {
+ char *cbuf = crypt(passwd, secret);
+ if (!cbuf || strcmp(cbuf, secret) != 0)
+ ret = UPAP_AUTHNAK;
+ }
}
}
fclose(f);