]> andersk Git - moira.git/blob - server/mr_util.c
Initial revision
[moira.git] / server / mr_util.c
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 }
This page took 0.04269 seconds and 5 git commands to generate.