Changeset 3333


Ignore:
Timestamp:
Oct 4, 2010 1:11:54 AM (11 years ago)
Author:
bennylp
Message:

Another fix for authentication in HTTP client (re #1136):

  • missing opaque parameter in the response
  • also replaced "\n" with "\r\n"
File:
1 edited

Legend:

Unmodified
Added
Removed
  • pjproject/trunk/pjlib-util/src/pjlib-util/http_client.c

    r3332 r3333  
    13051305          8 + /* nc=.. */ 
    13061306          30 + /* cnonce= */ 
     1307          12 + chal->opaque.slen + /* opaque=".." */ 
    13071308          0; 
    13081309    phdr->value.ptr = (char*)pj_pool_alloc(hreq->pool, len); 
     
    13761377        phdr->value.slen = len; 
    13771378 
     1379        if (chal->opaque.slen) { 
     1380            pj_strcat2(&phdr->value, ", opaque=\""); 
     1381            pj_strcat(&phdr->value, &chal->opaque); 
     1382            pj_strcat2(&phdr->value, "\""); 
     1383        } 
     1384 
    13781385    } else { 
    13791386        /* Server requires quality protection that we don't support. */ 
     
    14751482        pkt.slen = 0; 
    14761483        /* Start-line */ 
    1477         str_snprintf(&pkt, BUF_SIZE, PJ_TRUE, "%.*s %.*s %s/%.*s\n", 
     1484        str_snprintf(&pkt, BUF_SIZE, PJ_TRUE, "%.*s %.*s %s/%.*s\r\n", 
    14781485                     STR_PREC(hreq->param.method),  
    14791486                     STR_PREC(hreq->hurl.path), 
     
    14811488                     STR_PREC(hreq->param.version)); 
    14821489        /* Header field "Host" */ 
    1483         str_snprintf(&pkt, BUF_SIZE, PJ_TRUE, "Host: %.*s:%d\n", 
     1490        str_snprintf(&pkt, BUF_SIZE, PJ_TRUE, "Host: %.*s:%d\r\n", 
    14841491                     STR_PREC(hreq->hurl.host), hreq->hurl.port); 
    14851492        if (!pj_strcmp2(&hreq->param.method, http_method_names[HTTP_PUT])) { 
     
    14901497                    hreq->param.reqdata.total_size:  
    14911498                    hreq->param.reqdata.size, buf); 
    1492             str_snprintf(&pkt, BUF_SIZE, PJ_TRUE, "%s: %s\n", 
     1499            str_snprintf(&pkt, BUF_SIZE, PJ_TRUE, "%s: %s\r\n", 
    14931500                         CONTENT_LENGTH, buf); 
    14941501        } 
     
    14961503        /* Append user-specified headers */ 
    14971504        for (i = 0; i < hreq->param.headers.count; i++) { 
    1498             str_snprintf(&pkt, BUF_SIZE, PJ_TRUE, "%.*s: %.*s\n", 
     1505            str_snprintf(&pkt, BUF_SIZE, PJ_TRUE, "%.*s: %.*s\r\n", 
    14991506                         STR_PREC(hreq->param.headers.header[i].name), 
    15001507                         STR_PREC(hreq->param.headers.header[i].value)); 
     
    15051512        } 
    15061513 
    1507         pj_strcat2(&pkt, "\n"); 
     1514        pj_strcat2(&pkt, "\r\n"); 
    15081515        pkt.ptr[pkt.slen] = 0; 
    15091516        TRACE_((THIS_FILE, "%s", pkt.ptr)); 
Note: See TracChangeset for help on using the changeset viewer.