--- vpopmail.c.orig	Mon Mar  1 16:33:32 2004
+++ vpopmail.c	Sun Apr 18 01:11:37 2004
@@ -2462,6 +2462,11 @@
 
   mytime = time(NULL);
 
+  ipaddr = get_remote_ip();
+  if ( ipaddr == NULL ) {
+      return 0;
+  }
+
 #ifdef FILE_LOCKING
   /* by default the OPEN_SMTP_LOK_FILE is ~vpopmail/etc/open-smtp.lock */
   if ( (fs_lok_file=fopen(OPEN_SMTP_LOK_FILE, "w+")) == NULL) return(-1);
@@ -2481,10 +2486,10 @@
     }
   }
 
-  /* by default the OPEN_SMTP_TMP_FILE is ~vpopmail/etc/open-smtp.tmp */
+  /* by default the OPEN_SMTP_TMP_FILE is ~vpopmail/etc/open-smtp.tmp.pid */
   snprintf(open_smtp_tmp_filename, sizeof(open_smtp_tmp_filename),
            "%s.%lu", OPEN_SMTP_TMP_FILE, (long unsigned)getpid());
-  /* create the tmp file as open-smtp.tmp.pid */
+  /* create the tmp file */
   fs_tmp_file = fopen(open_smtp_tmp_filename, "w+");
 
   if ( fs_tmp_file == NULL ) {
@@ -2493,17 +2498,6 @@
     fclose(fs_lok_file);
 #endif /* FILE_LOCKING */
     /* failed to create the tmp file */
-    return(-1);
-  }
-
-  ipaddr = get_remote_ip();
-
-  if ( ipaddr == NULL ) {     
-#ifdef FILE_LOCKING
-    unlock_lock(fileno(fs_lok_file), 0, SEEK_SET, 0);
-    fclose(fs_lok_file);
-#endif /* FILE_LOCKING */
-    /* failed to get user's ip address */
     return(-1);
   }
 


syntax highlighted by Code2HTML, v. 0.9.1