| 111 | } |
| 112 | |
| 113 | static void start_server_plugin(struct dp dpi_attr) |
| 114 | { |
| 115 | if (dup2(dpi_attr.sock_fd, STDIN_FILENO) == -1) { |
| 116 | ERRMSG("start_plugin", "dup2", errno); |
| 117 | MSG_ERR("ERROR in child proc for %s\n", dpi_attr.path); |
| 118 | exit(1); |
| 119 | } |
| 120 | if (dClose(dpi_attr.sock_fd) == -1) { |
| 121 | ERRMSG("start_plugin", "close", errno); |
| 122 | MSG_ERR("ERROR in child proc for %s\n", dpi_attr.path); |
| 123 | exit(1); |
| 124 | } |
| 125 | if (execl(dpi_attr.path, dpi_attr.path, (char*)NULL) == -1) { |
| 126 | ERRMSG("start_plugin", "execl", errno); |
| 127 | MSG_ERR("ERROR in child proc for %s\n", dpi_attr.path); |
| 128 | exit(1); |
| 129 | } |
| 130 | } |
| 131 | |
| 132 | /*! |
| 133 | * Read service request from sock |