~ubuntu-branches/ubuntu/quantal/nginx/quantal-updates

« back to all changes in this revision

Viewing changes to src/http/ngx_http_upstream_round_robin.c

  • Committer: Package Import Robot
  • Author(s): Kartik Mistry, Kartik Mistry
  • Date: 2011-09-26 10:17:04 UTC
  • mfrom: (4.2.38 sid)
  • Revision ID: package-import@ubuntu.com-20110926101704-x8pxngiujrmkxnn3
Tags: 1.1.4-2
[Kartik Mistry]
* debian/modules:
  + Updated nginx-upload-progress module, Thanks to upstream for fixing issue
    that FTBFS nginx on kFreeBSD-* archs.
  + Updated nginx-lua module to latest upstream.

Show diffs side-by-side

added added

removed removed

Lines of Context:
14
14
static ngx_uint_t
15
15
ngx_http_upstream_get_peer(ngx_http_upstream_rr_peers_t *peers);
16
16
 
 
17
#if (NGX_HTTP_SSL)
 
18
 
 
19
static ngx_int_t ngx_http_upstream_empty_set_session(ngx_peer_connection_t *pc,
 
20
    void *data);
 
21
static void ngx_http_upstream_empty_save_session(ngx_peer_connection_t *pc,
 
22
    void *data);
 
23
 
 
24
#endif
 
25
 
17
26
 
18
27
ngx_int_t
19
28
ngx_http_upstream_init_round_robin(ngx_conf_t *cf,
219
228
    rrp->peers = us->peer.data;
220
229
    rrp->current = 0;
221
230
 
222
 
    if (rrp->peers->number <= 8 * sizeof(uintptr_t)) {
 
231
    n = rrp->peers->number;
 
232
 
 
233
    if (rrp->peers->next && rrp->peers->next->number > n) {
 
234
        n = rrp->peers->next->number;
 
235
    }
 
236
 
 
237
    if (n <= 8 * sizeof(uintptr_t)) {
223
238
        rrp->tried = &rrp->data;
224
239
        rrp->data = 0;
225
240
 
226
241
    } else {
227
 
        n = (rrp->peers->number + (8 * sizeof(uintptr_t) - 1))
228
 
                / (8 * sizeof(uintptr_t));
 
242
        n = (n + (8 * sizeof(uintptr_t) - 1)) / (8 * sizeof(uintptr_t));
229
243
 
230
244
        rrp->tried = ngx_pcalloc(r->pool, n * sizeof(uintptr_t));
231
245
        if (rrp->tried == NULL) {
343
357
    r->upstream->peer.free = ngx_http_upstream_free_round_robin_peer;
344
358
    r->upstream->peer.tries = rrp->peers->number;
345
359
#if (NGX_HTTP_SSL)
346
 
    r->upstream->peer.set_session =
347
 
                               ngx_http_upstream_set_round_robin_peer_session;
348
 
    r->upstream->peer.save_session =
349
 
                               ngx_http_upstream_save_round_robin_peer_session;
 
360
    r->upstream->peer.set_session = ngx_http_upstream_empty_set_session;
 
361
    r->upstream->peer.save_session = ngx_http_upstream_empty_save_session;
350
362
#endif
351
363
 
352
364
    return NGX_OK;
578
590
static ngx_uint_t
579
591
ngx_http_upstream_get_peer(ngx_http_upstream_rr_peers_t *peers)
580
592
{
581
 
    ngx_uint_t                    i, n;
 
593
    ngx_uint_t                    i, n, reset = 0;
582
594
    ngx_http_upstream_rr_peer_t  *peer;
583
595
 
584
596
    peer = &peers->peer[0];
617
629
            return n;
618
630
        }
619
631
 
 
632
        if (reset++) {
 
633
            return 0;
 
634
        }
 
635
 
620
636
        for (i = 0; i < peers->number; i++) {
621
637
            peer[i].current_weight = peer[i].weight;
622
638
        }
757
773
    }
758
774
}
759
775
 
 
776
 
 
777
static ngx_int_t
 
778
ngx_http_upstream_empty_set_session(ngx_peer_connection_t *pc, void *data)
 
779
{
 
780
    return NGX_OK;
 
781
}
 
782
 
 
783
 
 
784
static void
 
785
ngx_http_upstream_empty_save_session(ngx_peer_connection_t *pc, void *data)
 
786
{
 
787
    return;
 
788
}
 
789
 
760
790
#endif