Esempio n. 1
0
/**
 * ulfius_init_request
 * Initialize a request structure by allocating inner elements
 * return U_OK on success
 */
int ulfius_init_request(struct _u_request * request) {
  if (request != NULL) {
    request->map_url = malloc(sizeof(struct _u_map));
    request->map_header = malloc(sizeof(struct _u_map));
    request->map_cookie = malloc(sizeof(struct _u_map));
    request->map_post_body = malloc(sizeof(struct _u_map));
    if (request->map_post_body == NULL || request->map_cookie == NULL || 
        request->map_url == NULL || request->map_header == NULL) {
      y_log_message(Y_LOG_LEVEL_ERROR, "Ulfius - Error allocating memory for request->map*");
      ulfius_clean_request(request);
      return U_ERROR_MEMORY;
    }
    u_map_init(request->map_url);
    u_map_init(request->map_header);
    u_map_init(request->map_cookie);
    u_map_init(request->map_post_body);
    request->http_verb = NULL;
    request->http_url = NULL;
    request->client_address = NULL;
    request->json_body = NULL;
    request->json_has_error = 0;
    request->binary_body = NULL;
    request->binary_body_length = 0;
    return U_OK;
  } else {
    return U_ERROR_PARAMS;
  }
}
Esempio n. 2
0
/**
 * ulfius_clean_request_full
 * clean the specified request and all its elements
 * return U_OK on success
 */
int ulfius_clean_request_full(struct _u_request * request) {
  if (ulfius_clean_request(request) == U_OK) {
    free(request);
    return U_OK;
  } else {
    return U_ERROR_PARAMS;
  }
}
Esempio n. 3
0
int main (int argc, char **argv) {
  
  struct _u_response response;
  int res;
  struct _u_request req_list[6];
  
  y_init_logs("auth_client", Y_LOG_MODE_CONSOLE, Y_LOG_LEVEL_DEBUG, NULL, "logs start");
  
  ulfius_init_request(&req_list[0]);
  req_list[0].http_verb = strdup("GET");
  req_list[0].http_url = strdup(SERVER_URL);
  
  ulfius_init_request(&req_list[1]);
  req_list[1].http_verb = strdup("GET");
  req_list[1].http_url = strdup(SERVER_URL);
  req_list[1].auth_basic_user = strdup("test");
  req_list[1].auth_basic_password = strdup("testpassword");
  
  ulfius_init_request(&req_list[2]);
  req_list[2].http_verb = strdup("GET");
  req_list[2].http_url = strdup(SERVER_URL);
  req_list[2].auth_basic_user = strdup("test");
  req_list[2].auth_basic_password = strdup("wrongpassword");
  
  ulfius_init_request(&req_list[3]);
  req_list[3].http_verb = strdup("GET");
  req_list[3].http_url = strdup(SERVER_URL "/404");

  ulfius_init_request(&req_list[4]);
  req_list[4].http_verb = strdup("GET");
  req_list[4].http_url = strdup(SERVER_URL_DEFAULT);
  req_list[4].auth_basic_user = strdup("test");
  req_list[4].auth_basic_password = strdup("testpassword");
  
  ulfius_init_request(&req_list[5]);
  req_list[5].http_verb = strdup("GET");
  req_list[5].http_url = strdup(SERVER_URL_DEFAULT);
  req_list[5].auth_basic_user = strdup("test");
  req_list[5].auth_basic_password = strdup("wrongpassword");
    
  printf("Press <enter> to run auth tests no authentication\n");
  getchar();
  ulfius_init_response(&response);
  res = ulfius_send_http_request(&req_list[0], &response);
  if (res == U_OK) {
    print_response(&response);
  } else {
    printf("Error in http request: %d\n", res);
  }
  ulfius_clean_response(&response);
  
  printf("Press <enter> to run auth tests success authentication\n");
  getchar();
  ulfius_init_response(&response);
  res = ulfius_send_http_request(&req_list[1], &response);
  if (res == U_OK) {
    print_response(&response);
  } else {
    printf("Error in http request: %d\n", res);
  }
  ulfius_clean_response(&response);
  
  printf("Press <enter> to run auth tests error authentication\n");
  getchar();
  ulfius_init_response(&response);
  res = ulfius_send_http_request(&req_list[2], &response);
  if (res == U_OK) {
    print_response(&response);
  } else {
    printf("Error in http request: %d\n", res);
  }
  ulfius_clean_response(&response);
  
  printf("Press <enter> to run auth tests 404\n");
  getchar();
  ulfius_init_response(&response);
  res = ulfius_send_http_request(&req_list[3], &response);
  if (res == U_OK) {
    print_response(&response);
  } else {
    printf("Error in http request: %d\n", res);
  }
  ulfius_clean_response(&response);

  printf("Press <enter> to run default auth tests success authentication\n");
  getchar();
  ulfius_init_response(&response);
  res = ulfius_send_http_request(&req_list[4], &response);
  if (res == U_OK) {
    print_response(&response);
  } else {
    printf("Error in http request: %d\n", res);
  }
  ulfius_clean_response(&response);
  
  printf("Press <enter> to run default auth tests error authentication\n");
  getchar();
  ulfius_init_response(&response);
  res = ulfius_send_http_request(&req_list[5], &response);
  if (res == U_OK) {
    print_response(&response);
  } else {
    printf("Error in http request: %d\n", res);
  }
  ulfius_clean_response(&response);
    
  // Wait for the user to press <enter> on the console to quit the application
  printf("Press <enter> to quit test\n");
  getchar();
  
  ulfius_clean_request(&req_list[0]);
  ulfius_clean_request(&req_list[1]);
  ulfius_clean_request(&req_list[2]);
  ulfius_clean_request(&req_list[3]);
  ulfius_clean_request(&req_list[4]);
  ulfius_clean_request(&req_list[5]);
  y_close_logs();
  return 0;
}