Unified · Split
| @@ -273,20 +273,19 @@ let sendwithrep sock s f = · 272 unmodified lines | |||
| 273 | sendstr1 s 0 (Bytes.length s) sock; | 273 | sendstr1 s 0 (Bytes.length s) sock; |
| 274 | ;; | 274 | ;; |
| 275 | 275 | ||
| 276 | let padcatl = | 276 | let padcat = |
| 277 | let pad = "123" in | 277 | let pad = Bytes.create 3 in fun b1 b2 -> |
| 278 | fun ss -> | 278 | let l1 = Bytes.length b1 and l2 = Bytes.length b2 in |
| 279 | let b = Buffer.create 16 in | 279 | let l = (l1 + l2) land 3 in |
| 280 | List.iter (Buffer.add_bytes b) ss; | 280 | let pl = if l > 0 then 4 - l else 0 in |
| 281 | let bl = Buffer.length b in | 281 | let b = Bytes.create (l1 + l2 + pl) in |
| 282 | let pl = bl land 3 in | 282 | Bytes.blit b1 0 b 0 l1; |
| 283 | if pl != 0 | 283 | Bytes.blit b2 0 b l1 l2; |
| 284 | then Buffer.add_substring b pad 0 (4 - pl); | 284 | if pl > 0 |
| 285 | Buffer.to_bytes b; | 285 | then Bytes.blit pad 0 b (l1 + l2) pl; |
| 286 | b; | ||
| 286 | ;; | 287 | ;; |
| 287 | 288 | ||
| 288 | let padcat s1 s2 = padcatl [s1; s2];; | ||
| 289 | |||
| 290 | let internreq name onlyifexists = | 289 | let internreq name onlyifexists = |
| 291 | let s = makereq 16 8 8 in | 290 | let s = makereq 16 8 8 in |
| 292 | let s = padcat s name in | 291 | let s = padcat s name in |