PIN generation code
This commit is contained in:
@@ -6,6 +6,8 @@
|
||||
#include "email.h"
|
||||
#include "safestring.h"
|
||||
#include <string>
|
||||
#include <iostream>
|
||||
#include <cstdlib>
|
||||
#include "pgsql.h"
|
||||
#include "pgsql_wrapper.h"
|
||||
#include <curl/curl.h>
|
||||
@@ -1156,9 +1158,26 @@ wrenchboard=> select * from members_family;
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* WARNING: Unsafe function without buffer length check! */
|
||||
void GeneratePIN(int length, char *buffer) {
|
||||
if (length < 2) {
|
||||
sprintf(buffer, "%d", rand() % 10); // if the PIN length is less than 2 - make a single digit
|
||||
return;
|
||||
}
|
||||
// leading number must not be 0
|
||||
long long randomNumber = (rand() % 9) + 1;
|
||||
const int n = length - 1;
|
||||
for (int i = 0; i<n; i++) {
|
||||
randomNumber *= 10;
|
||||
randomNumber += rand() % 10;
|
||||
}
|
||||
sprintf(buffer, "%0*ld", length, randomNumber);
|
||||
}
|
||||
|
||||
|
||||
long WrenchFamilyInitializeAccount(CVars in, CVars &out){
|
||||
const PGresult *res;
|
||||
char username[7] = "";
|
||||
const PGresult *res;
|
||||
char username[7] = "";
|
||||
logfmt(logINFO, "WrenchFamilyInitializeAccount()");
|
||||
try {
|
||||
|
||||
@@ -1172,12 +1191,15 @@ char username[7] = "";
|
||||
r1 = 1000+(rand()%9000);
|
||||
pgsql_exec("UPDATE members_family SET pin='%s' WHERE id=%lu", r1, in["family_id"].Long() );
|
||||
*/
|
||||
char pin[5]; // 4 digits + \0
|
||||
bzero(pin, sizeof (pin));
|
||||
GeneratePIN(4, pin);
|
||||
|
||||
pgsql_exec("UPDATE members_family SET pin='1234' WHERE id=%lu", in["family_id"].Long() );
|
||||
pgsql_exec("UPDATE members_family SET pin='%s' WHERE id=%lu", pin, in["family_id"].Long() );
|
||||
|
||||
load_db_record(out, "SELECT * FROM members_family WHERE id = %lu", in["family_id"].Long());
|
||||
|
||||
return 0;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -1188,4 +1210,4 @@ return 0;
|
||||
#define WRENCHBOARD_FAMILY_ADD 22015
|
||||
#define WRENCHBOARD_FAMILY_UPDATE 22020
|
||||
#define WRENCHBOARD_FAMILY_MANAGE 22025
|
||||
*/
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user