MCPcopy Create free account
hub / github.com/corosync/corosync / set_key_bin

Function set_key_bin

tools/corosync-cmapctl.c:560–602  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

558}
559
560static cs_error_t set_key_bin(cmap_handle_t handle, const char *key_name, const char *fname)
561{
562 FILE *f;
563 char *val;
564 char buf[4096];
565 size_t size;
566 size_t readed;
567 size_t pos;
568 cs_error_t err;
569
570 if (strcmp(fname, "-") == 0) {
571 f = stdin;
572 } else {
573 f = fopen(fname, "rb");
574 if (f == NULL) {
575 perror("Can't open input file");
576 exit(EXIT_FAILURE);
577 }
578 }
579
580 val = NULL;
581 size = 0;
582 pos = 0;
583
584 while ((readed = fread(buf, 1, sizeof(buf), f)) != 0) {
585 size += readed;
586 if ((val = realloc(val, size)) == NULL) {
587 fprintf(stderr, "Can't alloc memory\n");
588 exit (EXIT_FAILURE);
589 }
590 memcpy(val + pos, buf, readed);
591 pos += readed;
592 }
593
594 if (f != stdin) {
595 fclose(f);
596 }
597
598 err = cmap_set(handle, key_name, val, size, CMAP_VALUETYPE_BINARY);
599 free(val);
600
601 return (err);
602}
603
604static void set_key(cmap_handle_t handle, const char *key_name, const char *key_type_s, const char *key_value_s)
605{

Callers 1

set_keyFunction · 0.85

Calls 1

cmap_setFunction · 0.85

Tested by

no test coverage detected