From e125afd91d3445b21f31bafd3ffd52d39049f289 Mon Sep 17 00:00:00 2001 From: fengweihao Date: Tue, 13 Nov 2018 10:31:21 +0800 Subject: [PATCH] =?UTF-8?q?*=E6=B7=BB=E5=8A=A0=E8=84=9A=E6=9C=ACtarball.sh?= =?UTF-8?q?,=E7=94=9F=E6=88=90=E5=AE=89=E8=A3=85=E5=8C=85=20*=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E5=BD=93Maat=E6=97=A0=E5=88=9D=E5=A7=8B=E5=8C=96?= =?UTF-8?q?=E6=97=B6=EF=BC=8C=E8=AF=81=E4=B9=A6=E7=AD=BE=E5=8F=91=E5=A4=B1?= =?UTF-8?q?=E8=B4=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Makefile | 27 +++++---------------------- src/cert_session.c | 14 ++++++++++---- src/cert_store.c | 4 ++-- src/lib/libapps.a | Bin 187380 -> 0 bytes src/package/Makefile | 4 ++-- src/package/r2_certstore1.0 | 3 +++ src/package/r3_certstore1.0 | 17 +++++++++++++++++ src/script/tarball.sh | 34 ++++++++++++++++++++++++++++++++++ 8 files changed, 73 insertions(+), 30 deletions(-) delete mode 100644 src/lib/libapps.a create mode 100644 src/package/r2_certstore1.0 create mode 100644 src/package/r3_certstore1.0 create mode 100644 src/script/tarball.sh diff --git a/src/Makefile b/src/Makefile index 2f03453..2a6117a 100644 --- a/src/Makefile +++ b/src/Makefile @@ -4,9 +4,9 @@ CERT_ROOT = .. endif MAJOR="1.0" -BUILD="1.0" -BUILD_FINGERPRINT=$(MAJOR).$(BUILD) -BUILD_FINGERPRINT2=$(strip $(BUILD_FINGERPRINT)) +BUILD=$(shell git log | grep -cE 'Author:.*<.*@.*>') +BUILDSHA=$(shell git rev-parse --short HEAD) +BUILD_FINGERPRINT=$(MAJOR).$(BUILD).$(BUILDSHA) # Default simulation parameters NUM_PROCESSORS=1 @@ -48,7 +48,7 @@ dir := ./inc include $(dir)/inc.mk OBJS += $(OBJS_$(dir)) -LDFLAGS_GLOBAL += -L ./lib -lapps -lcrypto -lssl -levent -lhiredis +LDFLAGS_GLOBAL += -L ./lib -lcrypto -lssl -levent -lhiredis LDFLAGS_GLOBAL += -L ./lib -lMESA_htable -lMESA_field_stat2 -lMESA_handle_logger -lMESA_prof_load LDFLAGS_GLOBAL += \ -lpthread -lcrypt -lm -lz -ldl -lmaatframe -lstdc++ @@ -73,24 +73,7 @@ $(OBJ_DIR)/%.o: $(d)/%.c include $(CERT_ROOT)/make/application.mk tarball: cert_store - if [ ! -d "package/certstroe_run/bin" ]; then mkdir -p "package/certstore_run/bin/"; fi - if [ ! -d "package/certstroe_run/conf" ]; then mkdir -p "package/certstore_run/conf"; fi - if [ ! -d "package/certstroe_run/cert" ]; then mkdir -p "package/certstore_run/cert"; fi - if [ ! -d "package/certstroe_run/rule" ]; then mkdir -p "package/certstore_run/rule"; fi - cp cert_store package/certstore_run/bin/certstore1.0 - cp ../conf/cert_store.ini package/certstore_run/conf/ - cp ../conf/pxy_obj_keyring.json package/certstore_run/conf - cp ../conf/table_info.conf package/certstore_run/conf -# cp ../ca/mesalab-def-cert.cer package/certstore_run/cert -# cp ../ca/mesalab-def-cert.key package/certstore_run/cert - cp ../ca/* package/certstore_run/cert - cp package/Makefile package/certstore_run/ - cp ../rule/* -rf package/certstore_run/rule/ - cp package/run.sh package/certstore_run/ - cd package && tar cpfz certstore_run.tar.gz certstore_run - cd .. - mv package/certstore_run.tar.gz ../release/ - rm -rf package/certstore_run + sh script/tarball.sh $(TARGET) $(MAJOR).$(BUILD) $(BUILDSHA) clean: rm -rf $(CLEAN_LIST) rm -f $(TARGET) diff --git a/src/cert_session.c b/src/cert_session.c index 8e5d367..e21aa2e 100644 --- a/src/cert_session.c +++ b/src/cert_session.c @@ -980,15 +980,20 @@ static int x509_online_append(struct x509_object_ctx *def, struct request_t *req char *root, char *sign, char *pkey, STACK_OF(X509) **stack_ca) { void *odata = NULL; + X509* x509 = NULL; int is_valid = request->is_valid; int _expire = 0; char *_crl = NULL; X509 *_root = NULL; EVP_PKEY *_key = NULL; struct key_ring_list *keyring = &cert_default_config()->keyring; if (keyring->htable == NULL){ - mesa_runtime_log(RLOG_LV_FATAL, MODULE_NAME, "The approval certificate chain is empty"); - goto finish; + _root = (is_valid == 1) ? def->root : def->insec_root; + _key = (is_valid == 1) ? def->key : def->insec_key; + _expire = cert_default_config()->expire_after; + mesa_runtime_log(RLOG_LV_DEBUG, MODULE_NAME, "The approval certificate chain is empty"); + goto modify; } + odata = MESA_htable_search(keyring->htable, (const uchar *)&(request->keyring_id), sizeof(int)); if ( !odata ){ _root = (is_valid == 1) ? def->root : def->insec_root; @@ -1020,7 +1025,8 @@ static int x509_online_append(struct x509_object_ctx *def, struct request_t *req _expire = pxy_obj->expire_after; _crl = pxy_obj->ctl; } - X509* x509 = x509_modify_by_cert(_root, _key, request->origin, pkey, +modify: + x509 = x509_modify_by_cert(_root, _key, request->origin, pkey, _expire, request->sni, _crl); if (!x509){ goto finish; @@ -1986,7 +1992,7 @@ int sample_plugin_table(Maat_feather_t feather,const char* table_name, void __attribute__((__unused__))*logger) { int table_id = 0,ret = 0; - table_id = Maat_inter_table_register(feather,table_name); + table_id = Maat_inter_table_register(feather, table_name); if(table_id == -1){ mesa_runtime_log(RLOG_LV_FATAL, MODULE_NAME, "Database table %s register failed.",table_name); }else{ diff --git a/src/cert_store.c b/src/cert_store.c index 90a41a7..11f7a21 100644 --- a/src/cert_store.c +++ b/src/cert_store.c @@ -27,7 +27,7 @@ #if 0 #define CERT_BASIC_CFG "/home/ceiec/certstore_run/conf/cert_store.ini" #else -#define CERT_BASIC_CFG "../conf/cert_store.ini" +#define CERT_BASIC_CFG "./conf/cert_store.ini" #endif static char* cert_revision() { return (CERT_GIT_RELEASE); } @@ -42,7 +42,7 @@ static int run_mode; static void help() { - printf("Welcome to CertStor %s\n", cert_revision()); + printf("Welcome to CertStore %s\n", cert_revision()); printf("cert_store <--normal|--daemon>\n" "Usage:\n" " --normal | Run the program in normal mode\n" diff --git a/src/lib/libapps.a b/src/lib/libapps.a deleted file mode 100644 index 7f8b5456afac5380d7240443d2f84e5ac9dc5cbe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 187380 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 fjv3e{*QtGp9ZHK$pS%CA(l3< /dev/null & + diff --git a/src/package/r3_certstore1.0 b/src/package/r3_certstore1.0 new file mode 100644 index 0000000..fda3ef9 --- /dev/null +++ b/src/package/r3_certstore1.0 @@ -0,0 +1,17 @@ +#!/bin/sh + +while [ 1 ]; do + count=`ls -l core.* |wc -l` + echo $count + if [ $count -lt 5 ] + then + echo "set unlimited" + ulimit -c unlimited + else + ulimit -c 0 + fi + + ./certstore1.0 --normal 2>&1 + echo program crashed, restart at `date +"%w %Y/%m/%d, %H:%M:%S"` >> RESTART.log + sleep 10 +done diff --git a/src/script/tarball.sh b/src/script/tarball.sh new file mode 100644 index 0000000..0b32967 --- /dev/null +++ b/src/script/tarball.sh @@ -0,0 +1,34 @@ +X=CertStore-Base-$2 + +version=`lsb_release -i -s` +version_id=`lsb_release -r -s` +machine=`uname -m` +issue_date=`date "+%Y%m%d"` + +tarball="$X-$3-$version$version_id-$machine-$issue_date".tar.gz + +do_mkdir(){ + cd ../release + rm $X -rf + mkdir $X + mkdir $X/cert +} + +do_copy(){ + cp ../conf/ $X -rf + cp ../ca/* $X/cert + cp ../rule/ $X -rf + cp ../src/cert_store $X/certstore1.0 + cp ../src/package/* $X +} + +do_tarball(){ + tar -zcvf $1 $X + rm $X -rf + echo "`date` BUILD=$X COMMIT=$3 ARCHIVE=$tarball" >> release.log +} + +do_mkdir +do_copy $1 +do_tarball $tarball +