Home | History | Annotate | Download | only in in.ftpd
      1 /*
      2  * Copyright 2003 Sun Microsystems, Inc.  All rights reserved.
      3  * Use is subject to license terms.
      4  */
      5 
      6 #pragma ident	"%Z%%M%	%I%	%E% SMI"
      7 
      8 #include "config.h"
      9 #include <string.h>
     10 #include "extensions.h"
     11 #include "proto.h"
     12 
     13 #define DEFXFERFORMAT	"%T %Xt %R %Xn %XP %Xy %Xf %Xd %Xm %U ftp %Xa %u %Xc"
     14 
     15 int xferdone = 0;
     16 struct xferstat xfervalues;
     17 char xferlog_format[MAXXFERSTRLEN] = DEFXFERFORMAT;
     18 
     19 /*************************************************************************/
     20 /* FUNCTION  : get_xferlog_format                                        */
     21 /* PURPOSE   : Read the xferlog format string from ftpaccess into        */
     22 /*             xferlog_format if it exists otherwise load default string */
     23 /* ARGUMENTS : none                                                      */
     24 /*************************************************************************/
     25 
     26 void get_xferlog_format(void)
     27 {
     28     int which;
     29     struct aclmember *entry = (struct aclmember *)NULL;
     30 
     31     /* xferlog format <formatstring> */
     32     xferlog_format[0] = '\0';
     33     while (getaclentry("xferlog", &entry)) {
     34 	if (ARG0 && (strcasecmp(ARG0, "format") == 0)) {
     35 	    for (which = 1; (which < MAXARGS) && ARG[which]; which++) {
     36 		if (which > 1) {
     37 		    if (strlcat(xferlog_format, " ",
     38 			sizeof(xferlog_format)) >= sizeof(xferlog_format))
     39 			break;
     40 		}
     41 		if (strlcat(xferlog_format, ARG[which],
     42 		    sizeof(xferlog_format)) >= sizeof(xferlog_format))
     43 		    break;
     44 	    }
     45 	    break;
     46 	}
     47     }
     48 
     49     /* default xferlog format */
     50     if (xferlog_format[0] == '\0')
     51 	(void) strlcpy(xferlog_format, DEFXFERFORMAT, sizeof(xferlog_format));
     52 }
     53