Hello, I am new to apache module development and need some help.
I have a search application which runs on port 8100. My C Socket client connects to this port, writes query to server, reads result from server and displays it on the console as given in desired_output.txt. Now I have written an apache module to do the same task (mod_helloworld.c). But it displays the output in the format as given in current_output.html. In this output every 4th character starting from first matches the desired output and rest is some special character. I have tried reading output via wide characters (wchar_t) too, but with same result. Is there any function in apache module by which we can directly write wide characters to html or is there some other solution to this problem. Any help in this regard will be higly appreciated. Regards -- Himadri
#include <httpd.h> #include <http_protocol.h> #include <http_config.h> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <stdio.h> #include <unistd.h> #include <strings.h> #include <arpa/inet.h> #include <stdlib.h> #include <stdio.h> #define MAXLINE 1024 #define HOST "127.0.0.1" #define PORT 8100 void str_cli(char * sendline, int sockfd, request_rec * r) { char ch; //write query to server write(sockfd, sendline, strlen(sendline)); int n, i; //receive results of query while ( n = read(sockfd, &ch, 1) != 0) { ap_rprintf(r, "%lc\n", ch); } } int connect_server(request_rec * r, char * query) { int sockfd; struct sockaddr_in servaddr; int retval; sockfd = socket(AF_INET, SOCK_STREAM, 0); if (sockfd == -1) { printf("socket() failed.\n"); exit(-1); } bzero(&servaddr, sizeof(servaddr)); servaddr.sin_family = AF_INET; servaddr.sin_port = htons(PORT); servaddr.sin_addr.s_addr = inet_addr(HOST); retval = connect(sockfd, (struct sockaddr *) &servaddr, sizeof(servaddr)); if (retval == -1) { printf("connect() failed.\n"); exit(-1); } str_cli(query, sockfd, r); exit(0); } static int helloworld_handler(request_rec* r) { if (!r->handler || strcmp(r->handler, "helloworld")) return DECLINED; if (r->method_number != M_GET) return HTTP_METHOD_NOT_ALLOWED; char *args = r->args; ap_set_content_type(r, "text/html;charset=ascii"); ap_rputs("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\">\n", r); //ap_rputs("<meta http-equiv=\"Content-Type\" content=\"text/html; \ // charset=utf-8\">", r); ap_rputs("<html><body>", r); if(args != NULL) { connect_server(r, args); } ap_rputs("</body></html>", r); return OK; } static void register_hooks(apr_pool_t* pool) { ap_hook_handler(helloworld_handler, NULL, NULL, APR_HOOK_MIDDLE); } module AP_MODULE_DECLARE_DATA helloworld_module = { STANDARD20_MODULE_STUFF, NULL, NULL, NULL, NULL, NULL, register_hooks };
Searching for: contents:sonia sonia meta:sonia 0. Sonia hints at more concessions for farmers 1. Sonia backs duty cut in fuel price 2. Ambani vs Ambani: Mukesh to meet Sonia Gandhi today 3. Sonia asks, Sonia gets oil price cut 4. Fuel price cut | On Sonia's order? 5. Sonia cheers Indian contingent at Olympic opening ceremony- 6. I’ve quit, waiting for Sonia word: Rane- 7. Mukesh Ambani meets PM as calls for windfall tax grow 8. No easy solutions to inflation: Kamal Nath 9. Sonia, Rahul, Priyanka arrive in Beijing- Hindustan Times 10. UPA government is in an ICU, says LK Advani - Hindustan Times 11. Doing it again- Hindustan Times 12. With politicians like these...- Hindustan Times 13. How to recover- Hindustan Times 14. NDTV.com: Ball in govt's court: Yechury 15. NDTV.com: Ramadoss for ban on junk food in DU 16. NDTV.com: Ramadoss for ban on junk food in DU 17. NDTV.com: Seat in DU doubtful despite OBC quota 18. NDTV.com: Girls excel in ICSE, ISC results 19. Pune BPO employee gangraped- Hindustan Times 20. The golden mile- Hindustan Times 21. Post Trust Vote, Cong puts trust back in Manmohan Search took: 3 ms. Screen dump took: 20 ms.