inlining
authorJeremy Harris <jgh146exb@wizmail.org>
Mon, 19 Aug 2019 10:51:43 +0000 (11:51 +0100)
committerJeremy Harris <jgh146exb@wizmail.org>
Mon, 19 Aug 2019 10:51:43 +0000 (11:51 +0100)
src/src/dcc.c
src/src/functions.h
src/src/queue.c
src/src/receive.c
src/src/spool_in.c
src/src/spool_mbox.c
src/src/transport.c

index 4c9c0964fd708f7571e05b5ad105925b92533af7..4c86c092b0cbab6dacaf332c9d9c3aace30abad4 100644 (file)
@@ -60,7 +60,7 @@ dcc_process(uschar **listptr)
   uschar *override_client_ip  = NULL;
 
   /* from local_scan */
-  int i, j, k, c, retval, sockfd, resp, line;
+  int j, k, c, retval, sockfd, resp, line;
   unsigned int portnr;
   struct sockaddr_un  serv_addr;
   struct sockaddr_in  serv_addr_in;
@@ -72,7 +72,6 @@ dcc_process(uschar **listptr)
   uschar sendbuf[4096];
   uschar recvbuf[4096];
   uschar dcc_return_text[1024];
-  uschar message_subdir[2];
   struct header_line *dcchdr;
   uschar *dcc_acl_options;
   uschar dcc_acl_options_buffer[10];
@@ -98,11 +97,10 @@ dcc_process(uschar **listptr)
     return dcc_rc;
 
   /* open the spooled body */
-  message_subdir[1] = '\0';
-  for (i = 0; i < 2; i++)
+  for (int i = 0; i < 2; i++)
     {
-    message_subdir[0] = split_spool_directory == (i == 0) ? message_id[5] : 0;
-
+    uschar message_subdir[2];
+    set_subdir_str(message_subdir, message_id, i);
     if ((data_file = Ufopen(
            spool_fname(US"input", message_subdir, message_id, US"-D"),
            "rb")))
@@ -244,7 +242,7 @@ dcc_process(uschar **listptr)
   }
 
   /* let's send each of the recipients to dccifd */
-  for (i = 0; i < recipients_count; i++){
+  for (int i = 0; i < recipients_count; i++){
     DEBUG(D_acl)
       debug_printf("DCC: recipient = %s\n",recipients_list[i].address);
     if(Ustrlen(sendbuf) + Ustrlen(recipients_list[i].address) > sizeof(sendbuf))
@@ -281,7 +279,7 @@ dcc_process(uschar **listptr)
        j = 0;
        while(j < dcchdr->slen)
        {
-        for(i = 0; i < sizeof(sendbuf)-2; i++) {
+        for(int i = 0; i < sizeof(sendbuf)-2; i++) {
           sendbuf[i] = dcchdr->text[j];
           j++;
         }
@@ -359,12 +357,11 @@ dcc_process(uschar **listptr)
       debug_printf("DCC: Length of the output buffer is: %d\nDCC: Output buffer is:\nDCC: ------------\nDCC: %s\nDCC: -----------\n", c, recvbuf);
 
     /* Now let's read each character and see what we've got */
-    for(i = 0; i < c; i++) {
+    for(int i = 0; i < c; i++) {
       /* First check if we reached the end of the line and
        * then increment the line counter */
-      if(recvbuf[i] == '\n') {
+      if(recvbuf[i] == '\n')
         line++;
-      }
       else {
         /* The first character of the first line is the
          * overall response. If there's another character
index 9f813d5ed53e398261ceda2addae755f2b7b0416..ee0ad139ebc07c522168634ef0a0d0380b8f628c 100644 (file)
@@ -474,13 +474,10 @@ extern int     spam(const uschar **);
 extern FILE   *spool_mbox(unsigned long *, const uschar *, uschar **);
 #endif
 extern void    spool_clear_header_globals(void);
-extern uschar *spool_dname(const uschar *, uschar *);
-extern uschar *spool_fname(const uschar *, const uschar *, const uschar *, const uschar *);
 extern BOOL    spool_move_message(uschar *, uschar *, uschar *, uschar *);
 extern int     spool_open_datafile(uschar *);
 extern int     spool_open_temp(uschar *);
 extern int     spool_read_header(uschar *, BOOL, BOOL);
-extern uschar *spool_sname(const uschar *, uschar *);
 extern int     spool_write_header(uschar *, int, uschar **);
 extern int     stdin_getc(unsigned);
 extern int     stdin_feof(void);
@@ -859,6 +856,51 @@ store_get_dns_answer_trc(const uschar * func, unsigned line)
 return store_get_3(sizeof(dns_answer), TRUE, CCS func, line);  /* use tainted mem */
 }
 
+/******************************************************************************/
+/* Routines with knowledge of spool layout */
+
+# ifndef COMPILE_UTILITY
+static inline void
+spool_pname_buf(uschar * buf, int len)
+{
+snprintf(CS buf, len, "%s/%s/input", spool_directory, queue_name);
+}
+
+static inline uschar *
+spool_dname(const uschar * purpose, uschar * subdir)
+{
+return string_sprintf("%s/%s/%s/%s",
+       spool_directory, queue_name, purpose, subdir);
+}
+# endif
+
+static inline uschar *
+spool_sname(const uschar * purpose, uschar * subdir)
+{
+return string_sprintf("%s%s%s%s%s",
+                   queue_name, *queue_name ? "/" : "",
+                   purpose,
+                   *subdir ? "/" : "", subdir);
+}
+
+static inline uschar *
+spool_fname(const uschar * purpose, const uschar * subdir, const uschar * fname,
+               const uschar * suffix)
+{
+return string_sprintf("%s/%s/%s/%s/%s%s",
+       spool_directory, queue_name, purpose, subdir, fname, suffix);
+}
+
+static void
+set_subdir_str(uschar * subdir_str, const uschar * name,
+       int search_sequence)
+{
+subdir_str[0] = split_spool_directory == (search_sequence == 0)
+       ? name[5] : '\0';
+subdir_str[1] = '\0';
+}
+
+/******************************************************************************/
 #endif /* !MACRO_PREDEF */
 
 #endif  /* _FUNCTIONS_H_ */
index a124782e91e1684b21fbcc7d4e89318ed508ea30..f65c65262481555eb14f413bc1f11ad1d5fbce46 100644 (file)
 
 
 
-/* Routines with knowledge of spool layout */
-
-#ifndef COMPILE_UTILITY
-static void
-spool_pname_buf(uschar * buf, int len)
-{
-snprintf(CS buf, len, "%s/%s/input", spool_directory, queue_name);
-}
-
-uschar *
-spool_dname(const uschar * purpose, uschar * subdir)
-{
-return string_sprintf("%s/%s/%s/%s",
-       spool_directory, queue_name, purpose, subdir);
-}
-#endif
-
-uschar *
-spool_sname(const uschar * purpose, uschar * subdir)
-{
-return string_sprintf("%s%s%s%s%s",
-                   queue_name, *queue_name ? "/" : "",
-                   purpose,
-                   *subdir ? "/" : "", subdir);
-}
-
-uschar *
-spool_fname(const uschar * purpose, const uschar * subdir, const uschar * fname,
-               const uschar * suffix)
-{
-return string_sprintf("%s/%s/%s/%s/%s%s",
-       spool_directory, queue_name, purpose, subdir, fname, suffix);
-}
 
 
 
@@ -1034,7 +1001,7 @@ if (action >= MSG_SHOW_BODY)
 
   for (int i = 0; i < 2; i++)
     {
-    message_subdir[0] = split_spool_directory == (i == 0) ? id[5] : 0;
+    set_subdir_str(message_subdir, id, i);
     if ((fd = Uopen(spool_fname(subdirectory, message_subdir, id, suffix),
                    O_RDONLY, 0)) >= 0)
       break;
index c7553f80265475f7fb2d1d7e66dc20c48fce5fe9..6b5a28d3119b35637abbd1ca1243198abb7d0638 100644 (file)
@@ -2694,7 +2694,7 @@ it will fit. */
 to be the least significant base-62 digit of the time of arrival. Otherwise
 ensure that it is an empty string. */
 
-message_subdir[0] = split_spool_directory ? message_id[5] : 0;
+set_subdir_str(message_subdir, message_id, 0);
 
 /* Now that we have the message-id, if there is no message-id: header, generate
 one, but only for local (without suppress_local_fixups) or submission mode
index 101a6c40cfb94245f3869a806e1383d0b996c25a..c70835c29c778fccb939abe49905ddd79ce8129f 100644 (file)
@@ -52,7 +52,7 @@ for (int i = 0; i < 2; i++)
   uschar * fname;
   int save_errno;
 
-  message_subdir[0] = split_spool_directory == i ? '\0' : id[5];
+  set_subdir_str(message_subdir, id, i);
   fname = spool_fname(US"input", message_subdir, id, US"-D");
   DEBUG(D_deliver) debug_printf("Trying spool file %s\n", fname);
 
@@ -356,7 +356,7 @@ and unsplit directories, as for the data file above. */
 for (int n = 0; n < 2; n++)
   {
   if (!subdir_set)
-    message_subdir[0] = split_spool_directory == (n == 0) ? name[5] : 0;
+    set_subdir_str(message_subdir, name, n);
 
   if ((fp = Ufopen(spool_fname(US"input", message_subdir, name, US""), "rb")))
     break;
index caf1712cf7dde5619870e963826ed769e7b6dff5..7b6a796079c535d519753eb38346eaa83a0a30bf 100644 (file)
@@ -117,7 +117,7 @@ if (!spool_mbox_ok)
     message_subdir[1] = '\0';
     for (int i = 0; i < 2; i++)
       {
-      message_subdir[0] = split_spool_directory == (i == 0) ? message_id[5] : 0;
+      set_subdir_str(message_subdir, message_id, i);
       temp_string = spool_fname(US"input", message_subdir, message_id, US"-D");
       if ((l_data_file = Ufopen(temp_string, "rb"))) break;
       }
index ce02adbf2b60e77915bc03f422af5444ccec6d42..13a039d8c32951f47457afd0b15abf9d22b7f475 100644 (file)
@@ -1722,16 +1722,14 @@ while (1)
   for (i = msgq_count - 1; i >= 0; --i) if (msgq[i].bKeep)
     {
     uschar subdir[2];
+    uschar * mid = msgq[i].message_id;
 
-    subdir[0] = split_spool_directory ? msgq[i].message_id[5] : 0;
-    subdir[1] = 0;
-
-    if (Ustat(spool_fname(US"input", subdir, msgq[i].message_id, US"-D"),
-             &statbuf) != 0)
+    set_subdir_str(subdir, mid, 0);
+    if (Ustat(spool_fname(US"input", subdir, mid, US"-D"), &statbuf) != 0)
       msgq[i].bKeep = FALSE;
-    else if (!oicf_func || oicf_func(msgq[i].message_id, oicf_data))
+    else if (!oicf_func || oicf_func(mid, oicf_data))
       {
-      Ustrcpy_nt(new_message_id, msgq[i].message_id);
+      Ustrcpy_nt(new_message_id, mid);
       msgq[i].bKeep = FALSE;
       bFound = TRUE;
       break;