Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • zephyr.c

    rc79a047 rdca3b27  
    911911#endif
    912912
    913 void owl_zephyr_zlocate(const char *user, char *out, int auth)
     913char *owl_zephyr_zlocate(const char *user, int auth)
    914914{
    915915#ifdef HAVE_LIBZEPHYR
     
    918918  ZLocations_t locations;
    919919  char *myuser;
    920  
    921   strcpy(out, "");
     920  char *p, *result;
     921
    922922  ZResetAuthentication();
    923   ret=ZLocateUser(zstr(user),&numlocs,auth?ZAUTH:ZNOAUTH);
    924   if (ret != ZERR_NONE) {
    925     sprintf(out, "Error locating user %s\n", user);
    926     return;
    927   }
    928 
    929   if (numlocs==0) {
    930     myuser=short_zuser(user);
    931     sprintf(out, "%s: Hidden or not logged in\n", myuser);
    932     owl_free(myuser);
    933     return;
    934   }
    935    
    936   for (;numlocs;numlocs--) {
    937     ZGetLocations(&locations,&one);
    938     myuser=short_zuser(user);
    939     sprintf(out + strlen(out), "%s: %s\t%s\t%s\n", myuser,
    940             locations.host ? locations.host : "?",
    941             locations.tty ? locations.tty : "?",
    942             locations.time ? locations.time : "?");
    943     owl_free(myuser);
    944   }
     923  ret = ZLocateUser(zstr(user), &numlocs, auth ? ZAUTH : ZNOAUTH);
     924  if (ret != ZERR_NONE)
     925    return owl_sprintf("Error locating user %s: %s\n",
     926                       user, error_message(ret));
     927
     928  myuser = short_zuser(user);
     929  if (numlocs == 0) {
     930    result = owl_sprintf("%s: Hidden or not logged in\n", myuser);
     931  } else {
     932    result = owl_strdup("");
     933    for (; numlocs; numlocs--) {
     934      ZGetLocations(&locations, &one);
     935      p = owl_sprintf("%s%s: %s\t%s\t%s\n",
     936                          result, myuser,
     937                          locations.host ? locations.host : "?",
     938                          locations.tty ? locations.tty : "?",
     939                          locations.time ? locations.time : "?");
     940      owl_free(result);
     941      result = p;
     942    }
     943  }
     944
     945  return result;
     946#else
     947  return owl_strdup("");
    945948#endif
    946949}
Note: See TracChangeset for help on using the changeset viewer.