Re: Несколько вопросов по FidoGate-ds

From
Andrey Slusar (2:467/126)
To
Alexey Illarionov
Date
2005-11-09T12:52:46Z
Area
RU.UNIX.FTN
Sat, 05 Nov 2005 01:53:57 +0200, Alexey Illarionov wrote to All:

 AI> Q3: Чего не хватает в конфигах? В смысле что должно быть прописано, чтобы
 AI> a->options не был NULL?

  Нужно правильно прописать строку в uplinks для фэх.

 AI> Вот дифф. Строки порублены, но, я надеюсь, разобраться можно.
 AI> -+- ftntick.c.orig      Sat Apr 23 18:27:22 2005
 AI> +++ ftntick.c   Fri Nov  4 09:51:19 2005
 AI> @@ -369,8 +369,12 @@

 AI>             if( (a = uplinks_line_get(FALSE, &tic->from)) )
 AI>             {
 AI> -               tmp = (char*) xmalloc(strlen(tic->area) +
 AI> strlen(autocreate_line) + strlen(a->options) + 3);
 AI> -               sprintf(tmp,"%s %s %s", tic->area, autocreate_line,
 AI> a->options);
 AI> +               tmp = (char*) xmalloc( strlen(tic->area)
 AI> +                       + strlen(autocreate_line)
 AI> +                       + (a->optios?strlen(a->options):0)
 AI> +                       + 3);
 AI> +               sprintf(tmp,"%s %s %s", tic->area
 AI> +                       , autocreate_line, a->options?a->options:"");
 AI>             }
 AI>             else
 AI>             {
 AI> @@ -607,7 +611,7 @@
 AI>             return OK;
 AI>         }

  Неверно. Нужно так:
--8<---------------cut here---------------start------------->8---
-+- ftntick.c.old	Fri Dec 10 21:10:01 2004
+++ ftntick.c	Wed Nov  9 12:32:27 2005
@@ -369,14 +367,19 @@
 		int_uplinks = TRUE;
 	    }
 	    
-	    if( (a = uplinks_line_get(FALSE, &tic->from)) )
+	    a = uplinks_line_get(FALSE, &tic->from);
+	    if(a->options)
 	    {
-	    	tmp = (char*) xmalloc(strlen(tic->area) + strlen(autocreate_line) + strlen(a->options) + 3);
-		sprintf(tmp,"%s %s %s", tic->area, autocreate_line, a->options);
+		tmp = (char*) xmalloc(strlen(tic->area)
+			+ strlen(autocreate_line)
+			+ strlen(a->options) + 3);
+		sprintf(tmp,"%s %s %s", tic->area,
+			autocreate_line, a->options);
 	    }
 	    else
 	    {
-		tmp = (char*) xmalloc(strlen(tic->area) + strlen(autocreate_line) + 2);
+		tmp = (char*) xmalloc(strlen(tic->area)
+		        + strlen(autocreate_line) + 2);
 		sprintf(tmp, "%s %s", tic->area, autocreate_line);
 	    }
 
--8<---------------cut here---------------end--------------->8---

-- 
Regards,
Andrey.
--- Gnus/5.1007 (Gnus v5.10.7) XEmacs/21.5-b23 (daikon, i386--freebsd)
 * Origin: http://sourceforge.net/projects/rusfidogate/ (2:467/126)
SEEN-BY: 46/50 50/12 400/814 450/1024 462/30 463/614 467/31 61 70 99 112 117
SEEN-BY: 467/126 127 129 469/125 550/357 4615/59 4621/18 4623/56 5000/5000
SEEN-BY: 5010/53 5011/13 5012/46 5015/10 28 5019/31 5020/545 715 2871 4441
SEEN-BY: 5021/29 5025/3 5027/16 5030/115 5035/38 5036/34 5053/16 5054/1 8 9 18
SEEN-BY: 5054/37 45 63 67 81 5059/9 5060/900 5062/10 5063/3 5069/7 5077/70
SEEN-BY: 5080/1003 5085/13 5095/20 5096/18 6000/12 254 6001/10
PATH: 467/126 70 46/50 5020/545 5054/1 37