Licklider Transmission Protocol (CCSDS 734.1-B) for reliable DTN links
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

fix(lint): resolve E005 long functions, E331 redundant prefixes, and E010 deep nesting

Extract helper functions to reduce long function lengths across cwt, jsonwt,
ltp, matter, mbr, json-logs, and initramfs. Remove redundant find_/make_
prefixes in discovery.ml. Extract nested rm closure to reduce nesting depth.

+30 -37
+30 -37
lib/ltp.ml
··· 413 413 { report_serial; checkpoint_serial; upper_bound; lower_bound; claims }, 414 414 off ) 415 415 416 - let decode_segment buf = 416 + let decode_segment_header buf = 417 417 let len = String.length buf in 418 418 if len < 3 then Error (Truncated { expected = 3; got = len }) 419 419 else ··· 437 437 let ext_byte = Char.code (String.get buf off) in 438 438 let hdr_count = (ext_byte lsr 4) land 0x0F in 439 439 let trl_count = ext_byte land 0x0F in 440 - let off = off + 1 in 441 - let* header_extensions, off = decode_extensions buf off hdr_count in 442 - let* content, off = 443 - match segment_type with 444 - | Red_data | Red_checkpoint | Red_checkpoint_eorp 445 - | Red_checkpoint_eorp_eob | Green_data | Green_eob -> 446 - decode_data_segment buf off segment_type 447 - | Report -> decode_report_segment buf off 448 - | Report_ack -> 449 - let* serial, off = 450 - decode_sdnv buf off 451 - |> Result.map_error (fun _ -> Invalid_sdnv) 452 - in 453 - Ok (Report_ack { report_serial = serial }, off) 454 - | Cancel_from_sender | Cancel_from_receiver -> 455 - if off >= len then 456 - Error (Content_error "missing cancel reason") 457 - else 458 - let reason = 459 - cancel_reason_of_int (Char.code (String.get buf off)) 460 - in 461 - Ok (Cancel { reason }, off + 1) 462 - | Cancel_ack_to_sender | Cancel_ack_to_receiver -> 463 - Ok (Cancel_ack (), off) 464 - in 465 - let* trailer_extensions, _off = 466 - decode_extensions buf off trl_count 467 - in 468 - Ok 469 - { 470 - session_id; 471 - segment_type; 472 - header_extensions; 473 - trailer_extensions; 474 - content; 475 - } 440 + Ok (segment_type, session_id, hdr_count, trl_count, off + 1) 441 + 442 + let decode_segment buf = 443 + let len = String.length buf in 444 + let* segment_type, session_id, hdr_count, trl_count, off = 445 + decode_segment_header buf 446 + in 447 + let* header_extensions, off = decode_extensions buf off hdr_count in 448 + let* content, off = 449 + match segment_type with 450 + | Red_data | Red_checkpoint | Red_checkpoint_eorp | Red_checkpoint_eorp_eob 451 + | Green_data | Green_eob -> 452 + decode_data_segment buf off segment_type 453 + | Report -> decode_report_segment buf off 454 + | Report_ack -> 455 + let* serial, off = 456 + decode_sdnv buf off |> Result.map_error (fun _ -> Invalid_sdnv) 457 + in 458 + Ok (Report_ack { report_serial = serial }, off) 459 + | Cancel_from_sender | Cancel_from_receiver -> 460 + if off >= len then Error (Content_error "missing cancel reason") 461 + else 462 + let reason = cancel_reason_of_int (Char.code (String.get buf off)) in 463 + Ok (Cancel { reason }, off + 1) 464 + | Cancel_ack_to_sender | Cancel_ack_to_receiver -> Ok (Cancel_ack (), off) 465 + in 466 + let* trailer_extensions, _off = decode_extensions buf off trl_count in 467 + Ok 468 + { session_id; segment_type; header_extensions; trailer_extensions; content } 476 469 477 470 (* {1 Segment Constructors} *) 478 471