]>
Commit | Line | Data |
---|---|---|
a3cf6921 | 1 | /* |
2 | * $Source$ | |
3 | * $Author$ | |
4 | * $Header$ | |
5 | * | |
6 | * Copyright (C) 1987 by the Massachusetts Institute of Technology | |
7 | * | |
8 | * $Log$ | |
9 | * Revision 1.1 1987-06-02 20:07:32 wesommer | |
10 | * Initial revision | |
11 | * | |
12 | */ | |
13 | ||
14 | #ifndef lint | |
15 | static char *rcsid_sms_util_c = "$Header$"; | |
16 | #endif lint | |
17 | ||
18 | #include "sms_private.h" | |
19 | #include "sms_server.h" | |
20 | #include <sys/uio.h> | |
21 | ||
22 | #include <ctype.h> | |
23 | #ifdef notdef | |
24 | frequote(f, cp) | |
25 | FILE *f; | |
26 | register char *cp; | |
27 | { | |
28 | register char c; | |
29 | putc('"', f); | |
30 | for( ; c= *cp; *cp++){ | |
31 | if (c == '\\' || c == '"') putc('\\', f); | |
32 | if (isprint(c)) putc(c, f); | |
33 | else fprintf(f, "\\%03o", c); | |
34 | } | |
35 | putc('"', f); | |
36 | } | |
37 | #endif notdef | |
38 | ||
39 | void sms_com_err(whoami, code, message) | |
40 | char *whoami; | |
41 | int code; | |
42 | char *message; | |
43 | { | |
44 | extern char *error_message(); | |
45 | extern client *cur_client; | |
46 | ||
47 | struct iovec strings[7]; | |
48 | char buf[32]; | |
49 | if (cur_client) | |
50 | (void) sprintf(buf, "[#%d]", cur_client->id); | |
51 | else buf[0]='\0'; | |
52 | ||
53 | strings[1].iov_base = buf; | |
54 | strings[1].iov_len = strlen(buf); | |
55 | ||
56 | strings[0].iov_base = whoami; | |
57 | if (whoami) { | |
58 | strings[0].iov_len = strlen(whoami); | |
59 | strings[2].iov_base = ": "; | |
60 | strings[2].iov_len = 2; | |
61 | } else { | |
62 | strings[0].iov_len = 0; | |
63 | strings[2].iov_base = " "; | |
64 | strings[2].iov_len = 1; | |
65 | } | |
66 | if (code) { | |
67 | register char *errmsg = error_message(code); | |
68 | strings[3].iov_base = errmsg; | |
69 | strings[3].iov_len = strlen(errmsg); | |
70 | strings[4].iov_base = " "; | |
71 | strings[4].iov_len = 1; | |
72 | } else { | |
73 | strings[3].iov_len = 0; | |
74 | strings[4].iov_len = 0; | |
75 | } | |
76 | strings[5].iov_base = message; | |
77 | strings[5].iov_len = strlen(message); | |
78 | strings[6].iov_base = "\n"; | |
79 | strings[6].iov_len = 1; | |
80 | (void) writev(2, strings, 7); | |
81 | } |