diff options
-rw-r--r-- | protocols/FacebookRM/src/http.h | 242 |
1 files changed, 138 insertions, 104 deletions
diff --git a/protocols/FacebookRM/src/http.h b/protocols/FacebookRM/src/http.h index 943ebb1a56..a17cea8b04 100644 --- a/protocols/FacebookRM/src/http.h +++ b/protocols/FacebookRM/src/http.h @@ -1,104 +1,138 @@ -/*
-
-Facebook plugin for Miranda Instant Messenger
-_____________________________________________
-
-Copyright � 2009-11 Michal Zelinka, 2011-15 Robert P�sel
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-*/
-
-#pragma once
-
-#define HTTP_PROTO_SECURE "https://"
-
-#define HTTP_CODE_CONTINUE 100
-#define HTTP_CODE_SWITCHING_PROTOCOLS 101
-#define HTTP_CODE_PROCESSING 102
-#define HTTP_CODE_OK 200
-#define HTTP_CODE_CREATED 201
-#define HTTP_CODE_ACCEPTED 202
-#define HTTP_CODE_NON_AUTHORITATIVE_INFORMATION 203
-#define HTTP_CODE_NO_CONTENT 204
-#define HTTP_CODE_RESET_CONTENT 205
-#define HTTP_CODE_PARTIAL_CONTENT 206
-#define HTTP_CODE_MULTI_STATUS 207
-#define HTTP_CODE_MULTIPLE_CHOICES 300
-#define HTTP_CODE_MOVED_PERMANENTLY 301
-#define HTTP_CODE_FOUND 302
-#define HTTP_CODE_SEE_OTHER 303
-#define HTTP_CODE_NOT_MODIFIED 304
-#define HTTP_CODE_USE_PROXY 305
-#define HTTP_CODE_SWITCH_PROXY 306
-#define HTTP_CODE_TEMPORARY_REDIRECT 307
-#define HTTP_CODE_BAD_REQUEST 400
-#define HTTP_CODE_UNAUTHORIZED 401
-#define HTTP_CODE_PAYMENT_REQUIRED 402
-#define HTTP_CODE_FORBIDDEN 403
-#define HTTP_CODE_NOT_FOUND 404
-#define HTTP_CODE_METHOD_NOT_ALLOWED 405
-#define HTTP_CODE_NOT_ACCEPTABLE 406
-#define HTTP_CODE_PROXY_AUTHENTICATION_REQUIRED 407
-#define HTTP_CODE_REQUEST_TIMEOUT 408
-#define HTTP_CODE_CONFLICT 409
-#define HTTP_CODE_GONE 410
-#define HTTP_CODE_LENGTH_REQUIRED 411
-#define HTTP_CODE_PRECONDITION_REQUIRED 412
-#define HTTP_CODE_REQUEST_ENTITY_TOO_LARGE 413
-#define HTTP_CODE_REQUEST_URI_TOO_LONG 414
-#define HTTP_CODE_UNSUPPORTED_MEDIA_TYPE 415
-#define HTTP_CODE_REQUESTED_RANGE_NOT_SATISFIABLE 416
-#define HTTP_CODE_EXPECTATION_FAILED 417
-#define HTTP_CODE_UNPROCESSABLE_ENTITY 422
-#define HTTP_CODE_LOCKED 423
-#define HTTP_CODE_FAILED_DEPENDENCY 424
-#define HTTP_CODE_UNORDERED_COLLECTION 425
-#define HTTP_CODE_UPGRADE_REQUIRED 426
-#define HTTP_CODE_RETRY_WITH 449
-#define HTTP_CODE_INTERNAL_SERVER_ERROR 500
-#define HTTP_CODE_NOT_IMPLEMENTED 501
-#define HTTP_CODE_BAD_GATEWAY 502
-#define HTTP_CODE_SERVICE_UNAVAILABLE 503
-#define HTTP_CODE_GATEWAY_TIMEOUT 504
-#define HTTP_CODE_HTTP_VERSION_NOT_SUPPORTED 505
-#define HTTP_CODE_VARIANT_ALSO_NEGOTIATES 506
-#define HTTP_CODE_INSUFFICIENT_STORAGE 507
-#define HTTP_CODE_BANDWIDTH_LIMIT_EXCEEDED 509
-#define HTTP_CODE_NOT_EXTENDED 510
-
-#define HTTP_CODE_FAKE_DISCONNECTED 0
-#define HTTP_CODE_FAKE_ERROR 1
-#define HTTP_CODE_FAKE_OFFLINE 2
-
-namespace http
-{
- struct response
- {
- response() : code(0), error_number(0) {}
-
- int code;
- std::map<std::string, std::string> headers;
- std::string data;
-
- // Facebook's error data
- unsigned int error_number;
- std::string error_title;
- std::string error_text;
-
- bool isValid() {
- return (code == HTTP_CODE_OK && error_number == 0);
- }
- };
-}
+/* + +Facebook plugin for Miranda Instant Messenger +_____________________________________________ + +Copyright � 2009-11 Michal Zelinka, 2011-15 Robert P�sel + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +#pragma once + +#define HTTP_PROTO_SECURE "https://" + +// 1xx Informational +#define HTTP_CODE_CONTINUE 100 +#define HTTP_CODE_SWITCHING_PROTOCOLS 101 +#define HTTP_CODE_PROCESSING 102 + +// 2xx Success +#define HTTP_CODE_OK 200 +#define HTTP_CODE_CREATED 201 +#define HTTP_CODE_ACCEPTED 202 +#define HTTP_CODE_NON_AUTHORITATIVE_INFORMATION 203 +#define HTTP_CODE_NO_CONTENT 204 +#define HTTP_CODE_RESET_CONTENT 205 +#define HTTP_CODE_PARTIAL_CONTENT 206 +#define HTTP_CODE_MULTI_STATUS 207 + +// 3xx Redirection +#define HTTP_CODE_MULTIPLE_CHOICES 300 +#define HTTP_CODE_MOVED_PERMANENTLY 301 +#define HTTP_CODE_FOUND 302 +#define HTTP_CODE_SEE_OTHER 303 +#define HTTP_CODE_NOT_MODIFIED 304 +#define HTTP_CODE_USE_PROXY 305 +#define HTTP_CODE_SWITCH_PROXY 306 +#define HTTP_CODE_TEMPORARY_REDIRECT 307 +#define HTTP_CODE_PERMANENT_REDIRECT 308 + +// 4xx Client Error +#define HTTP_CODE_BAD_REQUEST 400 +#define HTTP_CODE_UNAUTHORIZED 401 +#define HTTP_CODE_PAYMENT_REQUIRED 402 +#define HTTP_CODE_FORBIDDEN 403 +#define HTTP_CODE_NOT_FOUND 404 +#define HTTP_CODE_METHOD_NOT_ALLOWED 405 +#define HTTP_CODE_NOT_ACCEPTABLE 406 +#define HTTP_CODE_PROXY_AUTHENTICATION_REQUIRED 407 +#define HTTP_CODE_REQUEST_TIMEOUT 408 +#define HTTP_CODE_CONFLICT 409 +#define HTTP_CODE_GONE 410 +#define HTTP_CODE_LENGTH_REQUIRED 411 +#define HTTP_CODE_PRECONDITION_FAILED 412 +#define HTTP_CODE_REQUEST_ENTITY_TOO_LARGE 413 +#define HTTP_CODE_REQUEST_URI_TOO_LONG 414 +#define HTTP_CODE_UNSUPPORTED_MEDIA_TYPE 415 +#define HTTP_CODE_REQUESTED_RANGE_NOT_SATISFIABLE 416 +#define HTTP_CODE_EXPECTATION_FAILED 417 +#define HTTP_CODE_IM_A_TEAPOT 418 +#define HTTP_CODE_AUTHENTICATION_TIMEOUT 419 +#define HTTP_CODE_METHOD_FAILURE 420 +#define HTTP_CODE_ENHANCE_YOUR_CALM 420 +#define HTTP_CODE_MISDIRECTED_REQUEST 421 +#define HTTP_CODE_UNPROCESSABLE_ENTITY 422 +#define HTTP_CODE_LOCKED 423 +#define HTTP_CODE_FAILED_DEPENDENCY 424 +#define HTTP_CODE_UNORDERED_COLLECTION 425 +#define HTTP_CODE_UPGRADE_REQUIRED 426 +#define HTTP_CODE_PRECONDITION_REQUIRED 428 +#define HTTP_CODE_TOO_MANY_REQUESTS 429 +#define HTTP_CODE_REQUEST_HEADER_FIELDS_TOO_LARGE 431 +#define HTTP_CODE_LOGIN_TIMEOUT 440 +#define HTTP_CODE_NO_RESPONSE 444 +#define HTTP_CODE_RETRY_WITH 449 +#define HTTP_CODE_BLOCKED_BY_WINDOWS_PARENTAL_CONTROL 450 +#define HTTP_CODE_UNAVAILABLE_FOR_LEGAL_REASONS 451 +#define HTTP_CODE_REDIRECT 451 +#define HTTP_CODE_REQUEST_HEADER_TOO_LARGE 494 +#define HTTP_CODE_CERT_ERROR 495 +#define HTTP_CODE_NO_CERT 496 +#define HTTP_CODE_HTTP_TO_HTTPS 497 +#define HTTP_CODE_TOKEN_EXPIRED_INVALID 498 +#define HTTP_CODE_CLIENT_CLOSED_REQUEST 499 +#define HTTP_CODE_TOKEN_REQUIRED 499 + +// 5xx Server Error +#define HTTP_CODE_INTERNAL_SERVER_ERROR 500 +#define HTTP_CODE_NOT_IMPLEMENTED 501 +#define HTTP_CODE_BAD_GATEWAY 502 +#define HTTP_CODE_SERVICE_UNAVAILABLE 503 +#define HTTP_CODE_GATEWAY_TIMEOUT 504 +#define HTTP_CODE_HTTP_VERSION_NOT_SUPPORTED 505 +#define HTTP_CODE_VARIANT_ALSO_NEGOTIATES 506 +#define HTTP_CODE_INSUFFICIENT_STORAGE 507 +#define HTTP_CODE_LOOP_DETECTED 508 +#define HTTP_CODE_BANDWIDTH_LIMIT_EXCEEDED 509 +#define HTTP_CODE_NOT_EXTENDED 510 +#define HTTP_CODE_NETWORK_AUTHENTICATION_REQUIRED 511 +#define HTTP_CODE_NETWORK_READ_TIMEOUT_ERROR 598 +#define HTTP_CODE_NETWORK_CONNECT_TIMEOUT_ERROR 599 + +#define HTTP_CODE_FAKE_DISCONNECTED 0 +#define HTTP_CODE_FAKE_ERROR 1 +#define HTTP_CODE_FAKE_OFFLINE 2 + +namespace http +{ + struct response + { + response() : code(0), error_number(0) {} + + int code; + std::map<std::string, std::string> headers; + std::string data; + + // Facebook's error data + unsigned int error_number; + std::string error_title; + std::string error_text; + + bool isValid() { + return (code == HTTP_CODE_OK && error_number == 0); + } + }; +} |