aboutsummaryrefslogtreecommitdiff
path: root/src/cookie.h
diff options
context:
space:
mode:
authorAleksey Veresov <aleksey@veresov.pro>2019-09-13 18:50:34 +0300
committerAleksey Veresov <aleksey@veresov.pro>2019-09-13 18:50:34 +0300
commitad6188f911af896c9c77e9215bea3c5c2a4e6cc3 (patch)
tree158b4015ff302f72fe2bb8a0ee3d5441ffb66719 /src/cookie.h
downloadmagi-ad6188f911af896c9c77e9215bea3c5c2a4e6cc3.tar
magi-ad6188f911af896c9c77e9215bea3c5c2a4e6cc3.tar.xz
magi-ad6188f911af896c9c77e9215bea3c5c2a4e6cc3.zip
Project name and license are added. Minor changes.
Diffstat (limited to 'src/cookie.h')
-rw-r--r--src/cookie.h47
1 files changed, 47 insertions, 0 deletions
diff --git a/src/cookie.h b/src/cookie.h
new file mode 100644
index 0000000..d65cbe5
--- /dev/null
+++ b/src/cookie.h
@@ -0,0 +1,47 @@
+#ifndef MAGI_INCLUDED_COOKIE_H
+#define MAGI_INCLUDED_COOKIE_H
+
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ * Cookie
+ */
+struct magi_cookie {
+ char *name; /* name: free(name) is valid. */
+ char *data; /* data: free(data) is valid. */
+ /* Following is used in Cookie2: */
+ char *path; /* path: free(path) is valid. */
+ char *domain; /* domain: free(domain) is valid. */
+ char *port; /* port: free(port) is valid. */
+};
+
+/* Null is valid "struct magi_cookie_list *" object. */
+struct magi_cookie_list {
+ struct magi_cookie_list *next;
+ struct magi_cookie item;
+};
+
+/* Returns null in case of error. */
+int magi_parse_cookie(struct magi_cookie_list **list, const char *input);
+
+/*
+ * Adds *item to the begining of *list, item and list are dereferencable;
+ * Returns null in case of error.
+ */
+int magi_cookie_list_add(
+ struct magi_cookie_list **list,
+ struct magi_cookie *item
+);
+
+/*
+ * Searchs for first node in list: node.name == name, name is C-string;
+ * Returns node.data if succeed, otherwise result is null.
+ */
+char *magi_cookie_list_get(struct magi_cookie_list *list, const char *name);
+
+/*
+ * Destroys list; list is not valid after destruction.
+ */
+void magi_cookie_list_destroy(struct magi_cookie_list *list);
+
+
+#endif