MCPcopy Index your code
hub / github.com/RsyncProject/rsync / parse_csum_name

Function parse_csum_name

checksum.c:109–143  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

107static int initialized_choices = 0;
108
109struct name_num_item *parse_csum_name(const char *name, int len)
110{
111 struct name_num_item *nni;
112
113 if (len < 0 && name)
114 len = strlen(name);
115
116 init_checksum_choices();
117
118 if (!name || (len == 4 && strncasecmp(name, "auto", 4) == 0)) {
119 if (protocol_version >= 30) {
120 if (!proper_seed_order)
121 return &implied_checksum_md5;
122 name = "md5";
123 len = 3;
124 } else {
125 if (protocol_version >= 27)
126 implied_checksum_md4.num = CSUM_MD4_OLD;
127 else if (protocol_version >= 21)
128 implied_checksum_md4.num = CSUM_MD4_BUSTED;
129 else
130 implied_checksum_md4.num = CSUM_MD4_ARCHAIC;
131 return &implied_checksum_md4;
132 }
133 }
134
135 nni = get_nni_by_name(&valid_checksums, name, len);
136
137 if (!nni) {
138 rprintf(FERROR, "unknown checksum name: %s\n", name);
139 exit_cleanup(RERR_UNSUPPORTED);
140 }
141
142 return nni;
143}
144
145#ifdef USE_OPENSSL
146static const EVP_MD *csum_evp_md(struct name_num_item *nni)

Callers 3

parse_checksum_choiceFunction · 0.85
sum_initFunction · 0.85
setup_protocolFunction · 0.85

Calls 3

init_checksum_choicesFunction · 0.85
get_nni_by_nameFunction · 0.85
rprintfFunction · 0.70

Tested by

no test coverage detected