This is the mail archive of the cygwin@cygwin.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

ProFTPd ported to Cygwin


Hello all, 

I made some minor compatibility fixes in Proftpd, 
now it compiles and runs under Cygwin. 
I proposed the patch to proftpd developers about a week ago, 
but the bug status hasn't changed since then 
(Bug ID 1569 at bugs.proftpd.org).
Actually, the whole CVS repository hasn't changed either.

See the patch attached, it applies to the current CVS version.

I am also working on README.cygwin, describing the major 
user names/permissions issues. 

I was not intending to buld a cygwin package, because 
many Proftpd features are configured at compile time.

One of the major problems that I encountered, and which 
I successfully avoided, is that a service running under SYSTEM
user, can launch a child process, which becomes unkillable.
So, if someone knows how to kill such a process, please let me know, 
I'll include it also to README.

Enjoy, 
Stanislav





__________________________________________________
Do You Yahoo!?
Yahoo! Tax Center - online filing with TurboTax
http://taxes.yahoo.com/
? cygwin.patch
Index: src/auth.c
===================================================================
RCS file: /var/proftpd/proftpd-1.2/src/auth.c,v
retrieving revision 1.10
diff -u -r1.10 auth.c
--- src/auth.c	2001/12/13 20:35:50	1.10
+++ src/auth.c	2002/03/31 20:33:56
@@ -534,10 +534,12 @@
   for (i = 0; i < ngids; i++)
     process_gids[i + 1] = group_ids[i];
 
+ #ifndef CYGWIN
   /* set the supplemental groups...
    */
   if ((res = setgroups(ngids + 1, process_gids)) < 0)
     return res;
+ #endif
 
   /* ...and if that worked OK, set the primary GID of the process
    */
Index: src/inet.c
===================================================================
RCS file: /var/proftpd/proftpd-1.2/src/inet.c,v
retrieving revision 1.22
diff -u -r1.22 inet.c
--- src/inet.c	2002/02/26 17:35:58	1.22
+++ src/inet.c	2002/03/31 20:33:58
@@ -1225,8 +1225,12 @@
 {
   struct protoent *pr;
 
+#ifndef CYGWIN
   setprotoent(FALSE);
+#endif
   if((pr = getprotobyname("tcp")) != NULL)
     tcp_proto = pr->p_proto;
+#ifndef CYGWIN
   endprotoent();
+#endif
 }
Index: src/log.c
===================================================================
RCS file: /var/proftpd/proftpd-1.2/src/log.c,v
retrieving revision 1.33
diff -u -r1.33 log.c
--- src/log.c	2002/03/01 02:49:40	1.33
+++ src/log.c	2002/03/31 20:33:59
@@ -658,7 +658,7 @@
   if(fstat(fd,&buf) == 0) {
     memset(&ut,0,sizeof(ut));
 #ifdef HAVE_UTMAXTYPE
-#ifdef LINUX
+#if defined(LINUX) || defined(CYGWIN)
     if(ip)
       memcpy(&ut.ut_addr,ip,sizeof(ut.ut_addr));
 #else

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Bug reporting:         http://cygwin.com/bugs.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]