- debug_msg_logger(LOG_INFO, __FUNCTION__);
-
- if (gethostname (hostname, STRING_LENGTH - 1) != 0)
- msg_logger_and_die(LOG_ERR, "gethostname: %m");
-
- /* Here on error we should do exit(RV_SYS_ERROR), instead we do exit(EXIT_FAILURE) */
- hostname[STRING_LENGTH - 1] = '\0';
-
- /* compare_string_array returns i>=0 */
- i=compare_string_array(field_names, variable);
-
- if ( i > 6 || i < 0 || (i > 1 && gv_info == NULL))
- return (NULL);
- if( i >= 0 && i <= 3)
- {
- debug_msg_logger(LOG_INFO, "%s: i=%d %s", __FUNCTION__, i ,field_names[i+7]);
- return(field_names[i+7]);
- }
-
- if(i == 4 )
- sprintf (sbuf, "%u", gv_info->info->uid);
- else if(i == 5)
- sprintf (sbuf, "%u", gv_info->info->gid);
- else if(i == 6)
- sprintf (sbuf, "%o", gv_info->info->mode);
-
- debug_msg_logger(LOG_INFO, "%s: %s", __FUNCTION__, sbuf);
+ if (!hostname)
+ hostname = safe_gethostname();
+ /* index_in_str_array returns i>=0 */
+ i = index_in_str_array(field_names, variable);