Module: PostfixStatusLine::Core

Defined in:
ext/postfix_status_line_core.c

Class Method Summary collapse

Class Method Details

.parse(v_str, v_mask, v_hash, v_salt, v_parse_time, v_sha_algo) ⇒ Object



482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
# File 'ext/postfix_status_line_core.c', line 482

static VALUE rb_postfix_status_line_parse(VALUE self, VALUE v_str, VALUE v_mask, VALUE v_hash, VALUE v_salt, VALUE v_parse_time, VALUE v_sha_algo) {
  char *str;
  size_t len;
  bool mask;
  bool parse_time;
  bool include_hash;
  char *salt;
  size_t salt_len;
  int sha_algo;
  DIGEST_SHA digest_sha_func;

  if (!parse_init(v_str, v_mask, v_parse_time, v_hash, v_salt, v_sha_algo,
                  &str, &len, &mask, &parse_time, &include_hash, &salt, &salt_len, &sha_algo, &digest_sha_func)) {
    return Qnil;
  }

  char buf[len + 1];
  char *attrs;

  VALUE hash = pre_parse(str, len, buf, parse_time, &attrs);

  if (NIL_P(hash)) {
    return Qnil;
  }

  split_line2(attrs, mask, hash, include_hash, salt, salt_len, digest_sha_func);

  return hash;
}

.parse_header_checks(v_str, v_mask, v_hash, v_salt, v_parse_time, v_sha_algo) ⇒ Object



512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
# File 'ext/postfix_status_line_core.c', line 512

static VALUE rb_postfix_status_line_parse_header_checks(VALUE self, VALUE v_str, VALUE v_mask, VALUE v_hash, VALUE v_salt, VALUE v_parse_time, VALUE v_sha_algo) {
  char *str;
  size_t len;
  bool mask;
  bool parse_time;
  bool include_hash;
  char *salt;
  size_t salt_len;
  int sha_algo;
  DIGEST_SHA digest_sha_func;

  if (!parse_init(v_str, v_mask, v_parse_time, v_hash, v_salt, v_sha_algo,
                  &str, &len, &mask, &parse_time, &include_hash, &salt, &salt_len, &sha_algo, &digest_sha_func)) {
    return Qnil;
  }

  char buf[len + 1];
  char *attrs;

  VALUE hash = pre_parse(str, len, buf, parse_time, &attrs);

  if (NIL_P(hash)) {
    return Qnil;
  }

  split_line3(attrs, mask, hash, include_hash, salt, salt_len, digest_sha_func);

  return hash;
}