int main(int argc, char *argv[]) { int i; afs_int32 code; afs_int32 offset; #ifdef AFS_AIX32_ENV /* * The following signal action for AIX is necessary so that in case of a * crash (i.e. core is generated) we can include the user's data section * in the core dump. Unfortunately, by default, only a partial core is * generated which, in many cases, isn't too useful. */ struct sigaction nsa; sigemptyset(&nsa.sa_mask); nsa.sa_handler = SIG_DFL; nsa.sa_flags = SA_FULLDUMP; sigaction(SIGSEGV, &nsa, NULL); #endif initialize_KA_error_table(); initialize_RXK_error_table(); initialize_KTC_error_table(); initialize_ACFG_error_table(); initialize_CMD_error_table(); initialize_VL_error_table(); initialize_PT_error_table(); initialize_BZ_error_table(); initialize_U_error_table(); initialize_VOLS_error_table(); if (argc < 2) { fprintf(stderr, "Usage is: %s [<code>]+\n", argv[0]); exit(1); } for (i = 1; i < argc; i++) { code = atoi(argv[i]); offset = code & ((1 << ERRCODE_RANGE) - 1); printf("%d (%s).%d = %s\n", (int)code, afs_error_table_name(code), (int)offset, afs_error_message(code)); } return 0; }
void LogError(long code, char *fmt, ... ) { va_list ap; time_t now; va_start(ap, fmt); globalConfPtr->log = fopen(AFSDIR_SERVER_BUDBLOG_FILEPATH, "a"); if (globalConfPtr->log != NULL) { now = time(0); fprintf(globalConfPtr->log, "%s ", TimeStamp(now)); if (code) fprintf(globalConfPtr->log, "%s: %s\n", afs_error_table_name(code), afs_error_message(code)); vfprintf(globalConfPtr->log, fmt, ap ); fflush(globalConfPtr->log); fclose(globalConfPtr->log); } }
void LogError(long code, char *fmt, ... ) { va_list ap; int len; char buffer[1024]; va_start(ap, fmt); len = vsnprintf(buffer, sizeof(buffer), fmt, ap); va_end(ap); if (len >= 1024) { len = 1023; buffer[1023] = '\0'; } /* Be consistent with (unintentional?) historic behavior. */ if (code) { FSLog("%s: %s\n", afs_error_table_name(code), afs_error_message(code)); WriteLogBuffer(buffer, len); } else { FSLog("%s", buffer); } }
static const char * afs_error_message_int(struct et_list *list, afs_int32 code, char *str, size_t len) { int offset; struct et_list *et; int table_num, unlock = 0; int started = 0; char *cp; const char *err_msg; /* check for rpc errors first */ if (code < 0) return _intlize(negative_message(code), -1, str, len); offset = code & ((1 << ERRCODE_RANGE) - 1); table_num = code - offset; if (!table_num) { if ((err_msg = strerror(offset)) != NULL) return _intlize(err_msg, 0, str, len); else if (offset < 140) return _intlize(volume_message(code), 0, str, len); else goto oops; } if (list) { et = list; } else { LOCK_ET_LIST; unlock = 1; et = _et_list; } for (; et; et = et->next) { if (et->table->base == table_num) { /* This is the right table */ if (et->table->n_msgs <= offset) goto oops; err_msg = _intlize(et->table->msgs[offset], et->table->base, str, len); if (unlock) UNLOCK_ET_LIST; return err_msg; } } oops: if (unlock) UNLOCK_ET_LIST; /* Unknown code can be included in the negative errors catalog */ _intlize("Unknown code ", -1, buffer, sizeof buffer); if (table_num) { strlcat(buffer, afs_error_table_name(table_num), sizeof buffer); strlcat(buffer, " ", sizeof buffer); } for (cp = buffer; *cp; cp++); if (offset >= 100) { *cp++ = '0' + offset / 100; offset %= 100; started++; } if (started || offset >= 10) { *cp++ = '0' + offset / 10; offset %= 10; } *cp++ = '0' + offset; if (code > -10000) sprintf(cp, " (%d)", code); else *cp = '\0'; return (buffer); }
void LogError(afs_int32 errcode) { ViceLog(0, ("%s: %s\n", afs_error_table_name(errcode), afs_error_message(errcode))); }