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