Sophie

Sophie

distrib > Mandriva > current > i586 > media > contrib-release-src > by-pkgid > d25c1eab115fe0362984e24574f0f689 > files > 3

penggy-0.2.1-8mdv2010.1.src.rpm

--- penggy-0.2.1/src/modem/modem.c.orig	2006-01-16 19:05:49.000000000 +0100
+++ penggy-0.2.1/src/modem/modem.c	2006-01-16 19:11:05.000000000 +0100
@@ -268,27 +268,43 @@
   log (LOG_NOTICE, _("Dialing provider...\n"));
   if(!get_phonetab())
     return 0;
-  for (i = 0; !connected && i < PARAM_MODEM_DIAL_RETRY; i++)
-    {
-      for(j=0; phonetab[j].phone; j++)
-        if(modem_dial_to (phonetab[j].phone))
-	{
-	  snprintf(script_file, sizeof(script_file),"%s/%s.scm",
-		 PARAM_MODEM_CHAT_PATH, 
-		 phonetab[j].script? phonetab[j].script : DEFAULT_CHAT_FILE);
-	  if(modem_exec_script(script_file))
-	    connected = 1;
-	}
+  for (i = 0; !connected && i < PARAM_MODEM_DIAL_RETRY; i++)  
+  {
+  /* Re-dial the same telephone number more than once before trying a different one. */
+  for (j = 0; j < PARAM_MODEM_DIAL_RETRY; j++)
+        {        
+        if(modem_dial_to (phonetab[i].phone))
+          {
+          /* Modem connection was successful. */
+          snprintf(script_file, sizeof(script_file),"%s/%s.scm",
+                 PARAM_MODEM_CHAT_PATH, 
+                     phonetab[i].script? phonetab[i].script : DEFAULT_CHAT_FILE);
+              if(modem_exec_script(script_file))
+                {
+                  /* Script execution was successful. */
+                  connected = 1;
+                  break;
+                }
+            }
+
+          /* The connection was not made, attempt a re-dial or try a different number. */
+          modem_hangup ();
+          sleep (PARAM_MODEM_RETRY_DELAY);
+        }
+							  
     }
+
   if(connected)
-    free_phonetab ();
-  if(!connected)
-    {
+  {
+      free_phonetab ();
+      return 1;
+    }
+  else
+  {
       if(status!=sexit)
         log (LOG_ERR, _("Too many failures, dialing process aborted.\n"));
       return 0;
     }
-  return 1;
 }
 
 int