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_ASYNC_CONTEXT "async-context"
64 #define SOUP_SERVER_RAW_PATHS "raw-paths"
65 #define SOUP_SERVER_SERVER_HEADER "server-header"
67 SoupServer *soup_server_new (const char *optname1,
68 ...) G_GNUC_NULL_TERMINATED;
70 gboolean soup_server_is_https (SoupServer *server);
71 guint soup_server_get_port (SoupServer *server);
73 SoupSocket *soup_server_get_listener (SoupServer *server);
75 void soup_server_run (SoupServer *server);
76 void soup_server_run_async (SoupServer *server);
77 void soup_server_quit (SoupServer *server);
78 void soup_server_disconnect (SoupServer *server);
80 GMainContext *soup_server_get_async_context (SoupServer *server);
82 /* Handlers and auth */
84 void soup_server_add_handler (SoupServer *server,
86 SoupServerCallback callback,
88 GDestroyNotify destroy);
89 void soup_server_remove_handler (SoupServer *server,
92 void soup_server_add_auth_domain (SoupServer *server,
93 SoupAuthDomain *auth_domain);
94 void soup_server_remove_auth_domain (SoupServer *server,
95 SoupAuthDomain *auth_domain);
99 void soup_server_pause_message (SoupServer *server,
101 void soup_server_unpause_message (SoupServer *server,
106 SoupSocket *soup_client_context_get_socket (SoupClientContext *client);
107 SoupAddress *soup_client_context_get_address (SoupClientContext *client);
108 const char *soup_client_context_get_host (SoupClientContext *client);
109 SoupAuthDomain *soup_client_context_get_auth_domain (SoupClientContext *client);
110 const char *soup_client_context_get_auth_user (SoupClientContext *client);
114 #endif /* SOUP_SERVER_H */