📄 verify.c
字号:
/* * x25_can_callin(person) * x25_can_callout(person) * Boolean functions for determining if `person' * can charge an incoming (login) or outgoing X.25 * call locally, using the file /etc/x25users. Each line * of x25users is of the form * user [in|out] * If "in" or "out" is given, the user may place incoming * or outgoing calls only. Otherwise, the user may place both. * Lines starting with # are comments. */#include <stdio.h>#define CALL_OUT (1<<0) /* can charge outgoing calls locally */#define CALL_IN (1<<1) /* can charge incoming calls locally */static char Users[] = "/etc/x25users";x25_can_callout(who) char *who;{ return (lookup(who) & CALL_OUT) != 0;}x25_can_callin(who) char *who;{ return (lookup(who) & CALL_IN) != 0;} static intlookup(who) char *who;{ FILE *f; int r; if ((f = fopen(Users, "r")) == NULL) return 0; r = dolookup(f, who); fclose(f); return r;} static intdolookup(f, who) FILE *f; char *who;{ char buf[256], name[50], arg[50]; int n; while (fgets(buf, sizeof buf, f) != NULL) { if (buf[0] == '#') continue; n = sscanf(buf, "%s%s", name, arg); if (n < 1) continue; if (strcmp(name, who) != 0) continue; if (n == 1) return CALL_IN|CALL_OUT; if (strcmp(arg, "in") == 0) return CALL_IN; if (strcmp(arg, "out") == 0) return CALL_OUT; } return 0;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -