Commit b0d5f2db authored by Ryan Bloom's avatar Ryan Bloom
Browse files

Back out my last patch. The logic to add sockets to pollsets is back in

the MPM


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@91906 13f79535-47bb-0310-9956-ffa450edef68
parent 2118a1cb
Loading
Loading
Loading
Loading
+0 −2
Original line number Diff line number Diff line
@@ -143,8 +143,6 @@ AP_DECLARE_HOOK(int,process_connection,(conn_rec *c))
AP_DECLARE_HOOK(conn_rec *, create_connection,
                (apr_pool_t *p, apr_socket_t *csd, int conn_id))

AP_DECLARE_HOOK(int, add_listeners, (apr_pollfd_t *pollset, apr_socket_t **listensocks, int num_listensocks))

#ifdef __cplusplus
}
#endif
+0 −4
Original line number Diff line number Diff line
@@ -76,13 +76,9 @@
APR_HOOK_STRUCT(
	    APR_HOOK_LINK(pre_connection)
	    APR_HOOK_LINK(process_connection)
            APR_HOOK_LINK(add_listeners)
            APR_HOOK_LINK(create_connection)
)

AP_IMPLEMENT_HOOK_RUN_ALL(int,add_listeners,
     (apr_pollfd_t *pollset, apr_socket_t **listensocks, int num_listensocks),
     (pollset, listensocks, num_listensocks),OK,DECLINED)
AP_IMPLEMENT_HOOK_RUN_ALL(int,pre_connection,(conn_rec *c),(c),OK,DECLINED)
AP_IMPLEMENT_HOOK_RUN_FIRST(int,process_connection,(conn_rec *c),(c),DECLINED)
AP_IMPLEMENT_HOOK_RUN_FIRST(conn_rec *,create_connection,
+0 −14
Original line number Diff line number Diff line
@@ -3329,19 +3329,6 @@ static conn_rec *core_create_conn(apr_pool_t *ptrans, apr_socket_t *csd,
    return net->c;
}

static int core_add_listeners(apr_pollfd_t *pollset, 
                              apr_socket_t **listensocks, int num_listensocks)
{
    int i;
    ap_listen_rec *lr;

    for (lr = ap_listeners, i = 0; i < num_listensocks; lr = lr->next, i++) {
        listensocks[i] = lr->sd;
        apr_poll_socket_add(pollset, listensocks[i], APR_POLLIN);
    }
    return OK;
}

static void register_hooks(apr_pool_t *p)
{
    ap_hook_post_config(core_post_config,NULL,NULL,APR_HOOK_REALLY_FIRST);
@@ -3355,7 +3342,6 @@ static void register_hooks(apr_pool_t *p)
    ap_hook_access_checker(do_nothing,NULL,NULL,APR_HOOK_REALLY_LAST);
    ap_hook_create_connection(core_create_conn, NULL, NULL, APR_HOOK_REALLY_LAST);
    ap_hook_create_request(core_create_req, NULL, NULL, APR_HOOK_MIDDLE);
    ap_hook_add_listeners(core_add_listeners, NULL, NULL, APR_HOOK_MIDDLE);
    APR_OPTIONAL_HOOK(proxy, create_req, core_create_proxy_req, NULL, NULL, 
                      APR_HOOK_MIDDLE);
    ap_hook_pre_mpm(ap_create_scoreboard, NULL, NULL, APR_HOOK_MIDDLE);
+7 −3
Original line number Diff line number Diff line
@@ -544,7 +544,8 @@ static void child_main(int child_num_arg)
    apr_pool_t *ptrans;
    conn_rec *current_conn;
    apr_status_t stat = APR_EINIT;
    int sockdes;
    int sockdes, i;
    ap_listen_rec *lr;
    int curr_pollfd, last_pollfd = 0;
    apr_pollfd_t *pollset;
    apr_socket_t *sd;
@@ -575,12 +576,15 @@ static void child_main(int child_num_arg)

    ap_sync_scoreboard_image();

    apr_poll_setup(&pollset, num_listensocks, pchild);
    /* Set up the pollfd array */
    listensocks = apr_pcalloc(pchild,
                            sizeof(*listensocks) * (num_listensocks));
    for (lr = ap_listeners, i = 0; i < num_listensocks; lr = lr->next, i++)
        listensocks[i]=lr->sd;

    ap_run_add_listeners(pollset, listensocks, num_listensocks);
    apr_poll_setup(&pollset, num_listensocks, pchild);
    for (i = 0; i < num_listensocks; i++)
        apr_poll_socket_add(pollset, listensocks[i], APR_POLLIN);

    while (!die_now) {
	/*