Random alpha-numeric username (6 characters)
This commit is contained in:
@@ -11,6 +11,7 @@ void GetOfferCode( unsigned long offer_id, char * number, int sz );
|
|||||||
void Confirmation( unsigned long payment_id, char * number, int sz );
|
void Confirmation( unsigned long payment_id, char * number, int sz );
|
||||||
void SetFamilyUsername( unsigned long family_id, char * number, int sz );
|
void SetFamilyUsername( unsigned long family_id, char * number, int sz );
|
||||||
long WrenchLogRecent(CVars in, CVars &out);
|
long WrenchLogRecent(CVars in, CVars &out);
|
||||||
|
void RandomAlphaNumeric( char * number, int sz, int seed );
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|||||||
@@ -45,6 +45,32 @@ void GenerateConfirmationSeed( char * number, int sz, int seed )
|
|||||||
number[i] = 0;
|
number[i] = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void RandomAlphaNumeric( char * number, int sz, int seed )
|
||||||
|
{
|
||||||
|
char chars[] = "1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ";
|
||||||
|
int n = sizeof(chars);
|
||||||
|
int i;
|
||||||
|
/*
|
||||||
|
time_t t;
|
||||||
|
time( &t );
|
||||||
|
pid_t pid = getpid();
|
||||||
|
|
||||||
|
srand(t+pid);
|
||||||
|
*/
|
||||||
|
srand((unsigned int)time((time_t *)NULL));
|
||||||
|
|
||||||
|
for ( i=0; i<10 && i<sz-1; i++ )
|
||||||
|
{
|
||||||
|
int k = seed%n;
|
||||||
|
if (seed>1 && k==i) {
|
||||||
|
number[i] = chars[n-k];
|
||||||
|
} else {
|
||||||
|
number[i] = chars[ (int) ( (n-1.0)*rand()/(RAND_MAX+1.0)) ];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
number[i] = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void Confirmation( unsigned long payment_id, char * number, int sz )
|
void Confirmation( unsigned long payment_id, char * number, int sz )
|
||||||
@@ -104,14 +130,16 @@ void GetOfferCode( unsigned long offer_id, char * number, int sz )
|
|||||||
void SetFamilyUsername( unsigned long family_id, char * number, int sz )
|
void SetFamilyUsername( unsigned long family_id, char * number, int sz )
|
||||||
{
|
{
|
||||||
SQLINTEGER rows;
|
SQLINTEGER rows;
|
||||||
char family_username[14];
|
char family_username[7]; // 6 characters + \0
|
||||||
|
bzero(family_username, sizeof(family_username));
|
||||||
|
|
||||||
// Lock table to prevent generation of two identical username
|
// Lock table to prevent generation of two identical username
|
||||||
pgsql_exec("BEGIN; LOCK TABLE members_family;" );
|
pgsql_exec("BEGIN; LOCK TABLE members_family;" );
|
||||||
int i = 0;
|
int i = 0;
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
GenerateConfirmationSeed( family_username, sizeof(family_username), i++ );
|
//GenerateConfirmationSeed( family_username, sizeof(family_username), i++ );
|
||||||
|
RandomAlphaNumeric( family_username, sizeof(family_username), i++ );
|
||||||
|
|
||||||
//st.CloseCursor();
|
//st.CloseCursor();
|
||||||
rows = 0;
|
rows = 0;
|
||||||
|
|||||||
Reference in New Issue
Block a user