Codemod asserts to assertxs in the runtime
[hiphop-php.git] / hphp / runtime / base / url.cpp
bloba0798c4648ca65d851e9b8c12564dc1362e4bc3a
1 /*
2 +----------------------------------------------------------------------+
3 | HipHop for PHP |
4 +----------------------------------------------------------------------+
5 | Copyright (c) 2010-present Facebook, Inc. (http://www.facebook.com) |
6 +----------------------------------------------------------------------+
7 | This source file is subject to version 3.01 of the PHP license, |
8 | that is bundled with this package in the file LICENSE, and is |
9 | available through the world-wide-web at the following url: |
10 | http://www.php.net/license/3_01.txt |
11 | If you did not receive a copy of the PHP license and are unable to |
12 | obtain it through the world-wide-web, please send a note to |
13 | license@php.net so we can mail you a copy immediately. |
14 +----------------------------------------------------------------------+
17 #include "hphp/runtime/base/url.h"
18 #include "hphp/util/assertions.h"
20 namespace HPHP {
21 namespace URL {
23 const char *getServerObject(const char* url) {
24 assertx(url);
25 int strip = 0;
26 if (strncmp(url, "http://", 7) == 0) {
27 strip = 7;
28 } else if (strncmp(url, "https://", 8) == 0) {
29 strip = 8;
31 const char *p = strchr(url + strip, '/');
32 if (p) {
33 while (*(p + 1) == '/') p++;
34 return p;
36 if (strip == 0) return url;
37 return "";
40 std::string getCommand(const char* serverObject) {
41 assertx(serverObject);
42 if (!*serverObject) {
43 return "";
46 while (*serverObject == '/') {
47 ++serverObject;
49 const char *v = strchr(serverObject, '?');
50 if (v) {
51 return std::string(serverObject, v - serverObject);
53 return serverObject;
56 } // namespace URL
57 } // namespace HPHP