*** sendmail.c	1997/08/16 22:42:30	1.1
--- sendmail.c	1997/10/23 20:30:18
***************
*** 13,18 ****
--- 13,30 ----
   _exit(111);
  }
  
+ int flagsmtp=0;
+ int flagmailq=0;
+ int flagdaemon=0;
+ int flagnewaliases=0;
+ char *qenv[]= {
+        "PROTO=TCP",
+        "TCPLOCALIP=127.0.0.1",
+        "TCPLOCALPORT=0",
+        "TCPREMOTEIP=127.0.0.1",
+        "TCPREMOTEPORT=0"
+ 	};
+ 
  int flagh;
  char *sender;
  
***************
*** 33,41 ****
  
   flagh = 0;
   sender = 0;
!  while ((opt = getopt(argc,argv,"vimte:f:p:o:B:F:EJx")) != opteof)
     switch(opt)
      {
       case 'B': break;
       case 't': flagh = 1; break;
       case 'f': sender = optarg; break;
--- 45,65 ----
  
   flagh = 0;
   sender = 0;
!  while ((opt = getopt(argc,argv,"b:vimte:f:p:o:B:F:EJx")) != opteof)
     switch(opt)
      {
+      case 'b': 
+        switch(optarg[0])
+ 	{
+ 	 case 'd': flagdaemon=1; break; 
+ 	 case 'i': flagnewaliases=1; break; 
+ 	 case 'p': flagmailq=1; break; 
+ 	 case 's': flagsmtp=1; break; 
+ 	 default :
+ 	    substdio_putsflush(subfderr,"sendmail: fatal: unsupported mode\n");
+ 	    _exit(100);
+ 	}
+        break;
       case 'B': break;
       case 't': flagh = 1; break;
       case 'f': sender = optarg; break;
***************
*** 64,80 ****
   argc -= optind;
   argv += optind;
  
!  if (str_equal(optprogname,"mailq"))
    {
     substdio_putsflush(subfderr,"sendmail: fatal: please use qmail-qread instead\n");
     _exit(100);
    }
  
!  if (str_equal(optprogname,"newaliases"))
    {
     substdio_putsflush(subfderr,"sendmail: fatal: please use the qmsmac newaliases instead\n");
     _exit(100);
    }
  
   qiargv = (char **) alloc((argc + 10) * sizeof(char *));
   if (!qiargv) nomem();
--- 88,123 ----
   argc -= optind;
   argv += optind;
  
!  if ( (flagmailq) || (str_equal(optprogname,"mailq")))
    {
     substdio_putsflush(subfderr,"sendmail: fatal: please use qmail-qread instead\n");
     _exit(100);
    }
  
!  if ((flagnewaliases) || (str_equal(optprogname,"newaliases")))
    {
     substdio_putsflush(subfderr,"sendmail: fatal: please use the qmsmac newaliases instead\n");
     _exit(100);
    }
+ 
+  if (flagdaemon) {
+     substdio_putsflush(subfderr,"sendmail: fatal: daemon mode unsupported - use tcpserver instead\n");
+     _exit(100);
+    };
+ 
+  if (flagsmtp) {
+     qiargv = (char **) alloc((argc + 10) * sizeof(char *));
+     if (!qiargv) nomem();
+ 
+     arg = qiargv;
+     *arg++ = "bin/qmail-smtpd";
+     *arg = 0;
+ 
+     execve(*qiargv,qiargv,qenv);
+  
+     substdio_putsflush(subfderr,"sendmail: fatal: unable to run qmail-smtpd\n");
+     _exit(111);
+    };
  
   qiargv = (char **) alloc((argc + 10) * sizeof(char *));
   if (!qiargv) nomem();

