Advertisement
Fedcomp

Untitled

Nov 27th, 2014
161
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <amxmodx>
  2. #include <amxmisc>
  3. #include <sockets_hz>
  4.  
  5. #define DEBUG
  6.  
  7. #pragma tabsize 0
  8.  
  9. #define PREFIX "[WAMod]"
  10. #define WAMOD_FILESIZE 4000
  11.  
  12. new g_ListeningSocket // Наш шпион сокет.
  13.  
  14. new HTML_PATH[255]  // Путь до файла
  15.  
  16. public plugin_init() {
  17.         register_plugin("WAMod", "0.1-indev", "Fedcomp")
  18.        
  19.         // Записываем путь к шаблону
  20.         get_configsdir(HTML_PATH, charsmax(HTML_PATH))
  21.         format(HTML_PATH, charsmax(HTML_PATH), "%s/wamod/wamod.html", HTML_PATH)
  22.        
  23.         init_my_socket()
  24. }
  25.  
  26. public plugin_end ()
  27. {
  28.         socket_close(g_ListeningSocket)
  29. }
  30.  
  31. // ======== UTILS ============ //
  32.  
  33. // Получаем порт
  34. get_port(){
  35.     return get_cvar_num("port")
  36. }
  37.  
  38. // ======= </UTILS> ========== //
  39.  
  40. // Создаем сокет на прослушку. Отсылаем телефонные переговоры в США
  41. init_my_socket() {
  42.     new error //you're the error
  43.     g_ListeningSocket = socket_listen("0.0.0.0", get_port(),SOCKET_TCP,error)
  44.     socket_unblock(g_ListeningSocket)
  45.     server_print("%s LISTENNING ANY IP ON PORT %d", PREFIX, get_port())
  46.    
  47.     // Делаем таймер на прослушку телефонных переговоров. Т.е таймер который раз в заданное время будет проверять на новые соединения
  48.     set_task(0.1,"incoming_connection",0,"",0,"b")
  49. }
  50.  
  51. send_formatted(connection){
  52.     // Если файла с шаблоном нет то плагин отказывается работать
  53.     if (!file_exists(HTML_PATH))
  54.         set_fail_state("wamod.html is not found!!")
  55.    
  56.     // Открываем шаблон на чтение
  57.     new i_filehandle = fopen(HTML_PATH,"rb")
  58.     new szBuffer[2048]
  59.    
  60.     while(!feof(i_filehandle))
  61.     {
  62.         fgets(i_filehandle, szBuffer, charsmax(szBuffer));
  63.         trim(szBuffer);
  64.        
  65.         // Если нет подставляемых значений {{HOSTNAME}} и проч
  66.         if(contain(szBuffer, "{{") == -1){
  67.             server_print("SENDIE")
  68.             socket_send(connection, szBuffer, strlen(szBuffer))
  69.         }
  70.     }
  71.    
  72.     fclose(i_filehandle)
  73. }
  74.  
  75. public incoming_connection() {
  76.     new connection;
  77.  
  78.     if((connection = socket_accept(g_ListeningSocket)) > 0)
  79.     {
  80.        
  81.         #if defined DEBUG
  82.         server_print("New Connection")
  83.         #endif
  84.        
  85.         send_formatted(connection)
  86.         //socket_send(connection, html_reply, strlen(html_reply))
  87.         socket_close(connection)
  88.     }
  89.  
  90. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement