From owner-p4-projects@FreeBSD.ORG Tue Nov 14 16:14:51 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id A391E16A4A0; Tue, 14 Nov 2006 16:14:51 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 7910A16A494 for ; Tue, 14 Nov 2006 16:14:51 +0000 (UTC) (envelope-from bushman@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 6487244129 for ; Tue, 14 Nov 2006 16:04:47 +0000 (GMT) (envelope-from bushman@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id kAEG4Twu072037 for ; Tue, 14 Nov 2006 16:04:29 GMT (envelope-from bushman@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id kAEG4SAF072031 for perforce@freebsd.org; Tue, 14 Nov 2006 16:04:28 GMT (envelope-from bushman@freebsd.org) Date: Tue, 14 Nov 2006 16:04:28 GMT Message-Id: <200611141604.kAEG4SAF072031@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bushman@freebsd.org using -f From: Michael Bushkov To: Perforce Change Reviews Cc: Subject: PERFORCE change 109932 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Nov 2006 16:14:51 -0000 http://perforce.freebsd.org/chv.cgi?CH=109932 Change 109932 by bushman@bushman_nss_ldap_cached on 2006/11/14 16:04:16 Using #defines instead of hard coded constants for use_alternate_io-stuff (large buffers processing). Affected files ... .. //depot/projects/soc2006/nss_ldap_cached/src/usr.sbin/cached/cached.c#10 edit .. //depot/projects/soc2006/nss_ldap_cached/src/usr.sbin/cached/query.c#8 edit .. //depot/projects/soc2006/nss_ldap_cached/src/usr.sbin/cached/query.h#4 edit Differences ... ==== //depot/projects/soc2006/nss_ldap_cached/src/usr.sbin/cached/cached.c#10 (text) ==== @@ -424,18 +424,20 @@ * The code below implements buffer splitting/mergind for send/receive * operations. It also does the actual socket IO operations. */ - if (((qstate->use_alternate_io == 0) && + if (((qstate->use_alternate_io == DONT_USE_ALTERNATE_IO) && (qstate->kevent_watermark <= event_data->data)) || - ((qstate->use_alternate_io != 0) && + ((qstate->use_alternate_io != DONT_USE_ALTERNATE_IO) && (qstate->io_buffer_watermark <= event_data->data))) { - if (qstate->use_alternate_io == 1) { + if (qstate->use_alternate_io == + USE_ALTERNATE_IO_WITH_SOCK_RW) { switch (qstate->io_buffer_filter) { case EVFILT_READ: io_res = query_socket_read(qstate, qstate->io_buffer_p, qstate->io_buffer_watermark); if (io_res < 0) { - qstate->use_alternate_io = 0; + qstate->use_alternate_io = + DONT_USE_ALTERNATE_IO; qstate->process_func = NULL; } else { qstate->io_buffer_p += io_res; @@ -444,7 +446,8 @@ qstate->io_buffer_size) { qstate->io_buffer_p = qstate->io_buffer; - qstate->use_alternate_io = 0; + qstate->use_alternate_io = + DONT_USE_ALTERNATE_IO; } } break; @@ -453,7 +456,9 @@ } } - if ((qstate->use_alternate_io == 0) || (qstate->use_alternate_io == 2)) { + if ((qstate->use_alternate_io == DONT_USE_ALTERNATE_IO) || + (qstate->use_alternate_io == + USE_ALTERNATE_IO_WITHOUT_SOCK_RW)) { do res = qstate->process_func(qstate); while ((qstate->kevent_watermark == 0) && @@ -464,12 +469,14 @@ qstate->process_func = NULL; } - if ((qstate->use_alternate_io == 1) && - (qstate->io_buffer_filter == EVFILT_WRITE)) { + if ((qstate->use_alternate_io == + USE_ALTERNATE_IO_WITH_SOCK_RW) && + (qstate->io_buffer_filter == EVFILT_WRITE)) { io_res = query_socket_write(qstate, qstate->io_buffer_p, qstate->io_buffer_watermark); if (io_res < 0) { - qstate->use_alternate_io = 0; + qstate->use_alternate_io = + DONT_USE_ALTERNATE_IO; qstate->process_func = NULL; } else qstate->io_buffer_p += io_res; @@ -477,11 +484,12 @@ } else { /* assuming that socket was closed */ qstate->process_func = NULL; - qstate->use_alternate_io = 0; + qstate->use_alternate_io = DONT_USE_ALTERNATE_IO; } if (((qstate->process_func == NULL) && - ((qstate->use_alternate_io == 0) || (qstate->use_alternate_io == 2))) || + ((qstate->use_alternate_io == DONT_USE_ALTERNATE_IO) || + (qstate->use_alternate_io == USE_ALTERNATE_IO_WITHOUT_SOCK_RW))) || (eof_res != 0) || (res != 0)) { destroy_query_state(qstate); close(event_data->ident); @@ -499,11 +507,12 @@ query_timeout.tv_sec = qstate->timeout.tv_sec - query_timeout.tv_sec; - if ((qstate->use_alternate_io == 1) && (qstate->io_buffer_p == - qstate->io_buffer + qstate->io_buffer_size)) - qstate->use_alternate_io = 0; + if ((qstate->use_alternate_io == USE_ALTERNATE_IO_WITH_SOCK_RW) + && (qstate->io_buffer_p == + qstate->io_buffer + qstate->io_buffer_size)) + qstate->use_alternate_io = DONT_USE_ALTERNATE_IO; - if (qstate->use_alternate_io == 0) { + if (qstate->use_alternate_io == DONT_USE_ALTERNATE_IO) { /* * If we must send/receive the large block of data, * we should prepare the query_state's io_XXX fields. @@ -533,9 +542,11 @@ qstate->read_func = query_io_buffer_read; if (qstate->kevent_filter == EVFILT_READ) - qstate->use_alternate_io = 1; + qstate->use_alternate_io = + USE_ALTERNATE_IO_WITH_SOCK_RW; else - qstate->use_alternate_io = 2; + qstate->use_alternate_io = + USE_ALTERNATE_IO_WITHOUT_SOCK_RW; qstate->io_buffer_watermark = MAX_SOCKET_IO_SIZE; EV_SET(&eventlist[1], event_data->ident, ==== //depot/projects/soc2006/nss_ldap_cached/src/usr.sbin/cached/query.c#8 (text) ==== @@ -1226,7 +1226,7 @@ qstate->io_buffer_p += result; if (qstate->io_buffer_p == qstate->io_buffer + qstate->io_buffer_size) { - qstate->use_alternate_io = 1; + qstate->use_alternate_io = USE_ALTERNATE_IO_WITH_SOCK_RW; qstate->io_buffer_p = qstate->io_buffer; qstate->write_func = query_socket_write; ==== //depot/projects/soc2006/nss_ldap_cached/src/usr.sbin/cached/query.h#4 (text) ==== @@ -36,6 +36,10 @@ #include "config.h" #include "protocol.h" +#define DONT_USE_ALTERNATE_IO (0) +#define USE_ALTERNATE_IO_WITH_SOCK_RW (1) +#define USE_ALTERNATE_IO_WITHOUT_SOCK_RW (1 << 1) + struct query_state; struct configuration; struct configuration_entry;