Fix building on the usual ancient Linux distro suspects

Detect if librsync is new enough to have rs_sig_args
This commit is contained in:
Kovid Goyal
2021-09-18 10:49:46 +05:30
parent 067502bd66
commit 348e632dd6
2 changed files with 20 additions and 3 deletions

View File

@@ -24,11 +24,13 @@ begin_create_signature(PyObject *self UNUSED, PyObject *args) {
if (!PyArg_ParseTuple(args, "|Ll", &file_size, &sl)) return NULL;
rs_magic_number magic_number = 0;
size_t block_len = 0, strong_len = sl;
#ifdef KITTY_HAS_RS_SIG_ARGS
rs_result res = rs_sig_args(file_size, &magic_number, &block_len, &strong_len);
if (res != RS_DONE) {
PyErr_SetString(PyExc_ValueError, rs_strerror(res));
return NULL;
}
#endif
rs_job_t *job = rs_sig_begin(block_len, strong_len, magic_number);
if (!job) return PyErr_NoMemory();
PyObject *ans = PyCapsule_New(job, JOB_CAPSULE, free_job_capsule);