fixed bug in child pipe reading code which limited the total readable bytes
[Evergreen.git] / OpenSRF / src / libstack / osrf_prefork.h
index 8c1725f..98b334f 100644 (file)
@@ -7,12 +7,15 @@
 #include <sys/select.h>
 #include <sys/wait.h>
 
-#include "utils.h"
+#include "opensrf/utils.h"
 #include "opensrf/transport_message.h"
+#include "opensrf/transport_client.h"
 #include "osrf_stack.h"
 #include "osrf_settings.h"
+#include "osrfConfig.h"
 
-#define READ_BUFSIZE 4096
+//#define READ_BUFSIZE 4096
+#define READ_BUFSIZE 1024
 #define MAX_BUFSIZE 10485760 /* 10M enough? ;) */
 #define ABS_MAX_CHILDREN 256 
 
@@ -35,6 +38,7 @@ struct prefork_simple_struct {
        int data_to_child;
        int data_to_parent;
        int current_num_children;
+       int keepalive; /* keepalive time for stateful sessions */
        char* appname;
        struct prefork_child_struct* first_child;
        transport_client* connection;
@@ -51,8 +55,8 @@ struct prefork_child_struct {
        int available;
        int max_requests;
        char* appname;
+       int keepalive;
        struct prefork_child_struct* next;
-       transport_client* connection;
 };
 
 typedef struct prefork_child_struct prefork_child;
@@ -74,7 +78,7 @@ void del_prefork_child( prefork_simple* forker, pid_t pid );
 void check_children( prefork_simple* forker );
 
 void prefork_child_process_request(prefork_child*, char* data);
-void prefork_child_init_hook(prefork_child*);
+int prefork_child_init_hook(prefork_child*);
 
 prefork_child* prefork_child_init( 
                int max_requests, int read_data_fd, int write_data_fd, 
@@ -87,3 +91,6 @@ int prefork_free( prefork_simple* );
 int prefork_child_free( prefork_child* );
 
 
+void osrf_prefork_register_routers( char* appname );
+
+