X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=ftpd.h;h=7a165dce05e7c5cb3182af297d406e323264c47f;hb=d0ddb9f01ad498b50fbd2ce4d265936a632184d3;hp=02ae127e3788146839ae3f26792edf53737e6d45;hpb=48955535eec053240872782e9fa97529ef117006;p=betaftpd diff --git a/ftpd.h b/ftpd.h index 02ae127..7a165dc 100644 --- a/ftpd.h +++ b/ftpd.h @@ -2,7 +2,7 @@ Copyright (C) 1999-2000 Steinar H. Gunderson This program is is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License, version 2 if the + it under the terms of the GNU General Public License, version 2 of the License as published by the Free Software Foundation. This program is distributed in the hope that it will be useful, @@ -15,10 +15,11 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ +#ifndef _FTPD_H +#define _FTPD_H 1 + /* - * This is the port you want BetaFTPD to listen on. The standard - * FTP port is 21 -- if you really want to use BetaFTPD as your - * primary FTP server, change FTP_PORT. + * This is the port you want BetaFTPD to listen on. */ #if WANT_NONROOT #define FTP_PORT 12121 @@ -49,6 +50,22 @@ */ #define MAX_BLOCK_SIZE 4096 +#if HAVE_PWD_H +#include +#endif + +#if HAVE_SYS_TYPES_H +#include +#endif + +#if HAVE_NETINET_IN_H +#include +#endif + +#if HAVE_SYS_SOCKET_H +#include +#endif + #if HAVE_LINUX_SENDFILE && !HAVE_MMAP #warning sendfile() without mmap() is not supported -- disabling sendfile() #undef HAVE_LINUX_SENDFILE @@ -98,6 +115,8 @@ struct conn { char username[17]; uid_t uid; + gid_t gid; + char root_dir[256]; char curr_dir[256]; @@ -111,25 +130,6 @@ struct conn { time_t last_transfer; }; -#if WANT_DCACHE -/* doubly linked list of cached directory listings */ -struct dcache { - struct dcache *prev_dcache; - struct dcache *next_dcache; - - int use_count; - time_t last_used; - time_t generated; - - char dir_name[256]; - char pattern[256]; - struct list_options lo; - - char *dir_data; - int dir_size; -}; -#endif - /* doubly linked list of file transfers */ struct ftran { struct ftran *prev_ftran; @@ -177,18 +177,14 @@ void remove_from_linked_list(struct list_element * const elem); struct conn *alloc_new_conn(const int sock); struct ftran *alloc_new_ftran(const int sock, const struct conn * const c); -#if WANT_DCACHE -struct dcache *alloc_new_dcache(); -#endif int add_fd(const int fd, const int events); void del_fd(const int fd); void destroy_conn(struct conn * const c); void destroy_ftran(struct ftran * const f); -#if WANT_DCACHE -void destroy_dcache(struct dcache * const d); -#endif + +void finish_transfer(struct ftran * const f); #if HAVE_POLL int process_all_clients(const int num_ac); @@ -207,9 +203,6 @@ RETSIGTYPE handle_alarm(int signum); void accept_new_client(int * const server_sock); void time_out_sockets(); -#if WANT_DCACHE -void time_out_dcache(); -#endif void remove_bytes(struct conn * const c, const int i); void numeric(struct conn * const c, const int numeric, const char * const format, ...); @@ -220,8 +213,13 @@ int create_server_socket(); void clear_bad_fds(int * const server_sock); #endif +#if HAVE_BSD_SENDFILE || HAVE_LINUX_SENDFILE +int mysendfile(int sock, int fd, off_t *offset, size_t count); +#endif + #if WANT_MESSAGE void dump_file(struct conn * const c, const int num, const char * const filename); void list_readmes(struct conn * const c); #endif +#endif