1*76404edcSAsim Jamshed #include "array.h"
2*76404edcSAsim Jamshed #include "fastcgi.h"
3*76404edcSAsim Jamshed 
4*76404edcSAsim Jamshed #include <string.h>
5*76404edcSAsim Jamshed #include <stdio.h>
6*76404edcSAsim Jamshed #include <stdlib.h>
7*76404edcSAsim Jamshed 
data_fastcgi_copy(const data_unset * s)8*76404edcSAsim Jamshed static data_unset *data_fastcgi_copy(const data_unset *s) {
9*76404edcSAsim Jamshed 	data_fastcgi *src = (data_fastcgi *)s;
10*76404edcSAsim Jamshed 	data_fastcgi *ds = data_fastcgi_init();
11*76404edcSAsim Jamshed 
12*76404edcSAsim Jamshed 	buffer_copy_string_buffer(ds->key, src->key);
13*76404edcSAsim Jamshed 	buffer_copy_string_buffer(ds->host, src->host);
14*76404edcSAsim Jamshed 	ds->is_index_key = src->is_index_key;
15*76404edcSAsim Jamshed 	return (data_unset *)ds;
16*76404edcSAsim Jamshed }
17*76404edcSAsim Jamshed 
data_fastcgi_free(data_unset * d)18*76404edcSAsim Jamshed static void data_fastcgi_free(data_unset *d) {
19*76404edcSAsim Jamshed 	data_fastcgi *ds = (data_fastcgi *)d;
20*76404edcSAsim Jamshed 
21*76404edcSAsim Jamshed 	buffer_free(ds->key);
22*76404edcSAsim Jamshed 	buffer_free(ds->host);
23*76404edcSAsim Jamshed 
24*76404edcSAsim Jamshed 	free(d);
25*76404edcSAsim Jamshed }
26*76404edcSAsim Jamshed 
data_fastcgi_reset(data_unset * d)27*76404edcSAsim Jamshed static void data_fastcgi_reset(data_unset *d) {
28*76404edcSAsim Jamshed 	data_fastcgi *ds = (data_fastcgi *)d;
29*76404edcSAsim Jamshed 
30*76404edcSAsim Jamshed 	buffer_reset(ds->key);
31*76404edcSAsim Jamshed 	buffer_reset(ds->host);
32*76404edcSAsim Jamshed 
33*76404edcSAsim Jamshed }
34*76404edcSAsim Jamshed 
data_fastcgi_insert_dup(data_unset * dst,data_unset * src)35*76404edcSAsim Jamshed static int data_fastcgi_insert_dup(data_unset *dst, data_unset *src) {
36*76404edcSAsim Jamshed 	UNUSED(dst);
37*76404edcSAsim Jamshed 
38*76404edcSAsim Jamshed 	src->free(src);
39*76404edcSAsim Jamshed 
40*76404edcSAsim Jamshed 	return 0;
41*76404edcSAsim Jamshed }
42*76404edcSAsim Jamshed 
data_fastcgi_print(const data_unset * d,int depth)43*76404edcSAsim Jamshed static void data_fastcgi_print(const data_unset *d, int depth) {
44*76404edcSAsim Jamshed 	data_fastcgi *ds = (data_fastcgi *)d;
45*76404edcSAsim Jamshed 	UNUSED(depth);
46*76404edcSAsim Jamshed 
47*76404edcSAsim Jamshed 	fprintf(stdout, "fastcgi(%s)", ds->host->ptr);
48*76404edcSAsim Jamshed }
49*76404edcSAsim Jamshed 
50*76404edcSAsim Jamshed 
data_fastcgi_init(void)51*76404edcSAsim Jamshed data_fastcgi *data_fastcgi_init(void) {
52*76404edcSAsim Jamshed 	data_fastcgi *ds;
53*76404edcSAsim Jamshed 
54*76404edcSAsim Jamshed 	ds = calloc(1, sizeof(*ds));
55*76404edcSAsim Jamshed 
56*76404edcSAsim Jamshed 	ds->key = buffer_init();
57*76404edcSAsim Jamshed 	ds->host = buffer_init();
58*76404edcSAsim Jamshed 	ds->port = 0;
59*76404edcSAsim Jamshed 	ds->is_disabled = 0;
60*76404edcSAsim Jamshed 
61*76404edcSAsim Jamshed 	ds->copy = data_fastcgi_copy;
62*76404edcSAsim Jamshed 	ds->free = data_fastcgi_free;
63*76404edcSAsim Jamshed 	ds->reset = data_fastcgi_reset;
64*76404edcSAsim Jamshed 	ds->insert_dup = data_fastcgi_insert_dup;
65*76404edcSAsim Jamshed 	ds->print = data_fastcgi_print;
66*76404edcSAsim Jamshed 	ds->type = TYPE_FASTCGI;
67*76404edcSAsim Jamshed 
68*76404edcSAsim Jamshed 	return ds;
69*76404edcSAsim Jamshed }
70