/[LeafOK_CVS]/lbbs/src/login.c
ViewVC logotype

Diff of /lbbs/src/login.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

Revision 1.65 by sysadm, Tue Nov 4 13:49:51 2025 UTC Revision 1.70 by sysadm, Mon Nov 17 12:47:41 2025 UTC
# Line 3  Line 3 
3   * login   * login
4   *   - user authentication and online status manager   *   - user authentication and online status manager
5   *   *
6   * Copyright (C) 2004-2025 by Leaflet <leaflet@leafok.com>   * Copyright (C) 2004-2025  Leaflet <leaflet@leafok.com>
7   */   */
8    
9    #ifdef HAVE_CONFIG_H
10    #include "config.h"
11    #endif
12    
13  #include "bbs.h"  #include "bbs.h"
14  #include "common.h"  #include "common.h"
15  #include "database.h"  #include "database.h"
# Line 21  Line 25 
25  #include <string.h>  #include <string.h>
26  #include <regex.h>  #include <regex.h>
27  #include <unistd.h>  #include <unistd.h>
28  #include <mysql/mysql.h>  #include <mysql.h>
29  #include <sys/param.h>  #include <sys/param.h>
30    
31  static const int BBS_username_min_len = 3; // common len = 5, special len = 3  static const int BBS_username_min_len = 3; // common len = 5, special len = 3
32  static const int BBS_password_min_len = 5; // legacy len = 5, current len = 6  static const int BBS_password_min_len = 5; // legacy len = 5, current len = 6
33    
34    static const int BBS_allowed_login_failures_within_interval = 10;
35    static const int BBS_login_failures_count_interval = 10; // minutes
36    static const int BBS_allowed_login_failures_per_account = 3;
37    
38    const int BBS_login_retry_times = 3;
39    
40  int bbs_login(void)  int bbs_login(void)
41  {  {
42          char username[BBS_username_max_len + 1];          char username[BBS_username_max_len + 1];
# Line 109  int check_user(const char *username, con Line 119  int check_user(const char *username, con
119          // Verify format          // Verify format
120          for (i = 0; ok && username[i] != '\0'; i++)          for (i = 0; ok && username[i] != '\0'; i++)
121          {          {
122                  if (!(isalpha(username[i]) || (i > 0 && (isdigit(username[i]) || username[i] == '_'))))                  if (!(isalpha((int)username[i]) || (i > 0 && (isdigit((int)username[i]) || username[i] == '_'))))
123                  {                  {
124                          ok = 0;                          ok = 0;
125                  }                  }
# Line 120  int check_user(const char *username, con Line 130  int check_user(const char *username, con
130          }          }
131          for (i = 0; ok && password[i] != '\0'; i++)          for (i = 0; ok && password[i] != '\0'; i++)
132          {          {
133                  if (!isalnum(password[i]))                  if (!isalnum((int)password[i]))
134                  {                  {
135                          ok = 0;                          ok = 0;
136                  }                  }


Legend:
Removed lines/characters  
Changed lines/characters
  Added lines/characters

webmaster@leafok.com
ViewVC Help
Powered by ViewVC 1.3.0-beta1