From cd3337aed2b27acf26abaebde9fa2e04e2621943 Mon Sep 17 00:00:00 2001 From: Tatsuhiro Tsujikawa Date: Fri, 21 Feb 2014 21:31:00 +0900 Subject: [PATCH] Update doc --- apiref.html | 24 ++++++++---------------- genindex.html | 4 ---- nghttp2.h.html | 23 ++++++++++------------- objects.inv | Bin 2189 -> 2184 bytes searchindex.js | 2 +- tutorial-server.html | 10 ++++++++-- 6 files changed, 27 insertions(+), 36 deletions(-) diff --git a/apiref.html b/apiref.html index 88036fe8..2886973d 100644 --- a/apiref.html +++ b/apiref.html @@ -600,13 +600,6 @@ The END_HEADERS flag.

The PRIORITY flag.

-
-
-NGHTTP2_FLAG_END_PUSH_PROMISE
-

(0x4) -The END_PUSH_PROMISE flag.

-
-
NGHTTP2_FLAG_ACK
@@ -2294,14 +2287,13 @@ int nghttp2_submit_headers(
  • NGHTTP2_FLAG_END_STREAM
  • -
  • NGHTTP2_FLAG_END_HEADERS
  • NGHTTP2_FLAG_PRIORITY
  • If flags includes NGHTTP2_FLAG_END_STREAM, this frame has -END_STREAM flag set. The library does not support header -continuation and the HEADERS frame always has -NGHTTP2_FLAG_END_HEADERS flag set regardless of the flags -value.

    +END_STREAM flag set.

    +

    The library handles the CONTINUATION frame internally and it +correctly sets END_HEADERS to the last sequence of the PUSH_PROMISE +or CONTINUATION frame.

    If the stream_id is -1, this frame is assumed as request (i.e., request HEADERS frame which opens new stream). In this case, the actual stream ID is assigned just before the frame is sent. For @@ -2410,10 +2402,10 @@ strictly greater than (1 << 31) - 1.

    int nghttp2_submit_push_promise(nghttp2_session *session, uint8_t flags, int32_t stream_id, const nghttp2_nv *nva, size_t nvlen)
    -

    Submits PUSH_PROMISE frame. The flags is currently ignored and -the resulting PUSH_PROMISE frame always has -NGHTTP2_FLAG_END_PUSH_PROMISE flag set due to the lack of -header continuation support in the library.

    +

    Submits PUSH_PROMISE frame.

    +

    The flags is currently ignored. The library handles the +CONTINUATION frame internally and it correctly sets END_HEADERS to +the last sequence of the PUSH_PROMISE or CONTINUATION frame.

    The stream_id must be client initiated stream ID.

    The nva is an array of name/value pair nghttp2_nv with nvlen elements. The value is opaque sequence of bytes and diff --git a/genindex.html b/genindex.html index ca82c52d..4aa99cff 100644 --- a/genindex.html +++ b/genindex.html @@ -377,10 +377,6 @@ -

    NGHTTP2_FLAG_END_PUSH_PROMISE (C macro) -
    - -
    NGHTTP2_FLAG_END_SEGMENT (C macro)
    diff --git a/nghttp2.h.html b/nghttp2.h.html index 09c48391..3df052f6 100644 --- a/nghttp2.h.html +++ b/nghttp2.h.html @@ -545,10 +545,6 @@ */ NGHTTP2_FLAG_PRIORITY = 0x8, /** - * The END_PUSH_PROMISE flag. - */ - NGHTTP2_FLAG_END_PUSH_PROMISE = 0x4, - /** * The ACK flag. */ NGHTTP2_FLAG_ACK = 0x1, @@ -2132,14 +2128,14 @@ * following values: * * * :enum:`NGHTTP2_FLAG_END_STREAM` - * * :enum:`NGHTTP2_FLAG_END_HEADERS` * * :enum:`NGHTTP2_FLAG_PRIORITY` * * If |flags| includes :enum:`NGHTTP2_FLAG_END_STREAM`, this frame has - * END_STREAM flag set. The library does not support header - * continuation and the HEADERS frame always has - * :enum:`NGHTTP2_FLAG_END_HEADERS` flag set regardless of the |flags| - * value. + * END_STREAM flag set. + * + * The library handles the CONTINUATION frame internally and it + * correctly sets END_HEADERS to the last sequence of the PUSH_PROMISE + * or CONTINUATION frame. * * If the |stream_id| is -1, this frame is assumed as request (i.e., * request HEADERS frame which opens new stream). In this case, the @@ -2276,10 +2272,11 @@ /** * @function * - * Submits PUSH_PROMISE frame. The |flags| is currently ignored and - * the resulting PUSH_PROMISE frame always has - * :enum:`NGHTTP2_FLAG_END_PUSH_PROMISE` flag set due to the lack of - * header continuation support in the library. + * Submits PUSH_PROMISE frame. + * + * The |flags| is currently ignored. The library handles the + * CONTINUATION frame internally and it correctly sets END_HEADERS to + * the last sequence of the PUSH_PROMISE or CONTINUATION frame. * * The |stream_id| must be client initiated stream ID. * diff --git a/objects.inv b/objects.inv index 2a379bc1bd2fe8dbcb26bf231a3369853868d012..0bfd4292585d3de28e7b55f30aba26ef9973397f 100644 GIT binary patch delta 2012 zcmV<22P6265r`3xfPcx7n@AA7`zsVNb2Sm}qi?h*sfl4Ti`(r>1%i@9Gy;Z2?e^DC z7Ms?lvhbV~l2|IUGGD%zS%*AMvY7o^RCW9{4L2-ZeEza1-ajAuKa_oaNdH=xdEBII zq4S?U?O1l_rs3EAj_%Tmg=MtAys-PNzs&0{aKat?lKKH)coQJLSlXLx_nRC`*K`5~#8k{wf)O}%NjD?2L3Fl`v-+KN>bHzx|ybQ4Ce zl>%S3Wq4pT%RRaASv>xSwepFm8gc2;Hk}C@hdVst`?|IEhTDAg(IC{*e_|X2i`}y@ zX65-J>-U09+|%7qDMc6y96BtMy8#|Hw+^B)q|v^~UT+>JjD>a;%09-pWNGNc@?noH zi!6QJwubF9h=s8EcI_2QA+soK3Z(l^YTc6$0vQNck@)e~V9~vkFajBWu-O-ZL0j`b z^um3ZbBStFU7HmV@FmFr$ddSj{Fn!B{kBADUNOn1wGo=JUp2?%I*;-h8`P)CqhT-q zk*xq?#QM;3ari>j$iT~3koRqynyU2zhOG=8{uqHAfsgzFj%)ii;#yPvF{?B{D%Oy< z6=hjnzT?XRgdElff#n5%j$^w%(dc*LdH{nm1&>&*Jx<^~A?&%v5oC1$L)t2ii&RbZ zRm57ld~Cr(9u8)apZ+r*(lsgCGCPVc9}CcE#N8XbS;Ia5W{N z6K%(*4gsRVAs8ZJ8MrQ2NnN^n7})PL1irjitUQAH&Dh%mF6%C;Do*S1u+zv2K2VkM z{0(zdEE*TDAMqAuHH2Ll?%UH{F2Z9J{2&s`< zDGz=;CXf~iw@a#849GM)7Tfn%c~eG=UcVi$v~eLevLjzNi5>XT{9YNqCg_-cwgW@M z3b70Nt@Pij(lNl zx+b=@9!f{MX<2i?7~jco40Zsi+s*7?ekgl{fq?9v-cw|92s!#=sru9<--78z?}ZvA zmL}mx&XL8Ij1LxyrSqU6_6lpGc)`QvLzS}vQ=%1rg5|R^t{`hc0^I-su)JNpmqBsf zT;WlNL!7IMC7jXR<6muuhLRsTD&m%^wIl}OLYJ&SR%kM6yYs+~)iiJFP2K=$`?p~Y zYl|YzA){76YWLA0))P03zSx1wnVTu21^4*Qk)uMc>gy+b+++5{HXWCEZI)o?No^AH zJ|S#>l;_wMN&%iThHWgNe=mv_wvsA6l|fExlr$XQA}GCAt2;Gd5FDQ?G7ySt00g{m zn)DQBR7-Js+#|TZ=Q3#IX|mTWfBQdwXRo)DXk<%IuJfE1HI7V5XxdYdoce=k zD#^#A*bd>?wwRk57i@nhp|X7si5bt??f_FkxKOu%D}4in0EC_ z%;XBl1wKt99x5Bww)(8TP}P8>&|V=uaD)OvCa*>Zt z4`D^LWm`l>+3|LS6m_dvc}Oxom^yWTc_q?LtO>7L2trang4=Wvx(U+h7`;c6Zzox3 zs(dz06(2TfYc~?ohkB&0CC)bGMF@hFVs**%;WW3+rB;X2a|HulcL;y+v$j!FmYfZBOc9lTz!y~( zN0ZxyYP!c=s9`&&;f~4i-C;~8F982o`N_5a$7F`UKXJPvd{1-iWK9+~E=~fVeKZh5 zIpxs~3Eu#vm{ff`gEkrZHM02!DVxLqI(d>r5cD01L-MxuPu;;JMMbxedZ|n=Le=;o zX*^o?^ak^M`FY3?O;K1&N<;5UDe&nt@>n>!`_h|yiPVS)>W^_^&xsD~4Ju_-BhT&J ulvgTwD)nw#Yaaa^DPDg%8C4)~2S4bj(S&3Miq)YAAs@x#$NvB_7clLvx8A$} delta 2017 zcmV<72Oju{5seX$fPYJKn@AA8=U1p|_Zq6=V{TZCWNLYZM;zxega=%09-pWNGNc^5Kjv zi!6QJwua*~h=s8EcJCESA+snP3Z(l^YTuI&0vQO{k@)r3V9|Y(FajBWaM%}tL0j`b z^um3ZbBStFU7HmV@Jo^bkR|a4`7saN`eTXGyke4XYa=vcziN)jbspt24yaF)N5fwJ zBU=H)i1nf6;_!v4k%5=7An)5YHC5{c3|kpG{9^=i1U~W?IIiv6h-Xdp$E?x-saQka zR+MFR`Hn9O5OP=_1eOj4bP6g*bns zR}p*Z^05UEc{rFwe)^yBkiH43O05iaP1VUn8&9R%+|sZ;qG4U2jHO4omGRUeo^hmL z!*YI8T^o-O}u5Y^t2TQL|l+NtOv56|B6dyaG#H&+pHF1(olYR8_E#?)-`} z$;+gEm!L(gfzw}#|#2d7ZW_Ni)cqNyQ4cLfh~(&oFiA%UStp1?zb zAMZ5Qj1=T|Qb2{@rVw>5^h1vday8M_?`)@Xfq(1RU#CCK`_jOPPXG9p6d*}98 zwnJDPK2<9r)5(KpB5c(DDCl z2Zn|fZ5LEs>3^$|-wY5oD%k;cArsdns~P}Q?qghzpPhzMOau9iQ-@HHt75$21rVVI zhCfT|&+JuyN%vNwJ&Rt4mSHb<5e^;njv}Q#IM33pK=pCDuoWxB(po{tfxy%~EQ1&% zmg=qp6H*sT2YI)sJ!5n&Z8-vzob~{-=74cTC*LtR0%UMEv-A0(ToMKavhR9N$;qMR z=#Qo9Qd@uA{bfho~K!SY}kSCF+J zfo?zn*x|0;%OE;$%J8Veq0d$I63%w+@wT?JL&*;v6>&?|S`q{Cpi5RDM>H9g-g#ih zYMM9oCU1c3{oAmHwFMIAkWphGHUH=k>xmmiU+lo;jL($Okb8W`$x$I!_4N}z?lEU# zn~qC=yf#a)bEq~6+j0Uc9os@F$8+|ujU{yR1<%D+Ri&pj$SIGKhT~TRW%z1$r^XFJ z8*n8D0#glujQ7o!o)86&hHGDT)(yEUgAP15dJ7xScM`#QJ%yy{Vvfc>vo=p?B2B|EG6RiQs(0V`Ml{ZA?C+_ z)=pQKWm2Xoc4ZhdxdL*5Pt%Bp%7(SAKC3TOH6SUp7YJ~)MAa=XSgq(|utE;Ah6#iy zpgLA?mIpG#^WNPkVFdTHlq@--oAHCt#Xrpu#LYPSF zIU}ozJgbmgT{3;?PEa;`r{O1AUDjOp zJ(1In@jg~JIsOjxj^98*iihG>dV!dg-qdQX8*pOM$e(cPEcon_header_callback } stream_data = nghttp2_session_get_stream_user_data(session, frame->hd.stream_id); - if(stream_data->request_path) { + if(!stream_data || stream_data->request_path) { break; } if(namelen == sizeof(PATH) - 1 && memcmp(PATH, name, namelen) == 0) { @@ -706,6 +706,9 @@ is about to close:

    http2_stream_data *stream_data; stream_data = nghttp2_session_get_stream_user_data(session, stream_id); + if(!stream_data) { + return 0; + } remove_stream(session_data, stream_data); delete_http2_stream_data(stream_data); return 0; @@ -1128,7 +1131,7 @@ stream is about to close and we no longer use that object.

    } stream_data = nghttp2_session_get_stream_user_data(session, frame->hd.stream_id); - if(stream_data->request_path) { + if(!stream_data || stream_data->request_path) { break; } if(namelen == sizeof(PATH) - 1 && memcmp(PATH, name, namelen) == 0) { @@ -1247,6 +1250,9 @@ stream is about to close and we no longer use that object.

    http2_stream_data *stream_data; stream_data = nghttp2_session_get_stream_user_data(session, stream_id); + if(!stream_data) { + return 0; + } remove_stream(session_data, stream_data); delete_http2_stream_data(stream_data); return 0;