/* * RatFE - Lightweight frontend for Pleroma * Copyright (C) 2022 Nekobit * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by * the Free Software Foundation, either version 3 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 Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see . */ #include "query.h" char* parse_query(char* begin, struct http_query_info* info) { int end = 0; char* val_begin; info->key = begin; for (; *begin != '&' && *begin != '\0'; ++begin) { if (*begin == '=') { val_begin = begin+1; *begin = '\0'; } } if (*begin == '\0') end = 1; if (*begin == '&') *begin = '\0'; info->val = val_begin; // The val length may be large, so strlen can waste time info->val_len = (size_t)(begin - val_begin); return end ? NULL : begin+1; }