diff options
| -rw-r--r-- | src/cli/stasis_indexer/helpers.c | 19 | 
1 files changed, 17 insertions, 2 deletions
| diff --git a/src/cli/stasis_indexer/helpers.c b/src/cli/stasis_indexer/helpers.c index e337787..76d50f9 100644 --- a/src/cli/stasis_indexer/helpers.c +++ b/src/cli/stasis_indexer/helpers.c @@ -192,11 +192,26 @@ int sort_by_latest_rc(const void *a, const void *b) {      const struct Delivery *bb = b;      if (aa->meta.rc > bb->meta.rc) {          return -1; +    } else if (aa->meta.rc < bb->meta.rc) { +        return 1;      } -    if (aa->meta.rc < bb->meta.rc) { + +    if (strcmp(aa->system.platform[DELIVERY_PLATFORM_RELEASE], bb->system.platform[DELIVERY_PLATFORM_RELEASE]) > 0) {          return 1; +    } else if (strcmp(aa->system.platform[DELIVERY_PLATFORM_RELEASE], bb->system.platform[DELIVERY_PLATFORM_RELEASE]) < 0) { +        return -1; +    } + +    char *err = NULL; +    unsigned pyc_a = strtoul(aa->meta.python_compact, &err, 10); +    unsigned pyc_b = strtoul(bb->meta.python_compact, &err, 10); +    if (pyc_a > pyc_b) { +        return -1; +    } else if (pyc_b < pyc_a) { +        return 1; +    } else { +        return 0;      } -    return 0;  }  struct Delivery *get_latest_deliveries(struct Delivery ctx[], size_t nelem) { | 
