From 88ee57b6320822dd54429128489f9f2a388f3331 Mon Sep 17 00:00:00 2001
From: lurumdare <8020186+lurumdare@users.noreply.github.com>
Date: 周六, 07 9月 2019 22:00:55 +0800
Subject: [PATCH] NULL to nullptr (#34)

---
 src/tools/bootstrap/bootstrap.cpp |   22 +++++++++++++++++-----
 1 files changed, 17 insertions(+), 5 deletions(-)

diff --git a/src/tools/bootstrap/bootstrap.cpp b/src/tools/bootstrap/bootstrap.cpp
index 6b22d59..e3647de 100644
--- a/src/tools/bootstrap/bootstrap.cpp
+++ b/src/tools/bootstrap/bootstrap.cpp
@@ -3,13 +3,14 @@
 #include <string>
 #include <stdlib.h>
 #include <iostream> 
+#include <sys/stat.h>
 
 using namespace std;
 namespace license {
 
 void write_pubkey_file(const string& public_fname, const string& pbPublicKey) {
 	FILE* fp = fopen(public_fname.c_str(), "w");
-	if (fp == NULL) {
+	if (fp == nullptr) {
 		throw ios_base::failure(string("can't create :") + public_fname);
 	}
 	fprintf(fp, "//file generated by bootstrap.cpp, do not edit.\n\n");
@@ -17,7 +18,7 @@
 	fprintf(fp, "#define PUBLIC_KEY { \\\n");
 	fprintf(fp, "%s", pbPublicKey.c_str());
 	fprintf(fp, "}\n\n");
-	int random = rand() % 1000;
+	const int random = rand() % 1000;
 	fprintf(fp, "#define SHARED_RANDOM %d;\n", random);
 	fprintf(fp, "#endif\n");
 	fclose(fp);
@@ -25,7 +26,7 @@
 
 void write_privkey_file(const string& private_fname, const string& privateKey) {
 	FILE* fp = fopen(private_fname.c_str(), "w");
-	if (fp == NULL) {
+	if (fp == nullptr) {
 		throw ios_base::failure(string("can't create :") + private_fname);
 	}
 	fprintf(fp, "//file generated by bootstrap.cpp, do not edit.\n\n");
@@ -73,6 +74,12 @@
 }
 }
 
+bool file_exists (const std::string & name)
+{
+  struct stat buffer;
+  return (stat (name.c_str(), &buffer) == 0);
+}
+
 int main(int argc, char** argv) {
 
 	if (argc != 3) {
@@ -84,8 +91,13 @@
 		printf("********************************************\n");
 
 	}
-	string private_fname = string(argv[1]);
-	string public_fname(argv[2]);
+	const string private_fname = string(argv[1]);
+	const string public_fname(argv[2]);
+
+	if (file_exists(private_fname) || file_exists(public_fname)) {
+		printf("Key files exist, skipping key generation. Do 'make clean' to generate new keys.\n");
+		exit(0);
+	}
 
 	license::generatePk(private_fname, public_fname);
 	return 0;

--
Gitblit v1.9.1