typedef int SearchRoute (char *address, struct in_addr *in, struct in_addr *addr_out, char *best_if, size_t best_iflen, unsigned long *best_netmask, char *errmsg, int errmsglen);
static SearchRoute SearchUsingProcRoute;
static SearchRoute SearchUsingRouteCmd;
static SearchRoute *search_mechs[] =
{
&SearchUsingProcRoute,
&SearchUsingRouteCmd,
NULL
};
int main()
{
SearchRoute **sr = search_mechs;
char errmsg[MAXSTR] = "No valid mecahnisms";
int rc = OCF_ERR_GENERIC;
strcpy(best_if, "UNKNOWN");
while (*sr)
{
errmsg[0] = '\0';
rc = (*sr) (address, &in, &addr_out, best_if , sizeof(best_if) , &best_netmask, errmsg, sizeof(errmsg));
if (!rc)
break;
sr++;
}
if (rc != 0)
{
if (*errmsg) {
fprintf(stderr, "%s", errmsg);
}
return(rc);
}