globus_list_t *str2_list;
globus_list_t *p;
globus_rls_string2_t *str2;
// Retrieve all results, API will handle looping through partial results
// if the server has a limit configured. Error handling has been omitted.
globus_rls_client_lrc_get_lfn(h, "somepfn", NULL, 0, &str2_list);
for (p = str2_list; p; p = globus_list_rest(p)) {
str2 = (globus_rls_string2_t *) globus_list_first(p);
printf("lfn: %s pfn:%s\n", str2->s1, str2->s2);
}
globus_rls_client_free_list(str2_list);
// This code fragment retrieves results 5 at a time. Note offset is set
// to -1 when the server has no more results to return.
int offset = 0;
while (globus_rls_client_lrc_get_lfn(h, "somepfn", &offset, 5, &str2_list) == GLOBUS_SUCCESS) {
for (p = str2_list; p; p = globus_list_rest(p)) {
str2 = (globus_rls_string2_t *) globus_list_first(p);
printf("lfn: %s pfn:%s\n", str2->s1, str2->s2);
}
globus_rls_client_free_list(str2_list);
if (offset == -1)
break;
}