Exemple #1
0
int srv_handle_req(srv_t *srv) {
  base_req_t *req = (base_req_t *)srv->req;

  if(!req_is_valid(req))
    return (srv->fn_rv = RRW_RV_BAD_REQ);

  switch(req->fn) {
  case RRW_FN_STATUS:
    srv->fn_rv = srv_handle_status_req(srv);
    break;

  case RRW_FN_MEAS_CTL:
    srv->fn_rv = srv_handle_meas_ctl_req(srv);    
    break;

  case RRW_FN_TEST:
    srv->fn_rv = srv_handle_test_req(srv);
    break;

  case RRW_FN_DATA:    
    srv->fn_rv = srv_handle_data_req(srv);
    break;

  default:
    srv->fn_rv = RRW_RV_BAD_REQ;
    break;
  }
    
  return srv->fn_rv;
}
Exemple #2
0
/**Handle request in dependence of its type*/
int srv_handle_req(srv_t *srv) {
  base_req_t *req = (base_req_t *)srv->req;

  //if request has no validity mark stop further processing
  if(!req_is_valid(req)) {
    #ifdef DBG_SRV
    logprintf("SERVER: invalid request!\n");
    #endif // DBG_SRV
    return (srv->fn_rv = RRW_RV_BAD_REQ);
  }
  //call appropriate handler and set request return value (srv->fn_rv)
  switch(req->fn) {
  case RRW_FN_STATUS:
    #ifdef DBG_SRV
    logprintf("SERVER: %d get status!\n",((base_req_t *)srv->req)->no);
    #endif
    srv->fn_rv = srv_handle_status_req(srv);
    break;

  case RRW_FN_MEAS_CTL:
    #ifdef DBG_SRV
    logprintf("SERVER: %d measurement control!\n",((base_req_t *)srv->req)->no);
    #endif
    srv->fn_rv = srv_handle_meas_ctl_req(srv);
    break;

  case RRW_FN_DATA_ALT:
    #ifdef DBG_SRV
    if(req->fn == RRW_FN_DATA)
      logprintf("SERVER: %d get data!\n",((base_req_t *)srv->req)->no);
    if(req->fn == RRW_FN_DATA_ALT)
      logprintf("SERVER: %d get data alt!\n",((base_req_t *)srv->req)->no);
    #endif
    srv->fn_rv = srv_handle_data_req(srv);
    break;
  case RRW_FN_SET_TH:
    #ifdef DBG_SRV
    logprintf("SERVER: %d set threshold!\n",((base_req_t *)srv->req)->no);
    #endif
    srv->fn_rv = srv_handle_setth_req(srv);
    break;
  case RRW_FN_GET_TH:
    #ifdef DBG_SRV
    logprintf("SERVER: %d get threshold!\n",((base_req_t *)srv->req)->no);
    #endif
    srv->fn_rv = srv_handle_getth_req(srv);
    break;
  default:
    #ifdef DBG_SRV
    logprintf("SERVER: %d incorrect function code!\n",((base_req_t *)srv->req)->no);
    #endif
    //if request contains incorrect function code process it as bad request
    srv->fn_rv = RRW_RV_BAD_REQ;
    break;
  }

  return srv->fn_rv;
}