1 /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
3 * Copyright (C) 2000-2003, Ximian, Inc.
7 #define SOUP_SERVER_H 1
9 #include <libsoup/soup-types.h>
10 #include <libsoup/soup-uri.h>
14 #define SOUP_TYPE_SERVER (soup_server_get_type ())
15 #define SOUP_SERVER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SOUP_TYPE_SERVER, SoupServer))
16 #define SOUP_SERVER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SOUP_TYPE_SERVER, SoupServerClass))
17 #define SOUP_IS_SERVER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SOUP_TYPE_SERVER))
18 #define SOUP_IS_SERVER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((obj), SOUP_TYPE_SERVER))
19 #define SOUP_SERVER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SOUP_TYPE_SERVER, SoupServerClass))
21 typedef struct SoupClientContext SoupClientContext;
22 GType soup_client_context_get_type (void);
23 #define SOUP_TYPE_CLIENT_CONTEXT (soup_client_context_get_type ())
31 GObjectClass parent_class;
34 void (*request_started) (SoupServer *server, SoupMessage *msg,
35 SoupClientContext *client);
36 void (*request_read) (SoupServer *server, SoupMessage *msg,
37 SoupClientContext *client);
38 void (*request_finished) (SoupServer *server, SoupMessage *msg,
39 SoupClientContext *client);
40 void (*request_aborted) (SoupServer *server, SoupMessage *msg,
41 SoupClientContext *client);
43 /* Padding for future expansion */
44 void (*_libsoup_reserved1) (void);
45 void (*_libsoup_reserved2) (void);
46 void (*_libsoup_reserved3) (void);
47 void (*_libsoup_reserved4) (void);
50 GType soup_server_get_type (void);
52 typedef void (*SoupServerCallback) (SoupServer *server,
56 SoupClientContext *client,
59 #define SOUP_SERVER_PORT "port"
60 #define SOUP_SERVER_INTERFACE "interface"
61 #define SOUP_SERVER_SSL_CERT_FILE "ssl-cert-file"
62 #define SOUP_SERVER_SSL_KEY_FILE "ssl-key-file"
63 #define SOUP_SERVER_TLS_CERTIFICATE "tls-certificate"
64 #define SOUP_SERVER_ASYNC_CONTEXT "async-context"
65 #define SOUP_SERVER_RAW_PATHS "raw-paths"
66 #define SOUP_SERVER_SERVER_HEADER "server-header"
68 SoupServer *soup_server_new (const char *optname1,
69 ...) G_GNUC_NULL_TERMINATED;
71 gboolean soup_server_is_https (SoupServer *server);
72 guint soup_server_get_port (SoupServer *server);
74 SoupSocket *soup_server_get_listener (SoupServer *server);
76 void soup_server_run (SoupServer *server);
77 void soup_server_run_async (SoupServer *server);
78 void soup_server_quit (SoupServer *server);
79 void soup_server_disconnect (SoupServer *server);
81 GMainContext *soup_server_get_async_context (SoupServer *server);
83 /* Handlers and auth */
85 void soup_server_add_handler (SoupServer *server,
87 SoupServerCallback callback,
89 GDestroyNotify destroy);
90 void soup_server_remove_handler (SoupServer *server,
93 void soup_server_add_auth_domain (SoupServer *server,
94 SoupAuthDomain *auth_domain);
95 void soup_server_remove_auth_domain (SoupServer *server,
96 SoupAuthDomain *auth_domain);
100 void soup_server_pause_message (SoupServer *server,
102 void soup_server_unpause_message (SoupServer *server,
107 SoupSocket *soup_client_context_get_socket (SoupClientContext *client);
108 SoupAddress *soup_client_context_get_address (SoupClientContext *client);
109 const char *soup_client_context_get_host (SoupClientContext *client);
110 SoupAuthDomain *soup_client_context_get_auth_domain (SoupClientContext *client);
111 const char *soup_client_context_get_auth_user (SoupClientContext *client);
115 #endif /* SOUP_SERVER_H */