PoE :: Component :: Server :: NNTP

Een POE-component die NNTP-serverfunctionaliteit biedt
Download nu

PoE :: Component :: Server :: NNTP Rangschikking & Samenvatting

Advertentie

  • Rating:
  • Vergunning:
  • Perl Artistic License
  • Prijs:
  • FREE
  • Naam uitgever:
  • Chris Williams
  • Uitgever website:
  • http://search.cpan.org/~bingos/

PoE :: Component :: Server :: NNTP Tags


PoE :: Component :: Server :: NNTP Beschrijving

Een POE-component die de NNTP-serverfunctionaliteit biedt POE :: COMPONENT :: SERVER :: NNTP is een PERL-module die een RFC 977 http://www.faqs.org/rfcs/rfc977.html NNTP-server implementeert. Het is de Component Component voor PoE :: Component :: Client :: NNTP die implementeert NNTP-clientfunctionaliteit. U spawn een NNTP-servercomponent, maak uw PoE-sessies aan en registreer vervolgens uw sessie om evenementen te ontvangen. Wanneer klanten een geldige NNTP-protocolopdrachten verbinden, loskoppelen of verzenden, ontvangt u een evenement en een unieke client-ID. U vermijdt en verwerkt en verwerkt de opgegeven opdrachten en verzendt toepasselijke NNTP-responsen. Deze component implementeert de nieuwsdatabase niet en is als zodanig niet alleen een complete NNTP-daemon-implementatie. Gebruik PoE QW (Component :: Server :: NNTP); mijn% groepen; terwijl () {chomp; Druk op @ {$ groepen {'perl.cpan.testers'} -> {''}}, $ _; } Mijn $ NNTPD = POE :: Component :: Server :: NNTP-> spawn (alias => 'nntpd', posting => 0, poort => 10119,); POE :: Session> create (package_states => ], opties => {trace => 0}); $ poe_kernel-> run (); afslag 0; sub _start {mijn ($ kernel, $ heap) = @_ ; $ heap -> {clients} = {}; $ kernel-> post ('nntpd', 'registreer', 'allemaal'); opbrengst; } sub nntpd_connection {My ($ kernel, $ heap, $ client_id) = @_ ; $ heap -> {clients} -> {$ client_id} = {}; opbrengst; } sub nntpd_disconnected {mijn ($ kernel, $ heap, $ client_id) = @_ ; Verwijder $ heap -> {clients} -> {$ client_id}; opbrengst; } Sub NNTPD_CMD_SLAVE {mijn ($ kernel, $ afzender, $ client_id) = @_ ; $ kernel-> post ($ afzender, 'send_to_client', $ client_id, '202 slaafstatus genoteerd'); opbrengst; } sub nntpd_cmd_post {mijn ($ kernel, $ afzender, $ client_id) = @_ ; $ kernel-> post ($ afzender, 'send_to_client', $ client_id, '440 posting niet toegestaan'); opbrengst; } sub nntpd_cmd_ihave {mijn ($ kernel, $ afzender, $ client_id) = @_ ; $ kernel-> post ($ afzender, 'send_to_client', $ client_id, '435 artikel niet gezocht'); opbrengst; } sub nntpd_cmd_newnews {mijn ($ kernel, $ afzender, $ client_id) = @_ ; $ kernel-> post ($ afzender, 'send_to_client', $ client_id, '230 lijst van nieuwe artikelen volgt'); $ kernel-> post ($ afzender, 'send_to_client', $ client_id, '.'); opbrengst; } sub nntpd_cmd_newgroups {mijn ($ kernel, $ afzender, $ client_id) = @_ ; $ kernel-> post ($ afzender, 'send_to_client', $ client_id, '231 lijst met nieuwe nieuwsgroepen volgt'); $ kernel-> post ($ afzender, 'send_to_client', $ client_id, '.'); opbrengst; } sub nntpd_cmd_list {My ($ kernel, $ afzender, $ client_id) = @_ ; $ kernel-> post ($ afzender, 'send_to_client', $ client_id, '215 lijst met nieuwsgroepen volgt'); Foreach My $ Group (Sleutels% groepen) {My $ Reply = Join '', $ Group, Scalar Keys% {$ groups {$ fractie}}, 1, 'n'; $ kernel-> post ($ afzender, 'send_to_client', $ client_id, $ antwoord); } $ kernel-> post ($ afzender, 'send_to_client', $ client_id, '.'); opbrengst; } sub nntpd_cmd_group {mijn ($ kernel, $ afzender, $ client_id, $ groep) = @_ ; Tenzij ($ Group of bestaat $ Groups {lc $ groep}) {$ kernel-> post ($ afzender, 'send_to_client', $ client_id '411 geen nieuwsgroep'); opbrengst; } $ Group = LC $ GROUP; $ kernel-> post ($ afzender, 'send_to_client', $ client_id, "21111 1 $ groep geselecteerd"); $ _ -> {clients} -> {$ client_id} = {groep => $ groep}; opbrengst; } sub nntpd_cmd_Article {My ($ kernel, $ afzender, $ client_id, $ artikel) = @_ ; mijn $ groep = 'perl.cpan.testers'; if (! $ -artikel en! gedefinieerd $ _ -> {clients} -> {$ client_id} -> {groep}) {$ kernel-> post ($ afzender, 'send_to_client', $ client_id, '412 nee nieuwsgroep geselecteerd '); opbrengst; } $ artikel = 1 tenzij $ artikel; if ($ artikel! ~ / ^ $ / en $ artikel NE '1') {$ kernel-> post ($ afzender, 'send_to_client', $ client_id, '423 nee zo'n artikelnummer'); opbrengst; } if ($ Article = ~ / ^ $ / en! gedefinieerde $ groepen {$ groep} -> {$ artikel}) {$ kernel-> post ($ afzender, 'send_to_client', $ client_id, '430 Geen enkel artikel gevonden '); opbrengst; } Foreach My $ MSG_ID (KEYS% {$ groepen {$ groep}}) {$ kernel-> post ($ afzender, 'send_to_client', $ client_id, "2201 $ MSG_ID Artikel opgehaald - hoofd en lichaam volgen"); $ kernel-> post ($ afzender, 'send_to_client', $ client_id, $ _) voor @ {$ groepen {$ groep} -> {$ msg_id}}; $ kernel-> post ($ afzender, 'send_to_client', $ client_id, '.'); } opbrengst; } Vereisten: · Perl


PoE :: Component :: Server :: NNTP Gerelateerde software