MCPcopy Create free account
hub / github.com/defold/defold / ParsePostUrl

Method ParsePostUrl

engine/engine/src/engine_service.cpp:59–111  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

57 }
58
59 static bool ParsePostUrl(const char* resource, dmMessage::HSocket* socket, const dmDDF::Descriptor** desc, dmhash_t* message_id)
60 {
61 // Syntax: http://host:port/post/socket/message_type
62
63 char buf[256];
64 dmStrlCpy(buf, resource, sizeof(buf));
65
66 char* last;
67 int i = 0;
68 char* s = dmStrTok(buf, "/", &last);
69 bool error = false;
70
71 while (s && !error)
72 {
73 switch (i)
74 {
75 case 0:
76 {
77 if (strcmp(s, "post") != 0)
78 {
79 error = true;
80 }
81 }
82 break;
83
84 case 1:
85 {
86 dmMessage::Result mr = dmMessage::GetSocket(s, socket);
87 if (mr != dmMessage::RESULT_OK)
88 {
89 error = true;
90 }
91 }
92 break;
93
94 case 2:
95 {
96 *message_id = dmHashString64(s);
97 *desc = dmDDF::GetDescriptorFromHash(*message_id);
98 if (*desc == 0)
99 {
100 error = true;
101 }
102 }
103 break;
104 }
105
106 s = dmStrTok(0, "/", &last);
107 ++i;
108 }
109
110 return !error;
111 }
112
113 static void SlurpHttpContent(dmWebServer::Request* request)
114 {

Callers

nothing calls this directly

Calls 4

dmStrlCpyFunction · 0.85
dmStrTokFunction · 0.85
GetDescriptorFromHashFunction · 0.85
GetSocketFunction · 0.50

Tested by

no test coverage detected