Пример #1
0
int print_summary(char *category)
{
	printf("Printing Summary\n");
	mysql_start();

	if (category) {
		snprintf(query, BUFSIZE, "select id, day, upper(category), format(amount/100,2), description from acct where"
				" category = '%s'", category);
		mysql_select(query);
		printf("Total: $");
		snprintf(query, BUFSIZE, "select sum(format(amount/100,2)) from acct where"
				" category = '%s'", category);
		mysql_select(query);
	}
	else {
		mysql_select("select id, day, upper(category), format(amount/100,2), description from acct");
		printf("Balance: $");
		mysql_select_last("select format(amount/100,2) from balance");
		printf("\n");
	}

	mysql_stop();

	return 0;
}
Пример #2
0
static void travel_command_list(eng_ctx_t* eng_ctx) {
    cmd_list_t* cmd_list = eng_ctx->cmd_list;
    cmd_t* cmd = get_first_cmd(cmd_list);
    
    set_seed(eng_ctx);

    while (cmd != cmd_list->tail) {
        switch (cmd->type) {
        case INSERT:
            mysql_insert(eng_ctx);
            break;
        case DELETE:
            mysql_delete(eng_ctx);
            break;
        case UPDATE:
            mysql_update(eng_ctx);
            break;
        case SELECT:
            mysql_select(eng_ctx);
            break;
        default: break;
        }
        cmd = cmd->next;
    }

    return;
}
Пример #3
0
bool cWorkerThread::_haveSendInfo()
{
	bool haveSendInfo = false;

	result_data_t result_data;
	mysql_field_value_t *pointer = NULL;
	MYSQL conn;
	int retCode = -1;

	retCode = mysql_user_connect(&conn, &mysql_connect_info);
	assert(retCode == 0);

	retCode = mysql_select_db(&conn, mysql_connect_info.db);
	assert(retCode == 0);

	char select_sql[200] = {0};
	snprintf(select_sql, sizeof(select_sql), "select cout(`to`) from send_email where status = 1 and from = '%s' group by `to` limit %d", emailFromAddr, PULL_SENT_MAIL_UNIT);

	retCode = mysql_select(&conn, select_sql, &result_data);

	log("rows:%d, cols:%d\n", result_data.rows, result_data.columns);
	mysql_close(&conn);

	if (result_data.rows > 0) {
		pointer = *(result_data.data);
		haveSendInfo = pointer->next->fieldValue;
	}
	free_result_data(&result_data);

	return haveSendInfo;
}
Пример #4
0
void cChildProcess::pullSentInfoFromMysql()
{
	result_data_t result_data;
	MYSQL conn;
	int retCode = -1;

	retCode = mysql_user_connect(&conn, &mysql_connect_info);
	assert(retCode == 0);

	retCode = mysql_select_db(&conn, mysql_connect_info.db);
	assert(retCode == 0);

	char select_sql[200] = {0};
	snprintf(select_sql, sizeof(select_sql), "select * from send_email where status = 1 and from = '%s' group by `to` limit %d", emailFromAddr, PULL_SENT_MAIL_UNIT);

	retCode = mysql_select(&conn, select_sql, &result_data);

	log("rows:%d, cols:%d\n", result_data.rows, result_data.columns);

	mysql_close(&conn);

	unsigned int i = 0, j = 0;
	mysql_field_value_t *pointer;
	mail_info_t *mail_info_ptr = NULL;

	for (i = 0; i < result_data.rows; i++) {
		mail_info_ptr = (mail_info_t *)calloc(1, sizeof(mail_info_t));
		pointer = *(result_data.data + i);
		for (j = 0; j < result_data.columns; j++) {
			if (!strncasecmp(pointer->next->fieldName, "to", sizeof("to")) && pointer->next->fieldValue) {
				mail_info_ptr->to = strdup(pointer->next->fieldValue);
			} else if (!strncasecmp(pointer->next->fieldName, "cc", sizeof("cc"))  && pointer->next->fieldValue) {
				mail_info_ptr->cc = strdup(pointer->next->fieldValue);
			} else if (!strncasecmp(pointer->next->fieldName, "subject", sizeof("subject"))  && pointer->next->fieldValue) {
				mail_info_ptr->subject = strdup(pointer->next->fieldValue);
			}else if (!strncasecmp(pointer->next->fieldName, "content", sizeof("content"))  && pointer->next->fieldValue) {
				mail_info_ptr->content = strdup(pointer->next->fieldValue);
			}else if (!strncasecmp(pointer->next->fieldName, "sender", sizeof("sender")) && pointer->next->fieldValue) {
				mail_info_ptr->sender = strdup(pointer->next->fieldValue);
			}else if (!strncasecmp(pointer->next->fieldName, "from", sizeof("from")) && pointer->next->fieldValue) {
				mail_info_ptr->from = strdup(pointer->next->fieldValue);
			}

			pointer = pointer->next;
		}
		send_mail_queue.push(mail_info_ptr);
	}
	free_result_data(&result_data);
}
Пример #5
0
int readQueueMessages() {

	int ret;
	MYSQL_RES *result = NULL;
	MYSQL_ROW row = NULL;
	int send;
	result = mysql_select(octstr_format(SQL_SELECT_MO, octstr_get_cstr(integratorQueueId)));
	int num_rows = mysql_num_rows(result);
	debug("httpClient", 0, "%i messages in the queue", num_rows);
	if (num_rows == 0) {
		mysql_free_result(result);
		return 0;
	}

	while ((row = mysql_fetch_row(result))) {
		SMSmsg msg;
		//initRowMO(msg);
		int ret;
		strcpy(msg.id, row[0]);
		strcpy(msg.phone, row[1]);
		strcpy(msg.shortNumber, row[2]);
		strcpy(msg.text, row[7]);
		strcpy(msg.carrier, row[17]);
		debug("httpClient", 0, "processing MT msg id %s phone=%s text=%s", msg.id, msg.phone, msg.text);
		ret = sendMT(&msg, row[16]);
		debug("httpClient", 0, "Return Processing code = %d - %d - %s", ret, msg.errCode, msg.errText);

		if(ret==0)
		{
			mysql_update(octstr_format(SQL_UPDATE_MO_STATUS, "DISPATCHED", row[0]));
		}else{
			mysql_update(octstr_format(SQL_UPDATE_MO_STATUS_ERROR, "NOTDISPATCHED",msg.errCode,msg.errText,row[0]));
		}

	}
	mysql_free_result(result);
	return 0;

}
Пример #6
0
int main(int argc, char *argv[])
{

if ( argc < 2 ) /* argc should be 2 for correct execution */
{
	printf( "Missing config file path argument \n" );
}
   
if(read_config_file(argv[1]))
{
	printf("Error Loading Configuration File\n");
	printf("Exiting Mydombox .... By !\n");
	exit(1);
}


log_INFO("--------- Starting Mydombox Server ---------");
log_INFO("MySQL client version: %s", mysql_get_client_info());
log_INFO("Loglevel: %s",LOG_LEVEL);
log_INFO("Learn Mode: %d",RECORD);

	conn = mysql_connection();
	result = mysql_select(conn,"SELECT * FROM devices;");
	mysql_free_result(result);
	mysql_close(conn);


if ( file_exists(PORT_RFXTRX433) ){
    // On crée un thread
    pthread_t thread_rfxtrx433;
    // Permet d'exécuter le fonction thread_rfxtrx433 en parallèle
    pthread_create(&thread_rfxtrx433, NULL, rfxtrx433, NULL);
	log_INFO("Module RFXTRX433 Detected & Started");
}

sleep(5);

if ( file_exists(PORT_ENOUSB300) ){
    // On crée un thread
    pthread_t thread_enusb300;
    // Permet d'exécuter le fonction thread_enusb300 en parallèle
    pthread_create(&thread_enusb300, NULL, enusb300, NULL);
    log_INFO("Module USB300 Detected & Started");
}
    
    
sleep(10);

if ( MODULE_SOAP == 1){
    // On crée un thread
    pthread_t thread_soapserver;
    // Permet d'exécuter le fonction thread_soapserver en parallèle
    pthread_create(&thread_soapserver, NULL, soapserver, NULL);
	log_INFO("Module SOAP Started");
}

sleep(5);
if ( MODULE_RPIDOM == 1){
    // On crée un thread
    pthread_t thread_rpidom;
    // Permet d'exécuter le fonction thread_rpidom en parallèle
    pthread_create(&thread_rpidom, NULL, rpidom, NULL);
	log_INFO("Module RPIDOM Started");
}

while(1){
	read_config_file(argv[1]);
    scheduler();
	thermostat();
	sleep (60);
}

return 0;
}
Пример #7
0
Msg *mysql_fetch_msg()
{
    Msg *msg = NULL;
    Octstr *sql, *delet, *id;
    MYSQL_RES *res;
    MYSQL_ROW row;

    sql = octstr_format(SQLBOX_MYSQL_SELECT_QUERY, sqlbox_insert_table);
#if defined(SQLBOX_TRACE)
     debug("SQLBOX", 0, "sql: %s", octstr_get_cstr(sql));
#endif
    res = mysql_select(sql);
    if (res == NULL) {
        debug("sqlbox", 0, "SQL statement failed: %s", octstr_get_cstr(sql));
    }
    else {
        if (mysql_num_rows(res) >= 1) {
            row = mysql_fetch_row(res);
            id = octstr_null_create(row[0]);
            /* save fields in this row as msg struct */
            msg = msg_create(sms);
            msg->sms.sender     = octstr_null_create(row[2]);
            msg->sms.receiver   = octstr_null_create(row[3]);
            msg->sms.udhdata    = octstr_null_create(row[4]);
            msg->sms.msgdata    = octstr_null_create(row[5]);
            msg->sms.time       = atol_null(row[6]);
            msg->sms.smsc_id    = octstr_null_create(row[7]);
            msg->sms.service    = octstr_null_create(row[8]);
            msg->sms.account    = octstr_null_create(row[9]);
            /* msg->sms.id      = atol_null(row[10]); */
            msg->sms.sms_type   = atol_null(row[11]);
            msg->sms.mclass     = atol_null(row[12]);
            msg->sms.mwi        = atol_null(row[13]);
            msg->sms.coding     = atol_null(row[14]);
            msg->sms.compress   = atol_null(row[15]);
            msg->sms.validity   = atol_null(row[16]);
            msg->sms.deferred   = atol_null(row[17]);
            msg->sms.dlr_mask   = atol_null(row[18]);
            msg->sms.dlr_url    = octstr_null_create(row[19]);
            msg->sms.pid        = atol_null(row[20]);
            msg->sms.alt_dcs    = atol_null(row[21]);
            msg->sms.rpi        = atol_null(row[22]);
            msg->sms.charset    = octstr_null_create(row[23]);
            msg->sms.binfo      = octstr_null_create(row[25]);
            msg->sms.meta_data  = octstr_null_create(row[26]);
            if (row[24] == NULL) {
                msg->sms.boxc_id= octstr_duplicate(sqlbox_id);
            }
            else {
                msg->sms.boxc_id= octstr_null_create(row[24]);
            }
            /* delete current row */
            delet = octstr_format(SQLBOX_MYSQL_DELETE_QUERY, sqlbox_insert_table, id);
#if defined(SQLBOX_TRACE)
            debug("SQLBOX", 0, "sql: %s", octstr_get_cstr(delet));
#endif
            mysql_update(delet);
            octstr_destroy(id);
            octstr_destroy(delet);
        }
        mysql_free_result(res);
    }
    octstr_destroy(sql);
    return msg;
}