diff --git a/src/server/distrend.c b/src/server/distrend.c --- a/src/server/distrend.c +++ b/src/server/distrend.c @@ -83,7 +83,7 @@ struct general_info int distrend_do(); int distrend_do_config(int argc, char *argv[], struct distrend_config **config); int distrend_config_free(struct distrend_config *config); -int distrend_handle_request(struct distren_request *req, void *reqdata, struct general_info *geninfo); +int distrend_handle_request(struct distrend_client *client, struct distren_request *req, void *reqdata, struct general_info *geninfo); /* **************XML Functions**************** */ void update_general_info(struct general_info *geninfo); @@ -207,9 +207,26 @@ int main(int argc, char *argv[]) /* ********************** Functions ************************* */ -int distrend_handle_request(struct distren_request *req, void *reqdata, struct general_info *geninfo) +int distrend_handle_request(struct distrend_client *client, struct distren_request *req, void *reqdata, struct general_info *geninfo) { - fprintf(stderr, "I can haz data %d bytes long\n", req->len); + size_t counter; + + /* for response requests... if that makes any less sense ;-) */ + struct distren_request *newreq; + + fprintf(stderr, "I can haz data %d bytes long:", req->len); + for(counter = 0; counter < req->len; counter ++) + fputc(((char *)reqdata)[counter], stderr); + fputc('\n', stderr); + + switch(req->type) + { + case DISTREN_REQUEST_VERSION: + distren_request_new(&newreq, strlen(VERSION), DISTREN_REQUEST_VERSION); + distrend_client_write_request(client, newreq, VERSION); + distren_request_free(newreq); + break; + } return 0; }