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 \
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 configs/* /cfgs/
RUN mkdir -p /opt/mainsite/wrenchboard/
ADD build /opt/mainsite/wrenchboard/build
ADD email /opt/mainsite/wrenchboard/email
ADD etc /opt/mainsite/wrenchboard/etc
ADD src /opt/mainsite/wrenchboard/src
RUN rm -rf /opt/mainsite/wrenchboard
RUN mkdir -p /opt/mainsite/wrenchboard
ADD build/* /opt/mainsite/wrenchboard/build/
COPY email/ /opt/mainsite/wrenchboard/email
ADD etc/* /opt/mainsite/wrenchboard/etc/
COPY src/ /opt/mainsite/wrenchboard/src
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) {
// Bad parameters
RETURN_NULL();
RETURN_NULL();
}
intern = Z_TSTOBJ_P(id);
@@ -139,38 +139,44 @@ PHP_METHOD(WrenchBoard, wrenchboard_api)
// ------------------------------------------------------------------ // ------------------------------------------------------------------
PHP_METHOD(WrenchBoard, cfgReadChar)
{
unsigned char *parameter;
char *parameter = NULL;
size_t parameter_len = 0;
zval *id = getThis();
wrenchboard_object *intern;
if (zend_parse_parameters(
ZEND_NUM_ARGS() TSRMLS_CC, "s", &parameter) == FAILURE) {
RETURN_NULL();
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &parameter, &parameter_len) == FAILURE) {
RETURN_NULL();
}
intern = Z_TSTOBJ_P(id);
if(intern != NULL) {
intern->wrenchboard->logMessage("PHP_METHOD(WrenchBoard, cfgReadChar)");
std::string s = intern->wrenchboard->cfgReadChar((char*)parameter);
RETURN_STRING(s.c_str());
}
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)
{
unsigned char *parameter;
char *parameter = NULL;
size_t parameter_len = 0;
zval *id = getThis();
wrenchboard_object *intern;
if (zend_parse_parameters(
ZEND_NUM_ARGS() TSRMLS_CC, "s", &parameter) == FAILURE) {
RETURN_NULL();
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &parameter, &parameter_len) == FAILURE) {
RETURN_NULL();
}
intern = Z_TSTOBJ_P(id);
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();
}
@@ -178,13 +184,13 @@ PHP_METHOD(WrenchBoard, cfgReadLong)
// ------------------------------------------------------------------ // ------------------------------------------------------------------
PHP_METHOD(WrenchBoard, logMessage)
{
unsigned char *message;
char *message = NULL;
size_t message_len = 0;
zval *id = getThis();
wrenchboard_object *intern;
if (zend_parse_parameters(
ZEND_NUM_ARGS() TSRMLS_CC, "s", &message) == FAILURE) {
RETURN_FALSE;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &message, &message_len) == FAILURE) {
RETURN_FALSE;
}
intern = Z_TSTOBJ_P(id);
+5
View File
@@ -11,8 +11,13 @@ services:
ports:
- 9999:9000
privileged: true
environment:
- DOCKER_BUILDKIT=1
volumes:
- ./configs:/cfgs
- ../www:/app
- ../www:/opt/mainsite/wrenchboard/www
- ./etc:/opt/mainsite/wrenchboard/etc
- ./email:/opt/mainsite/wrenchboard/email
#- ./src:/opt/mainsite/wrenchboard/src
env_file: .env
+23 -17
View File
@@ -139,38 +139,44 @@ PHP_METHOD(WrenchBoard, wrenchboard_api)
// ------------------------------------------------------------------ // ------------------------------------------------------------------
PHP_METHOD(WrenchBoard, cfgReadChar)
{
unsigned char *parameter;
char *parameter = NULL;
size_t parameter_len = 0;
zval *id = getThis();
wrenchboard_object *intern;
if (zend_parse_parameters(
ZEND_NUM_ARGS() TSRMLS_CC, "s", &parameter) == FAILURE) {
RETURN_NULL();
/*if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &parameter, &parameter_len) == FAILURE) {
RETURN_NULL();
}
*/
intern = Z_TSTOBJ_P(id);
if(intern != NULL) {
std::string s = intern->wrenchboard->cfgReadChar((char*)parameter);
RETURN_STRING(s.c_str());
intern->wrenchboard->logMessage("PHP_METHOD(WrenchBoard, cfgReadChar)");
//std::string s = intern->wrenchboard->cfgReadChar((char*)parameter);
//RETURN_STRING(s.c_str());
}
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)
{
unsigned char *parameter;
char *parameter = NULL;
size_t parameter_len = 0;
zval *id = getThis();
wrenchboard_object *intern;
if (zend_parse_parameters(
ZEND_NUM_ARGS() TSRMLS_CC, "s", &parameter) == FAILURE) {
RETURN_NULL();
/* if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &parameter, &parameter_len) == FAILURE) {
RETURN_NULL();
}
*/
intern = Z_TSTOBJ_P(id);
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();
}
@@ -178,13 +184,13 @@ PHP_METHOD(WrenchBoard, cfgReadLong)
// ------------------------------------------------------------------ // ------------------------------------------------------------------
PHP_METHOD(WrenchBoard, logMessage)
{
unsigned char *message;
char *message = NULL;
size_t message_len = 0;
zval *id = getThis();
wrenchboard_object *intern;
if (zend_parse_parameters(
ZEND_NUM_ARGS() TSRMLS_CC, "s", &message) == FAILURE) {
RETURN_FALSE;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &message, &message_len) == FAILURE) {
RETURN_FALSE;
}
intern = Z_TSTOBJ_P(id);
+5
View File
@@ -4,9 +4,14 @@ $USER = str_replace('/home', '', $USER);
$USER = strtok($USER, '/');
//echo $USER;
// Load API class
$USER = 'root';
$wrenchboard_class = 'wrenchboard_api_' . $USER . '\\WrenchBoard';
$wrenchboard = new $wrenchboard_class();
$in = array();
$out = array();
$ret = $wrenchboard->wrenchboard_api($in,$out);
var_dump($ret);
$ret = $wrenchboard->cfgReadLong("database.port");
var_dump($ret);
phpinfo();
?>