Poe :: Component :: Server :: NNTP

Um componente PoE que fornece funcionalidade do servidor NNTP
Baixe Agora

Poe :: Component :: Server :: NNTP Classificação e resumo

Propaganda

  • Rating:
  • Licença:
  • Perl Artistic License
  • Preço:
  • FREE
  • Nome do editor:
  • Chris Williams
  • Site do editor:
  • http://search.cpan.org/~bingos/

Poe :: Component :: Server :: NNTP Tag


Poe :: Component :: Server :: NNTP Descrição

Um componente PoE que fornece funcionalidade do servidor NNTP Poe :: Component :: Server :: NNTP é um módulo Perl que implementa um servidor NNTP http://www.faqs.org/rfcs/rfc977.html. É o componente Componente :: Componente :: Cliente :: NNTP que implementa a funcionalidade do cliente NNTP.You desova um componente do servidor NNTP, crie suas sessões Poe, registre sua sessão para receber eventos. Sempre que os clientes se conectem, desconecte ou envie comandos de protocolo NNTP válidos, você receberá um evento e um ID de cliente exclusivo. Você analisa e processa os comandos dados e enviados de volta aplicáveis respostas NNTP.Este componente não implementa o banco de dados de notícias e, como tal, não é por si só, uma implementação completa do daemon NNTP.Synopsis usa rigorosos; Use PoE QW (Component :: Server :: NNTP); meus% de grupos; enquanto () {chomp; Push @ {$ Grupos {'perl.cpan.testers'} -> {'}}, $ _; } Meu $ NNTPD = PoE :: Servidor :: Servidor :: NNTTP-> Spawn (Alias => 'NNTPD', Posting => 0, Port => 10119,); POE :: Session-> create (package_states => ,], opções => {trace => 0},); $ poe_kernel-> correr (); saída 0; sub _start {my ($ kernel, $ heap) = @_ ; $ heap -> {Clients} = {}; $ Kernel-> Post ('NNTPD', 'Registrar', 'ALL'); Retorna; } sub nntpd_connection {my ($ kernel, $ heap, $ client_id) = @_ ; $ heap -> {Client} -> {$ client_id} = {}; Retorna; } sub nntpd_disconnected {my ($ kernel, $ heap, $ client_id) = @_ ; Excluir $ heap -> {Client} -> {$ client_id}; Retorna; } sub nntpd_cmd_slave {my ($ kernel, $ remetente, $ client_id) = @_ ; $ kernel-> post ($ remetente, 'send_to_client', $ client_id, '202 status escravo anotado'); Retorna; } sub nntpd_cmd_post {my ($ kernel, $ remetente, $ client_id) = @_ ; $ kernel-> post ($ remetente, 'send_to_client', $ client_id, '440 postagem não permitida'); Retorna; } sub nntpd_cmd_ihave {my ($ kernel, $ remetente, $ client_id) = @_ ; $ kernel-> post ($ remetente, 'send_to_client', $ client_id, '435 artigo não querido'); Retorna; } sub nntpd_cmd_newnews {my ($ kernel, $ remetente, $ client_id) = @_ ; $ kernel-> post ($ remetente, 'send_to_client', $ client_id, '230 Lista de novos artigos segue'); $ kernel-> post ($ remetente, 'send_to_client', $ client_id, ''. '); Retorna; } sub nntpd_cmd_newgroups {my ($ kernel, $ remetente, $ client_id) = @_ ; $ kernel-> post ($ remetente, 'send_to_client', $ client_id, '231 lista de novos grupos de notícias segue'); $ kernel-> post ($ remetente, 'send_to_client', $ client_id, ''. '); Retorna; } sub nntpd_cmd_list {my ($ kernel, $ remetente, $ client_id) = @_ ; $ kernel-> post ($ remetente, 'send_to_client', $ client_id, '215 Lista de grupos de notícias segue'); foreach my $ Group (Keys% Grupos) {My $ Responder = Participe '', $ Group, teclas escalares% {$ Grupos {$ Group}}, 1, 'N'; $ kernel-> post ($ remetente, 'send_to_client', $ client_id, $ Resposta); } $ Kernel-> Post ($ remetente, 'send_to_client', $ client_id, ''. '); Retorna; } sub nntpd_cmd_group {My ($ kernel, $ remetente, $ client_id, $ Group) = @_ ; A menos que ($ grupo ou exista $ grupos {LC $ Group}) {$ Kernel-> Post ($ remetente, 'send_to_client', $ client_id, '411 Nenhum grupo de notícias'); Retorna; } $ Group = LC $ Group; $ Kernel-> Post ($ remetente, 'send_to_client', $ client_id, "2111 11 $ Group selecionado"); $ _ -> {Client} -> {$ client_id} = {grupo => $ Group}; Retorna; } sub nntpd_cmd_article {my ($ kernel, $ remetente, $ client_id, $ artigo) = @_ ; meu grupo $ = 'perl.cpan.testers'; Se (artigo de $ e! Definido $ _ -> {Client} -> {$ client_id} -> {grupo}) {$ kernel-> post ($ remetente, 'send_to_client', $ client_id, '412 não Grupo de notícias selecionado '); Retorna; } $ ARTIGO = 1 A menos que $ artigo; Se ($ ARTIGO! ~ / ^ $ / E $ Article Ne '1') {$ Kernel-> Post ($ remetente, 'send_to_client', $ client_id, '423 Nenhum número de artigo' '); Retorna; } Se ($ Article = ~ / ^ $ / e! Definido $ grupos {$ Group} -> {$ Article}) {$ Kernel-> Post ($ remetente, 'send_to_client', $ client_id, '430 nenhum tal artigo encontrado '); Retorna; } foreach meu $ msg_id (keys% {$ grupos {$ group}}) {$ kernel-> post ($ remetente, 'send_to_client', $ client_id, "2201 $ msg_id artigo recuperado - cabeça e corpo seguido"); $ Kernel-> Post ($ remetente, 'send_to_client', $ client_id, $ _) para @ {$ grupos {$ Group} -> {$ msg_id}}; $ kernel-> post ($ remetente, 'send_to_client', $ client_id, ''. '); } Retorna; } Requisitos: · Perl.


Poe :: Component :: Server :: NNTP Software Relacionado