Add moving operation and fix prototype problem

This commit is contained in:
oupson 2021-11-02 09:45:05 +01:00
parent f0e19a1f1c
commit 8e311c221c
6 changed files with 17 additions and 13 deletions

View File

@ -31,7 +31,7 @@ char *cookie_hostname(cookie_t *cookie);
bool cookie_include_subdomains(cookie_t *cookie);
char *cookie_path(cookie_t *cookie);
bool cookie_secure(cookie_t *cookie);
int cookie_expire(cookie_t *cookie);
long cookie_expire(cookie_t *cookie);
char *cookie_name(cookie_t *cookie);
char *cookie_value(cookie_t *cookie);
void cookie_free(cookie_t *cookie);

View File

@ -1,6 +1,7 @@
#ifndef ERROR_H
#define ERROR_H
#include "auth_univ_orleans/cookie_iterator.h"
typedef struct result result_t;
#include <auth_univ_orleans/auth_univ_orleans.h>
@ -20,9 +21,9 @@ struct result {
union inner_result inner;
};
enum result_type get_result_type(result_t *result);
cookie_iterator_t *get_result_ok(result_t *result);
cookie_iterator_t *move_result_ok(result_t *result);
const char *get_result_err(result_t *result);
void result_free(result_t *result);
#endif

View File

@ -144,7 +144,7 @@ bool cookie_include_subdomains(cookie_t *cookie) {
}
char *cookie_path(cookie_t *cookie) { return cookie->path; }
bool cookie_secure(cookie_t *cookie) { return cookie->secure; }
int cookie_expire(cookie_t *cookie) { return cookie->expire; }
long cookie_expire(cookie_t *cookie) { return cookie->expire; }
char *cookie_name(cookie_t *cookie) { return cookie->name; }
char *cookie_value(cookie_t *cookie) { return cookie->value; }

View File

@ -6,10 +6,14 @@ enum result_type get_result_type(result_t *result) { return result->type; }
cookie_iterator_t *get_result_ok(result_t *result) { return result->inner.ok; }
const char *get_result_err(result_t *result) {
return result->inner.error;
cookie_iterator_t *move_result_ok(result_t *result) {
cookie_iterator_t *res = result->inner.ok;
result->inner.ok = NULL;
return res;
}
const char *get_result_err(result_t *result) { return result->inner.error; }
void result_free(result_t *result) {
if (result->type == OK) {
if (result->inner.ok != NULL) {

View File

@ -24,7 +24,7 @@ int main(void) {
"\tinclude subdomains : %d\n"
"\tpath : %s\n"
"\tsecure : %d\n"
"\texpire : %d\n"
"\texpire : %ld\n"
"\tvalue: %s\n",
cookie_name(cookie), cookie_hostname(cookie),
cookie_include_subdomains(cookie), cookie_path(cookie),
@ -32,7 +32,6 @@ int main(void) {
cookie_value(cookie));
}
} else {
fprintf(stderr, "error : %s\n", get_result_err(res));
}