From b4182127e0260b55a1e2536ce9be177b3165455a Mon Sep 17 00:00:00 2001 From: wesommer Date: Tue, 4 Aug 1987 01:49:20 +0000 Subject: [PATCH 1/1] Rearranged messages. --- server/mr_main.c | 73 ++++++++++++++++++++++++++++------------------ server/mr_util.c | 52 ++++++++++++--------------------- server/qrtn.qc | 11 ++++--- server/qsupport.qc | 32 ++++++++++---------- 4 files changed, 84 insertions(+), 84 deletions(-) diff --git a/server/mr_main.c b/server/mr_main.c index 261fbcce..cb88902c 100644 --- a/server/mr_main.c +++ b/server/mr_main.c @@ -14,9 +14,12 @@ * Let the reader beware. * * $Log$ - * Revision 1.11 1987-07-29 16:04:54 wesommer - * Add keepalive feature. + * Revision 1.12 1987-08-04 01:50:00 wesommer + * Rearranged messages. * + * Revision 1.11 87/07/29 16:04:54 wesommer + * Add keepalive feature. + * * Revision 1.10 87/06/30 20:02:26 wesommer * Added returned tuple chain to client structure. * Added local realm global variable. @@ -110,7 +113,8 @@ main(argc, argv) init_sms_err_tbl(); init_krb_err_tbl(); set_com_err_hook(sms_com_err); - + setlinebuf(stderr); + if (argc != 1) { com_err(whoami, 0, "Usage: smsd"); exit(1); @@ -165,8 +169,7 @@ main(argc, argv) op_list = create_list_of_operations(1, listenop); - (void) sprintf(buf1, "started (pid %d)", getpid()); - com_err(whoami, 0, buf1); + com_err(whoami, 0, "started (pid %d)", getpid()); com_err(whoami, 0, rcsid_sms_main_c); /* @@ -197,6 +200,27 @@ main(argc, argv) #ifdef notdef fprintf(stderr, " tick\n"); #endif notdef + /* + * Handle any new connections; this comes first so + * errno isn't tromped on. + */ + if (OP_DONE(listenop)) { + if (OP_STATUS(listenop) == OP_CANCELLED) { + if (errno == EWOULDBLOCK) { + do_reset_listen(); + } else { + com_err(whoami, errno, + "error on listen"); + exit(1); + } + } else if ((status = new_connection()) != 0) { + com_err(whoami, errno, + "Error on listening operation."); + /* + * Sleep here to prevent hosing? + */ + } + } /* * Handle any existing connections. */ @@ -214,24 +238,8 @@ main(argc, argv) cur_client = NULL; if (takedown) break; } - /* - * Handle any new connections. - */ - if (OP_DONE(listenop)) { - if (OP_STATUS(listenop) == OP_CANCELLED) { - com_err(whoami, errno, "Error on listen"); - exit(1); - - } else if ((status = new_connection()) != 0) { - com_err(whoami, errno, - "Error on listening operation."); - /* - * Sleep here to prevent hosing? - */ - } - } } - com_err(whoami, 0, takedown); + com_err(whoami, 0, "%s", takedown); sms_close_database(); return 0; } @@ -259,6 +267,15 @@ do_listen() return 0; } + +do_reset_listen() +{ + client_addrlen = sizeof(client_addr); + start_accepting_client(listencon, listenop, &newconn, + (char *)&client_addr, + &client_addrlen, &client_tuple); +} + /* * This routine is called when a new connection comes in. * @@ -319,13 +336,11 @@ new_connection() * Log new connection. */ - (void) sprintf(buf1, - "New connection from %s port %d (now %d client%s)", - inet_ntoa(cp->haddr.sin_addr), - (int)ntohs(cp->haddr.sin_port), - nclients, - nclients!=1?"s":""); - com_err(whoami, 0, buf1); + com_err(whoami, 0, "New connection from %s port %d (now %d client%s)", + inet_ntoa(cp->haddr.sin_addr), + (int)ntohs(cp->haddr.sin_port), + nclients, + nclients!=1?"s":""); /* * Get ready to accept the next connection. diff --git a/server/mr_util.c b/server/mr_util.c index 7ce0ff9f..30f2fa3c 100644 --- a/server/mr_util.c +++ b/server/mr_util.c @@ -6,10 +6,13 @@ * Copyright (C) 1987 by the Massachusetts Institute of Technology * * $Log$ - * Revision 1.8 1987-07-29 16:02:48 wesommer - * Use unsigned char rather than char to prevent sign extension - * problem. + * Revision 1.9 1987-08-04 01:50:13 wesommer + * Rearranged messages. * + * Revision 1.8 87/07/29 16:02:48 wesommer + * Use unsigned char rather than char to prevent sign extension + * problem. + * * Revision 1.7 87/07/14 00:39:47 wesommer * Changed interface to log_args. * @@ -98,46 +101,27 @@ log_args(tag, argc, argv) com_err(whoami, 0, buf); } -void sms_com_err(whoami, code, message) +void sms_com_err(whoami, code, fmt, pvar) char *whoami; int code; - char *message; + char *fmt; + caddr_t pvar; { extern char *error_message(); extern client *cur_client; struct iovec strings[7]; - char buf[32]; - if (cur_client) - (void) sprintf(buf, "[#%d]", cur_client->id); - else buf[0]='\0'; - - strings[1].iov_base = buf; - strings[1].iov_len = strlen(buf); - - strings[0].iov_base = whoami; + if (whoami) { - strings[0].iov_len = strlen(whoami); - strings[2].iov_base = ": "; - strings[2].iov_len = 2; - } else { - strings[0].iov_len = 0; - strings[2].iov_base = " "; - strings[2].iov_len = 1; + fputs(whoami, stderr); + if (cur_client) fprintf(stderr, "[#%d]", cur_client->id); + fputs(": ", stderr); } if (code) { - register char *errmsg = error_message(code); - strings[3].iov_base = errmsg; - strings[3].iov_len = strlen(errmsg); - strings[4].iov_base = " "; - strings[4].iov_len = 1; - } else { - strings[3].iov_len = 0; - strings[4].iov_len = 0; + fputs(error_message(code), stderr); + } + if (fmt) { + _doprnt(fmt, pvar, stderr); } - strings[5].iov_base = message; - strings[5].iov_len = strlen(message); - strings[6].iov_base = "\n"; - strings[6].iov_len = 1; - (void) writev(2, strings, 7); + putc('\n', stderr); } diff --git a/server/qrtn.qc b/server/qrtn.qc index 8461bab4..162f2f35 100644 --- a/server/qrtn.qc +++ b/server/qrtn.qc @@ -6,9 +6,12 @@ * Copyright (C) 1987 by the Massachusetts Institute of Technology * * $Log$ - * Revision 1.6 1987-08-04 01:30:54 wesommer - * Mike's changes; checked in prior to working over messages. + * Revision 1.7 1987-08-04 01:49:20 wesommer + * Rearranged messages. * + * Revision 1.6 87/08/04 01:30:54 wesommer + * Mike's changes; checked in prior to working over messages. + * * Revision 1.5 87/06/21 16:37:58 wesommer * Changed include files, reindented things. * @@ -383,7 +386,6 @@ check_query_access(q, argv, cl) ## retrieve (def_uid = users.users_id) where users.login = "default" } - com_err(whoami, 0, "checking for default access"); /* check for default access */ ## range of m is members ## repeat retrieve (exists = any(m.#member_id where m.list_id = @acl_id and @@ -394,7 +396,6 @@ check_query_access(q, argv, cl) status = get_client(cl, &client_type, &client_id); if (status != SMS_SUCCESS) return(status); - com_err(whoami, 0, "checking for client in acl"); /* see if client is in the list (or any of its sub-lists) */ exists = find_member(acl_id, client_type, client_id, 0); return ((exists) ? SMS_SUCCESS : SMS_PERM); @@ -454,7 +455,6 @@ get_client(cl, client_type, client_id) if (exists) return(1); /* are there any sub-lists? */ - com_err(whoami, 0, "checking for sub-lists"); ## repeat retrieve (exists = any(m.#member_id where m.#list_id = @list_id and ## m.#member_type = "LIST")) if (!exists) return(0); @@ -479,7 +479,6 @@ get_client(cl, client_type, client_id) if (child) return; - com_err(whoami, 0, "checking for client in sub-lists"); /* at top-level, check sub-lists for client (breadth-first search) */ while (sq_get_data(sq, &sublist)) { exists = find_member(sublist, member_type, member_id, sq); diff --git a/server/qsupport.qc b/server/qsupport.qc index 61b0d641..438a381e 100644 --- a/server/qsupport.qc +++ b/server/qsupport.qc @@ -6,9 +6,12 @@ * Copyright (C) 1987 by the Massachusetts Institute of Technology * * $Log$ - * Revision 1.6 1987-08-04 01:10:02 wesommer - * Changes by mike; checked in prior to my hacking. + * Revision 1.7 1987-08-04 01:49:41 wesommer + * Rearranged messages. * +Revision 1.6 87/08/04 01:10:02 wesommer +Changes by mike; checked in prior to my hacking. + Revision 1.5 87/07/30 14:54:13 wesommer Added debugging code in an attempt to catch a flakey problem. @@ -899,14 +902,13 @@ validate_row(q, argv, v) table = q->rtable; name = v->field; - /* tell the logfile what we're doing */ - com_err(whoami, 0, "validating row"); - com_err(whoami, 0, qual); - + if (log_flags & LOG_RES) + /* tell the logfile what we're doing */ + com_err(whoami, 0, "validating row: %s", qual); + /* look for the record */ ## range of rvar is table ## retrieve (rowcount = count(rvar.name where qual)) - com_err(whoami, 0, "row validated"); if (rowcount == 0) return(SMS_NO_MATCH); if (rowcount > 1) return(SMS_NOT_UNIQUE); return(SMS_EXISTS); @@ -924,30 +926,30 @@ validate_fields(q, argv, vo, n) while (--n >= 0) { switch (vo->type) { case V_NAME: - sprintf(buf, "validating %s in %s: %s", + if (log_flags&LOG_RES) + com_err(whoami, 0, "validating %s in %s: %s", vo->namefield, vo->table, argv[vo->index]); - com_err(whoami, 0, buf); status = validate_name(argv, vo); break; case V_ID: - sprintf(buf, "validating %s in %s: %s", + if (log_flags&LOG_RES) + com_err(whoami, 0, "validating %s in %s: %s", vo->idfield, vo->table, argv[vo->index]); - com_err(whoami, 0, buf); status = validate_id(argv, vo); break; case V_TYPE: - sprintf(buf, "validating %s type: %s", + if (log_flags&LOG_RES) + com_err(whoami, 0, "validating %s type: %s", vo->table, argv[vo->index]); - com_err(whoami, 0, buf); status = validate_type(argv, vo); break; case V_TYPEDATA: - sprintf(buf, "validating type-specific data: %s", + if (log_flags&LOG_RES) + com_err(whoami, 0, "validating type-specific data: %s", argv[vo->index]); - com_err(whoami, 0, buf); status = validate_typedata(q, argv, vo); break; -- 2.45.2