PIN generation code
This commit is contained in:
@@ -6,6 +6,8 @@
|
|||||||
#include "email.h"
|
#include "email.h"
|
||||||
#include "safestring.h"
|
#include "safestring.h"
|
||||||
#include <string>
|
#include <string>
|
||||||
|
#include <iostream>
|
||||||
|
#include <cstdlib>
|
||||||
#include "pgsql.h"
|
#include "pgsql.h"
|
||||||
#include "pgsql_wrapper.h"
|
#include "pgsql_wrapper.h"
|
||||||
#include <curl/curl.h>
|
#include <curl/curl.h>
|
||||||
@@ -1156,9 +1158,26 @@ wrenchboard=> select * from members_family;
|
|||||||
return ret;
|
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){
|
long WrenchFamilyInitializeAccount(CVars in, CVars &out){
|
||||||
const PGresult *res;
|
const PGresult *res;
|
||||||
char username[7] = "";
|
char username[7] = "";
|
||||||
logfmt(logINFO, "WrenchFamilyInitializeAccount()");
|
logfmt(logINFO, "WrenchFamilyInitializeAccount()");
|
||||||
try {
|
try {
|
||||||
|
|
||||||
@@ -1172,12 +1191,15 @@ char username[7] = "";
|
|||||||
r1 = 1000+(rand()%9000);
|
r1 = 1000+(rand()%9000);
|
||||||
pgsql_exec("UPDATE members_family SET pin='%s' WHERE id=%lu", r1, in["family_id"].Long() );
|
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());
|
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_ADD 22015
|
||||||
#define WRENCHBOARD_FAMILY_UPDATE 22020
|
#define WRENCHBOARD_FAMILY_UPDATE 22020
|
||||||
#define WRENCHBOARD_FAMILY_MANAGE 22025
|
#define WRENCHBOARD_FAMILY_MANAGE 22025
|
||||||
*/
|
*/
|
||||||
|
|||||||
Reference in New Issue
Block a user