Hello, Can someone explain a way via a C module to update a counter value for every request served by the module and write that value (via ap_rputs or something similar) to the browser. For example, the first time the module services a request, it writes 1 to the browser, the next time it writes 2, .... I tried apr_pool_userdata_get/set with r->server->process->pool as my memory pool, but this doesn't seem to work. This value appears to be in memory sometimes but not others. It will increment as expected for awhile and then drop back to 0. I'm not trying to implement a counter for my page. I'm trying to think of the simplest example so that once I see how this is done, I can easily extrapolate to solve my real problem. Any help is appreciated, especially code!
Here is some sample code that I was using without success: static int ContentHandler( request_rec* r ) { //Don't processs any requests not intended for us if(!nStringUtils::SensitiveEqual(r->handler, "mo_test-handler")) { return DECLINED; } int* pData = 0; apr_status_t retStatus = apr_pool_userdata_get((void**)&pData, "mo_test::__my_test_value__", r->server->process->pool); if(retStatus == APR_SUCCESS) { if(pData != 0) { (*pData) = (*pData) + 1; } else { pData = (int*)malloc(sizeof(int)); *pData = 0; apr_status_t retStatus2 = apr_pool_userdata_set(pData, "mo_test::__my_test_value__", apr_pool_cleanup_null, r->server->process->pool); } char buf[255]; itoa(*pData, buf, 10); ap_rputs(buf, r); ap_rflush(r); } return OK; }