| |
| Protocol plugin example for SDK 3.0 |
| |
| List of files |
| ------------- |
| |
| - Protocol.c : Accept client requests and generate transaction state machines for each client request. |
| - TxnSM.c : Implementation of handling a transaction. |
| |
| - Protocol.h : Header file. |
| - TxnSM.h : Header file. |
| |
| - test/ProtocolServerTest.java : Synthetic server. |
| - test/ProtocolClientTest.java : Synthetic client. |
| - test/file_gen.sh : shell script to generate file list for testing. |
| |
| Protocol |
| -------- |
| |
| - Request : [server_name][space][file_name][space][\r\n] |
| - Response : File (if file is found) |
| Nothing (if file is not found) |
| |
| How to run proxy |
| ---------------- |
| |
| - Compile protocol.so and copy it under plugins directory. |
| - In plugin.config: |
| protocol.so <accept_port> <server_port> |
| accept_port is the port to listen to client requests. |
| server_port is the port to connect to origin server. |
| - Debug tag: -T"protocol". |
| |
| How to run synthetic server |
| --------------------------- |
| |
| - Compile ProtocolServerTest.java and get ProtocolServerTest.class. |
| - Run: java ProtocolServerTest <server_port> |
| server_port is the port synthetic server listens to requests. |
| server_port should match "server_port" argument passed to the plugin. |
| |
| How to run synthetic client |
| --------------------------- |
| - Compile ProtocolClientTest.java and get ProtocolClientTest.class. |
| - Run: java ProtocolClientTest -options. |
| - Options include: |
| "-P" : proxy name (e.g. npdev.example.com) |
| "-p" : proxy port (match "accept_port" argument passed to the plugin) |
| "-s" : origin server name |
| "-f" : file list name (generated by file_gen.sh) |
| "-n" : number of pipelined client requests |
| "-l" : how many times of looping |