Fixed cfg crash

This commit is contained in:
Olusesan Ameye
2022-10-22 03:30:51 +00:00
parent c30a776ea5
commit 97e33ebadb
5 changed files with 66 additions and 37 deletions
+12 -5
View File
@@ -8,14 +8,21 @@ RUN apt -y update
RUN apt -y install libconfig++-dev libconfig++9v5 libconfig-dev libconfig9 libpq-dev libpq5 libjson-c-dev libjson-c3 \ RUN apt -y install libconfig++-dev libconfig++9v5 libconfig-dev libconfig9 libpq-dev libpq5 libjson-c-dev libjson-c3 \
libpcrecpp0v5 unixodbc-dev postgresql-server-dev-11 libgsoap-dev libgsoap-2.8.75 libpcrecpp0v5 unixodbc-dev postgresql-server-dev-11 libgsoap-dev libgsoap-2.8.75
# apt -y install libconfig++-dev libconfig++9v5 libconfig-dev libconfig9 libpq-dev libpq5 libjson-c-dev libjson-c4 \
# libpcrecpp0v5 unixodbc-dev postgresql-server-dev-12 libgsoap-dev libgsoap-2.8.91
# DEBUG
RUN apt -y install gdb strace vim
ADD scripts/* /usr/local/bin/ ADD scripts/* /usr/local/bin/
ADD configs/* /cfgs/ ADD configs/* /cfgs/
RUN mkdir -p /opt/mainsite/wrenchboard/ RUN rm -rf /opt/mainsite/wrenchboard
ADD build /opt/mainsite/wrenchboard/build RUN mkdir -p /opt/mainsite/wrenchboard
ADD email /opt/mainsite/wrenchboard/email ADD build/* /opt/mainsite/wrenchboard/build/
ADD etc /opt/mainsite/wrenchboard/etc COPY email/ /opt/mainsite/wrenchboard/email
ADD src /opt/mainsite/wrenchboard/src ADD etc/* /opt/mainsite/wrenchboard/etc/
COPY src/ /opt/mainsite/wrenchboard/src
RUN cd /opt/mainsite/wrenchboard/build && ./configure RUN cd /opt/mainsite/wrenchboard/build && ./configure
+21 -15
View File
@@ -75,7 +75,7 @@ PHP_METHOD(WrenchBoard, wrenchboard_api)
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "zz", &param, &param_out) == FAILURE) { if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "zz", &param, &param_out) == FAILURE) {
// Bad parameters // Bad parameters
RETURN_NULL(); RETURN_NULL();
} }
intern = Z_TSTOBJ_P(id); intern = Z_TSTOBJ_P(id);
@@ -139,38 +139,44 @@ PHP_METHOD(WrenchBoard, wrenchboard_api)
// ------------------------------------------------------------------ // ------------------------------------------------------------------ // ------------------------------------------------------------------ // ------------------------------------------------------------------
PHP_METHOD(WrenchBoard, cfgReadChar) PHP_METHOD(WrenchBoard, cfgReadChar)
{ {
unsigned char *parameter; char *parameter = NULL;
size_t parameter_len = 0;
zval *id = getThis(); zval *id = getThis();
wrenchboard_object *intern; wrenchboard_object *intern;
if (zend_parse_parameters( if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &parameter, &parameter_len) == FAILURE) {
ZEND_NUM_ARGS() TSRMLS_CC, "s", &parameter) == FAILURE) { RETURN_NULL();
RETURN_NULL();
} }
intern = Z_TSTOBJ_P(id); intern = Z_TSTOBJ_P(id);
if(intern != NULL) { if(intern != NULL) {
intern->wrenchboard->logMessage("PHP_METHOD(WrenchBoard, cfgReadChar)");
std::string s = intern->wrenchboard->cfgReadChar((char*)parameter); std::string s = intern->wrenchboard->cfgReadChar((char*)parameter);
RETURN_STRING(s.c_str()); RETURN_STRING(s.c_str());
} }
RETURN_NULL(); RETURN_NULL();
} }
// DEBUG:
// gdb --args php -f i.php
// sysctl -w kernel.core_pattern=/opt/mainsite/wrenchboard/www/core.%e.%p.%h.%t
// ------------------------------------------------------------------ // ------------------------------------------------------------------ // ------------------------------------------------------------------ // ------------------------------------------------------------------
PHP_METHOD(WrenchBoard, cfgReadLong) PHP_METHOD(WrenchBoard, cfgReadLong)
{ {
unsigned char *parameter; char *parameter = NULL;
size_t parameter_len = 0;
zval *id = getThis(); zval *id = getThis();
wrenchboard_object *intern; wrenchboard_object *intern;
if (zend_parse_parameters( if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &parameter, &parameter_len) == FAILURE) {
ZEND_NUM_ARGS() TSRMLS_CC, "s", &parameter) == FAILURE) { RETURN_NULL();
RETURN_NULL();
} }
intern = Z_TSTOBJ_P(id); intern = Z_TSTOBJ_P(id);
if(intern != NULL) { if(intern != NULL) {
RETURN_LONG(intern->wrenchboard->cfgReadLong((char*)parameter)); intern->wrenchboard->logMessage("PHP_METHOD(WrenchBoard, cfgReadLong)");
long l = intern->wrenchboard->cfgReadLong((char*)parameter);
RETURN_LONG(l);
} }
RETURN_NULL(); RETURN_NULL();
} }
@@ -178,13 +184,13 @@ PHP_METHOD(WrenchBoard, cfgReadLong)
// ------------------------------------------------------------------ // ------------------------------------------------------------------ // ------------------------------------------------------------------ // ------------------------------------------------------------------
PHP_METHOD(WrenchBoard, logMessage) PHP_METHOD(WrenchBoard, logMessage)
{ {
unsigned char *message; char *message = NULL;
size_t message_len = 0;
zval *id = getThis(); zval *id = getThis();
wrenchboard_object *intern; wrenchboard_object *intern;
if (zend_parse_parameters( if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &message, &message_len) == FAILURE) {
ZEND_NUM_ARGS() TSRMLS_CC, "s", &message) == FAILURE) { RETURN_FALSE;
RETURN_FALSE;
} }
intern = Z_TSTOBJ_P(id); intern = Z_TSTOBJ_P(id);
+5
View File
@@ -11,8 +11,13 @@ services:
ports: ports:
- 9999:9000 - 9999:9000
privileged: true privileged: true
environment:
- DOCKER_BUILDKIT=1
volumes: volumes:
- ./configs:/cfgs - ./configs:/cfgs
- ../www:/app - ../www:/app
- ../www:/opt/mainsite/wrenchboard/www - ../www:/opt/mainsite/wrenchboard/www
- ./etc:/opt/mainsite/wrenchboard/etc
- ./email:/opt/mainsite/wrenchboard/email
#- ./src:/opt/mainsite/wrenchboard/src
env_file: .env env_file: .env
+23 -17
View File
@@ -139,38 +139,44 @@ PHP_METHOD(WrenchBoard, wrenchboard_api)
// ------------------------------------------------------------------ // ------------------------------------------------------------------ // ------------------------------------------------------------------ // ------------------------------------------------------------------
PHP_METHOD(WrenchBoard, cfgReadChar) PHP_METHOD(WrenchBoard, cfgReadChar)
{ {
unsigned char *parameter; char *parameter = NULL;
size_t parameter_len = 0;
zval *id = getThis(); zval *id = getThis();
wrenchboard_object *intern; wrenchboard_object *intern;
if (zend_parse_parameters( /*if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &parameter, &parameter_len) == FAILURE) {
ZEND_NUM_ARGS() TSRMLS_CC, "s", &parameter) == FAILURE) { RETURN_NULL();
RETURN_NULL();
} }
*/
intern = Z_TSTOBJ_P(id); intern = Z_TSTOBJ_P(id);
if(intern != NULL) { if(intern != NULL) {
std::string s = intern->wrenchboard->cfgReadChar((char*)parameter); intern->wrenchboard->logMessage("PHP_METHOD(WrenchBoard, cfgReadChar)");
RETURN_STRING(s.c_str()); //std::string s = intern->wrenchboard->cfgReadChar((char*)parameter);
//RETURN_STRING(s.c_str());
} }
RETURN_NULL(); RETURN_NULL();
} }
// DEBUG:
// gdb --args php -f i.php
// sysctl -w kernel.core_pattern=/opt/mainsite/wrenchboard/www/core.%e.%p.%h.%t
// ------------------------------------------------------------------ // ------------------------------------------------------------------ // ------------------------------------------------------------------ // ------------------------------------------------------------------
PHP_METHOD(WrenchBoard, cfgReadLong) PHP_METHOD(WrenchBoard, cfgReadLong)
{ {
unsigned char *parameter; char *parameter = NULL;
size_t parameter_len = 0;
zval *id = getThis(); zval *id = getThis();
wrenchboard_object *intern; wrenchboard_object *intern;
if (zend_parse_parameters( /* if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &parameter, &parameter_len) == FAILURE) {
ZEND_NUM_ARGS() TSRMLS_CC, "s", &parameter) == FAILURE) { RETURN_NULL();
RETURN_NULL();
} }
*/
intern = Z_TSTOBJ_P(id); intern = Z_TSTOBJ_P(id);
if(intern != NULL) { if(intern != NULL) {
RETURN_LONG(intern->wrenchboard->cfgReadLong((char*)parameter)); intern->wrenchboard->logMessage("PHP_METHOD(WrenchBoard, cfgReadLong)");
//long l = intern->wrenchboard->cfgReadLong((char*)parameter);
//RETURN_LONG(l);
} }
RETURN_NULL(); RETURN_NULL();
} }
@@ -178,13 +184,13 @@ PHP_METHOD(WrenchBoard, cfgReadLong)
// ------------------------------------------------------------------ // ------------------------------------------------------------------ // ------------------------------------------------------------------ // ------------------------------------------------------------------
PHP_METHOD(WrenchBoard, logMessage) PHP_METHOD(WrenchBoard, logMessage)
{ {
unsigned char *message; char *message = NULL;
size_t message_len = 0;
zval *id = getThis(); zval *id = getThis();
wrenchboard_object *intern; wrenchboard_object *intern;
if (zend_parse_parameters( if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &message, &message_len) == FAILURE) {
ZEND_NUM_ARGS() TSRMLS_CC, "s", &message) == FAILURE) { RETURN_FALSE;
RETURN_FALSE;
} }
intern = Z_TSTOBJ_P(id); intern = Z_TSTOBJ_P(id);
+5
View File
@@ -4,9 +4,14 @@ $USER = str_replace('/home', '', $USER);
$USER = strtok($USER, '/'); $USER = strtok($USER, '/');
//echo $USER; //echo $USER;
// Load API class // Load API class
$USER = 'root';
$wrenchboard_class = 'wrenchboard_api_' . $USER . '\\WrenchBoard'; $wrenchboard_class = 'wrenchboard_api_' . $USER . '\\WrenchBoard';
$wrenchboard = new $wrenchboard_class(); $wrenchboard = new $wrenchboard_class();
$in = array();
$out = array();
$ret = $wrenchboard->wrenchboard_api($in,$out); $ret = $wrenchboard->wrenchboard_api($in,$out);
var_dump($ret); var_dump($ret);
$ret = $wrenchboard->cfgReadLong("database.port");
var_dump($ret);
phpinfo(); phpinfo();
?> ?>