INNFEED.CONF(5) InterNetNews Documentation INNFEED.CONF(5) نام (NAME) innfeed.conf - فایل پیکربندی ارسال سریع فید مقالات در INN در یک نگاه (IN A NUTSHELL) فایل innfeed.conf پیکربندی می‌کند که innfeed فیدهای NNTP را به کدام همتاهای دوردست ارسال نماید. یک مدخل متداول برای پارامتردهی "news.server.com" به عنوان یک فید خروجی به صورت زیر است: peer news.server.com { ip-name: "news.server.com" } اگر پورت استاندارد ۱۱۹ برای NNTP استفاده نمی‌شود، می‌توانید یک پورت جایگزین را به صورت زیر مشخص کنید: peer news.server.com { ip-name: "news.server.com" port-number: 433 } پس از هرگونه تغییر، دستور "inncheck" را برای انجام بررسی‌های اولیه ساختار نحوی اجرا کنید و با دستور زیر این فایل پیکربندی را مجدداً بارگذاری نمایید که باعث می‌شود innd نمونه جدیدی از innfeed را بازتولید کند (با فرض اینکه "innfeed!" نام فید کانال مربوطه در newsfeeds باشد): ctlinnd flush innfeed! توضیحات (DESCRIPTION) فایل پیکربندی innfeed.conf در pathetc برای کنترل برنامه innfeed(8) به کار می‌رود. این فایل ساختاری کاملاً آزاد دارد و از سه نوع مدخل تشکیل شده است: key:value، peer و group. توضیحات و یادداشت‌ها از نویسه هش ("#") تا انتهای خط در نظر گرفته می‌شوند. مدخل‌های key:value یک کلمه کلیدی و یک مقدار هستند که با دونقطه (که خود می‌تواند با فاصله‌های خالی احاطه شود) از هم جدا شده‌اند. به عنوان مثال: max-connections: 10 یک key مجاز با یک حرف شروع می‌شود و تنها شامل حروف، ارقام و نویسه‌های "_" و "-" است. ۵ نوع مقدار مختلف وجود دارد: اعداد صحیح، اعداد اعشاری، نویسه‌ها، مقادیر بولی و رشته‌ها. اعداد صحیح و اعشاری همان‌طور که انتظار می‌رود عمل می‌کنند، جز اینکه نمادهای علمی (نماها) در اعداد اعشاری پشتیبانی نمی‌شوند. مقدار بولی یکی از مقادیر "true"، "yes"، "on"، "false"، "no" یا "off" است (بزرگی و کوچکی حروف مهم نیست). مقدار نویسه (کاراکتر)، یک نویسه درون نقل‌قول تکی همانند تعریف زبان C است. مقدار رشته‌ای هر دنباله دیگری از نویسه‌ها است. اگر رشته نیاز به داشتن فاصله خالی داشته باشد، باید درون نقل‌قول دوتایی قرار گیرد و از همان ساختار زبان C برای جاسازی نویسه‌های غیرقابل‌چاپ استفاده می‌کند. مدخل‌های همتا (Peer) به شکل زیر هستند: peer { # body ... } کلمه "peer" الزامی است. همان نام سایت در فایل پیکربندی newsfeeds در INN است. بدنه یک مدخل همتا شامل تعدادی (احتمالاً صفر) از مدخل‌های key:value است. مدخل‌های گروه (Group) به شکل زیر هستند: group { # body ... } کلمه "group" الزامی است. هر رشته معتبری به عنوان یک کلید است. بدنه یک مدخل گروه شامل هر تعداد از این سه نوع مدخل می‌باشد؛ بنابراین جفت‌های key:value می‌توانند درون یک گروه تعریف شوند، همتاها می‌توانند درون یک گروه تو در تو باشند، و گروه‌های دیگر نیز می‌توانند درون یک گروه قرار گیرند. مدخل‌های key:value که خارج از تمام مدخل‌های peer و group تعریف شده‌اند، دارای «دامنه سراسری» (global scope) هستند. مدخل‌های سراسری key:value وجود دارند که به کل فرایند اعمال می‌شوند (به عنوان مثال مکان دایرکتوری فایل‌های بک‌لاگ)، و همچنین مدخل‌های سراسری key:value دیگری وجود دارند که به عنوان پیش‌فرض‌های همتاها عمل می‌کنند. زمانی که innfeed به دنبال مقدار مشخصی در یک مدخل همتا می‌گردد (مثلاً حداکثر تعداد اتصالات برای برقراری)، اگر آن مقدار در مدخل همتا تعریف نشده باشد، گروه‌های دربرگیرنده به دنبال آن مدخل بررسی می‌شوند (از نزدیک‌ترین گروه دربرگیرنده شروع می‌شود). اگر هیچ گروه دربرگیرنده‌ای وجود نداشته باشد، یا گروه‌های دربرگیرنده آن key:value را تعریف نکرده باشند، مقدار موجود در دامنه سراسری استفاده می‌شود. یک مثال کوچک می‌تواند به این صورت باشد: # Global value applied to all peers that have # no value of their own. max-connections: 5 # A peer definition. "uunet" is the name used by innd # in the newsfeeds configuration file. peer uunet { ip-name: usenet1.uu.net } peer vixie { ip-name: gw.home.vix.com max-connections: 10 # Override global value. } # A group of two peers which can handle more connections # than normal. group fast-sites { max-connections: 15 # Another peer. The "max-connections" value from the # "fast-sites" group scope is used. The "ip-name" value # defaults to the peer's name. peer data.ramona.vix.com { } peer bb.home.vix.com { max-connections: 20 # He can really cook. } } با توجه به فایل پیکربندی بالا، همتاهای تعریف‌شده مقادیر زیر را برای کلید max-connections خواهند داشت: uunet 5 vixie 10 data.ramona.vix.com 15 bb.home.vix.com 20 برنامه innfeed جفت‌های key:value را که به آن‌ها علاقه‌ای ندارد نادیده می‌گیرد. برخی از مقادیر فایل پیکربندی را می‌توان از طریق گزینه‌های خط فرمان تنظیم کرد که در این صورت آن تنظیمات بر تنظیمات درون فایل اولویت دارند. فایل‌های پیکربندی را می‌توان با نحو زیر در سایر فایل‌های پیکربندی گنجاند: $INCLUDE filename حداکثر عمق تو در تو بودن ۱۰ است. برای مشاهده یک نمونه کامل‌تر از فایل پیکربندی، به فایل innfeed.conf ارائه‌شده مراجعه کنید. مقادیر سراسری (GLOBAL VALUES) فهرست زیر تمام کلیدهایی را نشان می‌دهد که به کل فرایند اعمال می‌شوند. این کلیدها الزامی نیستند (در صورت نیاز از مقادیر پیش‌فرض تعبیه‌شده در زمان کامپایل استفاده می‌شود). news-spool این کلید نیازمند یک مقدار مسیر است و مقدار پیش‌فرض آن patharticles در inn.conf می‌باشد. این کلید مشخص می‌کند که ریشه یا بالای اسپول مقاله کجاست. این تنظیم معادل گزینه خط فرمان -a است. input-file این کلید نیازمند یک مقدار مسیر است. این کلید مسیر (نسبت به مقدار backlog-directory) فایلی را مشخص می‌کند که باید در حالت funnel-file خوانده شود. این معادل دادن یک نام فایل به عنوان آرگومان در خط فرمان است (یعنی وجود آن نشان‌دهنده استفاده از حالت funnel-file نیز می‌باشد). پیش‌فرض این مقدار تنظیم‌نشده است؛ در این صورت innfeed در حالت کانال یا دسته‌ای اجرا می‌شود. pid-file این کلید نیازمند یک مقدار مسیر است و به طور پیش‌فرض innfeed.pid می‌باشد. این کلید مسیر (نسبت به pathrun در inn.conf) ذخیره شناسه فرایند (PID) برنامه innfeed را مشخص می‌کند. این تنظیم معادل گزینه خط فرمان -p است. debug-level این کلید سطح اشکال‌زدایی را برای فرایند مشخص می‌کند. پیش‌فرض "0" است. یک عدد غیرصفر پیام‌های زیادی را به stderr یا به فایل گزارش مشخص‌شده در پیکربندی (یعنی log-file) ارسال می‌کند. این تنظیم معادل گزینه خط فرمان -d است. اگر فایلی به نام innfeed.debug در دایرکتوری pathlog (همان‌طور که در inn.conf تنظیم شده) وجود داشته باشد، مقدار debug-level به صورت خودکار روی "1" تنظیم می‌شود. این روشی ساده و کم‌هزینه برای جلوگیری از بارگذاری مجدد مداوم فایل newsfeeds هنگام اشکال‌زدایی است. توجه داشته باشید که پیام‌های اشکال‌زدایی همچنان به log-file ارسال می‌شوند. debug-shrinking این کلید نیازمند یک مقدار بولی است و پیش‌فرض آن false است (فایل اشکال‌زدایی اجازه دارد بدون محدودیت رشد کند). در صورت تنظیم روی true، هنگامی که اندازه این فایل به حد معینی برسد، کوتاه می‌شود. برای جزئیات بیشتر به backlog-limit مراجعه کنید. initial-sleep این کلید نیازمند یک عدد صحیح مثبت است. مقدار پیش‌فرض "2" است. این کلید تعداد ثانیه‌هایی را مشخص می‌کند که innfeed (یا یک انشعاب از آن) پس از شروع، پیش از آغاز باز کردن اتصالات به میزبان‌های راه دور باید منتظر بماند. fast-exit این کلید نیازمند یک مقدار بولی است و پیش‌فرض آن false است. در صورت تنظیم روی true، هنگامی که innfeed یک سیگنال SIGTERM یا SIGQUIT دریافت می‌کند، شنوندگان خود را در سریع‌ترین زمان ممکن می‌بندد، حتی اگر به معنای نادیده گرفتن و انداختن مقالات باشد. use-mmap این کلید نیازمند یک مقدار بولی است و پیش‌فرض آن true است. هنگامی که به جای نشانه‌های API ذخیره‌سازی، نام فایل‌ها به innfeed داده می‌شود تا ارسال شوند (یک مورد استفاده نسبتاً نادر)، مشخص می‌کند که آیا در صورت کامپایل شدن innfeed با پشتیبانی از mmap(2) باید از mmap استفاده شود یا خیر. اگر داده‌های مقاله روی دیسک در قالبی آماده برای NNTP نباشد (CR/LF در انتهای هر خط)، پس از mmap شدن، مقاله در حافظه خوانده شده و اصلاح می‌شود؛ بنابراین mmap هیچ اثر مثبتی ندارد (و بسته به سیستم شما احتمالاً اثر منفی هم دارد)؛ در نتیجه در چنین حالتی این مقدار باید "false" باشد که معادل گزینه خط فرمان -M است. log-file این کلید نیازمند یک مقدار مسیر است و پیش‌فرض آن innfeed.log می‌باشد. این کلید مشخص می‌کند که هرگونه پیام گزارشی که امکان ارسال آن از طریق syslog(3) وجود نداشته است (مانند پیام‌های تولیدشده هنگام استفاده از مقدار مثبت برای debug-level) به کجا ارسال شود. این تنظیم معادل گزینه خط فرمان -l است. این مسیر نسبت به pathlog در inn.conf است. log-time-format این کلید نیازمند یک رشته قالب مناسب برای strftime(3) است. این رشته برای پیام‌های ارسال‌شده از طریق syslog(3) و به status-file استفاده می‌شود. مقدار پیش‌فرض "%a %b %d %H:%M:%S %Y" است. backlog-directory این کلید نیازمند یک مقدار مسیر است و پیش‌فرض آن innfeed می‌باشد. این کلید مشخص می‌کند که فرایند فعلی innfeed کجا باید فایل‌های بک‌لاگ را ذخیره کند. این تنظیم معادل گزینه خط فرمان -b است. این مسیر نسبت به pathspool در inn.conf است. backlog-highwater این کلید نیازمند یک عدد صحیح مثبت است و مقدار پیش‌فرض آن "5" می‌باشد. این کلید مشخص می‌کند چه تعداد مقاله باید در صف فایل بک‌لاگ نگه‌داری شود قبل از اینکه نوشتن مدخل‌های جدید روی دیسک آغاز گردد. backlog-ckpt-period این کلید نیازمند یک عدد صحیح مثبت است و پیش‌فرض آن "30" می‌باشد. این کلید مشخص می‌کند چند ثانیه بین نقاط بازرسی و بازنویسی‌های فایل ورودی بک‌لاگ سپری شود. عدد خیلی کوچک به معنای دسترسی مکرر به دیسک است؛ عدد خیلی بزرگ یعنی پس از یک خرابی (crash)، innfeed مقالات پردازش‌شده بیشتری را نسبت به آنچه لازم است مجدداً پیشنهاد می‌دهد. backlog-newfile-period این کلید نیازمند یک عدد صحیح مثبت است و پیش‌فرض آن "600" می‌باشد. این کلید مشخص می‌کند چند ثانیه قبل از هر بررسی برای فایل‌های بک‌لاگ تولیدشده به صورت بیرونی (که باید برداشته و پردازش شوند) سپری شود. backlog-rotate-period این کلید نیازمند یک عدد صحیح مثبت است و پیش‌فرض آن "60" می‌باشد. این کلید مشخص می‌کند چند ثانیه سپری شود پیش از آنکه innfeed یک فایل بک‌لاگ ایجادشده به صورت بیرونی را به فایل بک‌لاگ ورودی منتقل کند (اگر به میزان backlog-newfile-period ثانیه گذشته باشد) یا در غیاب چنین فایلی، فایل بک‌لاگ خروجی را به فایل بک‌لاگ ورودی انتقال دهد. اگر فایل بک‌لاگ ورودی خالی نباشد هیچ انتقالی رخ نمی‌دهد. dns-retry این کلید نیازمند یک عدد صحیح مثبت است و پیش‌فرض آن "900" می‌باشد. این کلید تعداد ثانیه‌های بین تلاش‌ها برای جستجوی مجدد اطلاعات میزبانی را که قبلاً در تفکیک نام (resolve) ناموفق بوده است، مشخص می‌کند. dns-expire این کلید نیازمند یک عدد صحیح مثبت است و پیش‌فرض آن "86400" می‌باشد. این کلید تعداد ثانیه‌های بین تازه‌سازی‌های ترجمه نام DNS به آدرس را مشخص می‌کند. این برای آن است که فرایندهای با اجرای طولانی‌مدت، در صورت تغییر آدرس‌های IP همتا، با داده‌های منقضی‌شده و کهنه روبرو نشوند. gen-html این کلید نیازمند یک مقدار بولی است و پیش‌فرض آن false است. این کلید مشخص می‌کند که آیا status-file باید به صورت HTML تبدیل و تولید شود یا خیر. status-file این کلید نیازمند یک مقدار مسیر است و پیش‌فرض آن innfeed.status می‌باشد. می‌توان از یک مسیر مطلق نیز استفاده کرد. این کلید مسیری را مشخص می‌کند (نسبت به pathhttp هنگامی که gen-html برابر با true است؛ در غیر این صورت نسبت به pathlog همان‌طور که در inn.conf آمده) که وضعیت دوره‌ای فرایند innfeed باید در آن ذخیره شود. این تنظیم معادل گزینه خط فرمان -S است. connection-stats این کلید نیازمند یک مقدار بولی است و پیش‌فرض آن false است. اگر مقدار true باشد، هر زمان که آمار انتقال برای یک همتا ثبت می‌شود، هر اتصال فعال نیز آمار اختصاصی خود را ثبت می‌کند. این تنظیم معادل گزینه خط فرمان -z است. host-queue-highwater این کلید نیازمند یک عدد صحیح مثبت است و پیش‌فرض آن "10" می‌باشد. این کلید مشخص می‌کند چه تعداد مقاله به صورت داخلی برای یک همتا نگه‌داری شود، پیش از آنکه مقالات جدید باعث شوند اطلاعات مقاله به فایل بک‌لاگ منتقل گردد. stats-period این کلید نیازمند یک عدد صحیح مثبت است و پیش‌فرض آن "600" می‌باشد. این کلید مشخص می‌کند innfeed چند ثانیه بین تولید آمار نرخ انتقال صبر کند. stats-reset این کلید نیازمند یک عدد صحیح مثبت است و پیش‌فرض آن "43200" می‌باشد. این کلید مشخص می‌کند innfeed چند ثانیه قبل از صفر کردن مجدد همه شمارنده‌های انتقال داخلی (پس از یک بار ثبت نهایی در گزارش) صبر کند. این به این دلیل است که یک فرایند innfeed که بیش از یک روز در حال اجرا است آمارهای «نهایی» تولید کند تا توسط اسکریپت‌های پردازش فایل‌های گزارش برداشته شوند. initial-reconnect-time این کلید نیازمند یک عدد صحیح مثبت است و پیش‌فرض آن "30" می‌باشد. این کلید مشخص می‌کند پس از قطع یا شکست در اتصال، ابتدا چند ثانیه قبل از تلاش مجدد برای اتصال مجدد صبر شود. اگر تلاش بعدی نیز ناموفق باشد، زمان اتصال مجدد تقریباً دو برابر می‌شود تا زمانی که اتصال برقرار شود یا به max-reconnect-time برسد. max-reconnect-time این کلید نیازمند یک مقدار عدد صحیح است و پیش‌فرض آن "3600" می‌باشد. این کلید حداکثر تعداد ثانیه‌ها برای انتظار بین تلاش‌ها جهت اتصال مجدد به یک همتا را تعیین می‌کند. مقدار اولیه برای تلاش‌های اتصال مجدد توسط initial-reconnect-time مشخص می‌شود و پس از هر شکست دو برابر می‌گردد تا به این مقدار برسد. stdio-fdmax این کلید نیازمند یک عدد صحیح غیرمنفی است و مقدار پیش‌فرض آن "0" می‌باشد. اگر مقدار بزرگ‌تر از صفر باشد، هرگاه توصیف‌گر فایل سوکت شبکه ایجاد شود و مقداری کمتر از این مقدار داشته باشد، توصیف‌گر فایل با دستور dup کپی می‌شود تا مقدار آن بزرگ‌تر از این مقدار گردد. این کار برای آزاد گذاشتن توصیف‌گرهای فایل با شماره‌های پایین‌تر برای stdio است. سیستم‌های خاصی، به ویژه سیستم‌های Sun، به این مورد نیاز دارند. SunOS 4.1.x معمولاً به مقدار "128" نیاز دارد؛ نسخه‌های ۳۲ بیتی Solaris یا برنامه‌های ۳۲ بیتی که روی Solaris ۶۴ بیتی اجرا می‌شوند، و همچنین نسخه‌های ۶۴ بیتی Solaris قبل از 11.0 به مقدار "256" نیاز دارند. برای جزئیات بیشتر به مستندات سولاریس درباره توصیف‌گرهای فایل مراجعه کنید. در صورتی که این مورد مشخص نشده باشد، پیش‌فرض "0" است. کلیدهای ویژه برای imapfeed (Special keys for imapfeed) کلیدهای زیر همراه با imapfeed برای احراز هویت در یک میزبان راه دور استفاده می‌شوند. چندین پارامتر ممکن است در دامنه سراسری گنجانده شوند: deliver-authname نام احراز هویت (authname) هویتی است که می‌خواهید به عنوان آن احراز هویت شوید. deliver-password این گذرواژه مناسب برای authname است. deliver-username نام کاربری (username) کسی است که می‌خواهید «نقش» او را ایفا کنید؛ یعنی کسی که در واقع قرار است از سرور استفاده کند. deliver-realm در این مورد، «قلمرو» (realm) همان قلمرویی است که authname مشخص‌شده در آن معتبر است. در حال حاضر این مورد فقط توسط سازوکار SASL مدل DIGEST-MD5 مورد نیاز است. deliver-rcpt-to یک رشته قالب با سبک printf(3) برای ایجاد آدرس گیرنده پاکت (envelope recipient). الگو باید الزاماً شامل یک مشخص‌کننده رشته منفرد باشد که با گروه خبری جدید جایگزین می‌شود (مثلاً "bb+%s"). مقدار پیش‌فرض "+%s" است. deliver-to-header یک رشته قالب اختیاری با سبک printf(3) برای ایجاد یک فیلد هدر To که باید در ابتدای مقاله قرار گیرد. الگو باید الزاماً شامل یک مشخص‌کننده رشته منفرد باشد که با گروه خبری جدید جایگزین می‌شود (مثلاً "post+%s@domain"). در صورت مشخص نشدن، فیلد هدر To اضافه نخواهد شد. پیش‌فرض‌های سراسری همتا (GLOBAL PEER DEFAULTS) تمام جفت‌های key:value ذکرشده در این بخش را می‌توان در دامنه سراسری مشخص کرد. همچنین می‌توان آن‌ها را در داخل تعریف یک گروه یا همتا نیز تعیین نمود. توجه داشته باشید که وقتی همتاها به صورت پویا اضافه می‌شوند (یعنی زمانی که innfeed مقاله‌ای برای یک همتای نامشخص دریافت می‌کند)، سایت همتا را با استفاده از پارامترهای مشخص‌شده در دامنه سراسری اضافه خواهد کرد. کلیدهای الزامی (Required keys) در حال حاضر هیچ کلیدی الزامی نیست. همه آن‌ها در صورت عدم وجود در فایل پیکربندی، دارای مقدار پیش‌فرض هستند. کلیدهای اختیاری (Optional keys) کلیدهای زیر اختیاری هستند: article-timeout این کلید نیازمند یک مقدار عدد صحیح غیرمنفی است. مقدار پیش‌فرض آن "600" می‌باشد. اگر تا این تعداد ثانیه نیازی به ارسال مقاله به همتا نباشد، همتا بیکار تلقی شده و تمام اتصالات فعال آن قطع می‌شوند. response-timeout این کلید نیازمند یک مقدار عدد صحیح غیرمنفی است. مقدار پیش‌فرض آن "300" می‌باشد. این کلید حداکثر زمان انتظار برای دریافت پاسخ از همتا پس از صدور یک دستور را مشخص می‌کند. initial-connections این کلید نیازمند یک مقدار عدد صحیح غیرمنفی است. مقدار پیش‌فرض آن "1" می‌باشد. این کلید تعداد اتصالاتی را که باید بلافاصله هنگام راه‌اندازی پیوند با یک همتا برقرار شوند، مشخص می‌کند. مقدار "0" به این معنی است که تا زمانی که نیازی به ارسال مقاله نباشد، هیچ اتصالی ایجاد نخواهد شد. max-connections این کلید نیازمند یک عدد صحیح مثبت است. مقدار پیش‌فرض "2" است، اما در صورت نیاز یا برای فیدهای بزرگ می‌توان آن را افزایش داد. این کلید حداکثر تعداد اتصالات موازی به همتا را مشخص می‌کند. مقدار "0" حداکثر تعداد اتصالات نامحدود را مشخص می‌کند. به‌طور کلی، استفاده از تعداد نامحدود اتصالات توصیه نمی‌شود. هرگز max-connections را هنگام تنظیم dynamic-method روی 0، برابر با صفر قرار ندهید، زیرا این کار باعث اشباع میزبان‌های همتا با اتصالات بیش از حد می‌شود. close-period این کلید نیازمند یک مقدار عدد صحیح مثبت است و پیش‌فرض آن "86400" می‌باشد. این مقدار حداکثر تعداد ثانیه‌هایی است که یک اتصال باید باز نگه داشته شود. برخی از سرورهای NNTP با باز ماندن طولانی‌مدت اتصالات عملکرد خوبی ندارند. dynamic-method این کلید نیازمند یک عدد صحیح بین 0 تا 3 است. مقدار پیش‌فرض آن "3" می‌باشد. این کلید چگونگی برقراری اتصالات را تا سقف مشخص‌شده توسط max- connections کنترل می‌کند. به‌طور کلی (و به‌ویژه با dynamic-method برابر با 0)، یک اتصال جدید زمانی باز می‌شود که تعداد فعلی اتصالات کمتر از max-connections باشد و مقاله‌ای برای ارسال وجود داشته باشد در حالی که هیچ اتصال فعلی بیکار نباشد. بدون محدودیت بیشتر (یعنی استفاده از dynamic-method برابر با 0)، در عمل این بدان معناست که اتصالات به اندازه max-connections در حین ارسال مقالات برقرار می‌شوند. استفاده از سایر تنظیمات dynamic-method محدودیت بیشتری بر تعداد اتصالات بازشده زیر سقف تعیین‌شده توسط max-connections اعمال می‌کند. این محدودیت بسته به مقدار dynamic-method به روش‌های متفاوتی محاسبه می‌شود. کاربران باید توجه داشته باشند که افزودن اتصالات بیشتر همیشه سودمند نیست -- صرفاً به این دلیل که باز کردن دو برابری اتصالات منجر به افزایش درصد کمی از مقالات پذیرفته‌شده توسط همتای راه دور می‌شود، ممکن است هزینه منابع قابل‌توجهی چه به صورت محلی و چه در سایت راه دور داشته باشد، در حالی که سایت راه دور ممکن است به خوبی مقالات اضافی ارسال‌شده را از همتای دیگری کسری از ثانیه بعد دریافت کند. باز کردن تعداد زیادی اتصال، رفتاری ضد اجتماعی تلقی می‌شود. معانی تنظیمات مختلف عبارتند از: 0 (no method) افزایش اتصالات تا سقف max-connections بدون محدودیت است. 1 (maximize articles per second) اتصالات افزایش (تا سقف max-connections) و کاهش می‌یابند تا تعداد مقالات ارسالی در ثانیه به حداکثر برسد، در حالی که کمترین اتصالات ممکن برای این کار استفاده شود. 2 (set target queue length) اتصالات افزایش (تا سقف max-connections) و کاهش می‌یابند تا صف مقالاتی که باید ارسال شوند در محدوده تعیین‌شده توسط dynamic- backlog-low و dynamic-backlog-high باقی بماند، در حالی که از حداقل منابع ممکن استفاده شود. از آنجا که صف تمایل به پر شدن دارد اگر سایت نتواند همگام بماند، این روش تضمین می‌کند که حداکثر تعداد مقالات با استفاده از حداقل تعداد اتصالات به همتا ارائه شود. 3 (combination) این روش از ترکیبی از روش‌های ۱ و ۲ بالا استفاده می‌کند. برای سایت‌هایی که درصد زیادی از مقالات را می‌پذیرند، از روش ۲ استفاده می‌شود تا اطمینان حاصل شود که تا حد امکان فید کاملی به آن‌ها ارائه می‌شود. برای سایت‌هایی که درصد کمی از مقالات را می‌پذیرند، از روش ۱ استفاده می‌شود تا مصرف منابع راه دور به حداقل برسد. برای سایت‌های میانی، از یک ترکیب مناسب استفاده می‌شود. dynamic-backlog-low این کلید نیازمند یک مقدار اعشاری بین 0 تا 100 است. این مقدار نشان‌دهنده حد پایین (به درصد) برای صف میزبان است. اگر صف میزبان هنگام استفاده از dynamic-method ۲ یا ۳ به زیر این مقدار افت کند و ۲ یا تعداد بیشتری اتصال باز باشد، innfeed تلاش خواهد کرد تا اتصالات به میزبان را کاهش داده و قطع کند. یک فیلتر پاسخ ضربه نامحدود (IIR) روی این مقدار اعمال می‌شود تا از نوسان سریع اتصال جلوگیری شود (به dynamic-filter مراجعه کنید). مقدار پیش‌فرض "20.0" است. این مقدار باید کوچک‌تر از dynamic-backlog-high باشد. dynamic-backlog-high این کلید نیازمند یک مقدار اعشاری بین 0 تا 100 است. این مقدار نشان‌دهنده حد بالا (به درصد) برای صف میزبان است. اگر صف میزبان هنگام استفاده از dynamic-method ۲ یا ۳ از این مقدار فراتر رود و تعداد اتصالات باز به میزبان کمتر از max-connections باشد، innfeed تلاش خواهد کرد اتصالات بیشتری را به میزبان باز کند. یک فیلتر پاسخ ضربه نامحدود (IIR) روی این مقدار اعمال می‌شود تا از نوسان سریع اتصال جلوگیری کند (به dynamic-filter مراجعه کنید). مقدار پیش‌فرض "50.0" است. این مقدار باید بزرگ‌تر از dynamic-backlog-low باشد. dynamic-backlog-filter این کلید نیازمند یک مقدار اعشاری بین 0 تا 1 است. این مقدار ضریب فیلتر استفاده‌شده توسط فیلتر پاسخ ضربه نامحدود (IIR) را نشان می‌دهد که برای پیاده‌سازی dynamic-method ۲ و ۳ استفاده می‌شود. مقدار پیش‌فرض این فیلتر "0.7" است که ثابت زمانی معادل با مقالات 1/(1-0.7) را ارائه می‌دهد. مقادیر بالاتر منجر به پاسخ کندتر به تغییرات پر شدن صف می‌شوند و مقادیر پایین‌تر باعث پاسخ سریع‌تر خواهند شد. max-queue-size این کلید نیازمند یک عدد صحیح مثبت است. مقدار پیش‌فرض آن "20" می‌باشد. این کلید حداکثر تعداد مقالاتی را مشخص می‌کند که هنگام استفاده از ارسال جریانی به یک همتا در یک زمان پردازش می‌شوند. اعداد بزرگ‌تر به معنای مصرف حافظه بیشتر است زیرا مقالات معمولاً به حافظه کشیده می‌شوند (به توضیحات use-mmap مراجعه کنید). streaming این کلید نیازمند یک مقدار بولی است. مقدار پیش‌فرض آن true است. این کلید مشخص می‌کند که آیا از دستورات جریانی برای انتقال مقالات به همتاها استفاده شود یا خیر. no-check-high این کلید نیازمند یک عدد اعشاری در محدوده [0.0, 100.0] است. هنگام ارسال با دستورات جریانی، innfeed بهینه‌سازی‌ای به نام «حالت no-CHECK» را امتحان می‌کند. این کار شامل عدم پرسش از همتا مبنی بر اینکه آیا مقاله را می‌خواهد و ارسال مستقیم آن است. این بهینه‌سازی زمانی رخ می‌دهد که درصد مقالات پذیرفته‌شده توسط همتا از این عدد بیشتر شود. اگر این مقدار روی "100.0" تنظیم شود، حالت no-CHECK عملاً خاموش می‌شود زیرا درصد هرگز نمی‌تواند بالاتر از 100.0 برود. اگر این مقدار خیلی کوچک باشد، تعداد مقالاتی که همتا رد می‌کند افزایش می‌یابد (و پهنای باند شما هدر خواهد رفت). مقدار پیش‌فرض "95.0" معمولاً بسیار خوب عمل می‌کند. no-check-low این کلید نیازمند یک عدد اعشاری در محدوده [0.0, 100.0] است و باید کوچک‌تر از مقدار no-check-high باشد. هنگام اجرا در حالت no-CHECK طبق توضیحات بالا، اگر درصد مقالات پذیرفته‌شده توسط سرور راه دور به زیر این عدد سقوط کند، بهینه‌سازی no-CHECK غیرفعال می‌شود تا زمانی که این درصد دوباره بالاتر از مقدار no-check-high برود. اگر تفاوت کمی بین این مقدار و مقدار no-check-high وجود داشته باشد (کمتر از حدود 5.0)، ممکن است innfeed به طور مکرر وارد حالت no-CHECK شده و از آن خارج شود. اگر تفاوت خیلی زیاد باشد، خروج از حالت no-CHECK در زمان نیاز دشوارتر خواهد شد (و باعث هدر رفتن پهنای باند می‌شود). نگه داشتن این مقدار بین 5.0 تا 10.0 واحد کمتر از no-check-high معمولاً به خوبی پاسخ می‌دهد. مقدار پیش‌فرض "90.0" است. no-check-filter این یک مقدار اعشاری است که نشان‌دهنده ثابت زمانی بر حسب مقاله است که محاسبات CHECK/no-CHECK در طول آن انجام می‌شود. مقدار پیش‌فرض "50.0" است که یک فیلتر پاسخ ضربه نامحدود (IIR) با ثابت زمانی ۵۰ را پیاده‌سازی می‌کند. این تقریباً معادل تصمیم‌گیری در مورد وضعیت در طول ۵۰ مقاله قبلی است. عدد بالاتر منجر به پاسخ کندتر به تغییرات درصدهای پذیرش مقالات می‌شود؛ عدد پایین‌تر به پاسخ سریع‌تر می‌انجامد. port-number این کلید نیازمند یک عدد صحیح مثبت است. این کلید شماره پورت TCP/IP را برای استفاده هنگام اتصال به سیستم راه دور مشخص می‌کند. معمولاً از پورت شماره ۱۱۹ استفاده می‌شود که مقدار پیش‌فرض است. force-ipv4 این کلید نیازمند یک مقدار بولی است. به صورت پیش‌فرض روی false تنظیم شده است. تنظیم آن روی true مشابه تنظیم bindaddress6 روی "none" و حذف bindaddress از حالت "none" (در صورت تنظیم بودن) است. drop-deferred این کلید نیازمند یک مقدار بولی است. به صورت پیش‌فرض روی false تنظیم شده است. هنگامی که روی true تنظیم شود و یک همتا با کد 431 یا 436 (بعداً دوباره تلاش کنید) پاسخ دهد، innfeed صرفاً مقاله را رها می‌کند و تلاشی برای ارسال مجدد آن نمی‌کند. این مورد برای برخی از همتاها که مقالات را به مدت طولانی به تعویق می‌اندازند مفید است تا از تلاش مکرر innfeed برای ارائه چندباره همان مقاله جلوگیری شود. min-queue-connection این کلید نیازمند یک مقدار بولی است. به صورت پیش‌فرض روی false تنظیم شده است. وقتی روی true تنظیم شود، innfeed تلاش خواهد کرد از اتصالی با کمترین اندازه صف (یا اولین اتصال خالی) استفاده کند. اگر این کلید روی true تنظیم شده باشد، توصیه می‌شود که dynamic-method روی "0" تنظیم شود. این امر امکان انتشار مقاله با کمترین تأخیر را فراهم می‌سازد. no-backlog این کلید نیازمند یک مقدار بولی است. این کلید مشخص می‌کند که آیا اسپولینگ باید فعال باشد (false، پیش‌فرض) یا غیرفعال (true). توجه داشته باشید که وقتی no-backlog تنظیم شود، مقالاتی که به عنوان اسپول‌شده گزارش می‌شوند، در واقع به آرامی و بدون اعلام دور انداخته می‌شوند. backlog-limit این کلید نیازمند یک عدد صحیح غیرمنفی است. اگر این عدد "0" (پیش‌فرض) باشد، در زمانی که همتا قادر به هماهنگی با جریان مقالات نیست، فایل‌های بک‌لاگ اجازه دارند بدون محدودیت رشد کنند. اگر این عدد بزرگ‌تر از صفر باشد، اندازه‌ای (به بایت) را مشخص می‌کند که وقتی فایل بک‌لاگ به حد معینی رسید باید به آن اندازه کوتاه شود. این حد بستگی به این دارد که از backlog-factor یا backlog-limit-highwater استفاده شود. این پارامتر همچنین برای فایل اشکال‌زدایی زمانی که debug-shrinking روی true تنظیم شده اعمال می‌شود و همان اثری را روی این فایل دارد که روی فایل‌های بک‌لاگ می‌گذارد. backlog-factor این کلید نیازمند یک مقدار اعشاری است که باید بزرگ‌تر از 1.0 باشد. این کلید همراه با کلید همتای backlog-limit استفاده می‌شود. اگر backlog-limit مقداری بزرگ‌تر از صفر داشته باشد، زمانی که اندازه فایل بک‌لاگ از مقدار حاصل‌ضرب backlog-limit * backlog-factor بزرگ‌تر شود، فایل بک‌لاگ به اندازه backlog-limit کوتاه خواهد شد. به عنوان مثال، اگر backlog-limit دارای مقدار "1000000" و backlog- factor دارای مقدار "2.0" باشد، زمانی که حجم فایل بک‌لاگ به بیش از 2000000 بایت برسد، به 1000000 بایت کوتاه خواهد شد. قسمت ابتدایی فایل حذف می‌شود و این هرس کردن در مرز خطوط اتفاق می‌افتد؛ بنابراین ممکن است اندازه نهایی اندکی کمتر از این عدد باشد. اگر backlog- limit-highwater نیز تعریف شده باشد، backlog-factor اولویت خواهد داشت. مقدار پیش‌فرض backlog-factor برابر با "1.1" است. این پارامتر همچنین برای فایل اشکال‌زدایی در صورتی که debug-shrinking روی true تنظیم شده باشد اعمال می‌شود و همان اثر را روی این فایل دارد. backlog-limit-highwater این کلید نیازمند یک عدد صحیح مثبت است که باید بزرگ‌تر از مقدار backlog-limit باشد. مقدار پیش‌فرض "0" است. اگر اندازه فایل بک‌لاگ بزرگ‌تر از این مقدار (به بایت) شود، حجم فایل بک‌لاگ به اندازه backlog-limit کاهش می‌یابد. اگر هر دو مقدار backlog- factor و backlog-limit-highwater تعریف شده باشند، مقدار backlog- factor استفاده می‌شود. این پارامتر همچنین برای فایل اشکال‌زدایی زمانی که debug-shrinking روی true تنظیم شده است اعمال می‌شود و همان اثری را دارد که روی فایل‌های بک‌لاگ می‌گذارد. backlog-feed-first این کلید نیازمند یک مقدار بولی است. به صورت پیش‌فرض روی false تنظیم شده است. در صورت تنظیم روی true، فایل‌های بک‌لاگ قبل از فایل‌های جدید فید می‌شوند. این به منظور اجبار در تحویل به ترتیب است؛ بنابراین تنظیم این مقدار روی true زمانی که initial-connections یا max- connections بیشتر از ۱ است، نامتناقض و ناسازگار خواهد بود. bindaddress این کلید نیازمند یک مقدار رشته‌ای است. این کلید مشخص می‌کند که innfeed انتهای محلی اتصال خود را به کدام آدرس IPv4 خروجی متصل (bind) کند. این مقدار باید یک آدرس IPv4 در قالب نقطه-چهارگانه (nnn.nnn.nnn.nnn)، "any" یا "none" باشد. اگر تنظیم نشود یا روی "any" تنظیم شود، پیش‌فرض innfeed این است که به هسته سیستم‌عامل اجازه دهد این آدرس را انتخاب کند. اگر روی "none" تنظیم شود، innfeed از IPv4 برای اتصالات خروجی به همتاها در این دامنه استفاده نخواهد کرد (یعنی استفاده از IPv6 را اجباری می‌کند). در صورتی که در innfeed.conf تنظیم نشود، innfeed به صورت پیش‌فرض از مقدار sourceaddress در inn.conf (که به طور پیش‌فرض تنظیم‌نشده است) استفاده می‌کند. bindaddress6 این کلید نیازمند یک مقدار رشته‌ای است. عملکردی مشابه bindaddress دارد به جز اینکه برای اتصالات خروجی IPv6 استفاده می‌شود. این مقدار باید در قالب عددی IPv6 باشد (توجه داشته باشید که مقداری که حاوی دونقطه است باید در داخل نقل‌قول دوتایی قرار گیرد)، "any" یا "none". اگر روی "none" تنظیم شود، innfeed از IPv6 برای اتصالات خروجی به همتاها در این دامنه استفاده نخواهد کرد. اگر در innfeed.conf تنظیم نشده باشد، innfeed به طور پیش‌فرض از مقدار sourceaddress6 در inn.conf (که به طور پیش‌فرض تنظیم‌نشده است) استفاده می‌کند. username این کلید نیازمند یک مقدار رشته‌ای است. اگر مقدار تعریف شده باشد، innfeed تلاش می‌کند تا از طریق AUTHINFO USER احراز هویت کند و از این مقدار برای نام کاربری استفاده خواهد کرد. در صورت تعریف این کلید، password نیز باید تعریف شود. password این کلید نیازمند یک مقدار رشته‌ای است. این مقدار گذرواژه‌ای است که برای AUTHINFO PASS استفاده می‌شود. اگر این کلید تعریف شده باشد، username نیز باید تعریف شود. مقادیر همتا (PEER VALUES) همان‌طور که قبلاً توضیح داده شد، تعاریف همتا می‌توانند شامل بازتعریف هر یک از جفت‌های key:value توصیف‌شده در بخش پیش‌فرض‌های سراسری همتا در بالا باشند. یک جفت key:value وجود دارد که مختص تعریف همتا است. ip-name این کلید نیازمند یک مقدار کلمه‌ای است. این کلمه یا یکی از نام‌های دامنه کاملاً واجد شرایط (FQDN) میزبان است، یا آدرس IP نقطه-چهارگانه همتا برای IPv4، یا آدرس IP با جداکننده دونقطه برای IPv6. اگر این مقدار مشخص نشود، نام همتا در بلوک دربرگیرنده peer به عنوان ip-name آن نیز در نظر گرفته می‌شود. بارگذاری مجدد (RELOADING) اگر innfeed یک سیگنال SIGHUP دریافت کند، فایل پیکربندی را مجدداً خواهد خواند. تمام مقادیر در دامنه سراسری به جز backlog-directory قابل تغییر هستند (اگرچه توجه داشته باشید که تغییرات در bindaddress و bindaddress6 تنها بر اتصالات جدید تأثیر می‌گذارد). هر همتای جدید اضافه می‌شود و اتصالات هر همتای حذف‌شده بسته می‌شود. فایل گزارش نیز مجدداً باز می‌شود. مثال (EXAMPLE) برای یک مثال جامع، به نمونه فایل innfeed.conf توزیع‌شده همراه با INN که به عنوان نقطه شروع نصب می‌شود مراجعه کنید. در اینجا نمونه‌هایی از نحوه قالب‌بندی مقادیر آورده شده است: eg-string: "New\tconfig\tfile\n" eg-long-string: "A long string that goes over multiple lines. The newline is kept in the string except when quoted with a backslash \ as here." eg-simple-string: A-no-quote-string eg-integer: 10 eg-boolean: true eg-char: 'a' eg-ctrl-g: '\007' تاریخچه (HISTORY) نوشته‌شده توسط James Brister برای InterNetNews. تبدیل‌شده به POD توسط Julien Elie. نسخه‌های قبلی innfeed (تا 0.10.1) به طور جداگانه عرضه می‌شدند؛ innfeed اکنون بخشی از INN است و از همان شماره نسخه مشترک استفاده می‌کند. لطفاً توجه داشته باشید که ساختار innfeed.conf از نسخه 0.9.3 دستخوش تغییرات چشمگیری شده است. همچنین ببینید (SEE ALSO) inn.conf(5), innfeed(8), newsfeeds(5). INN 2.7.4 2024-05-19 INNFEED.CONF(5)