projects
/
pazpar2-moved-to-github.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add check of configuration (-t).
[pazpar2-moved-to-github.git]
/
src
/
http_command.c
diff --git
a/src/http_command.c
b/src/http_command.c
index
da9771e
..
4b95b89
100644
(file)
--- a/
src/http_command.c
+++ b/
src/http_command.c
@@
-37,7
+37,6
@@
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#include "eventl.h"
#include "pazpar2.h"
#include "http.h"
#include "eventl.h"
#include "pazpar2.h"
#include "http.h"
-#include "http_command.h"
#include "settings.h"
#include "client.h"
#include "settings.h"
#include "client.h"
@@
-53,7
+52,8
@@
struct http_session {
struct http_session *next;
};
struct http_session *next;
};
-static struct http_session *session_list = 0;
+static struct http_session *session_list = 0; /* thread pr */
+
void http_session_destroy(struct http_session *s);
static void session_timeout(IOCHAN i, int event)
void http_session_destroy(struct http_session *s);
static void session_timeout(IOCHAN i, int event)
@@
-155,7
+155,7
@@
static void error(struct http_response *rs,
unsigned int make_sessionid(void)
{
unsigned int make_sessionid(void)
{
- static int seq = 0;
+ static int seq = 0; /* thread pr */
unsigned int res;
seq++;
unsigned int res;
seq++;
@@
-185,7
+185,7
@@
unsigned int make_sessionid(void)
static struct http_session *locate_session(struct http_request *rq, struct http_response *rs)
{
struct http_session *p;
static struct http_session *locate_session(struct http_request *rq, struct http_response *rs)
{
struct http_session *p;
- char *session = http_argbyname(rq, "session");
+ const char *session = http_argbyname(rq, "session");
unsigned int id;
if (!session)
unsigned int id;
if (!session)
@@
-237,7
+237,7
@@
static int process_settings(struct session *se, struct http_request *rq,
static void cmd_exit(struct http_channel *c)
{
yaz_log(YLOG_WARN, "exit");
static void cmd_exit(struct http_channel *c)
{
yaz_log(YLOG_WARN, "exit");
- http_close_server();
+ http_close_server(c->server);
}
static void cmd_init(struct http_channel *c)
}
static void cmd_init(struct http_channel *c)
@@
-342,8
+342,8
@@
static void cmd_termlist(struct http_channel *c)
struct termlist_score **p;
int len;
int i;
struct termlist_score **p;
int len;
int i;
- char *name = http_argbyname(rq, "name");
- char *nums = http_argbyname(rq, "num");
+ const char *name = http_argbyname(rq, "name");
+ const char *nums = http_argbyname(rq, "num");
int num = 15;
int status;
int num = 15;
int status;
@@
-366,7
+366,7
@@
static void cmd_termlist(struct http_channel *c)
while (*name)
{
char tname[256];
while (*name)
{
char tname[256];
- char *tp;
+ const char *tp;
if (!(tp = strchr(name, ',')))
tp = name + strlen(name);
if (!(tp = strchr(name, ',')))
tp = name + strlen(name);
@@
-561,13
+561,14
@@
static void cmd_record(struct http_channel *c)
struct http_session *s = locate_session(rq, rs);
struct record_cluster *rec, *prev_r, *next_r;
struct record *r;
struct http_session *s = locate_session(rq, rs);
struct record_cluster *rec, *prev_r, *next_r;
struct record *r;
- struct conf_service *service = s->psession->service;
+ struct conf_service *service;
const char *idstr = http_argbyname(rq, "id");
const char *offsetstr = http_argbyname(rq, "offset");
const char *binarystr = http_argbyname(rq, "binary");
if (!s)
return;
const char *idstr = http_argbyname(rq, "id");
const char *offsetstr = http_argbyname(rq, "offset");
const char *binarystr = http_argbyname(rq, "binary");
if (!s)
return;
+ service = s->psession->service;
if (!idstr)
{
error(rs, PAZPAR2_MISSING_PARAMETER, "id");
if (!idstr)
{
error(rs, PAZPAR2_MISSING_PARAMETER, "id");
@@
-576,7
+577,11
@@
static void cmd_record(struct http_channel *c)
wrbuf_rewind(c->wrbuf);
if (!(rec = show_single(s->psession, idstr, &prev_r, &next_r)))
{
wrbuf_rewind(c->wrbuf);
if (!(rec = show_single(s->psession, idstr, &prev_r, &next_r)))
{
- if (session_set_watch(s->psession, SESSION_WATCH_RECORD,
+ if (session_active_clients(s->psession) == 0)
+ {
+ error(rs, PAZPAR2_RECORD_MISSING, idstr);
+ }
+ else if (session_set_watch(s->psession, SESSION_WATCH_RECORD,
cmd_record_ready, c, c) != 0)
{
error(rs, PAZPAR2_RECORD_MISSING, idstr);
cmd_record_ready, c, c) != 0)
{
error(rs, PAZPAR2_RECORD_MISSING, idstr);
@@
-664,9
+669,9
@@
static void show_records(struct http_channel *c, int active)
struct http_session *s = locate_session(rq, rs);
struct record_cluster **rl;
struct reclist_sortparms *sp;
struct http_session *s = locate_session(rq, rs);
struct record_cluster **rl;
struct reclist_sortparms *sp;
- char *start = http_argbyname(rq, "start");
- char *num = http_argbyname(rq, "num");
- char *sort = http_argbyname(rq, "sort");
+ const char *start = http_argbyname(rq, "start");
+ const char *num = http_argbyname(rq, "num");
+ const char *sort = http_argbyname(rq, "sort");
int startn = 0;
int numn = 20;
int total;
int startn = 0;
int numn = 20;
int total;
@@
-738,7
+743,7
@@
static void cmd_show(struct http_channel *c)
struct http_request *rq = c->request;
struct http_response *rs = c->response;
struct http_session *s = locate_session(rq, rs);
struct http_request *rq = c->request;
struct http_response *rs = c->response;
struct http_session *s = locate_session(rq, rs);
- char *block = http_argbyname(rq, "block");
+ const char *block = http_argbyname(rq, "block");
int status;
if (!s)
int status;
if (!s)
@@
-804,8
+809,8
@@
static void cmd_search(struct http_channel *c)
struct http_request *rq = c->request;
struct http_response *rs = c->response;
struct http_session *s = locate_session(rq, rs);
struct http_request *rq = c->request;
struct http_response *rs = c->response;
struct http_session *s = locate_session(rq, rs);
- char *query = http_argbyname(rq, "query");
- char *filter = http_argbyname(rq, "filter");
+ const char *query = http_argbyname(rq, "query");
+ const char *filter = http_argbyname(rq, "filter");
enum pazpar2_error_code code;
const char *addinfo = 0;
enum pazpar2_error_code code;
const char *addinfo = 0;
@@
-921,7
+926,7
@@
struct {
void http_command(struct http_channel *c)
{
void http_command(struct http_channel *c)
{
- char *command = http_argbyname(c->request, "command");
+ const char *command = http_argbyname(c->request, "command");
struct http_response *rs = http_create_response(c);
int i;
struct http_response *rs = http_create_response(c);
int i;